chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

將軟件上傳到Arduino的兩種方法

454398 ? 來源:網(wǎng)絡(luò)整理 ? 作者:網(wǎng)絡(luò)整理 ? 2019-11-11 11:27 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

步驟1:FTDI或串行上傳

FTDI實(shí)際上是芯片品牌。 FTDI公司專門研究用于通過USB連接的芯片。在Arduino領(lǐng)域,USB轉(zhuǎn)串口芯片用于將運(yùn)行Arduino IDE的計(jì)算機(jī)連接到Arduino的主處理器,以上傳新草圖并通過串行監(jiān)視器窗口與草圖交互。 USB轉(zhuǎn)串行芯片與Arduino上ATMEL處理器的UART接口連接。

為了使Arduino從串行接口接受草圖,它運(yùn)行了一個(gè)名為自舉程序的程序,該程序接受該草圖并將其寫入閃存。引導(dǎo)加載程序?qū)嶋H上位于閃存地址較高范圍內(nèi)的一小部分,保留供引導(dǎo)加載程序使用。引導(dǎo)加載程序接收到草圖后,它將存儲(chǔ)到閃存的下部。

此串行編程使用稱為TTL串行的協(xié)議。它基于稱為RS-232的舊通信協(xié)議。 RS-232通信使用的電壓會(huì)從3到25伏的正電壓迅速變?yōu)?3到-25伏的負(fù)電壓。個(gè)人計(jì)算機(jī)通常不再配備RS-232接口,但幾年前就已使用。具有此類接口的PC通常使用在12至-12伏之間擺動(dòng)的電壓來發(fā)送RS-232信號(hào)。 Arduino上的ATMEL處理器使用0到5伏范圍內(nèi)的信號(hào)。與Arduino處理器可以處理的電壓范圍兼容的RS-232協(xié)議版本稱為TTL串行,有時(shí)您可能會(huì)聽到它稱為TTL-232或僅串行。

大多數(shù)Arduino都內(nèi)置有USB轉(zhuǎn)串行適配器芯片,因此您可以將Arduino直接連接到計(jì)算機(jī),而無需任何特殊接口或編程器。一些Arduino,例如LilyPad,Mini和Pro Mini,沒有配備USB到串行適配器,您需要提供自己的外部適配器。即使芯片的品牌不是FTDI,外部適配器也經(jīng)常被稱為FTDI適配器。

串行通信涉及多條電線或連接。最重要的稱為RX(接收的簡稱)和TX(發(fā)送的簡稱)。

顧名思義,RX導(dǎo)線或引腳從另一個(gè)設(shè)備接收。它偵聽傳入的通信。 TX導(dǎo)線或引腳將數(shù)據(jù)傳輸?shù)搅硪粋€(gè)設(shè)備。 USB到串行適配器的TX線以一種模式在0伏至5伏之間快速切換,并將其連接到正在監(jiān)聽這些模式的Arduino處理器的RX引腳上。

通信是雙向的,因此Arduino的處理器可以將信號(hào)發(fā)送回USB到串行適配器。處理器使用其自己的TX引腳將信號(hào)發(fā)送到USB到串行適配器的RX引腳。 USB到串行適配器通過USB電纜在Arduino和您的計(jì)算機(jī)之間來回轉(zhuǎn)換信號(hào)。

計(jì)算機(jī)將草圖發(fā)送到Arduino,并從Arduino接收回來,因此計(jì)算機(jī)可以驗(yàn)證程序是否加載正常。您在Arduino上運(yùn)行的草圖可以使用相同的串行連接,以通過串行監(jiān)視器窗口與您通信。通常使用此方法調(diào)試草圖,因?yàn)槟梢栽诖a中的關(guān)鍵位置撒上Serial.print語句,以報(bào)告變量的值或告訴您代碼當(dāng)前正在做什么。然后,您可以將數(shù)據(jù)(例如傳感器或輸入引腳讀數(shù))發(fā)送回計(jì)算機(jī)。您還可以使用串行監(jiān)視器將數(shù)據(jù)從計(jì)算機(jī)發(fā)送到在Arduino上運(yùn)行的草圖。

您可能想知道當(dāng)串行通信試圖將其發(fā)送給草圖或僅進(jìn)行通信時(shí),Arduino如何知道通過串行監(jiān)視器以及已經(jīng)在Arduino上運(yùn)行的草圖?答案很簡單。接受草圖并重新編程Arduino的引導(dǎo)程序僅在Arduino的處理器復(fù)位后的最初幾秒鐘內(nèi)運(yùn)行。如果在Arduino上運(yùn)行的bootloader程序未接收到一定的字符序列,表明正在嘗試上傳草圖,則退出運(yùn)行并啟動(dòng)先前加載的草圖。

首次開發(fā)Arduino時(shí),將草圖上傳到Arduino的人必須在上傳過程開始時(shí)立即按Arduino上的Reset按鈕,然后正確計(jì)時(shí),或重試。更高版本的Arduino使用了另外一個(gè)稱為DTR的串行協(xié)議線來自動(dòng)重置Arduino。由于在開始與Arduino的新連接時(shí)DTR信號(hào)從5V變?yōu)?,因此如果將此信號(hào)發(fā)送到Arduino處理器的復(fù)位線,它將復(fù)位。如果要建立新的串行連接的原因是因?yàn)锳rduino IDE正在向啟動(dòng)加載程序發(fā)送草圖,則啟動(dòng)加載程序會(huì)繼續(xù)并接受該草圖并將其存儲(chǔ)。如果要建立新的串行連接的原因是因?yàn)槟诖蜷_Arduino IDE的串行監(jiān)視器,則Arduino會(huì)重置,引導(dǎo)加載程序會(huì)運(yùn)行足夠長的時(shí)間以意識(shí)到IDE不會(huì)嘗試發(fā)送草圖,而您先前上傳的開始運(yùn)行。

了解這些信號(hào)(例如用于自動(dòng)重置的DTR信號(hào))很有用,尤其是當(dāng)您要將USB串行適配器正確連接到未內(nèi)置適配器的Arduino時(shí),尤其如此,例如LilyPad,Mini或Pro Mini?;蛘撸绻雽?duì)Arduino問題進(jìn)行故障排除,或使用另一個(gè)Arduino編程。我在上一段中提到,在建立新連接時(shí),DTR信號(hào)將從5V變?yōu)?。好吧,這個(gè)信號(hào)變低,并在整個(gè)連接期間保持低電平。如果該信號(hào)直接連接到處理器的復(fù)位引腳,則處理器將保持復(fù)位狀態(tài),并且永遠(yuǎn)不會(huì)開始運(yùn)行引導(dǎo)加載程序或您先前上傳的草圖。

所以,這就是竅門:DTR信號(hào)通過一個(gè)小電容器發(fā)送到處理器的復(fù)位引腳。電容器將來自DTR信號(hào)的電壓(變?yōu)榈碗娖讲⒈3值碗娖剑┺D(zhuǎn)換為一個(gè)臨時(shí)尖峰,該尖峰變?yōu)?V,然后又回到5V。這將重置Arduino,并使其啟動(dòng)引導(dǎo)加載程序,隨后引導(dǎo)加載程序開始繪制草圖。

USB到串行適配器需要在計(jì)算機(jī)上加載驅(qū)動(dòng)程序,因此計(jì)算機(jī)將了解如何與其通信。真正的Arduino使用USB到串行適配器的特定型號(hào)列表,因此IDE可以與您可能需要的所有驅(qū)動(dòng)程序一起預(yù)先打包。如果您使用的是由arduino.cc或其合作伙伴制造商以外的其他人制作的克隆,假貨,衍生產(chǎn)品,自制的或其他不受支持的開發(fā)板,那實(shí)際上很好,因?yàn)樗情_源硬件和軟件。任何人都可以做到。但是開發(fā)板可能會(huì)使用USB到串行適配器,該適配器需要用于您計(jì)算機(jī)的驅(qū)動(dòng)程序,并且未包含在Arduino IDE的軟件下載中。 CH340G USB轉(zhuǎn)串口芯片就是一個(gè)例子,這種芯片在eBay和Amazon上銷售的Arduino兼容板上非常常見。對(duì)此有所了解對(duì)您很有幫助,因此您可以使用正確的驅(qū)動(dòng)程序來準(zhǔn)備計(jì)算機(jī)。

這種與Arduino處理器發(fā)生的串行通信通常通過處理器上專用于TTL串行通信的專用引腳進(jìn)行。該處理器具有稱為UART的特殊硬件,該硬件可以處理從TX引腳發(fā)送數(shù)據(jù)或在RX引腳接收數(shù)據(jù)。處理這些信號(hào)的邏輯是非?;镜膬?nèi)置于處理器中的。如果您不使用處理器上的RX和TX引腳通過UART進(jìn)行串行通信,則這些引腳可用于執(zhí)行其他操作,例如激活繼電器,晶體管LED或從傳感器接收數(shù)字信號(hào)。如果不被串行信號(hào)占用,它們只是普通的數(shù)字引腳。一些處理器芯片具有多個(gè)UART,因此有幾組RX和TX引腳。如果處理器的UART部分不使用這些引腳進(jìn)行串行通信,這些引腳也是普通數(shù)字引腳。

引導(dǎo)加載程序可以設(shè)計(jì)為使用處理器上的幾乎所有引腳通過任何協(xié)議接受草圖。處理器具有多種引腳,它們是普通數(shù)字引腳,但可以選擇將這些引腳用于特殊協(xié)議。例如,有一組引腳可用于IIC或I2C協(xié)議,這是一種能夠與多個(gè)設(shè)備通信的特殊串行總線協(xié)議。還有另一組引腳可用于SPI協(xié)議,這是用于與設(shè)備通信的另一種不同的串行總線協(xié)議。處理器具有特殊的硬件,旨在在各種專用引腳上實(shí)現(xiàn)這些不同的協(xié)議,并且處理這些信號(hào)的邏輯在非?;镜膶哟紊蟽?nèi)置于處理器中。

Twister#1:各種協(xié)議(例如TTL串行,I2C和SPI)具有內(nèi)置在處理器中的低級(jí)邏輯,用于在協(xié)議的特定引腳連接到另一臺(tái)設(shè)備時(shí)處理協(xié)議,但是可以通過編寫模擬處理器內(nèi)置邏輯電路行為的軟件來實(shí)現(xiàn)協(xié)議以在處理器的任何數(shù)字引腳上工作。這稱為“敲打”??梢跃帉懗绦蛞苑蠀f(xié)議要求或規(guī)范的方式驅(qū)動(dòng)引腳。例如,可以編寫使用處理器的非UART引腳的軟件串行協(xié)議。然后,該軟件將代替硬件UART電路。如果您原本會(huì)用于特定協(xié)議的引腳被占用,并且您需要使用其他引腳,則這很有用?;蛘?,如果您想擁有多個(gè)內(nèi)置串行接口。例如,ATmega328P處理器只有一個(gè)UART,并且使用數(shù)字引腳0和1。它通常一次只能與一個(gè)其他串行設(shè)備進(jìn)行通信。如果要在引腳2和3上連接另一個(gè)串行設(shè)備,則可以使用位串行協(xié)議的軟件串行程序來實(shí)現(xiàn)??梢跃幾gOptiboot引導(dǎo)加載程序,以通過非UART引腳上的軟件串行進(jìn)行通信。

Arduino通常會(huì)安裝一個(gè)串行引導(dǎo)加載程序,該串行引導(dǎo)加載程序使用ATMEL處理器上的硬件UART,并且計(jì)算機(jī)上運(yùn)行的Arduino IDE旨在與該引導(dǎo)加載程序進(jìn)行通信。

Twister#2:您不需要引導(dǎo)程序!

第2步:ISP編程

ISP也稱為ICSP。它是在線串行編程。與TTL串行相比,這是另一種串行。它是SPI(串行外圍設(shè)備接口總線),并使用3條主線進(jìn)行通信以進(jìn)行編程。當(dāng)您使用ISP對(duì)Arduino的處理器進(jìn)行編程時(shí),通常會(huì)擦除包括引導(dǎo)加載程序區(qū)域在內(nèi)的整個(gè)處理器芯片內(nèi)存,并寫入您的草圖。因此,當(dāng)您使用ISP將草圖上載到Arduino時(shí),Arduino不再具有引導(dǎo)加載程序。這意味著您還必須使用ISP上傳上傳到下一個(gè)草圖。您還可以使用ISP將引導(dǎo)加載程序放在Arduino上。這稱為刻錄引導(dǎo)加載程序。使用ISP上傳草圖后,您可能需要執(zhí)行此操作以更改或升級(jí)引導(dǎo)加載程序,或?qū)rduino恢復(fù)為正常操作。

您可能想將草圖上傳到帶有ISP的Arduino,因?yàn)槟M輬D在上電或重置后立即開始,或者因?yàn)槟幌M遢d引導(dǎo)程序接受其他草圖或嘗試使用串行引腳或閃存引腳13。

要進(jìn)行ISP編程,您需要ISP編程器。有許多與Arduino兼容的程序員,他們通常是插入U(xiǎn)SB或安裝在USB電纜末端的小型設(shè)備,并且具有連接至Arduino的連接器或電線。通常將編程器連接到Arduino的ICSP接頭,該接頭是一組排成三排的2針公引腳。

您還可以使用Arduino作為ISP編程器來編程另一個(gè)Arduino。 Arduino IDE附帶有一個(gè)名為ArduinoISP的示例草圖,您可以將其上傳到Arduino,然后成為ISP程序員。在Arduino IDE中的“工具”,“程序員”下的菜單中,選擇“ Arduino as ISP”。由于您只需花幾美元就可以得到克隆的Nano,Pro Micro或其他Arduino,因此除非有方便,否則幾乎不需要購買專用的ISP編程器設(shè)備。

因此,如果您有兩個(gè)Arduino,請(qǐng)繼續(xù)并開始嘗試ISP編程。您不太可能將任何事情弄糟,并且您將學(xué)習(xí)。為此,請(qǐng)打開ArduinoISP草圖,必要時(shí)對(duì)其進(jìn)行修改,然后將其上載到并準(zhǔn)備程序員Arduino。然后將編程器Arduino連接到目標(biāo)Arduino,并對(duì)目標(biāo)Arduino進(jìn)行編程。

步驟3:確定要使用的引腳

ISP編程的布線,您需要將編程器的MISO線連接到目標(biāo)Arduino的MISO。將編程器的MOSI導(dǎo)線連接到目標(biāo)的MOSI。將SCK連接到SCK。將5V連接至5V,并將GND連接至GND。將用于從機(jī)復(fù)位的任何引腳連接到目標(biāo)的RST引腳。為了幫助您理解和理解所有這些,接下來的幾段將提供很多詳細(xì)信息。

請(qǐng)注意,在某些教程,原理圖和數(shù)據(jù)表中,您可能會(huì)看到SCK或SCLK。這些標(biāo)簽都是同一功能“串行時(shí)鐘”的縮寫。在此Instructable中,我使用SCK。

從UNO開始,如果您查看電路板上和原理圖上的UNO ICSP插頭的引腳排列,您會(huì)發(fā)現(xiàn)引腳的編號(hào)是這樣的:/p》 D12 MISO 1 。 。 2 VCC

D13 SCK 3 。 。 4 MOSI D11

RST 5 。 。 6 GND

板上應(yīng)該有一個(gè)圓點(diǎn)或方形墊,用于顯示ICSP接頭連接器的針腳1是什么。在UNO上,即標(biāo)題的左上角。在UNO上,ICSP接頭連接器上的所有引腳都直接連接到板上,并且是板上其他地方可用的引腳的副本。標(biāo)頭的針腳1是數(shù)字針腳12的副本;引腳3與數(shù)字引腳13相同,依此類推。這就是為什么如果您在網(wǎng)上查看許多教程,就會(huì)發(fā)現(xiàn)它們顯示的是引腳11、12和13的使用,而不是使用ICSP標(biāo)頭。

在所有基于ATmega328P的Arduino(例如Pro Mini,Mini,Nano,Duemilanove和RedBoard,Metro328等衍生產(chǎn)品上),都應(yīng)用了相同的引腳分配。如果您的Arduino沒有ICSP接頭,請(qǐng)使用引腳10、11、12和13。

看看Leonardo,您必須比原理圖和電路板更深一些。該示意圖有點(diǎn)混亂,因?yàn)樵趦蓚€(gè)位置顯示了處理器,而未顯示MOSI,MISO和SCK線的Arduino引腳號(hào)。您需要查看IDE應(yīng)用程序目錄中的variants/leonardo/pins_arduino.h文件,以找出引腳號(hào)。

D14 MISO 1 。 . 2 VCC

D15 SCK 3 。 . 4 MOSI D16

RST 5 。 . 6 GND

當(dāng)您環(huán)顧一下Leonardo上的引腳時(shí),您會(huì)看到除了ICSP接頭連接器之外,其他任何地方都沒有數(shù)字引腳14、15和16。因此,如果您有Leonardo,則不能完全按照所找到的教程來說明與外部邊緣插針11、12和13的連接,并且必須使用ICSP接頭。這意味著要適應(yīng)您嘗試使用的教程,使用從閱讀本Instructable中獲得的足夠知識(shí),并進(jìn)行大量研究和閱讀以熟悉Leonardo。

在基于ATmega32U4的Arduino(例如Micro,Pro Micro,Esplora)上,如果Arduino沒有ICSP接頭,則使用引腳10、16、14和15。

如果您使用的是Arduino IDE 1.6.5或更早版本隨附的ArduinoISP草圖,則在使用Leonardo時(shí),默認(rèn)情況下從復(fù)位引腳未設(shè)置為10。閱讀此步驟的其余部分以獲取詳細(xì)信息。如果您使用的是arduino.cc上的Arduino IDE的1.6.6版或更高版本,您會(huì)注意到該草圖只是將從屬重置引腳設(shè)置為引腳10,因此您可以跳過閱讀此步驟的其余部分,然后繼續(xù)進(jìn)行步驟4

在深入研究Leonardo原理圖和pins_arduino.h文件時(shí),您會(huì)發(fā)現(xiàn)有些東西是SS引腳為數(shù)字引腳17,并且到達(dá)RXLED,并且在任何插頭上均不可用。當(dāng)您在Arduino IDE中加載ArduinoISP示例草圖并對(duì)其進(jìn)行查看時(shí),這一點(diǎn)很重要的原因顯而易見。 RESET線設(shè)置為SS,這是UNO上的引腳10,但是Leonardo上的引腳17。這是您需要連接到目標(biāo)Arduino的RST引腳的電線。因此,為了在Leonardo上使用此草圖,您需要使用可以實(shí)際連接的可用引腳。將行更改為:

#define RESET SS

#define RESET 10

,而不是使用名稱為SS的引腳,而是將其分配給特定的引腳號(hào)。使用引腳10,這樣您就可以在任何Arduino上使用修改后的草圖。我認(rèn)為也許應(yīng)該編寫草圖以從引腳10而不是從SS引腳發(fā)送復(fù)位信號(hào)。

步驟4:從Uno到Leo

讓我們研究一下如何使用UNO作為ISP程序員對(duì)Leonardo進(jìn)行編程。將UNO上ICSP接頭連接器的所有引腳連接到Leonardo上ICSP接頭連接器,除了引腳5,即RST引腳。將UNO的引腳10連接到Leonardo的RST引腳(ICSP接頭的引腳5)。這樣做時(shí),您將得到以下連接:

在編程器UNO上將11 MOSI引腳固定到目標(biāo)Leonardo上的16 MOSI引腳

在編程器UNO上將引腳12 MISO固定到目標(biāo)UNO上14目標(biāo)對(duì)象Leonardo

上的MISO引腳13編程器UNO上的SCK固定到引腳15 Leon編程對(duì)象UNO上的SCK固定到目標(biāo)Leonardo上的RST引腳

編程器UNO上的VCC到目標(biāo)Leonardo上的VCC

GND上編程器UNO上的VCC到目標(biāo)Leonardo上的GND

通過USB將UNO連接到計(jì)算機(jī)。 將ArduinoISP草圖上傳至UNO,然后在串行連接時(shí)通過在RST和GND之間連接一個(gè)10uF或更大的電容器來禁用自動(dòng)復(fù)位。電容器的帶狀或負(fù)極引線連接至GND。當(dāng)計(jì)算機(jī)通過UNO將程序數(shù)據(jù)發(fā)送到Leonardo時(shí),這將防止UNO重置和中斷ISP編程過程。

您的接線將如上圖所示。

在Arduino IDE菜單中,轉(zhuǎn)到“工具”,“開發(fā)板”,然后選擇“ Leonardo”。轉(zhuǎn)到工具,程序員,然后選擇Arduino作為ISP。轉(zhuǎn)到“工具,端口”,并確保已選擇要用作ISP編程器的UNO的端口。打開示例眨眼草圖。在菜單上轉(zhuǎn)到“草圖”(或IDE 1.6.4及更高版本上的“文件”),然后單擊“使用編程器上傳”。幾秒鐘后,眨眼草圖應(yīng)上傳到萊昂納多,并且LED應(yīng)該開始閃爍。您所做的全部操作將刪除Leonardo,并使用ISP安裝眨眼草圖。萊昂納多不再擁有引導(dǎo)加載程序。

如前所述,這意味著您還必須使用ISP上載到下一個(gè)草圖。從現(xiàn)在開始,您必須使用ISP對(duì)Leonardo進(jìn)行編程。為了驗(yàn)證這一點(diǎn),您可以繼續(xù)斷開Leonardo的連接,并用USB電纜將其連接起來,然后嘗試使用上傳過程將草圖上傳到其中。您會(huì)發(fā)現(xiàn)它不起作用。

如果您錯(cuò)過了拔掉USB電纜并上傳草圖的功能,則可以使用ISP將引導(dǎo)加載程序放回Leonardo。這稱為刻錄引導(dǎo)加載程序。這將使Leonardo恢復(fù)正常運(yùn)行。

將您作為ISP程序員使用的UNO連接到Leonardo,就像上傳眨眼草圖之前一樣。這次,在菜單上依次選擇工具,刻錄引導(dǎo)程序。幾秒鐘后,您應(yīng)該在IDE底部附近看到消息Done Burning Bootloader。新的Bootloader已安裝在您的Leonardo上?,F(xiàn)在,您可以使用USB電纜連接萊昂納多,并使用上傳過程將草圖上傳到萊昂納多。

步驟5:Leo to Uno

現(xiàn)在,使用Leonardo作為ISP程序員對(duì)UNO進(jìn)行編程,來研究相反的情況。將Leonardo上ICSP接頭連接器的所有引腳連接到UNO上的ICSP接頭連接器,除了引腳5(RST引腳)外。將Leonardo的引腳10連接到UNO的RST引腳(ICSP接頭的引腳5)。完成此操作后,您將得到以下連接:

在編程器Leonardo上將16 MOSI引腳固定到目標(biāo)UNO上的11 MOSI

在編程器Leonardo上的引腳14 MISO引腳上的固定目標(biāo)UNO上的12 MISO

將編程器Leonardo上的15 SCK引腳固定到目標(biāo)UNO上的13 SCK

編程器Leonardo上的引腳10到目標(biāo)UNO上的RST引腳

編程器Leonardo上的VCC到目標(biāo)UNO上的VCC

GND上編程器Leonardo上的VCC到目標(biāo)UNO上的GND

,它看起來像上圖。

從UNO卸下電容器。您不再需要了。

通過USB將Leonardo連接到計(jì)算機(jī)。將ArduinoISP草圖上載到Leonardo。如果使用的是Arduino IDE 1.6.5或更早版本附帶的ArduinoISP草圖,請(qǐng)m 確保已將示例草圖修改為如步驟3所述,將引腳10用作RESET發(fā)送引腳。使用Leonardo作為ISP程序員時(shí),您無需禁用自動(dòng)復(fù)位。

在Arduino IDE菜單中,轉(zhuǎn)到在“工具”上,然后選擇“ UNO”。轉(zhuǎn)到工具,程序員,然后選擇Arduino作為ISP。轉(zhuǎn)到“工具,端口”,并確保已選擇您要用作ISP編程器的Leonardo的端口。打開示例眨眼草圖。在菜單上轉(zhuǎn)到“草圖”(或IDE 1.6.4及更高版本上的“文件”),然后單擊“使用編程器上載”。幾秒鐘后,閃爍的草圖應(yīng)上載到UNO,并且LED應(yīng)該開始閃爍。您所做的全部工作將刪除UNO,并使用ISP安裝眨眼草圖。 UNO不再具有引導(dǎo)加載程序。

要將引導(dǎo)加載程序放回UNO并恢復(fù)到正常運(yùn)行,請(qǐng)轉(zhuǎn)到“工具,刻錄引導(dǎo)加載程序”菜單。

Windows用戶需要包括一個(gè)額外的一次性步驟。為Leonardo創(chuàng)建一個(gè)作為ISP的自定義programs.txt條目,以便您可以指定arduino協(xié)議而不是stk500v1協(xié)議。 PeterVH在此處討論了此細(xì)節(jié):https://petervanhoyweghen.wordpress.com/2012/09/16/arduinoisp-on-the-leonardo/

步驟6: ISP

我的希望是在閱讀了有關(guān)ISP流程的這些詳細(xì)信息以及引腳的詳細(xì)說明以及如何連接Arduino之后,您將獲得足夠的信息以適應(yīng)ISP流程。這個(gè)Instructable并不是要遵循的食譜,盲目地鉤住別針,并希望獲得最好的結(jié)果?,F(xiàn)在,您可以弄清楚如何將任何Arduino連接到任何其他Arduino,以及刻錄新的Bootloader或上傳草圖。我希望我的解釋方法能夠成功并讓您滿意。

您能找出如何刻錄引導(dǎo)程序或使用ISP將草圖上傳到Pro Micro的方法嗎?Pro Micro是與Leonardo一樣的基于ATmega32U4的Arduino嗎?它沒有ICSP頭,但是確實(shí)有分別標(biāo)記為14、15和16的引腳。

如何使用UNO作為ISP程序員來燒寫引導(dǎo)程序或?qū)⒉輬D上傳到Nano或Pro Mini,就像UNO一樣,它們都基于ATmega328P? Nano具有ICSP接頭,但是如果接頭上沒有焊接引腳,可以改用11、12和13引腳進(jìn)行適配嗎?

使用Mega2560作為ISP程序員或目標(biāo)如何? Mega板基于ATmega2560處理器。 ISCP標(biāo)頭的排列方式如下:

50 MISO 。 . VCC

52 SCK 。 . MOSI 51

RST 。 . GND

如果在使用Mega2560作為編程器時(shí)使用修改后的ArdinoISP草圖,則可以將引腳10用作RESET發(fā)送引腳。連接到目標(biāo)Arduino的RST引腳。如果使用未經(jīng)修改的ArduinoISP草圖,則需要知道Mega2560上的SS是53針。詳細(xì)信息在ArduinoISP草圖中的注釋中。 arduino.cc的Arduino IDE 1.6.6或更早版本隨附的ArduinoISP草圖已將RESET-send引腳設(shè)置為10。有關(guān)版本1.6.5和更早版本的詳細(xì)信息,請(qǐng)參見步驟3。

第7步:其他協(xié)議CDC串行

還記得我說過兩種將軟件上傳到Arduino的方法嗎?好吧,我可能有點(diǎn)顫抖了。這是第三。某些Arduino模型(例如Leonardo,Pro Micro,Micro,Robot,Esplora)具有ATmega32U4處理器。它具有用于USB協(xié)議的引腳,并具有專為與USB接口而設(shè)計(jì)的低級(jí)邏輯。這意味著根本沒有USB到串行適配器或芯片,并且ATmega32U4直接連接到計(jì)算機(jī)的USB。

信息使用模擬或代表TTL串行的協(xié)議在計(jì)算機(jī)和Arduino之間傳遞,,但是沒有涉及RX和TX的裸露引腳。引導(dǎo)加載程序或上載過程完全不涉及Leonardo和其他基于ATmega32U4的Arduino上的RX和TX引腳。 USB連接是一種固件實(shí)現(xiàn)的UART0,可在草圖中使用諸如Serial.print之類的語句。 RX和TX引腳連接到輔助UART(即UART1),并在您的草圖中用于諸如Serial1.print之類的語句。

由于USB CDC串行接口沒有物理引腳,例如RX和TX以及其他相關(guān)的TTL-232引腳,我們無權(quán)使用DTR引腳來重置Arduino并使其運(yùn)行自舉程序。 USB引腳只是D +和D-。我們該怎么辦?萊昂納多的設(shè)計(jì)師對(duì)此進(jìn)行了漫長而艱苦的思考,并提出了一個(gè)有趣的解決方法。盡管ATmega32U4處理器中的CDC串行接口并沒有像串行線那樣真正使用波特率,但是它可以知道計(jì)算機(jī)何時(shí)請(qǐng)求設(shè)置特定的波特率。他們對(duì)Arduino IDE進(jìn)行了編程,僅將波特率更改為1200秒鐘,然后將其更改為57600。這稱為1200bps_touch,如果您研究屬于Arduino IDE的boards.txt文件,則可以看到設(shè)置。軟件包。 Leonardo檢測到此情況,并使用看門狗方法重置處理器。然后,引導(dǎo)程序?qū)⑦\(yùn)行。該引導(dǎo)程序稱為Caterina。它與基于ATmega328P的Arduino的不同之處在于,它不接受使用RX和TX線的草圖。 Caterina使用USB D +和D-線。

因此,當(dāng)您打開串行監(jiān)視器或使用它們啟動(dòng)一些其他串行過程時(shí),萊昂納多和其他基于ATmega32U4的Arduino不會(huì)重置。僅當(dāng)IDE在上傳草圖之前執(zhí)行1200bps_touch時(shí),它們才會(huì)重置。這就是為什么當(dāng)您將其用作編程器時(shí)不需要禁用電容器自動(dòng)復(fù)位的原因。

步驟8:UNO和Mega2560

好的,因?yàn)槲乙郧坝羞^輕描淡寫的經(jīng)歷,所以我會(huì)整理一下,再描述另一個(gè)。如果UNO和Mega2560是正版或克隆的,則將ATmega16U2處理器用于USB到串行芯片。這只是為了在計(jì)算機(jī)和主處理器之間進(jìn)行草圖上傳和其他串行通信。這就是ATmega16U2上的常規(guī)固件。 UNO上的主處理器是ATmega328,Mega2560上的主處理器是ATmega2560。主處理器是草圖運(yùn)行的地方。

讓我們稍微備份一下,再談一些用作USB到串行芯片的ATmega16U2處理器。它與用作Leonardo主處理器的ATmega32U4非常相似。高級(jí)用戶可以對(duì)其進(jìn)行編程,以執(zhí)行Leonardo可以做的有趣的事情,例如在連接的計(jì)算機(jī)上移動(dòng)鼠標(biāo)光標(biāo),或模擬鍵盤并在連接的計(jì)算機(jī)上鍵入內(nèi)容。關(guān)鍵是,它是可編程的。

ATmega16U2具有引導(dǎo)加載程序。該引導(dǎo)加載程序不能直接從Arduino IDE進(jìn)行編程,因此為了使此ATmega16U2發(fā)揮作用而進(jìn)行黑客攻擊的人們可以使用命令行,或向IDE添加自定義項(xiàng),或使用名為FLIP的程序。引導(dǎo)加載程序協(xié)議稱為DFU,它是ATMEL為該芯片提供的默認(rèn)引導(dǎo)加載程序。您可以使用稱為FLIP的Windows程序或名為dfu-programmer的Mac/Linux程序?qū)⑵渖蟼鞯皆撐募?/p>

或者,您可以使用ISP編程將其上載到它,這將擦除芯片并安裝您的程序或替換的引導(dǎo)程序。您可能已經(jīng)注意到UNO和Mega2560上USB連接器旁邊的另一個(gè)ICSP接頭連接器。我介紹了ISP對(duì)ATmega16U2進(jìn)行編程的概念,以將ATmega16U2的庫存固件還原到另一個(gè)Instructable中。

步驟9:其他雜項(xiàng)

前面提到過,引導(dǎo)加載程序位于閃存高端范圍的一小部分。 Flash存儲(chǔ)器的引導(dǎo)加載程序部分設(shè)置在稱為熔絲的特殊寄存器中,該寄存器告訴處理器引導(dǎo)加載程序有多大,以及在啟動(dòng)或復(fù)位時(shí)可以找到引導(dǎo)加載程序的位置。引導(dǎo)加載程序接收到草圖后,它將存儲(chǔ)到閃存的下部。您已加載到閃存中的草圖通常不能更改自身或引導(dǎo)加載程序,也不能寫入閃存中未使用的部分。只有在保留的引導(dǎo)加載程序區(qū)域中運(yùn)行的程序才能寫入閃存。高級(jí)用戶可以將一小段代碼放入內(nèi)存的引導(dǎo)加載程序區(qū)域中,并與引導(dǎo)加載程序共存,并在其中運(yùn)行,然后從運(yùn)行在閃存下部的程序中調(diào)用該代碼,從而使他們的程序可以寫入閃存。

由于真正或克隆的UNO和Mega 2560帶有可編程的USB串行處理器,因此可以將程序上載到該處理器以充當(dāng)ISP編程器并進(jìn)行連接。到UNO或Mega的主處理器,然后重新刻錄引導(dǎo)程序或通過ISP加載草圖?;蛘撸梢詫⒉輬D上傳到主處理器,該主處理器通過ISP重新編程USB到串行處理器。有時(shí)稱為UNO自助ISP。

您還可以使用FTDI USB串行轉(zhuǎn)換器作為ISP編程器,使用計(jì)算機(jī)上的程序?qū)SP協(xié)議與FTDI轉(zhuǎn)換器的針腳進(jìn)行對(duì)接。

這些備用ISP方法大多是學(xué)術(shù)上的追求,因?yàn)槭褂肐SP編程器設(shè)備或?qū)⒘硪粋€(gè)Arduino用作ISP編程器更加容易且便宜。他們是怎么做到的?
責(zé)任編輯:wv

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Arduino
    +關(guān)注

    關(guān)注

    190

    文章

    6527

    瀏覽量

    197459
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    MCUX SDK LIN 堆棧集成到 Zephyr OS 中,是否有一種方法可以自動(dòng)生成它們從 .ldf 文件?

    MCUX SDK LIN 堆棧集成到 Zephyr OS 中,現(xiàn)在正在 S32K344-wb 板上對(duì)其進(jìn)行測試,但我想更改 cfg 文件,我想知道是否有一種方法可以自動(dòng)生成它們從 .ldf 文件。
    發(fā)表于 04-24 06:33

    用PLC實(shí)現(xiàn)卷徑計(jì)算的兩種算法

    卷徑計(jì)算,是動(dòng)態(tài)計(jì)算如鋼卷,紙卷等存料量的一種方法,它是實(shí)現(xiàn)張力控制和自動(dòng)充放料、以及甩尾控制的重要前提。卷徑計(jì)算目前主流的方法兩種,一種是根據(jù)機(jī)列速度(產(chǎn)線速度)和和被測卷的轉(zhuǎn)動(dòng)角速度求得;另一種是根據(jù)被測卷的轉(zhuǎn)動(dòng)圈數(shù)和測長
    的頭像 發(fā)表于 11-14 16:54 ?2557次閱讀
    用PLC實(shí)現(xiàn)卷徑計(jì)算的<b class='flag-5'>兩種</b>算法

    有多少種方法可以進(jìn)行頻響曲線測量?

    APx500軟件提供了頻響曲線的多種測量方法,對(duì)一個(gè)音頻產(chǎn)品的頻響特性進(jìn)行測量分析。如果只用一個(gè)測量對(duì)一個(gè)音頻產(chǎn)品進(jìn)行評(píng)價(jià),那這個(gè)測量就是頻響曲線,APx500軟件提供了多種方法可以進(jìn)
    的頭像 發(fā)表于 11-14 11:29 ?1205次閱讀
    有多少<b class='flag-5'>種方法</b>可以進(jìn)行頻響曲線測量?

    mcs文件燒到板子上以及利用IDE上傳軟件程序過程中遇到的問題以及解決方法

    關(guān)了,然后再Auto connect,就可以了,如果還有jsn2和jsn3的錯(cuò)誤,重復(fù)上述步驟,jsn1改成jsn2和jsn3即可。 2.利用IDE上載軟件程序遇見錯(cuò)誤: 錯(cuò)誤如下: 這里感謝胡燦老師給出
    發(fā)表于 10-31 09:10

    使用 LinkBoy 程序?qū)С鰹?C 語言代碼并燒錄至 Arduino ESP32 開發(fā)板

    以下是使用 LinkBoy 程序?qū)С鰹?C 語言代碼并燒錄至 Arduino ESP32 開發(fā)板的詳細(xì)步驟指南: 一、準(zhǔn)備工作 ? 硬件需求: 項(xiàng)目 要求 開發(fā)板 Arduino ESP32(支持
    發(fā)表于 10-16 12:41

    商品圖片批量上傳接口設(shè)計(jì)與實(shí)現(xiàn)

    ? 在電商平臺(tái)或內(nèi)容管理系統(tǒng)中,商品圖片的高效管理是核心需求之一。批量上傳接口允許用戶一次性上傳多張圖片,顯著提升操作效率。本文逐步介紹如何設(shè)計(jì)并實(shí)現(xiàn)一個(gè)可靠的商品圖片批量上傳接口,
    的頭像 發(fā)表于 10-13 15:25 ?564次閱讀

    兩種散熱路徑的工藝與應(yīng)用解析

    背景:兩種常見的散熱設(shè)計(jì)思路 在大電流或高功率器件應(yīng)用中,散熱和載流能力是PCB設(shè)計(jì)中必須解決的難題。常見的兩種思路分別是: 厚銅板方案:通過整體增加銅箔厚度(如3oz、6oz甚至更高),增強(qiáng)導(dǎo)熱
    的頭像 發(fā)表于 09-15 14:50 ?976次閱讀

    產(chǎn)品圖片上傳API接口

    ? 在電商平臺(tái)、內(nèi)容管理系統(tǒng)或移動(dòng)應(yīng)用中,產(chǎn)品圖片上傳API接口是核心功能之一。它允許用戶或第三方應(yīng)用通過HTTP請(qǐng)求圖片文件上傳到服務(wù)器,實(shí)現(xiàn)產(chǎn)品圖像的快速添加和管理。本文逐步介
    的頭像 發(fā)表于 07-25 14:30 ?851次閱讀
    產(chǎn)品圖片<b class='flag-5'>上傳</b>API接口

    make sence成的XML文件能上傳到自助訓(xùn)練模型上嗎?

    make sence成的XML文件能上傳到自助訓(xùn)練模型上嗎
    發(fā)表于 06-23 07:38

    視頻怎么上傳到服務(wù)器?

    1.視頻怎么上傳到服務(wù)器 2.有什么辦法把視頻上傳到網(wǎng)上,可以回看的?不用實(shí)時(shí)觀看,只要回看
    發(fā)表于 06-18 06:42

    六相永磁同步電機(jī)串聯(lián)系統(tǒng)控制的兩種方法分析研究

    /simulink環(huán)境下,分別用這兩種方法對(duì)臺(tái)電機(jī)串聯(lián)系統(tǒng)的運(yùn)行特性進(jìn)行仿真研究。當(dāng)其中一臺(tái)電機(jī)轉(zhuǎn)速、負(fù)載變化時(shí),分析兩種方法下另外一臺(tái)電機(jī)獨(dú)立運(yùn)行的情況,臉證分析這兩種方法的可行性
    發(fā)表于 06-10 13:09

    鴻蒙開發(fā)實(shí)現(xiàn)圖片上傳上傳用戶頭像)

    目錄 使用 fs 模塊將上一步的文件,拷貝到 cacheDir 目錄下 import fs from \'@ohos.file.fs\'; // 三.文件保存到緩存目錄(只能上傳在緩存目錄中的文件
    發(fā)表于 05-24 23:09

    《ESP32S3 Arduino開發(fā)指南》第二章 Arduino基礎(chǔ)知識(shí)

    國王Arduin的名字命名的,為了紀(jì)念這個(gè)地方,他這塊電路板命名為Arduino。隨后,Banzi、Cuartielles和Mellis把設(shè)計(jì)圖放到了網(wǎng)上。版權(quán)法可以監(jiān)管開源軟件,卻很難用在硬件上
    發(fā)表于 05-13 09:28

    電源效率測量方法

    本課程講義用于向大家介紹測量開關(guān)電源 轉(zhuǎn)換效率的兩種不同方法。 第一種方法使用一個(gè)瓦特表和個(gè)萬用表; 第二
    發(fā)表于 05-12 16:13

    是否可以通過3014數(shù)據(jù)從pc傳輸?shù)紽PGA?

    多少圖像,連接到 FPGA 的 DDR3 是否已滿等)上傳到 PC,以及一種方法讓 PC 向 FPGA 發(fā)送命令詢問狀態(tài)。 我的想法是 1.PC通過3014(USB3.0)下載圖片到FPGA 模式) 2.
    發(fā)表于 05-08 06:56