国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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)具有內置在處理器中的低級邏輯,用于在協議的特定引腳連接到另一臺設備時處理協議,但是可以通過編寫模擬處理器內置邏輯電路行為的軟件來實現協議以在處理器的任何數字引腳上工作。這稱為“敲打”。可以編寫程序以符合協議要求或規范的方式驅動引腳。例如,可以編寫使用處理器的非UART引腳的軟件串行協議。然后,該軟件將代替硬件UART電路。如果您原本會用于特定協議的引腳被占用,并且您需要使用其他引腳,則這很有用?;蛘?,如果您想擁有多個內置串行接口。例如,ATmega328P處理器只有一個UART,并且使用數字引腳0和1。它通常一次只能與一個其他串行設備進行通信。如果要在引腳2和3上連接另一個串行設備,則可以使用位串行協議的軟件串行程序來實現。可以編譯Optiboot引導加載程序,以通過非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并不是要遵循的食譜,盲目地鉤住別針,并希望獲得最好的結果?,F在,您可以弄清楚如何將任何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
    +關注

    關注

    190

    文章

    6526

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    用PLC實現卷徑計算的兩種算法

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

    有多少種方法可以進行頻響曲線測量?

    APx500軟件提供了頻響曲線的多種測量方法,對一個音頻產品的頻響特性進行測量分析。如果只用一個測量對一個音頻產品進行評價,那這個測量就是頻響曲線,APx500軟件提供了多種方法可以進
    的頭像 發表于 11-14 11:29 ?933次閱讀
    有多少<b class='flag-5'>種方法</b>可以進行頻響曲線測量?

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

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

    使用 LinkBoy 程序導出為 C 語言代碼并燒錄至 Arduino ESP32 開發板

    以下是使用 LinkBoy 程序導出為 C 語言代碼并燒錄至 Arduino ESP32 開發板的詳細步驟指南: 一、準備工作 ? 硬件需求: 項目 要求 開發板 Arduino ESP32(支持
    發表于 10-16 12:41

    商品圖片批量上傳接口設計與實現

    ? 在電商平臺或內容管理系統中,商品圖片的高效管理是核心需求之一。批量上傳接口允許用戶一次性上傳多張圖片,顯著提升操作效率。本文逐步介紹如何設計并實現一個可靠的商品圖片批量上傳接口,
    的頭像 發表于 10-13 15:25 ?452次閱讀

    兩種散熱路徑的工藝與應用解析

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

    產品圖片上傳API接口

    ? 在電商平臺、內容管理系統或移動應用中,產品圖片上傳API接口是核心功能之一。它允許用戶或第三方應用通過HTTP請求圖片文件上傳到服務器,實現產品圖像的快速添加和管理。本文逐步介
    的頭像 發表于 07-25 14:30 ?693次閱讀
    產品圖片<b class='flag-5'>上傳</b>API接口

    make sence成的XML文件能上傳到自助訓練模型上嗎?

    make sence成的XML文件能上傳到自助訓練模型上嗎
    發表于 06-23 07:38

    視頻怎么上傳到服務器?

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

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

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

    鴻蒙開發實現圖片上傳上傳用戶頭像)

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

    《ESP32S3 Arduino開發指南》第二章 Arduino基礎知識

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

    電源效率測量方法

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

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

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

    采集ADC,軟件上面有什么實現方法嗎?

    一個引腳采集個ADC數據,一個是傳感器的數據,連續采集,一個用來是區分按鍵信號的,區分按鍵信號用的是采樣電阻,現在可以區分按鍵信號,但是加上傳感器信號之后就無法工作了,如果我傳感器的數據采集當前
    發表于 04-08 18:00