あらすじ
内蔵の8MHzクロック駆動の設定でATmega328PをArduino化しようと思って,ネットに転がってた方法を真似して,ATmega328PにArduinoブートローダーを書き込んだりアレコレしてたのですが,最後の最後でスケッチ書き込もうとしたらエラー吐かれました。
ちなみに,ブートローダーの書込までは成功していますし,外付けの16[MHz]クロック使っての16[MHz]駆動には成功しています。何故か内蔵8[MHz]クロック駆動の設定のときだけ書込みで今回のエラーが出ました。
環境
- ArduinoIDEのバージョン…ArduinoIDE1.8.5
- ArduinoISPを焼いたArduinoのモデル…ArduinoUNO
- 使用したマイコン…ATmega328P (AVRマイコン)
- やろうとしてたこと…ATmega328P (内蔵8MHzクロック駆動) にArduinoのスケッチを書き込む
エラー内容
Arduino:1.8.5 (Windows 8.1), ボード:"ATmega328 on a breadboard (8 MHz internal clock)" Warning: Board breadboard:avr:atmega328bb doesn't define a 'build.board' preference. Auto-set to: AVR_ATMEGA328BB Warning: Board Breadboard Arduino:avr:atmega328bb doesn't define a 'build.board' preference. Auto-set to: AVR_ATMEGA328BB 最大30720バイトのフラッシュメモリのうち、スケッチが928バイト(3%)を使っています。 グローバル変数は9バイトのRAMを使用しています。 avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x1c avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x1c avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x1c avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x1c avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x1c avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x1c avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x1c avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x1c avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x1c avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x1c スケッチの書き込み中にエラーが発生しました 「ファイル」メニューの「環境設定」から 「より詳細な情報を表示する:コンパイル」を有効にすると より詳しい情報が表示されます。
解決策:「書込装置を使って書き込む」
普通のArduinoにスケッチを書き込むとき同様 ”マイコンボードに書き込む (左上の矢印ボタン)” を押して ATmega328P にスケッチを書き込もうとしてたのですが,この方法では上記のエラーを吐き,書込に失敗してしまいます。
”書込装置を使って書き込む Ctrl+Shift+U” (スケッチ -> 書込装置を使って書き込む Ctrl+Shift+U) をクリックしてスケッチを書き込むと,うまくいきました。
ちなみに,16MHzクリスタル + ARmega328P で,16MHz駆動でArduinoブートローダー書き込んだときは,いつもの矢印ボタンでなんの問題もなくスケッチを書きこめました。なんでやろ。
そんなこんなで僕も,1個250円で無限にLチカできるようになりました。めでたしめでたし。
実績解除 : 内蔵クロックだけで駆動 pic.twitter.com/JfKiuj8F5H
— てぽ丼@ウォシュレット遠隔操作の人 (@teppodone) 2017年11月25日