[Arduino]燒寫Arduino BootLoader的幾種方法
身為Arduino 電子工程師,很多時候都會涉及到自制各種功能的Arduino 電路闆(亦或者說是功能擴充闆),但是從網上或者其他管道購買的Atmel 公司出品的ATmega 系列單片機是不能直接用來寫入Arduino 程式的,這時我們需要對單片機晶片進行Arduino BootLoader的燒寫。
ICSP接口介紹
首先,介紹下ICSP接口。
ICSP(In-Circuit Serial Programming)接口為線上程式燒錄接口,其在arduino 系列電路闆上為一個2*3的排針端子,6根排針與Arduino 電路闆上的單片機相連接配接,分别對應 5V,MISO,MOSI,SCK,GND 和 RESET,具體順序如下圖所示。

其中MISO,MOSI,SCK為Arduino SPI 接口。
有些人認為ICSP接口為Arduino的SPI接口,我認為這種說法是不正确的。SPI接口應為MISO,MOSI,SCK及SS接口,在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個接口位分别與單片機對應的 5V,MISO,MOSI,SCK,GND 和 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.點選 工具->燒錄引導程式,等待下方提示燒錄成功。