女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

完善資料讓更多小伙伴認(rèn)識你,還能領(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)行了一個名為自舉程序的程序,該程序接受該草圖并將其寫入閃存。引導(dǎo)加載程序?qū)嶋H上位于閃存地址較高范圍內(nèi)的一小部分,保留供引導(dǎo)加載程序使用。引導(dǎo)加載程序接收到草圖后,它將存儲到閃存的下部。

此串行編程使用稱為TTL串行的協(xié)議。它基于稱為RS-232的舊通信協(xié)議。 RS-232通信使用的電壓會從3到25伏的正電壓迅速變?yōu)?3到-25伏的負(fù)電壓。個人計(jì)算機(jī)通常不再配備RS-232接口,但幾年前就已使用。具有此類接口的PC通常使用在12至-12伏之間擺動的電壓來發(fā)送RS-232信號。 Arduino上的ATMEL處理器使用0到5伏范圍內(nèi)的信號。與Arduino處理器可以處理的電壓范圍兼容的RS-232協(xié)議版本稱為TTL串行,有時您可能會聽到它稱為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)線或引腳從另一個設(shè)備接收。它偵聽傳入的通信。 TX導(dǎo)線或引腳將數(shù)據(jù)傳輸?shù)搅硪粋€設(shè)備。 USB到串行適配器的TX線以一種模式在0伏至5伏之間快速切換,并將其連接到正在監(jiān)聽這些模式的Arduino處理器的RX引腳上。

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

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

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

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

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

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

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

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

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

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

Arduino通常會安裝一個串行引導(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對Arduino的處理器進(jìn)行編程時,通常會擦除包括引導(dǎo)加載程序區(qū)域在內(nèi)的整個處理器芯片內(nèi)存,并寫入您的草圖。因此,當(dāng)您使用ISP將草圖上載到Arduino時,Arduino不再具有引導(dǎo)加載程序。這意味著您還必須使用ISP上傳上傳到下一個草圖。您還可以使用ISP將引導(dǎo)加載程序放在Arduino上。這稱為刻錄引導(dǎo)加載程序。使用ISP上傳草圖后,您可能需要執(zhí)行此操作以更改或升級引導(dǎo)加載程序,或?qū)rduino恢復(fù)為正常操作。

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

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

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

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

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

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

D13 SCK 3 。 。 4 MOSI D11

RST 5 。 。 6 GND

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

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

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

D14 MISO 1 。 . 2 VCC

D15 SCK 3 。 . 4 MOSI D16

RST 5 。 . 6 GND

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

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

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

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

#define RESET SS

#define RESET 10

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

步驟4:從Uno到Leo

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

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

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

上的MISO引腳13編程器UNO上的SCK固定到引腳15 Leon編程對象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,然后在串行連接時通過在RST和GND之間連接一個10uF或更大的電容器來禁用自動復(fù)位。電容器的帶狀或負(fù)極引線連接至GND。當(dāng)計(jì)算機(jī)通過UNO將程序數(shù)據(jù)發(fā)送到Leonardo時,這將防止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上載到下一個草圖。從現(xiàn)在開始,您必須使用ISP對Leonardo進(jìn)行編程。為了驗(yàn)證這一點(diǎn),您可以繼續(xù)斷開Leonardo的連接,并用USB電纜將其連接起來,然后嘗試使用上傳過程將草圖上傳到其中。您會發(fā)現(xiàn)它不起作用。

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

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

步驟5:Leo to Uno

現(xiàn)在,使用Leonardo作為ISP程序員對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草圖,請m 確保已將示例草圖修改為如步驟3所述,將引腳10用作RESET發(fā)送引腳。使用Leonardo作為ISP程序員時,您無需禁用自動復(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)行,請轉(zhuǎn)到“工具,刻錄引導(dǎo)加載程序”菜單。

Windows用戶需要包括一個額外的一次性步驟。為Leonardo創(chuàng)建一個作為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流程。這個Instructable并不是要遵循的食譜,盲目地鉤住別針,并希望獲得最好的結(jié)果。現(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作為編程器時使用修改后的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ì)信息,請參見步驟3。

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

還記得我說過兩種將軟件上傳到Arduino的方法嗎?好吧,我可能有點(diǎn)顫抖了。這是第三。某些Arduino模型(例如Leonardo,Pro Micro,Micro,Robot,Esplora)具有ATmega32U4處理器。它具有用于USB協(xié)議的引腳,并具有專為與USB接口而設(shè)計(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ì)師對此進(jìn)行了漫長而艱苦的思考,并提出了一個有趣的解決方法。盡管ATmega32U4處理器中的CDC串行接口并沒有像串行線那樣真正使用波特率,但是它可以知道計(jì)算機(jī)何時請求設(shè)置特定的波特率。他們對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)視器或使用它們啟動一些其他串行過程時,萊昂納多和其他基于ATmega32U4的Arduino不會重置。僅當(dāng)IDE在上傳草圖之前執(zhí)行1200bps_touch時,它們才會重置。這就是為什么當(dāng)您將其用作編程器時不需要禁用電容器自動復(fù)位的原因。

步驟8:UNO和Mega2560

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

讓我們稍微備份一下,再談一些用作USB到串行芯片的ATmega16U2處理器。它與用作Leonardo主處理器的ATmega32U4非常相似。高級用戶可以對其進(jìn)行編程,以執(zhí)行Leonardo可以做的有趣的事情,例如在連接的計(jì)算機(jī)上移動鼠標(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連接器旁邊的另一個ICSP接頭連接器。我介紹了ISP對ATmega16U2進(jìn)行編程的概念,以將ATmega16U2的庫存固件還原到另一個Instructable中。

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

前面提到過,引導(dǎo)加載程序位于閃存高端范圍的一小部分。 Flash存儲器的引導(dǎo)加載程序部分設(shè)置在稱為熔絲的特殊寄存器中,該寄存器告訴處理器引導(dǎo)加載程序有多大,以及在啟動或復(fù)位時可以找到引導(dǎo)加載程序的位置。引導(dǎo)加載程序接收到草圖后,它將存儲到閃存的下部。您已加載到閃存中的草圖通常不能更改自身或引導(dǎo)加載程序,也不能寫入閃存中未使用的部分。只有在保留的引導(dǎo)加載程序區(qū)域中運(yùn)行的程序才能寫入閃存。高級用戶可以將一小段代碼放入內(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加載草圖。或者,您可以將草圖上傳到主處理器,該主處理器通過ISP重新編程USB到串行處理器。有時稱為UNO自助ISP。

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

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

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

    關(guān)注

    188

    文章

    6489

    瀏覽量

    190031
收藏 人收藏

    評論

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

    是否可以通過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

    低功率隔離式輔助電源的實(shí)現(xiàn)方法

    本期,我們聚焦于隔離式輔助電源介紹兩種方法,可以用于降低隔離式輔助電源中的設(shè)計(jì)復(fù)雜性和噪聲耦合。
    的頭像 發(fā)表于 12-17 10:58 ?1750次閱讀
    低功率隔離式輔助電源的實(shí)現(xiàn)<b class='flag-5'>方法</b>

    開源項(xiàng)目!基于 Arduino 的 MIDI 架子鼓

    : 使用四顆螺絲 Arduino 連接到墊子上,使其與頂部對齊,如圖所示。 第 10 步:安裝 Arduino 代碼 上傳代碼: 代碼
    發(fā)表于 11-25 12:00

    基于Arduino的串口通信項(xiàng)目

    Arduino開發(fā)板的TX和RX引腳連接起來。 二、軟件準(zhǔn)備 Arduino IDE :從Arduino官方網(wǎng)站下載并安裝Arduino
    的頭像 發(fā)表于 11-22 09:24 ?1905次閱讀

    怎么把電表監(jiān)測到的數(shù)據(jù)上傳平臺?

    在電力行業(yè),很多電力儀表都需要具備4G通訊的功能,可以直接電表采集到的數(shù)據(jù)上傳監(jiān)測平臺。這樣就能在平臺上清晰直觀的看到電表監(jiān)測的線路的三相電壓、電流、頻率、功率等電參量。所以,要把電表監(jiān)測到的數(shù)據(jù)上傳到平臺上,就需要電表具有4
    的頭像 發(fā)表于 11-12 14:52 ?531次閱讀
    怎么把電表監(jiān)測到的數(shù)據(jù)<b class='flag-5'>上傳</b>平臺?

    請問各位3256EVM-U通過麥克風(fēng)采集到的數(shù)據(jù)能上傳到電腦嗎?

    請問各位,3256EVM-U通過麥克風(fēng)采集到的數(shù)據(jù)能上傳到電腦嗎? 如果能,在電腦上用什么軟件接收呢?
    發(fā)表于 11-07 07:32

    求助,如何將定制的2級引導(dǎo)加載程序上傳到指定的2級引導(dǎo)區(qū)?

    如何將定制的 2 級引導(dǎo)加載程序上傳到指定的 2 級引導(dǎo)區(qū)? 我的設(shè)備從 SPI 閃存啟動。 在閃存中,2 級引導(dǎo)程序被寫入地址 0x00000000,然后是應(yīng)用固件。 因此,它遵循以下啟動順序
    發(fā)表于 09-26 06:54

    比較分析兩種不同的可提高柵極驅(qū)動電流的方法

    電子發(fā)燒友網(wǎng)站提供《比較分析兩種不同的可提高柵極驅(qū)動電流的方法.pdf》資料免費(fèi)下載
    發(fā)表于 09-23 11:13 ?0次下載
    比較分析<b class='flag-5'>兩種</b>不同的可提高柵極驅(qū)動電流的<b class='flag-5'>方法</b>

    請問如何HSPICE和 IBIS兩種模型怎么轉(zhuǎn)換成TINA軟件中用?

    TI網(wǎng)站里,給出了一些期間的HSPICE和IBIS模型,但是現(xiàn)有的仿真工具 只有TINA這種,請問如何HSPICE和 IBIS兩種模型怎么轉(zhuǎn)換成TINA軟件中用? 請高手給予解答。感謝!
    發(fā)表于 09-02 07:56

    linux驅(qū)動程序的編譯方法有哪兩種

    Linux驅(qū)動程序的編譯方法主要可以歸納為兩種: 手動編譯 和 使用內(nèi)核構(gòu)建系統(tǒng)(Makefile)自動編譯 。 1. 手動編譯 手動編譯驅(qū)動程序通常涉及直接使用GCC(GNU Compiler
    的頭像 發(fā)表于 08-30 14:39 ?1330次閱讀

    邏輯函數(shù)的化簡方法有哪兩種

    邏輯函數(shù)的化簡是數(shù)字電路設(shè)計(jì)中的重要步驟,它有助于減少電路中的門數(shù)量,提高電路的性能和可靠性。邏輯函數(shù)的化簡方法主要可以分為大類: 公式化簡法 : 代數(shù)法 :利用布爾代數(shù)的公理、定理和規(guī)則(如德
    的頭像 發(fā)表于 08-22 16:40 ?2152次閱讀

    地物光譜儀的兩種天空光測量方法比較

    地物光譜儀的兩種天空光測量方法比較天空光是指太陽光經(jīng)過大氣分子及大氣氣溶膠散射后經(jīng)任意方向到達(dá)地面的輻射。
    的頭像 發(fā)表于 07-29 14:40 ?853次閱讀
    地物光譜儀的<b class='flag-5'>兩種</b>天空光測量<b class='flag-5'>方法</b>比較

    如何使用httpclient.c中的ESP8266和http_post文件上傳到服務(wù)器?

    我想使用 httpclient.c 中的ESP8266和http_post文件上傳到服務(wù)器。 為了節(jié)省內(nèi)存,文件(約 200KB)存儲在 SPI 閃存中。您能告訴我如何在不將文件復(fù)制到 RAM 等的情況下發(fā)送文件嗎?
    發(fā)表于 07-12 09:47

    ESP下載工具必須連接到哪個UART才能檢測到它并可以固件上傳到它?

    我已經(jīng)購買了 ESP Launcher,根據(jù)文檔,它有個(半)串行端口: 1) 一個集成USB電源 2) 排針上的第二個 3)第三個的一半(僅TX)也在排針上 ESP 下載工具必須連接到哪個 UART 才能檢測到它并可以固件上傳到
    發(fā)表于 07-08 08:07

    數(shù)字設(shè)備中采集數(shù)字圖像的兩種方法是什么

    在數(shù)字設(shè)備中,采集數(shù)字圖像的方法有很多種,但最常見的兩種方法是:1) 使用數(shù)字相機(jī)拍攝,2) 通過掃描儀掃描。 一、使用數(shù)字相機(jī)拍攝 數(shù)字相機(jī)是一種可以捕捉圖像并將其轉(zhuǎn)換為數(shù)字格式的設(shè)備。數(shù)字相機(jī)
    的頭像 發(fā)表于 05-31 15:48 ?1294次閱讀