JJ1WKN Log

自作や移動運用関連のログです。

Tanikino ArduinoISPライターの製作

2015-06-03 | Tanukino
ArduinoISPはArduinoを使用したAVRライターで、ArduinoIDEからArduinoISP用のスケッチをATMega168に書き込むと、ArduinoがAVRライターに変身します。

これまではBitBang方式のAVRライターを使用していましたが、avrdude-GUIでの書込手順が複雑なので、ArduinoIDEからメニュー操作だけで簡単に書き込めるArduinoISPライターを作ることにしました。

Arduinoからケーブル接続して、ブレッドボードに挿したAVRに書き込むのが一般的ですが、ArduinoISP専用機を製作することにしました。

回路図です。
28ピンのATMega168/328などと、20ピンのATtiny2313の書き込みができるようにしました。


ArduinoISPライター専用機基板と、ATtiny2313用のアダプタです。


ATtiny2313用のアダプタを乗せたところです。

斜めから。


ArduinoISPライターを使用すると、ArduinoIDEから簡単にブートローダーを書き込むことができます。
詳細はこちらをご参照ください。
手順は、
1)ツール>書込装置>Arduino as AVRISP を選択
2)ツール>マイコンボード>Arduino xxx(書き込みたいボード) を選択
3)ツール>ブートローダーを書き込む を選択

また、AVRライターなのでブートローダーを使わずにスケッチを書き込むこともできます。
ブートローダーが無いので、ブートローダーの分だけ大きなスケッチを書き込むことができます。
詳細はこちらをご参照ください。
手順は、
1)ツール>書込装置>Arduino as AVRISP を選択
2)ツール>マイコンボード>ATMegaxxx(書き込みたいAVR) を選択
3)ファイル>書き込み装置を使って書き込む
1回目の書込は何故かデバイスのシグネチャーが不一致というエラーが出ますが、もう一度書き込めばOKでした。

ArduinoがサポートしていないAVRの書き込みもできます。
現時点では、ATtiny 13/45/85/44/84/2313がサポートされているようです。
詳細はこちらをご参照ください。
とりあえずATtiny2313用のアダプタを作ったので、書き込むことができるようになりました。
開発方法はArduinoと同じで、setup()とloop()です。
ATtiny2313のI/OはD00からD16の17本あるので、ADコンバータが必要ない場合はコンパクトに仕上げることができます。
手順は上と同じですが、ATtiny2313を選択します。

もちろんavrdude-GUIを使って汎用AVRライタとして書き込むこともできるので、フューズビットなど微妙な設定が必要な場合も対応できますが、ArduinoIDEからメニューを選ぶだけで簡単に書き込めるのが便利ですし、開発環境がArduinoIDEに統一できるのが一番のメリットですね。