|
Arduino是開源的,這很好。想當年在學校時,每當考試時,同學們在考場上都不開源給我,所以學了BASIC、匯編、FOXBASIC、VB都跟沒有學似的,看到滿屏的字母只能笑。 這幾天忽然對atmega328P的了興趣,有位壇友也發(fā)了不少Arduino實驗的貼子,但新買來的atmega328P大部分是沒有引導程序BOOT LOADER的,必須進行燒寫。 下面說說如何燒寫。 一、初識atmega328P集成IC 新買來的328P不做特別說明的一般都是沒有引導程序BootLoader的,這就要先對328P進行Boot Loader的燒寫。下面就如何燒寫進行說明。 (一)328P兩種封裝的腳位對應(yīng)情況 atmega328P-AU封裝腳位
atmega328P—PU封裝腳位
ARDUINO 與兩種封裝腳位對應(yīng)關(guān)系
要注意Arduino PIN和集成塊的PIN是不同的。 (二)制作一個最小系統(tǒng) 以AU為例參考圖
atmega328P-PU的最小系統(tǒng)情況
atmega328P-AU封裝的使用轉(zhuǎn)接板接出引腳
這時開始的棚搭
后來用面包板了 328AU的最小系統(tǒng)情況參考:
二、使用USB編程器 關(guān)鍵是設(shè)置熔絲位(FUSE)和找對相應(yīng)的HEX文件。 這里使用的是51單片機的下載器
安裝好驅(qū)動
與ARDUINO的接線關(guān)系
熔絲位和HEX文件的設(shè)置在IDE的安裝目錄中的boards.txt文件中可以找到。
1.找到相應(yīng)的熔絲位
在IDE安裝目錄中..\arduino-nightly\hardware\arduino\avr找到boards.txt文件 這個文件用寫字板打開,在“##”后可以找要燒寫的“開發(fā)板”型號,下面就可以看到低位熔絲、高位熔絲、擴展位、加密位及bootloader.file(HEX文件)。 這是Nano Old Bootloader 的情況: nano.menu.cpu.atmega328old=ATmega328P (Old Bootloader) nano.menu.cpu.atmega328old.upload.maximum_size=30720 nano.menu.cpu.atmega328old.upload.maximum_data_size=2048 nano.menu.cpu.atmega328old.upload.speed=57600 nano.menu.cpu.atmega328old.bootloader.low_fuses=0xFF nano.menu.cpu.atmega328old.bootloader.high_fuses=0xDA nano.menu.cpu.atmega328old.bootloader.extended_fuses=0xFD nano.menu.cpu.atmega328old.bootloader.file=atmega/ATmegaBOOT_168_atmega328.hex nano.menu.cpu.atmega328old.build.mcu=atmega328p 2.連接好ISP線,插好USB下載器,打開progisp,
每項操作,下面的白色窗口都有反饋的,最后的操作在最上現(xiàn)一行顯示。 選好片
3.Fuse設(shè)置好要點“寫入”,然后點“讀出”,確保與寫入的一樣才算寫入了
4.調(diào)入Flash文件。根據(jù) nano.menu.cpu.atmega328old.bootloader.file=atmega/ATmegaBOOT_168_atmega328.hex 對應(yīng)的bootloader文件在IDE的安裝目錄中可以找到:
..\arduino-nightly\hardware\arduino\avr\bootloaders\atmega
5.檢查無誤后,點“自動”,窗口最下面的“狀態(tài)”有提示的
當下載好后,如果在D13上接有LED,LED會閃的。(只有Nano ATmega328P (old bootloader)會閃,UNO和Nano ATmega328P是不會閃的) 三、使用arduino as ISP方式 如果手上沒有下載器,可以使用正常的Arduino UNO開發(fā)板作為燒寫器給單片機芯片燒寫B(tài)ootLoader。 在這里采用一塊Arduino UNO板作為燒寫器,講一下對328P進行Arduino BootLoader 的燒寫。 (一)將Arduino UNO板(上位機)變成個ISP設(shè)備。 1.將作為燒寫器的ArduinoUNO板通過USB線連接到電腦,打開ArduinoIDE 。 2.選擇并設(shè)置好開發(fā)板型號、處理器及COM口。(注意要選擇的型號為作為上位機的Arduino 型號)
3.在工具欄選擇 —〉文件->示例—〉11.Arduino ISP —〉ArduinoISP,打開ArduinoISP程序,編譯(驗證)、下載到UNO開發(fā)板中。 4.在工具欄選擇—〉工具—〉編程器—〉Arduino as ISP。
到此,上位機就成了一個ISP下載器了。 (二)連接線路 連接好上位機與下位機的線,下位機的電源和地要與上位機連接。 在ArduinoISP 程序的73、85、86、87行給出了UNO板作為ISP的接線: D10—〉RESET D11—〉MOSI D12—〉MISO D13—〉SCK 對應(yīng)接線情況:
如果上位機是Nano則在reset與地接一個10UF的電容(我試過4.7-100uF都可以)。網(wǎng)上說UNO接這個電容,其實UNO不用接的。 (三)進行燒寫 在工具欄選擇—〉工具—〉燒錄引導程序。
6.等待完成
如果是Nano ATmega328P (oldbootloader)D13上接有LED,LED會閃的。 四、驗證 (一)使用CH340等,通過TX、RX下載程序進行驗證 1.電路連接:
目標板上的RESET通過1K電阻上拉到VCC(5V)。RESET串10UF電容,接到CH340的DTR或RTS,可以自動下載。我接的是220UF的,穩(wěn)定下載 如果沒有串電容,等IDE提示“上傳”時,RESET對地短路一下也可。就是按一下復位鍵。隔壁的圖
2.選擇并設(shè)置好開發(fā)板型號、處理器及COM口。(注意要選擇的型號為剛燒寫的Arduino 型號)為了區(qū)別示例的Blink,下載了一個“SOS” (二)使用Arduino作為ISP上傳 保持上面Arduino作為ISP設(shè)備的姿勢(接線不要動)。 打開驗證程序
在工具欄選擇—〉項目—〉使用編程器上傳。
也可以按著shift鍵,用鼠標點上傳圖標(右箭頭)
下載成功后觀察。 當然可能用下圖這個驗證
下面這個是雙燈。一個是SOS,一個是呼吸燈,同時閃
費心作了兩個板子進行實驗
下面這個上位機是NANO,所以在RESET與GND之間接了一個電容,
樓下對熔絲配置的說明,網(wǎng)上收集的 next |
|
|