手上有兩塊幾年前買的arduino nano板子,這兩天要用的時候發現用arduino IDE 1.8.11燒寫的時候始終報錯“上傳失敗”。查閱相關資料發現應該在 IDE–工具–處理器 中選擇ATmega238P(Old Bootloader)即可上傳成功。
這也側面說明了我的板子的BootLoader已經舊了,不如順便更新一下。
- 燒寫BootLoader至少需要兩塊arduino板,其中一個作爲ISP下載器,另一個則是需要被燒寫的板子(它們的型號可以不一樣)
- 本例將用兩塊arduino nano ATmega238P(Old Bootloader) 互相依次更新爲最新的BootLoader
過程
1. 將ISP下載器的程序燒錄進第一塊arduino板(下文將其稱爲 ISP板):
打開 arduino IDE – 示例 – 11.ArduinoISP 示例文件,並上傳(燒錄)進arduino板中,因爲兩塊板子都是old BootLoader,所以應注意此時選擇的處理器應爲“ATmega238P(Old Bootloader)”才能成功上傳。
2. 將第二塊arduino板(被燒錄板)與ISP板相連:
本例中使用的arduino nano 的ISP接口是D10~D13口,分別是SS, MOSI, MISO, SCK
將ISP板與被燒錄板的MOSI(D11), MISO(D12), SCK(D13), GND, 5V 引腳相接,將ISP板的SS(D10)引腳與被燒錄板的RST引腳相接
ISP板 | 被燒錄板 |
---|---|
MOSI(D11) | MOSI(D11) |
MISO(D12) | MISO(D12) |
SCK(D13) | SCK(D13) |
GND | GND |
5V | 5V |
SS(D10) | RST |
注:由於不同型號的arduino板在引腳複用時對應的引腳不一樣,所以括號內的引腳名稱僅適用於arduino nano 和arduino UNO。若要使用arduino mega2560 等其他型號的板子時,注意對應的ISP接口與引腳號的對應與此表括號內的引腳號是不同的。
3. 進行BootLoader燒寫
在 IDE–工具–處理器 中選擇ATmega238P,選擇沒有括號的那個,作爲要燒寫進去的版本。
IDE–工具–編程器 中選擇Arduino as ISP
點擊“燒錄引導程序”即可完成燒寫。
至此第二塊Arduino nano 板的BootLoader已經燒寫(更新)爲最新的了。而第一塊nano板作爲ISP下載器,其中的BootLoader並未更新。接下來對調兩者的角色,再如法炮製即可。
需要注意的是,此時給第二塊(已更新)的nano板燒錄ISP程序時,在IDE–工具–處理器 中就應該選擇 ATmega238P了,燒錄好ISP程序後,然後再給第一塊板燒錄BootLoader。
常見報錯
在燒錄引導程序的時候有過這樣的報錯:
avrdude: ser_open(): can't open device "\\.\COM10": ϵͳ�Ҳ���ָ�����ļ���
錯誤原因是串口端口被佔用,嘗試關閉IDE或其他軟件的串口監視器後重試。
還有報錯:
avrdude: Expected signature for ATmega328P is 1E 95 0F. Double check chip, or use -F
或:
Yikes! Invalid device signature. Double check connections and try again, or use -F to override this check.
解決方案:
在 IDE–文件–首選項 中把所有的調試信息(顯示詳細輸出)打開,若顯示Device signature = 0x000000
或Device signature = 0xffffff
等情況,其實不是真的芯片簽名有誤,而是電路連接有問題,再次檢查接線是否接對。
總結
總體思路是:
- 上傳例程“11.ArduinoISP”,將其中一塊Arduino作爲ISP燒寫器。
- 通過ISP引腳將兩塊板子相連。
- 選擇BootLoader版本並上傳。
值得注意的有兩點:
- 我們會在步驟1和步驟3,兩次涉及到在 IDE–工具–處理器 中選擇處理器型號。其中步驟1中選擇的是上傳程序的那塊板子(跟電腦用USB連接的那塊)的處理器(BootLoader)型號。步驟3中選擇的是要被燒寫BootLoader的那塊板子(用引線連接的那塊)的處理器(BootLoader)型號。
- 這兩塊Arduino板的型號可以不一樣,但要注意它們對應的ISP的引腳號也會不一樣。不能單純按照板子上印刷的引腳號相應連接,而應該找各個板子的PinMapping,找到對應的ISP的引腳。
ISP引腳 | nano和UNO | mega2560 |
---|---|---|
SS | D10 | D53 |
MOSI | D11 | D51 |
MISO | D12 | D50 |
SCK | D13 | D52 |
覺得有用的話,不要吝惜評論點贊分享哦,希望大家多多包涵,有任何問題歡迎指正、討論。
本文基於CC-BY-SA 4.0協議,歡迎轉載
(博客看累了?去我的B站瞧一瞧?)