2012年02月19日

ATTiny10 エレキー

DSC02997.jpg

喉につかえていたものが、やっと取れた感じです。
秋月で10個¥450で売っているATMELの比較的新しいAVRマイコンで
あるATTiny10で、やっと実用品が仕上がりました。
このマイコンは、6pinの米粒サイズで、ネットで検索してもあまり
実用例が見当たりません。
(LEDチカチカと、ライターに関しては多く見られますが)
すばらしい実用例としてはインドアプレーン用の受信機として、
その小型軽量を活かして活用されています。
当局は、秋月の通販で見つけ、これでエレキーを作ったら超小型
の物ができるな〜と思い、入手しておりました。
しかし、このマイコンは、当局にとっては2つの大きな課題があり
ました。
一つは、既にこのブログで紹介しましたが、プログラムを焼きこむ
ためのライターです。
これまでのAVRはISPと言う方式で焼きこみができたのですが、6pin
では、これが使えず、TPIという方式が採用されています。
これについては、ネット検索で多くの実験事例を見つけることができ
当局は、USBaspを利用した方法で焼きこみを確認しました。

http://blog.toshnet.com/article/52710826.html

次の課題は、プログラム言語です。
このマイコンにはRAM領域がないためという理由らしいですが、いつ
も使用しているBASCOM-AVR(BASICコンパイラ)が使えません。
C言語での作成事例はいくつか見られましたが、当局にはCはNGです。
よって選択肢はアセンブラしかありません。
とりあえず、このアセンブラを使ってLEDチカチカまでは正月にやって
いましたが、エレキーのプログラムで使いたいタイマー割り込みが
うまく動かず、そのままになっていました。

http://blog.toshnet.com/article/52764474.html

時々、何か手がないかな〜と考えたりしていたのですが、ソフトウェア
タイマーを利用して、タイマー割込みと同じような処理が作れるのでは
ないかと、始めてみました。
試行錯誤はありましたが、なんとか、エレキー動作までこぎつけました。
しかし、実用品にするには、これだけではだめで、スピード調整の
ためにVRコントロールが必要です。
幸いにもこのマイコンには、AD変換機能がついています。
問題は、これまでは、BASCOMで簡単に処理できていたのですが、
今回はアセンブラでAD機能を動かす必要があります。
これも、何度も何度もプログラムを書いては書き直しながら、種々の
設定を変更し、何とかスピードのVR可変ができるようになりました。
次は、自動スリープモードの実現です。
せっかく小型で、消費電流の少ないマイコンですから、電源スイッチを
切り忘れても、1年ぐらいは動作して欲しいものです。
機能的には、以前に作ったFRISKKeyerと同じことができればいいの
ですがこれもBASCOMではほとんど1命令で実現できたことを、
色々レジスタ設定して、動作するようになりました。
これで、機能的にはOKになったのですが、更なる問題はポート不足です。
これらの全ての機能を実現するためには、ポートとしても使用できる
リセット端子をポートとして使えるように切り替えなければなりません。
しかも、一旦切り替えてしまうと、それ以降は単純にプログラムの
焼きこみができなくなります。
これについてもネット検索し、リセット端子に12Vを印加した状態に
すれば焼きこみができることがわかり、12Vを5Vから生成する回路も
サイトを参考に作りました。

http://d.hatena.ne.jp/pcm1723/20120205/1328457180

DSC02999.jpg
たまたま手持ちにLMC555があったので早速作って使用しました。

これのおかげで、リセット端子を切り替えるFUSEbitの書き換えをしても
プログラムの焼きこみができるようになり、最初はうまく動かなかった
プログラムも、上記の機能を全て入れた状態で完成しました。
実際の基板までは作っていませんが、エレキーはできることがわかりました。
電池や、VRや、ジャックなどの部品の方がはるかに大きいので、
マイコンがここまで小さくなくても、エレキー用途には全く問題は
ないのですが、思い立ってなかなかうまく行かなかったことがうまく
行ったので、とりあえず、めでたし、めでたしです。
ずいぶん、アセンブラの勉強にはなりました。

DSC02998.jpg
7mm角の半固定VRと比較するとマイコンの小ささがわかります

ご参考用に、プログラムも掲載します。

ATTiny10_ELEKEY120219.asm
アセンブラプログラム

ATTiny10_ELEKEY1210219.hex
HEXファイル

ATTiny10_ELEKEY120219.BMP
回路図

posted by ja6irk at 20:08| Comment(0) | TrackBack(0) | AVR&BASIC
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/54058773

この記事へのトラックバック