先將 ArduinoISP 燒到 Arduino uno

C:\Users\mic\Desktop\新增資料夾 (2)\2016-05-27_213441.png

 

在編譯上傳前先確認 Arduino Board 與 Serial Port 是否選擇正確

C:\Users\mic\Desktop\新增資料夾 (2)\2016-05-27_213614.png

C:\Users\mic\Desktop\新增資料夾 (2)\2016-05-27_213649.png

 

確認完成後點選上傳按鈕進行程式編譯上傳

C:\Users\mic\Desktop\新增資料夾 (2)\2016-05-27_213715.png

 

將 C:\Program Files\Atmel\AVR Tools\AVR Toolchain\bin 設定到 PATH 環境變數(AVR Toolchain 安裝請參考 avr studio 4.19 安裝)

 

並依照下列方式進行接線:

寫入程式到 ATmega16(依照電腦環境設定 COM Port 與程式位置,本例子使用 COM Port 為 COM5,程式路徑為C:\t1.hex)

avrdude -p atmega16 -cstk500v1 -P\\.\COM5 -b19200 -Uflash:w:C:\t1.hex:i


 

讀取 ATmega 16 程式資料(將原先w參數改為 r ,並輸出程式到 C:\t1.hex 路徑上)

avrdude -p atmega16 -cstk500v1 -P\\.\COM5 -b19200 -Uflash:r:C:\t1.hex:i

 

讀取 ATmega16 fuse(terminal 模式)

avrdude -p atmega16 -cstk500v1 -P\\.\COM5 -b19200 –t

進入 terminal 模式後輸入 dump hfuse 或 dump lfuse 即可看到,如果對 fuse hex 計算不熟悉可以參考以下網站(dump指令格式為 dump <memtype> <addr> <N-Bytes>)

http://www.engbedded.com/fusecalc/

 

寫入 ATmega16 fuse(terminal 模式)

avrdude -p atmega16 -cstk500v1 -P\\.\COM5 -b19200 –t

進入 terminal 模式後輸入 write hfuse 0 0x19 或者 write lfuse 0 0xe1 (以上例子為寫入出廠fuse 預設值,請依照自己計算之數值寫入,但寫入時請務必小心,寫入錯誤數值可能造成 ATmega16 無法使用,write 指令格式為 write <memtype> <addr> <b1> <b2> … <bN> )

 

寫入 ATmega16 fuse(燒寫 fuse 方式請參考 使用 Ardunio uno 燒錄 ATmega16 )

avrdude -p atmega16 -cstk500v1 -P\\.\COM5 -b19200  -Uhfuse:w:0x19:m -Ulfuse:w:0xe1:m


 

參考資料:

http://codeandlife.com/2012/03/21/using-arduino-uno-as-isp/

http://openhardware.ro/using-atmega16-with-arduino-ide/

http://www.ladyada.net/learn/avr/avrdude.html

http://www.engbedded.com/fusecalc/


 

創作者介紹
創作者 iammic 的頭像
iammic

簡單過生活

iammic 發表在 痞客邦 留言(0) 人氣()