3月に書いた記事の続き。HIDaspx のハードウェアを組み立てました。hidspx の同梱ドキュメントにある「ユニバーサル基板での製作例」に従った。(2015/08/02 追記:6ピンコネクタのピン配列は AVRISP に合わせて変更してある。)
ATmega328P と接続。HIDaspx の GND, Reset, MOSI, SCK, Vcc, MISO をそれぞれ ATmega328P の 22, 1, 17, 19, 7, 18 ピンにつなぐ。
書き込みソフトの hidspx は、下のように /usr/local/bin
にインストールする。補助ファイルの hidspx.ini, fuse.txt
が同じフォルダに必要なのだが、fuse.txt
は直に /usr/local/bin
に入れると何のファイルかわからなくなってしまいそうなので、hidspx.d
というフォルダに入れることにして、環境変数 HIDSPX
を /usr/local/bin/hidspx.d
にセットした。これで、どのディレクトリからでも hidspx が使える。
最初、hidspx の GUI ラッパーを作った方がいいかなと思っていたのだが、hidspx の引数は非常にシンプルなので、ターミナル直打ちでも十分である。Hex ファイルの書き込みは hidspx ファイル名.hex
、ヒューズの読み出しは hidspx -rf
、ヒューズの書き込みは hidspx -fl0bXXXXXXXX
など。とりあえずこの3つを覚えておけば何とかなる。
プログラム作成は、Arduino IDE を流用する。kosakalab さんの「Arduino IDE で ATtiny 他の開発」という記事を参考にして、書類/Arduino/hardware
フォルダを設定。これで、Arduino 1.0.6 を立ち上げた時に、「ツール/マイコンボード」メニューの中に ATmega や ATtiny が現れる。
この方法だと、Arduino 用のライブラリを使うことができるので、とても便利。自前で Makefile を作ってターミナルで開発する方法では、ライブラリを使う時にえらく苦労する羽目になる。
Arduino IDE は hidspx を認識しないので、書き込みはコマンド直打ちでやる必要がある。Arduino IDE の環境設定で「より詳細な情報を表示する/コンパイル」にチェックを入れておくと、コンパイル時に hex ファイルのフルパスが表示される(下図の赤で囲ったところ)。
これをコピーして、ターミナルで hidspx を走らせる。
うまくいきました! (ATmega328P の pin 28, 27 をそれぞれ SCL, SDA に接続している)