ラベル AVR の投稿を表示しています。 すべての投稿を表示
ラベル AVR の投稿を表示しています。 すべての投稿を表示

2008/08/07

AVR入門 その2

AVR入門 その1の続きです。

前回作成の低速ライターを紹介したページに、AVR910互換ライターというのがあって簡単そうだったのでこれを作る事にしました。

材料:
USBシリアル変換モジュール(前回のを使いまわし)
ICソケット(20pin(AVR用)、24pin(USBシリアル変換モジュール用))
10MHzのセラロック
ピンヘッダ(6pin)
ATTiny2313

1)回路作成
前回同様USBシリアル変換モジュールを使いました。楽なので。

今回も、モジュールは直接ハンダしないでソケットを使います。
CPUであるATTiny2313も、書き込みのためには前回製作のライターに挿す必要があるためソケットを使います。ソケットは向きを間違えないように注意です。
まあ間違えても爆発とかしないけど。触るとめちゃめちゃ熱くなってたりはしますけどね。

2)ファームウェア書き込み
AVR910互換ライターのページ、『ファームウェア』の項目の『改変したファームウェアのソース(avr_prg2.lzh)』をダウンロードし、コンパイルします。
すると、avr_prg.hexが得られます。(←これをメモ帳にコピペしてavr_prg.hexという名前で保存してもOKだと思う)

C:\avreggとか言う感じに作業フォルダを作り、前回ダウンロードしたavrsp_egg_050629.lzhを解凍して保存します。さらに先ほど作ったavr_prg.hexも入れておきます。

コマンドラインを起動して、作業フォルダへ移動します。前回製作のライターにATTiny2313をセットします。
コマンドラインで、書き込みプログラムを起動します。
c:\avregg> avrsp avr_prg.hex -pv3
↑最後の -pv3のところはポート番号なので、デバイスマネージャとか見ながら自分で繋いだのが何番になってるか調べてその番号を入れます。
時間かかるけどひたすら我慢。あー、でも30分もかかって終わらなかったらなんか前回製作のライターが間違ってるとか壊れてるとかしてそうなのでいろいろチェックしてみてください。
すぐエラーでとまる時なんかも、回路どこか作り間違いしてるかと思われます。

次にもう一つこのコマンドを打っておきます。
c:\avregg> avrsp -d40 -fL11011101 -fH11011101 -pv3
これはヒューズビットの書き換えということをやってます。具体的にはここで外部クロックを有効化してます。

3)書き込み済みCPUを回路に組み込む

2でライターファームが焼かれたCPUが出来たので、こいつを1で作った回路に組み込みます。
と言ってもソケットに挿すだけでいいのかな?

ここまでで『AVR910互換ライター』ハードウェアが完成です。


4)使い方
ソフトウェアは avrdude-GUI (yuki-lab.jp Version) ←こちらのページからダウンロードしました。
『avrdude.exe Version 5.5 実行バイナリ』が最低限必要です。これと『avrdude-GUI Version 1.0.4 実行バイナリ』を両方ダウンロードして使ってます。

とりあえず両方ダウンロードして適当なフォルダに展開します。
『AVR910互換ライター』ハードウェアをPCに接続し、ライターには書き込みしたいAVRマイコンを接続します。

avrdude-GUI.exeを起動すると、なにやらそれっぽいアプリが起動します。この『avrdude.exe File』にavrdude.exeへのパス、『Programmer』に『Atmel Low Cost Serial Programmer (avr910)』を設定します。
『Port』には実際の使用ポートを入力し、『Device』にはライターに接続した書き込みしたいCPUの型番を指定します。


動作確認には、『Fuse』のReadボタンを押してみるのがいいと思います。ヒューズビットが読み込めたら成功。
これで完成です。



参考:簡単に焼けるようにこんなのを作りました。
写真左側20pinに揃えて置くとATTiny26、右側に揃えて置くとATTiny2313、下のソケットではATMega88が焼けるようになっています。


プログラムの開発環境はAVR StudioとWinAVR、2つのソフトを解説サイトを見ながらインストールすればOK。両方とも無料で公開されています。

ここまでくれば、“自分で作って遊ぶための下準備”が出来たことになります。1500円ほどでここまで揃えられるのはなかなか素晴らしい。
先日ATTiny26Lで作ったLEDメーターなんかもこのライターで焼いて作ることができます。
こいつでまたなにかいろいろ作っていけたらいいなー。

AVR入門 その1

AVRマイコンによる電子工作を始めるにあたり、どこから手をつけたかというところのメモ。

マイコンのプログラムは、パソコンで作成→コンパイル→マイコンに焼きこむ→マイコンの乗った基板を動作させる、という手順で動かしていきます。
最初に何が必要かというと“マイコンに焼きこむ”ための道具が必要なわけです。最初ちょっと面倒だったので、いろいろと覚え書きをしておきます。


まず、これを作りました。『AVRを使わないAVRライター~AVRを使うUSBライター製作のために』というものです。

ただ、USBの方が楽だなと思ったので『FT232RL USBシリアル変換モジュール』を使いました。
必要な部品:USBシリアル変換モジュール、74HC04、ICソケット(14pin(74HC04用)、20pin(AVR用)、24pin(USBシリアル変換モジュール用))
※モジュールとか950円もするし、各ICももったいないのでICソケットでハンダ付けしました。失敗しても損害が少ないし、別の回路に流用したいときも抜き挿しするだけでOKだしね。


シリアル変換モジュールを使った回路図はこんな感じになりました。完成した基板にはATTiny2313を直接挿せるICソケットをつけています。

書き込み用のソフトウェアは、上記『AVRを使わないAVRライター』にある、
>> →実行ファイル+Cソースファイル avrsp_egg_050629.lzh
をダウンロードして使います。


とりあえずここまでで、回路図を元に基板を作成し必要なソフトをダウンロードすると、
「ライター用のプログラム(avrsp_egg_050629.lzh)」
「ライターハードウェア」
が手に入ったことになります。

これだけでもAVRライターとして使えるので、このまま自分の作りたいものの工作に突入できます。
ただ、ちょっと書き込みに時間がかかるのでこのライターを元に、もう一段階高速なライターをつくりたい。

その2に続きます。

2008/07/04

ノートパソコンを電池で動かす、続編

ノートパソコンを電池で動かすの、続編です。

ただひたすら“直列にしてACアダプタの代わりに繋げました”という前回の状態ではあまりにも大雑把です。
そもそも電池がどれだけ減ってるのか解らないというのはバッテリー装置としてはあまり実用的ではありません。というわけで、残量表示をつけてみることにしました。

最近は安価なマイコンがいろいろと出始めています。特にPICマイコンは安くてラインナップも多く、周りでも使ってる人がいるということで自分でもちょっと買っていじってみたりしていました。
しかしこやつがいまいち言うことを聞いてくれない。結構書き込み機とか高かったのに、結局放置してしまってました。
なんかフル機能のC言語でサクっと動くものはないのか……
そこでふと目にとまったのがAtmelのAVRマイコンというもの。無料のコンパイラで超簡単!というようなことがどこかのページに書いてあったのでこれを使ってみることにしました。
機材も3千円くらいのを買えばあとは部品代だけ。これも投げ出したら目も当てられませんが(笑)

そんなわけで買って来ました。AVRマイコンと書き込み機。
AVR Studioというフリーの開発環境をダウンロードしてきてインストールします。
適当なプログラムを作ってコンパイルし、書き込み機で書き込み、テスト用の回路に乗せる。……すると、さっくり動きました。これは良い。

回路は最初いちいち半田付けとかしてられないのでブレッドボード上に作っていきます。
ブレッドボードは、ボード上の穴に部品を挿していくだけで回路が組めてしまいます。部品のデータシートとか見ながらザクザク挿して実験です。
とりあえずLEDをピカピカ光らせることに成功した後は、電池の残量を読み込むためにA/Dコンバーターを動かしてみました。24Vの変化を5Vの幅で読まないといけないので、抵抗で分圧して読み込みます。
この辺のプログラムも実に簡単。基本機能を走らせるだけで出来てしまいました。
表示は今回、10個LEDが入ったレベルメーター用の表示器を使うことにしました。
オーディオアンプとかについてる、ボリュームが大きくなるとバー表示が上に伸びていくアレです。仮装大賞の得点ランプみたいなやつ。
バッテリーが満タンなら全部点いていて、減ってきたら段々消していくことにします。

プログラムはめちゃくちゃ簡単です。A/Dの値を読む→LEDに表示。これだけ。
電池がやばくなって来たら音が鳴るように、スピーカーもつけてみました。一通りブレッドボード上で動くことを確認して、これ以上変更がないってところまで詰めたら回路図を作ります。

次は、回路図を見ながら実際に作っていきます。
部品の配置と、配線には結構頭を使います。パズルっぽい感じ。
方向性が決まったら、部品を一つ一つ半田付けして、配線もしていきます。

ブレッドボードで実験してた時と比べたらかなり小さくなりました。右上にくっつけてあるのはなおぽんさんがくれた電源ユニット。昔作ったそうです。小さく作ってあってすごい。

中ほどにある黒いのがAVRマイコンです。CPUです。1MHzで動いてます。最近のパソコンのCPUは1GHzが2個とかなのでこいつの2000倍以上の能力があるんですねぇ。
そういや昔のPC-9801なんかは20MHzを40MHzにオーバークロックするパーツが5万とかしてました。
このAVRは最大16MHzで動作させることが可能です。200円ぐらいなのに。
技術の進歩っておそろしいね。

残量表示が出来るようになったので、あとはこれを前回のものといっしょにきれいに箱に収めたら完成です。

続きはこちら