Arduino Uno 做為 ISP 燒錄 bootloader 到 ATMEGA328P-PU 晶片

找了許多網頁、翻了幾本書總是無法燒錄成功,一直出現下列錯誤訊息:

avrdude: stk500_getsync(): not in sync: resp=0x15

想放棄時,總算在不專業領域-Arduino ISP燒錄bootloader中看懂正確步驟,為了讓自己日後不再搞錯,特此截圖說明。

材料及工具

  • Arduino UNO Rev3 x 1
  • 麵包板 x 1
  • 10K 歐姆(棕黑橙)電阻 x 1
  • 22pF 陶瓷電容 x 2
  • 10uF/16V 電解電容(有+/-極) x 1
  • 16MHz 石英振盪器 x 1
  • 連接線 x 數條

步驟ㄧ:將範例ArduinoISP上傳至 Arduino UNO 板子上

  1. 選擇 Arduino > File

  1. 選擇 Arduino > File > Examples

  1. 選擇 Arduino > File > Examples > ArduinoISP

  1. 按照平常上傳(Upload)範例方式,確認正確將ArduinoISP範例完成上傳至Arduino UNO上

步驟二:依照官網圖說完成下列電路圖


麵包板上就是我們想要燒錄bootloader的ATMEGA328P-PU晶片,接好電路圖的各項元件之後,記得將10uF/16V 電解電容的正極腳插在Arduino UNO上的Reset插孔,而電解電容的負極腳則插在間隔兩孔的GND(接地)插孔上。


步驟三: Arduino > Tools > Programmer > Arduino as ISP

步驟四: Arduino > Tools > Burn Bootloader 進行燒錄


稍待一小段時間,看到訊息出現 Done burning bootloader. 就表示bootloader已經燒錄到麵包板上的ATMEGA328P-PU晶片。

大功告成!

注意事項

正常燒錄過程可以看到Arduino UNO板上RX/TX兩顆LED會閃爍,表示資料有正常傳收中。