今回、Arduino で使われているマイコンチップ ATmega328 に、自分でブートローダを書き込んでみました。その方法と手順を記録しておこうと思います。
一番手っ取り早いのは、既に "ARDUINO CW KEYER" などのスケッチが書き込まれている Arduino 本体から、ATmega328 チップを取り外して使う方法です。そうすれば、面倒な書き込み作業をせずに、すぐにブートローダ入りのチップが手に入ります。
そして、取り外したチップの代わりに、新しくブートローダ入りの ATmega328 を購入して Arduino 本体のソケットに挿せば、元通り新品の Arduino として使えるようになります。ブートローダ入りのチップは、350円程度で購入可能なので、コストもかかりません。
このように、お金をかけずに手軽にスケッチ入りの ATmega328 を用意する方法もありますが、今回は自分の環境で実際にブートローダを書き込んでみました。
1. ATmega328 にブートローダを書き込む
ブートローダを書き込む方法としては様々な方法がありますが、私はスイッチサイエンスの AVR ISP シールドキットを使って書き込んでいます。
所有している Arduino にこのシールドキットを乗せるだけで簡単に AVR チップのプログラマ(書き込み器)にすることができます。
(ATtiny などの AVR チップにもプログラムが書き込めます。)
書き込み方法についてスイッチサイエンスのページに詳しく書かれており、この手順通りに書き込みすれば、まず失敗することはありません。
私は、ゼロプレッシャー IC ソケットを使った Arduino Uno 互換機を作って、これに AVR ISP シールドキットを装着し ATmega328 のスケッチ書込み専用機として使っています。
この Arduino Uno 互換機は、秋月電子の "ATMEGA168/328用マイコンボード(I/O ボード)" を使って組み上げていますが、IC ソケットの代わりにゼロプレッシャー IC ソケットを取り付けたため、このままでは上に乗せるシールドが部品にあたって乗せられなくなるため、ピンソケットを2段に重ねて下駄を履かせました。
互換品を作る場合、@150で購入できる専用基板を使う方が、汎用基板に配線して組み立てるよりもずっと簡単です。専用基板を使えば、初心者でもスムーズに作業を進められます。
私はこの専用基板を購入して、手元にあった部品を活用して組み立てましたが、必要な部品が全てセットになったキットも販売されています。作業の手間を減らしたい場合は、そのキットを購入するのが便利です。
また、FT-232RL モジュールについては、基板に直接ハンダ付けせず、他のプロジェクトでも再利用できるように「丸ピンソケット」を使って取り外し可能にしました。この工夫により、後々の使い回しがしやすくなります。
これで、Arduino Uno 用のブートローダが書き込まれた ATmega328 を、必要なだけ作れるようになりました。
2. スケッチを書き込む
あとはブートローダを書き込んだ ATmega328 にスケッチを書き込むだけです。
いつも通りにパソコンからスケッチを流し込むだけです。
とりあえず、5つの AVR に Arduino のブートローダーを書き込みました。これで、いつでもこの AVR にスケッチを書き込める準備が整いました。
プロトタイプを作るなら万能基板を使うのも便利ですが、ここは思い切って専用基板を設計して、より美しく仕上げたいところです。
うーん、早くKiCad で作らないといけませんね。。。