簡介
如果你正在查看這個項目,那么你可能已經(jīng)使用過Arduino板了。 Arduino UNO上的ATmega328微控制器很可能在一定時間(或不正確的連接)后發(fā)生故障。為了重用Arduino Board,您需要一個裝有Bootloader的新ATmega328 IC(我將在一分鐘內(nèi)討論Bootloader)。
還有其他原因可以在上面刻錄Bootloader ATmega328微控制器,如果你已經(jīng)編寫了自己的Bootloader并想要測試它,或者你想要詳細(xì)了解微控制器的工作情況。
警告: 如果你不熟悉這種東西,不建議在Arduino中調(diào)整Bootloader。
什么是Bootloader?
簡單來說,Bootloader是一小段代碼(.hex格式的可執(zhí)行代碼),駐留在微控制器的內(nèi)存中。 Arduino中的Bootloader允許我們通過串口對Arduino進(jìn)行編程,即使用USB線。
Arduino中Bootloader的工作是接受來自計算機的代碼并將其放入微控制器的存儲器。
為什么我們需要一個Bootloader?
傳統(tǒng)上,像Atmel的ATmega328這樣的微控制器是在專用編程器的幫助下編程的,這些編程器涉及一些奇特的連接。 Bootloader消除了這種復(fù)雜性,為我們提供了一種簡單的微控制器編程方式,即使用USB電纜。
Bootloader位于可編程閃存的特殊安全位置微控制器通常占用不到1KB的內(nèi)存。
在ATmega328上燒錄Bootloader需要什么?
如前所述,如果您想將程序上傳到全新的ATmega328微控制器IC,您必須使用特殊的編程器(并設(shè)置保險絲位)。但是如果你在ATmega328上刻錄Bootloader,你只需通過串口(USB線)對微控制器進(jìn)行編程。
一旦ATmega328微控制器準(zhǔn)備好了bootloader,你可以簡單地使用它如果您打算制作自己的Arduino電路板,請將其用作Arduino電路板(作為替代產(chǎn)品)或?qū)⑵溆米魑⒖刂破鳌?/p>
如何在ATmega328上刻錄Bootloader?
有幾種方法可以在ATmega328 IC上刻錄引導(dǎo)加載程序。第一種方法是使用專用AVR編程器硬件。第二種方法是使用工作的Arduino板作為編程器并在目標(biāo)ATmega328微控制器上刻錄引導(dǎo)加載程序。
在這個項目中,我將使用第二種方法,即使用Arduino作為程序員。
電路圖
在ATmega328上刻錄引導(dǎo)加載程序的電路圖使用Arduino的微控制器如下所示。
ATmega328微控制器的引腳圖如下圖所示,以防萬一。
所需組件
Arduino UNO
ATmega328微控制器IC
16MHz晶體
22pF x 2陶瓷電容器
10KΩ電阻器
按鈕
330Ω電阻器
面包板
連接電線
5V電源
在Atmega328上編程Bootloader的過程
如前所述,Arduino UNO正在在這里用作AVR程序員。為了達(dá)到這個目的,你必須將一個特殊程序上傳到你工作的Arduino UNO板上,稱為“Arduino ISP”。
所以,在建立連接之前,連接正常工作的Arduino使用USB電纜將UNO連接到計算機并在Arduino IDE中選擇適當(dāng)?shù)陌搴蚉ORT。
現(xiàn)在,轉(zhuǎn)到文件》示例》 ArduinoISP》 ArduinoISP。將此代碼上傳到Arduino UNO,以便將Arduino UNO板轉(zhuǎn)換為AVRISP程序員。
完成此操作后步驟,進(jìn)行必要的連接(如果沒有)。現(xiàn)在轉(zhuǎn)到Tools》 Programmer并選擇“Arduino as ISP”選項。在此之后,您已準(zhǔn)備好刻錄引導(dǎo)加載程序。
只需轉(zhuǎn)到“工具”并單擊“Burn Bootloader” 。您的目標(biāo)ATmega328微控制器將使用引導(dǎo)程序進(jìn)行編程。
將草圖上傳到ATmega328
完成在ATmega328微控制器上傳Bootloader后,您可以繼續(xù)上傳測試草圖。為此,保留與之前相同的連接并打開任何草圖,例如Blink Sketch。
不要更改任何選項,即程序員仍設(shè)置為“Arduino as ISP ”?,F(xiàn)在,按住鍵盤上的“Shift”按鈕,單擊“上傳”圖標(biāo)。這將使用Arduino UNO作為編程器將草圖上傳到ATmega328微控制器IC。
完成此操作后,您可以斷開Arduino UNO與ATmega328微控制器的連接并使用ATmega328 IC作為在其上運行Blink sketch的獨立設(shè)備。
下圖顯示上傳后運行Blink sketch的ATmega328微控制器在Arduino UNO的幫助下。
注意:為了將代碼上傳到Arduino UNO,請確保將程序員切換回“AVRISP mkII” “。
結(jié)論
在這個項目中,我向您展示了如何在ATmega328微控制器IC上刻錄Bootloader,作為一個額外選項,我還向您展示了如何使用Arduino UNO將Arduino草圖上傳到帶有Bootloader的ATmega328。
-
微控制器
+關(guān)注
關(guān)注
48文章
7658瀏覽量
152154 -
ATmega328
+關(guān)注
關(guān)注
1文章
37瀏覽量
21050
發(fā)布評論請先 登錄
相關(guān)推薦
Stellaris引導(dǎo)加載程序用戶指南
![Stellaris<b class='flag-5'>引導(dǎo)</b><b class='flag-5'>加載</b><b class='flag-5'>程序</b>用戶指南](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
MSP430?閃存器件引導(dǎo)加載程序(BSL)
![MSP430?閃存器件<b class='flag-5'>引導(dǎo)</b><b class='flag-5'>加載</b><b class='flag-5'>程序</b>(BSL)](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
MSP430? FRAM器件引導(dǎo)加載程序(BSL)
![MSP430? FRAM器件<b class='flag-5'>引導(dǎo)</b><b class='flag-5'>加載</b><b class='flag-5'>程序</b>(BSL)](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
使用TMS320DM643x引導(dǎo)加載程序
![使用TMS320DM643x<b class='flag-5'>引導(dǎo)</b><b class='flag-5'>加載</b><b class='flag-5'>程序</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
在Keystone II器件上使用Arm ROM引導(dǎo)加載程序
![<b class='flag-5'>在</b>Keystone II器件<b class='flag-5'>上</b>使用Arm ROM<b class='flag-5'>引導(dǎo)</b><b class='flag-5'>加載</b><b class='flag-5'>程序</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
用于Hercules微控制器的CAN總線引導(dǎo)加載程序
![用于Hercules<b class='flag-5'>微控制器</b>的CAN總線<b class='flag-5'>引導(dǎo)</b><b class='flag-5'>加載</b><b class='flag-5'>程序</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
用于Hercules微控制器的CAN總線引導(dǎo)加載程序
![用于Hercules<b class='flag-5'>微控制器</b>的CAN總線<b class='flag-5'>引導(dǎo)</b><b class='flag-5'>加載</b><b class='flag-5'>程序</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
AWR294x主引導(dǎo)加載程序和輔助引導(dǎo)加載程序
![AWR294x主<b class='flag-5'>引導(dǎo)</b><b class='flag-5'>加載</b><b class='flag-5'>程序</b>和輔助<b class='flag-5'>引導(dǎo)</b><b class='flag-5'>加載</b><b class='flag-5'>程序</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評論