はじめに
Atmega328Pにシリアル通信でスケッチを書き込もうとすると以下のようなエラーが発生してしまう。
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x00
目次
環境
FT-232RQ USBシリアル変換モジュール
回路の問題
Arduino Unoの回路図を見てみると、USBシリアル変換ICからAtmega328PのRESETへの配線は0.1uFのコンデンサーを介して接続されて、Atmega328PのRESETは抵抗を介してプルアップされている。
https://www.arduino.cc/en/uploads/Main/Arduino_Uno_Rev3-schematic.pdf
シリアル変換器を使ってスケッチを書き込む際は、Atmega328PのRESETをプルアップして、シリアル変換器のRTSとAtmega328PのRESETを0.1uF 介して接続する必要がある。この回路でないとリセットタイミングが合わずに上手くシリアル通信を使ってスケッチをアップロードすることが出来ない。ただ、今回の問題は配線の仕方だけではなさそう。
ブートローダーの問題
使用していたボードが良くなかったみたい。Atmega Universalというボードを追加して使っていたが、このボードだとUSBaspを使ったスケッチの書き込みは問題なくできるが、シリアル通信でアップロードでスケッチのアップロードが上手く行かなかった。
そこで「MiniCore」というボードを追加してブートローダーを書き換えてスケッチをアップロードしてみると、エラーなく書き込むことが出来た。MiniCoreのアドレスは以下に示した。Arduno IDEの設定から追加のボードマネージャーの欄にこのURLを保存すると、ボードマネージャーの検索でヒットするようになる。 https://mcudude.github.io/MiniCore/package_MCUdude_MiniCore_index.json
ボードマネージャーにボードを追加する方法はこちらの記事に詳しく書いたので、こちらを参照してほしい。 www.shangtian.tokyo
<参考文献>
Arduino互換機を作りたい(3): くつしたねこのTinkering,Tinkering and Obliquity
DTR と Arduino の関係 - eggshell blue
マーティーの工房日誌: 小型工作機CNC2418 その24(もう1枚 v1.1f Upgrade失敗)
https://www.arduino.cc/en/uploads/Main/Arduino_Uno_Rev3-schematic.pdf