798 貧乏でいいの(4)
そういうわけで、この文章はaitendoの「びんぼうでいいの」と
パーツセットに、秋月のATmega328pを買ったとき、いかにして
Arduino Uno互換機として動作させればいいのか、というガイドです。
まずなにも考えず「びんぼうでいいの」基板にパーツをすべて
写真に従ってはんだ付けします。このときにマイコン用外部クロックの
水晶がついていないので、これは追加してください。今サービス中で
水晶4点セットをおまけでもらいました。ただし、この写真では
手持ちのチップ部品をつけています。
(このクリスタルがない場合は、とりあえず内部クロックでも
動作すると思いますが、その場合にはブートローダーを書き込むとき、
後述のヒューズビットのLowは変更しないでください。)
また、この写真で水晶の右側に大きい10Pコネクタが見えていますが
これはUSB-ASP用のものです。これは実際には6Pしか使っていないので
ごく簡単に普通のISP用端子に変換できますのでUSB-ASPに限らず
持っているAVRライターをこの端子につなげば、普通に書き込みできます。
つまり、ブートローダーのHEXファイルを用意して、このボード上の
ATmega328pに外部ライターで書き込めるのです。書き込むブートローダー
のHEXファイルはOptifixというものです。これはaitendoの説明でも
もう一台のArduinoから書き込めという貧乏人を無視した話になっています。
実際にはoptifix.pdeという「スケッチ」に含まれる書き込み部分で
その部分だけをoptiboot_atmega328.hexという名前で作ることが
第一の作業になります。これからコピーペーストしたテキストファイルを
この名前で保存すればいいでしょう。
私はAVRライターとしてHIDaspxを愛用していますから、これを使ってこのボードに
このHEXファイルを書き込みます。HIDaspxからUSB-ASP用の変換コードで
「びんぼうでいいの」のATmega328pにhexファイルを書き込んでいるところです。
この時の注意ですが、外付けのクリスタルが機能していない時、例えば
ATmega328pをブレッドボードに挿して、これにライターで書き込もうと
するときには、ヒューズビットのLOWは最後に書き込まなければいけません。
ここはクロックの種類を変えるものですから、ここを書き換えた瞬間に
それまで使っていたクロックが使えない、つまり読めないチップになります。
だから、外部と内部と両方のクロックが使えるように、つまり外部の
クリスタルが作動していれば、ここを書き換えた後でもチップが読める
これを注意して。まずhexファイル、次にロックビット、最後にヒューズビット
この順番で書き換えればブレッドボードでも書き換えられます。
書き換え後の値はこの図の通りです。
(参考)ATmega328の初期値 Low:62 High:D9 Ext:FF Lock:FF