開発環境 −−プログラムの作成と書き込みのために準備するもの AVRstudio・winAVR−−

 AVRコンピュータのフラッシュROMにプログラムを書き込み、動作させます。このために、
1.プログラムを書いてアセンブルまたはコンパイルして .hexファイルを作る(普通のPCとソフトウエア使用)
2..hexファイルをMCU(AVRコンピュータ)に書き込む(プログラムライタとライティングソフト使用)
ことが必要です。
高価なライタやソフトウエアが準備されているようですが、私の場合はソフトウエアはすべてフリーのものを使い、ライタ
も1000円(またはそれ以下)で自作できるものを使いました。これで十分実験することができます。 これまで主に2種類の開発環境を使ってきました。

第1の環境:プログラムの作成と書込のソフトウエアにAtmel社の統合開発環境 AVR studio 3.56 を使い、ライタは同社の
アプリケーションノート910にしたがってつくる方法です。ごく最近までこの方法を使ってきました。

第2の環境:一般のエディタを使って、C言語でプログラムを書き、それをwinAVRでコンパイルします。AVRにはCコンパイラ
がフリーで用意されていてラッキーです(感謝)。これをChaNさんが開発されたライタと書込ソフトウエアで書き込む方法です。
最近はこちらの方を勉強しています。アセンブリ言語のニーモニック(人間にわかる機械語?)より人間的です。

第1の環境
まず、ライタ(ハードウエア)を作ります。
 ターゲットシステムで動作状態にある(電源が入っている)マイクロコンピュータに、Windowsなどの コンピュータからシリアル端子(RS232C)を使って書き込むものです。Atmel社ではこれをISP (In-System Programming)といっています。デバグのときICを取り出さないで済むのがうれしいです。
 次の回路は、Atmel社のWebページapplication-noteに示されているものです。これをまねて作りました。 http://www.atmel.com/dyn/resources/prod_documents/DOC0943.PDF



 C100 1.0μFはタンタル指定となっています。(アルミ電解でも動きました) Q100, Q101 はそれぞれ 2SA1015, 2SC1815 を、ダイオードは 1S1885 を使いました。  また、発振子は4MHzのセラミックレゾネータを使いました。
 ターゲットシステムへの接続はピンソケット(ターゲットではピンヘッダ いずれも2×3の6ピン)を使います。
2列の長いものを買って、切って使うのが安くなるようです。糸鋸に金属用をつけて切っています。余談ですが、金属用の糸鋸は重宝します。
 回路図にはありませんが、3つのインジケータLEDを付けると便利です。一つは、DSUB9ピンソケットの3番、すなわちD100とR105の接合点に、 10kΩでプルダウンしたLEDを付けます。コンピュータのシリアル出力に繋がっていることがわかります。
二つ目は、Vccに1kΩで繋ぎます。この書き込み機は電源をターゲットから取り込むので、Vccが生きていることがわかります。
三つ目は、90S1200の16番ピン(reset出力)に、1kΩでプルアップしたLEDを繋ぎます。ターゲットに書き込むとき、 この出力がLOWになるので書き込み中であることがわかります。

ライタには、書込用のファームウエアをAT90S1200に書き込んだものを使います。このプログラムは http://www.amelek.gda.pl/avr/uisp/at90isp23.asm です。「鶏が先か卵が先か?」又は「缶切りの缶詰」みたいな話になります。
そのために私は別のライタを作りました。近くにライタを持っている人が居ればいいのですが、そうでないときは「第2の環境」で 作るライタをお勧めします。決して後悔することはありません。(「どうしても....」ならご相談ください。) なお、このファームウエアは tiny26やmega8に対応していません。TEMPLEさんの avr_prg.zip (http://www.t3.rim.or.jp/~temple/software.html)を90S2313に書き込んで置き換えるとこれらに使えます。 (市販品のライタで対応が遅れているというのを聞きますが、理解に苦しみます。)
実際の書き込みは統合ソフトAVR Studioからライティングソフトを立ち上げて使います。
(05.07.19) 最近はChaNさんのシステム(第2の環境です)が便利なためこのAVR910はまったく使っていません。

 次に、開発用統合環境をダウンロードします (05.03.06 AVR studioのバージョンが上がりましたので更新しました。)
 開発環境は AVR studio 4.11 を使います(バージョンによって内容が変わります)。次のURLからダウンロードできます。
http://www.atmel.com/dyn/products/tools_card.asp?tool_id=2725 


 AVR Studio 4.11 aStudio4b401.exe がダウンロードされるでしょう。これを実行してインストールします。
 aStudio4b401.exe をダブルクリックします。


スタートメニューから プログラム→ATMEL AVR Tools→AVR Studio 4を選ぶと開発統合ソフトが起動します。ショートカットをデスクトップに置くと良いでしょう。
その後の使い方は、「きわめて簡単な応用例」へ続きます。


第2の環境
ライタはChaNさんの「COMポート制御ISPアダプタの製作AVRSP-COM」に 従って作ります。
特別な部品は必要でありません。1000円で十分できます(感謝)。私は手持ちの都合で74LS244を使っています。電源電圧が5Vに限られますが、 出力電流が大きいのでLEDなど多少の負荷が重なっていても力強く書いてくれます。基板が小さくスイッチ切り替え時の安定が悪いので木製の台 を付けました。
(05.07.09) 後に、ChaNさんのISPライタの作り方 を別項に書きました。そちらも参考にしてください。

このライタの書込ソフトはChaNさんのavrsp.exeを使います。上記webページの「Win32版ISPライタ制御ツール(含ソース)」をダウンロードして 解凍します。インストールしなくてもexeファイル単独で動きます。添付のreadmeを読みましょう。
ところで、win2000、winXPではCOMポートが自由に使えなくなっています。このソフトは2004年5月に2000やXPに対応できるように改良されたも のです(これでXPで使えるようになりました 感謝)が、COMポートが使えるように「giveio.sys」をインストールする必要があります。
このページにインストールの詳しい方法が説明されていますのでこのとおり インストールすることを勧めます。

このソフトavrsp.exeはコマンドプロンプト(DOS窓)で使うのですが、D&Dが可能で、mega8やtiny26などに対応しているばかりでなく、デバイ スを自動判定してくれますので、デバイスの切り替えが必要ありません。うれしいことです。その上、極めて高速です。快適に作業できます。

次に、プログラムの作成にC言語を使う方法です。
デバイスが変わっても共通点が多く、レジスタやデータメモリの番地を自分で管理しなくても良いので、少し敷居は高いのですが勉強する価値は あると思います。五里霧中で勉強を始めました(始めたばかりです)。
フリーで使えるすばらしいコンパイラがあります。winAVRと言います。 ダウンロードは http://www.avrfreaks.net/が多くのwebページ で紹介されていますが、ホームページから探すのは大変です(大変でした)。  ここからダウンロードしてください。 一発ですみます。11.3MBでした。 WinAVR-20040404-bin-install.exe が用意できたでしょうか。 ダブルクリックでインストールが始まります。 場所は適当なところでよいでしょう。私は E:\WinAVR に置きました。これでコンパイラが使えます。

2007.01.16追記 バージョンが上がりますので、「最新版 WinAVR のダウンロード」を参照してください。 

C言語のプログラムを書くために、エディタが必要です。行番号が無いと極めて不便ですから「えるの〜と」を使っています。気に入ったエディタ です。作者に感謝! 「えるの」で検索すればvectorで見つかります。フリーソフトです。
(05.07.09) エディタ「えるの〜と」は作者の方の都合で5月に公開終了になったようです。代わって、 サクラエディタを使っています。少し変更して今までと似た 色合いにしています。
winAVRの使い方は、「きわめて簡単な応用例」へ続きます。



はじめのページへもどる

inserted by FC2 system