燒寫 Arduino BootLoader 的幾種方法

海椰人 發佈 2022-08-13T03:49:52.527482+00:00

身為Arduino 電子工程師,很多時候都會涉及到自製各種功能的Arduino 電路板(亦或者說是功能擴展板),但是從網上或者其他渠道購買的Atmel 公司出品的ATmega 系列單片機是不能直接用來寫入Arduino 程序的,這時我們需要對單片機晶片進行Arduino Boot

身為arduino 電子工程師,很多時候都會涉及到自製各種功能的Arduino 電路板(亦或者說是功能擴展板),但是從網上或者其他渠道購買的Atmel 公司出品的ATmega 系列單片機是不能直接用來寫入Arduino 程序的,這時我們需要對單片機晶片進行Arduino Bootloader的燒寫。

ICSP接口介紹

首先,介紹下ICSP接口。
ICSP(In-Circuit Serial Programming)接口為在線程序燒錄接口,其在arduino 系列電路板上為一個2*3的排針端子,6根排針與Arduino 電路板上的單片機相連接,分別對應
5VMISOMOSISCKGND RESET,具體順序如下圖所示。


其中
MISOMOSISCK為Arduino SPI 接口。
有些人認為ICSP接口為Arduino的SPI接口,我認為這種說法是不正確的。SPI接口應為
MISOMOSISCKSS接口,在ICSP中並沒有包含SS接口,而且ICSP接口中包含RESET復位引腳,方便進行程序的燒寫。所以我認為ICSP接口兼容SPI連接較為合適。


下面介紹幾種比較方便的Arduino BootLoader燒寫方法。

1.使用AVR USB tiny ISP 燒寫


個人認為,使用AVR USB tiny ISP 燒寫是最為簡單快捷的方式,其優點為使用Arduino IDE 進行燒寫,步驟簡單。
AVR USB tiny ISP 可以在淘寶網上購買到,其價格在40~60元左右。

(1)下載安裝 AVR USB tiny ISP 驅動程序

驅動下載連結:AVR USB tiny ISP 驅動程下載連結
安裝過程較為簡單,這裡不贅述,保持默認設置,安裝過程持續下一步即可。
需要注意的是,在安裝過程中會彈出如下提示,

(2)BootLoader燒寫

1.將AVR USB tiny ISP與待燒寫Arduino 的 ICSP接口相連,注意檢查線序是否正確。

2.將AVR USB tiny ISP通過USB線與電腦相連,若驅動安裝正確,在計算機管理->設備管理器中將出現如下圖所示的USBtiny 設備。


3.打開Arduino IDE,在工具欄中選擇「工具」->開發板,選擇對應要燒寫的開發板型號。在「工具」->處理器,選擇對應處理器型號。「工具」->編譯器選擇USBtinyISP。

4.設置完成後點擊「工具」->燒錄引導程序,進行Bootloader的燒寫。


5.燒寫完成後,在IDE的下方會提示燒寫成功。

2.使用AVR 下載器(燒錄器)燒寫

以燒寫MEGA2560 BootLoader 為例

使用AVR下載器(燒錄器)也可以進行Arduino BootLoader的燒寫,AVR下載器在淘寶網上種類繁多,不確定每種都可以進行Arduino BootLoader,在購買時最好可以和店家確認下。
本文介紹的AVR燒寫器如下圖所示。


使用該方法涉及到的軟體及固件,請點擊如下網盤連結進行下載。因使用下載器廠家及型號不定相同,遂不敢保證軟體及方法完全可靠適用!
具體資料及軟體下載

(1)連接方式

1.將AVR燒寫器插到電腦的USB埠上,電腦自動識別出設備,該設備應為免驅設備,不必進行驅動的安裝,在連接電腦後,燒寫器綠燈常亮。

2.通過6P排線連接下載器與待燒寫的單片機晶片的ICSP接口(若沒有預留該接口位,需要按照文章前述將6個接口位分別與單片機對應的 5VMISOMOSISCKGND RESET接口相連接)

(2)軟體設置

1.打開「progisp20」文件夾中的「progisp」應用程式。

2.按照如下參考圖設置參數。

(3)固件燒寫

1.點擊軟體右下方「自動」,進行燒寫。

2.等待燒寫完成,在完成後,軟體下方會出現燒寫完成的提示。

3.使用其他Arduino板 燒寫

使用我們可以正常使用的Arduino 開發板也可作為燒寫器給單片機晶片燒寫BootLoader。在手上並沒有如上2種方法的燒寫/下載器等工具的時候,我們可以採用該種方法來完成Arduino BootLoader 的燒寫。

在這裡我們採用一塊Arduino UNO 開發板作為燒寫器對待燒寫單片機進行Arduino BootLoader 的燒寫。

該部分也可參考https://www.arduino.cc/en/Tutorial/ArduinoISP

(1)連接方式

將Arduino 的 數字11、12、13引腳對應與待燒寫的數字11、12、13引腳相連,UNO 的10號引腳連接到待燒寫的RESET引腳上,並將UNO 板上的5V、GND接口與待燒寫板的5V、GND分別相連。

也有說法稱,當被燒寫的電路板或對應最小系統電路為Arduino UNO 時,需要使用一個10uf的電容連接待燒寫電路板的reset和GND。筆者未進行實驗。

(對應關係如下表所示)

作為燒寫器的Arduino UNO 板

待燒寫單片機晶片/電路板

D10

RESET

D11

D11

D12

D12

D13

D13

5V

5V

GND

GND

(2)燒寫ArduinoISP固件

1.將作為燒寫器的Arduino UNO板通過USB線連接到電腦,打開Arduino IDE 。

2.選擇並設置好開發板型號、處理器及COM口。(注意要選擇的型號為作為燒寫器的Arduino 型號)

3.在工具欄選擇->文件->示例->11.Arduino ISP->ArduinoISP,打開ArduinoISP程序,編譯(驗證)、上傳到開發板中。

(3)BootLoader燒寫

1.在在工具欄選擇->工具->開發板型號,選擇待燒寫的Arduino型號。在工具->處理器,選擇正確的處理器型號。

2.在工具->編譯器 中,選擇Arduino as ISP。


3.點擊 工具->燒錄引導程序,等待下方提示燒錄成功。

關鍵字: