先將 ArduinoISP 燒到 Arduino uno
在編譯上傳前先確認 Arduino Board 與 Serial Port 是否選擇正確
確認完成後點選上傳按鈕進行程式編譯上傳
將 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/
留言列表