2015年07月25日

HIDaspx で ATmega328P の開発

 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 に接続している)

タグ:工作
Posted at 2015年07月25日 20:49:50
email.png