chakokuのブログ(rev4)

テック・コミック・DTM・・・ごくまれにチャリ

AVRマイコン(ATtiny2313)を使ってみる

体の不自由な人のパソコン用入力支援装置として、格安ゲームパッドを作ろうと思っています*1。なるべく安いゲームパッドを秋葉のジャンクショップで探すと、新品の最安値は500円程度でした。在庫もあまりなさそうで、数を揃えられないので、ワンチップマイコンでUSBプロトコルを喋らせて、入力ボタンを2つぐらい付けて作れないか?と考えていました。USBを喋るシステムをマイコンで組むとなると、USB-IF内蔵マイコンか、あるいは、PIC等とUSB/IFチップの組み合わせで構築することになると思いますが、回路が複雑になり、価格も高くなる問題がありました。そんな中、たまたま見かけた「インターネット・ガジェット設計」の本の中で、AVRのバスにUSBを直結する製作記事が掲載されており、シンプルな回路構成と、格安でUSB機器が作れるものだと心底感心しました。そこでまずは簡単なところから作ってみようと思い、AVRでLEDを点灯させてみることに。以下がソース。PB0ポート(12pin)に繋いだLEDを点灯させるだけのプログラムです


#include
int main(void){

// led on (PB0)
PORTB = 0;
DDRB = 1 << DDB0;
while(1){
;
}
}

AVRもフラッシュに焼きこむ装置が必要ですが、たまたまCQ出版のV850ボードを持っていたので、このボードにフラッシュライタプログラムを焼きこんで、即席のライタに仕立てました。(参考URLは最後につけます)
AVR Studio+WinAVRの環境でテストプログラムをコンパイルし、先ほどのV850ボードによる即席フラッシュライタをPCに繋いで、AVR Studioのフラッシュ書き込み機能を使ってAVRにプログラムを焼きました。
マウスパッド?で書いたへちょな絵ですが、、PC上で、AVR Studioが走っていて、USBを介してV850と接続、V850とAVR間は、6本の線(3.3V , GND , RESET , IN/OUT , CLK)で接続

 左はAVR Studioの画面。CQ出版のV850ボードはUSBブリッジで繋がっていて、自分のPCではCOM5と認識されている(デバイスマネージャのポートで確認すれば分かる)。。ので、COM5を指定

 AVR Studioを使いこなしていないので原因は分からないが、普通にコンパイルするとELF形式でバイナリが作られるようで、フラッシュ書き込みデータもELFのファイルを指定して、書き込みを実行。なお、引き続き、FUSE(オッシレータ等)の設定も必要です。


左はLEDが光ったところ。。めでたしめでたし。これから先、道のりは遠いのだが。。

AVR開発環境(笑)全景。手前がV850による即席フラッシュライタ、奥がブレッドボードで組んだATtiny2313の評価用回路


■参考サイト

でんし研さんのページより、
No.16 デュアルライターV850版(CQ出版のV850ボードをライタにする記事)
http://homepage2.nifty.com/denshiken/AVW016.html
No.6 AVRの書き込み(ライターの使い方)
http://homepage2.nifty.com/denshiken/AVS006.html
この記事のお陰で、キックスタートができました。

「超低コスト インターネット・ガジェット設計」武藤佳恭著オーム社 
(オープンソースを活用したUSB接続機器やInternet接続機器の製作例が載っています。この本がきっかけで、自作ゲームパッドを作る気になりました。ただ、この本はUSBのプロトコルの使い方に問題があるような気が。。追ってまた記事書きますが。。)

*1:使ってもらえるレベルまで到達するかどうかは不明