在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

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

454398 ? 來源:網絡整理 ? 作者:網絡整理 ? 2019-11-11 11:27 ? 次閱讀

步驟1:FTDI或串行上傳

FTDI實際上是芯片品牌。 FTDI公司專門研究用于通過USB連接的芯片。在Arduino領域,USB轉串口芯片用于將運行Arduino IDE的計算機連接到Arduino的主處理器,以上傳新草圖并通過串行監視器窗口與草圖交互。 USB轉串行芯片與Arduino上ATMEL處理器的UART接口連接。

為了使Arduino從串行接口接受草圖,它運行了一個名為自舉程序的程序,該程序接受該草圖并將其寫入閃存。引導加載程序實際上位于閃存地址較高范圍內的一小部分,保留供引導加載程序使用。引導加載程序接收到草圖后,它將存儲到閃存的下部。

此串行編程使用稱為TTL串行的協議。它基于稱為RS-232的舊通信協議。 RS-232通信使用的電壓會從3到25伏的正電壓迅速變為-3到-25伏的負電壓。個人計算機通常不再配備RS-232接口,但幾年前就已使用。具有此類接口的PC通常使用在12至-12伏之間擺動的電壓來發送RS-232信號。 Arduino上的ATMEL處理器使用0到5伏范圍內的信號。與Arduino處理器可以處理的電壓范圍兼容的RS-232協議版本稱為TTL串行,有時您可能會聽到它稱為TTL-232或僅串行。

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

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

顧名思義,RX導線或引腳從另一個設備接收。它偵聽傳入的通信。 TX導線或引腳將數據傳輸到另一個設備。 USB到串行適配器的TX線以一種模式在0伏至5伏之間快速切換,并將其連接到正在監聽這些模式的Arduino處理器的RX引腳上。

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

計算機將草圖發送到Arduino,并從Arduino接收回來,因此計算機可以驗證程序是否加載正常。您在Arduino上運行的草圖可以使用相同的串行連接,以通過串行監視器窗口與您通信。通常使用此方法調試草圖,因為您可以在代碼中的關鍵位置撒上Serial.print語句,以報告變量的值或告訴您代碼當前正在做什么。然后,您可以將數據(例如傳感器或輸入引腳讀數)發送回計算機。您還可以使用串行監視器將數據從計算機發送到在Arduino上運行的草圖。

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

首次開發Arduino時,將草圖上傳到Arduino的人必須在上傳過程開始時立即按Arduino上的Reset按鈕,然后正確計時,或重試。更高版本的Arduino使用了另外一個稱為DTR的串行協議線來自動重置Arduino。由于在開始與Arduino的新連接時DTR信號從5V變為0,因此如果將此信號發送到Arduino處理器的復位線,它將復位。如果要建立新的串行連接的原因是因為Arduino IDE正在向啟動加載程序發送草圖,則啟動加載程序會繼續并接受該草圖并將其存儲。如果要建立新的串行連接的原因是因為您正在打開Arduino IDE的串行監視器,則Arduino會重置,引導加載程序會運行足夠長的時間以意識到IDE不會嘗試發送草圖,而您先前上傳的開始運行。

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

所以,這就是竅門:DTR信號通過一個小電容器發送到處理器的復位引腳。電容器將來自DTR信號的電壓(變為低電平并保持低電平)轉換為一個臨時尖峰,該尖峰變為0V,然后又回到5V。這將重置Arduino,并使其啟動引導加載程序,隨后引導加載程序開始繪制草圖。

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

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

引導加載程序可以設計為使用處理器上的幾乎所有引腳通過任何協議接受草圖。處理器具有多種引腳,它們是普通數字引腳,但可以選擇將這些引腳用于特殊協議。例如,有一組引腳可用于IIC或I2C協議,這是一種能夠與多個設備通信的特殊串行總線協議。還有另一組引腳可用于SPI協議,這是用于與設備通信的另一種不同的串行總線協議。處理器具有特殊的硬件,旨在在各種專用引腳上實現這些不同的協議,并且處理這些信號的邏輯在非?;镜膶哟紊蟽戎糜谔幚砥髦小?/p>

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

Arduino通常會安裝一個串行引導加載程序,該串行引導加載程序使用ATMEL處理器上的硬件UART,并且計算機上運行的Arduino IDE旨在與該引導加載程序進行通信。

Twister#2:您不需要引導程序!

第2步:ISP編程

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

您可能想將草圖上傳到帶有ISP的Arduino,因為您希望草圖在上電或重置后立即開始,或者因為您不希望板載引導程序接受其他草圖或嘗試使用串行引腳或閃存引腳13。

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

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

因此,如果您有兩個Arduino,請繼續并開始嘗試ISP編程。您不太可能將任何事情弄糟,并且您將學習。為此,請打開ArduinoISP草圖,必要時對其進行修改,然后將其上載到并準備程序員Arduino。然后將編程器Arduino連接到目標Arduino,并對目標Arduino進行編程。

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

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

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

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

D13 SCK 3 。 。 4 MOSI D11

RST 5 。 。 6 GND

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

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

看看Leonardo,您必須比原理圖和電路板更深一些。該示意圖有點混亂,因為在兩個位置顯示了處理器,而未顯示MOSI,MISO和SCK線的Arduino引腳號。您需要查看IDE應用程序目錄中的variants/leonardo/pins_arduino.h文件,以找出引腳號。

D14 MISO 1 。 . 2 VCC

D15 SCK 3 。 . 4 MOSI D16

RST 5 。 . 6 GND

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

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

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

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

#define RESET SS

#define RESET 10

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

步驟4:從Uno到Leo

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

在編程器UNO上將11 MOSI引腳固定到目標Leonardo上的16 MOSI引腳

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

上的MISO引腳13編程器UNO上的SCK固定到引腳15 Leon編程對象UNO上的SCK固定到目標Leonardo上的RST引腳

編程器UNO上的VCC到目標Leonardo上的VCC

GND上編程器UNO上的VCC到目標Leonardo上的GND

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

您的接線將如上圖所示。

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

如前所述,這意味著您還必須使用ISP上載到下一個草圖。從現在開始,您必須使用ISP對Leonardo進行編程。為了驗證這一點,您可以繼續斷開Leonardo的連接,并用USB電纜將其連接起來,然后嘗試使用上傳過程將草圖上傳到其中。您會發現它不起作用。

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

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

步驟5:Leo to Uno

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

在編程器Leonardo上將16 MOSI引腳固定到目標UNO上的11 MOSI

在編程器Leonardo上的引腳14 MISO引腳上的固定目標UNO上的12 MISO

將編程器Leonardo上的15 SCK引腳固定到目標UNO上的13 SCK

編程器Leonardo上的引腳10到目標UNO上的RST引腳

編程器Leonardo上的VCC到目標UNO上的VCC

GND上編程器Leonardo上的VCC到目標UNO上的GND

,它看起來像上圖。

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

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

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

要將引導加載程序放回UNO并恢復到正常運行,請轉到“工具,刻錄引導加載程序”菜單。

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

步驟6: ISP

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

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

如何使用UNO作為ISP程序員來燒寫引導程序或將草圖上傳到Nano或Pro Mini,就像UNO一樣,它們都基于ATmega328P? Nano具有ICSP接頭,但是如果接頭上沒有焊接引腳,可以改用11、12和13引腳進行適配嗎?

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

50 MISO 。 . VCC

52 SCK 。 . MOSI 51

RST 。 . GND

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

第7步:其他協議CDC串行

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

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

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

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

步驟8:UNO和Mega2560

好的,因為我以前有過輕描淡寫的經歷,所以我會整理一下,再描述另一個。如果UNO和Mega2560是正版或克隆的,則將ATmega16U2處理器用于USB到串行芯片。這只是為了在計算機和主處理器之間進行草圖上傳和其他串行通信。這就是ATmega16U2上的常規固件。 UNO上的主處理器是ATmega328,Mega2560上的主處理器是ATmega2560。主處理器是草圖運行的地方。

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

ATmega16U2具有引導加載程序。該引導加載程序不能直接從Arduino IDE進行編程,因此為了使此ATmega16U2發揮作用而進行黑客攻擊的人們可以使用命令行,或向IDE添加自定義項,或使用名為FLIP的程序。引導加載程序協議稱為DFU,它是ATMEL為該芯片提供的默認引導加載程序。您可以使用稱為FLIP的Windows程序或名為dfu-programmer的Mac/Linux程序將其上傳到該文件。

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

步驟9:其他雜項

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

由于真正或克隆的UNO和Mega 2560帶有可編程的USB串行處理器,因此可以將程序上載到該處理器以充當ISP編程器并進行連接。到UNO或Mega的主處理器,然后重新刻錄引導程序或通過ISP加載草圖?;蛘?,您可以將草圖上傳到主處理器,該主處理器通過ISP重新編程USB到串行處理器。有時稱為UNO自助ISP。

您還可以使用FTDI USB串行轉換器作為ISP編程器,使用計算機上的程序將ISP協議與FTDI轉換器的針腳進行對接。

這些備用ISP方法大多是學術上的追求,因為使用ISP編程器設備或將另一個Arduino用作ISP編程器更加容易且便宜。他們是怎么做到的?
責任編輯:wv

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Arduino
    +關注

    關注

    189

    文章

    6493

    瀏覽量

    190203
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    六相永磁同步電機串聯系統控制的兩種方法分析研究

    /simulink環境下,分別用這兩種方法臺電機串聯系統的運行特性進行仿真研究。當其中一臺電機轉速、負載變化時,分析兩種方法下另外一臺電機獨立運行的情況,臉證分析這兩種方法的可行性
    發表于 06-10 13:09

    是否可以通過3014數據從pc傳輸到FPGA?

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

    低功率隔離式輔助電源的實現方法

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

    開源項目!基于 Arduino 的 MIDI 架子鼓

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

    基于Arduino的串口通信項目

    Arduino開發板的TX和RX引腳連接起來。 二、軟件準備 Arduino IDE :從Arduino官方網站下載并安裝Arduino
    的頭像 發表于 11-22 09:24 ?1979次閱讀

    怎么把電表監測到的數據上傳平臺?

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

    請問各位3256EVM-U通過麥克風采集到的數據能上傳到電腦嗎?

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

    求助,如何將定制的2級引導加載程序上傳到指定的2級引導區?

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

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

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

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

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

    linux驅動程序的編譯方法有哪兩種

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

    邏輯函數的化簡方法有哪兩種

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

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

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

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

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

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

    我已經購買了 ESP Launcher,根據文檔,它有個(半)串行端口: 1) 一個集成USB電源 2) 排針上的第二個 3)第三個的一半(僅TX)也在排針上 ESP 下載工具必須連接到哪個 UART 才能檢測到它并可以固件上傳到
    發表于 07-08 08:07
    主站蜘蛛池模板: 亚洲视频精品 | 色佬网| 播放个毛片看看 | 日本美女中出 | 黄色网络在线观看 | 大学生一级特黄的免费大片视频 | 人人爽影院 | 五月天婷婷在线观看视频 | 中文成人在线 | 国产一级特黄a大片免费 | 日韩亚洲欧洲在线com91tv | tube69xxxxhd日本| 日本国产中文字幕 | 欧美极品在线观看 | 人人看人人澡 | 国产香蕉75在线播放 | 天天狠狠色噜噜 | 日韩欧美不卡片 | 国产伦精品一区二区三区免 | 99草精品视频| 五月婷婷 六月丁香 | 国产精品麻豆va在线播放 | 日日夜夜狠狠 | 久久天天丁香婷婷中文字幕 | 欧美一区二区三区在线观看免费 | 免费观看一级特黄三大片视频 | 四虎影视色费永久在线观看 | 三级视频网站在线观看 | 日本不卡在线观看 | 婷婷激情亚洲 | 国产无套视频在线观看香蕉 | 1024手机在线观看视频 | 亚洲色图综合图片 | 欧美成人 色 图 | 操美女网址| 亚洲 欧美 成人 | 国产高清视频在线免费观看 | 久久精品免视看国产成人2021 | 国内精品免费视频精选在线观看 | 综合激情网五月 | 人人舔人人爱 |