WinAVRを動かす
AVRマイコンの冒険は留まるところを知らない。初めてチップを買ってきたのが、今月の16日、それ以来、すっかりこれに没頭している。フルートレッスンは明日だが、練習もしている間も頭の中をロジックが離れない。こんなに熱中したのは、10年ほど前のLinux以来だと思う。単なる電子工作ではなく、私にとっては、長年仕事で日頃溜めていた不満や願望を何らかの形で解決してくれているという思いがある。Linuxの時もそうだった。
Linuxのときはカーネルの中を覗ける楽しみがあったが、すでに膨大な蓄積のあるOSであり、個人の裁量は多寡がしれている。しかし、8ビットMCUはモニターもOSもなければ、メモリ空間もキロワードの世界であり、I/Oは1ビット単位だ。それでいてクロックは20MHzはとれるし、割り込みも多重に出来る。タイマーもUARTもハードで持っているし、今まで外付けのA/Dコンバーターやちょっとした周辺機器の接続にこまかい結線が必要で、まともな機械にするには相当な時間と経験を必要としたのに、A/Dコンバーターは内蔵しているし、たいていのものは、単にI/Oピンに機械をつなぐだけで、ハードは完成してしまう。
そのうえ、PICはいちいち、チップを別の機械に移し、プログラムをロードしなければならないのに、このAVRはターゲットマシンにほんの少しのインタフェース線をだすだけで、プログラムが焼けてしまう(最近はPICも出来るらしいが)。しかも、このフラッシュROMは1万回以上焼き直しができるので気楽に書き換えられる。何と言っても値段は最初に買ったTinyクラスで¥300しないし、先週、通信販売で手に入れた中型クラスのMega168でもひとつ¥500だ。
さらにPICからの優位なところは、無料のCコンパイラーを使ってプログラムが組めることだ。AVRのCコンパイラは何とオープンソースのGccなのである。私も2本ほどアセンブラーで書いて構造が見えてきたところで、Cに開発環境を換えた。
WinAVR(gccのこと)の環境設定が混乱したり、Cでのビット演算に苦労したり、C特有の文法に惑わされたりしたが、ボタンの押下でLEDの点滅間隔を設定するプログラムを母体に、ASMからCへのポーティング、タイマー割り込みの導入、スイッチの外部割込み による制御など、順調に実験が進んでいる。
ブレッドボードも、事務所の帰りに寄った秋葉原で短いジャンパーピンを買い増し、すっきりした形になった。秋月では、定番のLCDモジュール(オレンジ、バックライト付)を¥900で手に入れ、着々と温度ロガーへの道を進んでいる。
極細の熱収縮チューブのおかげで、コネクター周りは格段にきれいになった。ただ、外部割込みは現在時点で完全稼動していない。割り込みが起きることはわかっているのだが、スペックどおりの動きをしないのだ。デバッグがあちこちに挿入したLEDというのもつらい。早くシリアルインタフェースを完成してオンラインデバッグができるようにしたい。
(10/30/07)
| 固定リンク
「AVR」カテゴリの記事
- ソフトI2Cはクロックストレッチまで手を出してあえなく沈没(2017.09.02)
- オシロのテストどころかソフト開発で大はまり(2017.07.26)
- 超音波方式の人感センサーI2C化と新しいオシロ(2017.06.29)
- motionの動体検知はRaspi3の電源が安定しない(2017.04.16)
- 赤外線学習リモコンはデータ再現で挫折したまま進まず(2016.07.21)
コメント