Last update:2002/03/05 / Regacy Free PC で AVR に挑む |
[TopPage]
[FMTOWNS]
[Hardware]
[Freesoft]
[怪飲料]
|
■ Regacy Free PC で AVR に挑む ■ |
PICやAVR などのマイコン内蔵EEPROMなどを書きかえるライタなどは、一般的にはシリアルポートかパラレルポートに接続されます。ですが、最近の小型PCの場合、どちらのポートも付いていない場合があります。 そこで、USBしか拡張端子が無いTOSHIBA Libretto ff でAVRに挑んでみたいと思います(当初はPICに関してまとめようと思ったのですが、ちょうどAVRを始めたばかりなので、AVRに関する備忘録として書きたいと思います)。 こんな感じで作ってみました ※注:これを書いたのは2000年ごろ夏前です。すでに風化している記述があります(^^; |
_ ■ インターフェイスの調達 ■ |
シリアルポートもパラレルポートも無いPCでAVRライタを繋ぎたい場合、必然的にUSB接続ということになりますが、USB直結のAVRライタは無くは無いものの市販品の購入は困難です(最近は通販であるようですが、高い)。その為、USB→RS232C変換アダプタを使用することにします(PCMCIAのシリアルポートカードでも良いのですが)。 普通にAVRライタを作ることを考える場合パラレルポート接続のほうが有利な点も多いのですが、なぜRS232Cに限定するのかというと、パラレルポート対応のプログラマ(書き込みプログラム)が大抵PCのI/Oポートを直に叩いているため、USB→パラレル変換アダプタだと動作しなかったり、そもそもOSがWindows2000だったりするとI/Oがうまく叩けない場合がある為です。よって、USB→RS232C変換アダプタにシリアル接続のAVRライタを接続することとします。 USB→RS232C変換アダプタは各社から発売されていますが、USB機器の中でも若干相性がシビアなようで、USBコントローラによって動いたり動かなかったりします(一番相性が顕著な例はUSB-MIDI I/Fでしょう)。特に、私が使用している Libretto SS/ff などに搭載されている NEC Open Host Controler は相性がシビアなUSBコントローラに分類されるようです。もしIntelのUHCI(Universal Host Controller)なら安全です。事前にコントロールパネルで確認しておくと良いでしょう。 私が動作確認した物を以下に挙げます。 ・IO-DATA USB-RSA (Win9x対応) (*) ・PLANEX URS-03 (Win9x/2000対応) ・ATEN UC-232A (Win9x/2000対応,URS-03と中身が同じ) 事例からして恐らく動作すると思われるものを以下に示します。 ・IO-DATA USB-RSAQ (Win9x対応) ・IO-DATA USB-RSAQ2 (Win9x/2000対応) ・PLANEX URS-02 (Win9x対応/2000も非公式ながら使えるらしい) ・Magic Control Technology Corp. USB-232-P25 (要最新ドライバ) ・ATEN UC-232 (Win9x対応) 動かないことが予想されるも ・KEYSPAN社製品 (基本的にMac用) ・Accton製 USB Serial 202 (一部のOHCIでは動かないと明記) ・Accton製 USBconnect for Palm (一部のOHCIでは動かないと明記) ・Accton製 US1000A (Win9x対応,上記の件があるので怪しいかも) ・サンワサプライ製 USB-CVRS (Win98対応,形状からしてAcctonのOEM) 不明なもの(誰か知ってたら教えてください) ・ラトックシステム製 USB-RS232変換 ・Hitsコミュニケーションズ(倒産) USB-RS232変換(型番不明) ・Brighten USB-RS232変換(型番不明) 私は、USB-RSA を常用していますが、これの場合Win9x用ライバは付属のドライバディスク以外に手に入らないのと(製造元のIO-DATAのサイトからはダウンロードできない。ただしEZ-USB搭載デバイスとして使える・・・?)、Windows2000ではドライバが無いので注意が必要です。なお、USB-RSAで動かない場合は、シリアルポートの本体側のRTS,CTSをショートして、ループバックさせてます。もともとUSB-RSAはモデムのみ正式サポートということで動かない機器が多いですが、単純な転送を行う機器であればこれで大抵動作します。ROMライタ等はこれで充分でしょう。 動かないことが予想されるものに挙げたAcctonのUSB Serial 202は、同社のサイトにて、「一部のOHCIでは動作しない」しかも「動作しないことを確認している機種:NEC製OHCIを搭載した機種」と明記されています。そのため、避けたほうが無難でしょう(思えばこれか苦難の始まりでした(^_^;))。 インターフェイスが調達できたなら、あとは守備範囲の広さからATMEL純正のシリアルポート接続AVRライタを作ってみたいと思います。もっと単純なものは多数存在しますが、対応ソフトが多いのと、無理が無い作りで本体に負担がかからないのとで、ノートPCでやるならこれが良いと思います。 なお、同じくUSB-RS232C変換アダプタの相性が問題になるものとして、シリアル接続のGPSユニットなどがあり、どうやら動かないものも多いようなのです。この場合はPCMCIAのRS232Cカードのほうが確実に動作するようです。PCMCIAのRS232Cカードについてはラトックシステムあたりが良いと思われます。 |
_ ■ USB-RS232C変換器 追記 ■ |
定番の安定して動作するUSB-RS232C変換器は上記の通りなのですが、秋葉界隈で良く見かける製造元不詳の怪しげなUSB-RS232C変換器に関しては、あまり情報が出回っていないようです(なにしろ外箱に製造元が書いてないことがある)。 (1) U232-P9編 かつて千石電商(注:秋葉で有名な電子部品屋)などでも売っていたのですが、このUSB-RS232C変換器について、情報が得られたので覚書を残しておきます。 製造元は、Magic Control Technology Corp.という台湾のメーカです。Webサイトはこちら→[http://www.mct.com.tw/p_u232.html]です。U232-P9 もしくは USB-232-P9 という型番のようです(25ピンタイプのP25もあり)。秋葉では\4,000程度で入手可能ですが、簡単な説明の紙切れとドライバディスク一枚しか付属していません。 このUSB-RS232C変換器が、マイコン関連用途に使用できるかと言うと、製品付属のドライバでは使用できないようです。但し、前述の製造元Webサイトにある最新版ドライバをインストールすれば、使用可能だそうです。これについては、私の所属サークルのクロカワ氏が製品付属のドライバではうまくいかなかったのですが、最新版ドライバにてH8マイコンへのデータ転送に成功しています。ちなみに、RTS-CTSはループバックさせています。同様に、最新版ドライバを使えばタブレットやPalmも接続できるようです。 なお、どうやらRedHat Linux 7.2Jでは標準でドライバが入っているようです。実際に使えるかどうか確認していませんが。 (2) UC-232A編 秋葉原のあきばおー各店にて\2,999-.で売っているものです。ドライバ入り8cmCD-ROMが付いています。メーカはATENという台湾の会社です(http://www.aten.com.tw/)。実は外装がそっくりなところからも分かる通り、PlanexのURS-03のOEM元のようです。USBデバイスとしてのベンダIDおよびプロダクトIDが一緒ですので、挿せばまったく同じデバイスとして認識します。当然スペックも一緒です。コンパクトで低価格ですので、お勧めできます。なお、ATENは日本サイトもあるようですが、ドライバのダウンロードは台湾サイトからしか出来ないようです(2002年3月現在)。 |
_ ■ パラレル接続ライタの制作 ■ |
シリアルポート接続のライタを作る前に、1つパラレル接続ライタを作る必要があります。いきなり矛盾していますが、ATMEL純正互換ライタにはライタ自身の制御用AVRが乗っている為、これを書き込むのにライタが必要になります。誰かからAVRライタが借りられる場合は不要ですが、そうでない場合はパラレルポートがあるPCでAVRを書きこみます。 私の場合は、ChaNさんのパラレルポート直結AVR-ISPライタを作りました。 作るといっても、実はパラレルポートに抵抗を4本かまして直結するだけです。これだけで書き込み可能とは、まったくすばらしいです。どうせ一度しか使いませんので、動きさえすれば作りは適当でかまわないでしょう。 書き込む対象は、AT90S-1200というAVRマイコンです。AVRへ書き込むAVRライタのファームウェアは、秋月電子のサポートサイトから落としてくると良いと思います(本家Atmelより探しやすいので)。ついでにプログラマも落としてきましょう。秋月電子のAVRプログラマはATMEL純正互換(部品レベルの違いを除けば完全互換)です。VisualBasicで書かれているため、Win9x/2000のどちらでも問題無く動作します。 |
_ ■ シリアル接続ライタのファーム書き込み ■ |
ISPで書き込むので、対象のAVRに対して電源供給以外にOSCが接続されている必要があります(データシート参照)。 書き込みにはライタと同じくChaNさんのAVRXS.EXEを使用させて頂きました。 なお、AT90S-1200 の場合、変なタイミングで書き込みをかけると、イレース出来なくなることがあります。この場合、少し電源電圧を下げてイレースを行うと、また書けるようになるそうです(これもデータシート参照)。 C:\> avrxs avrpgm01.hex これで、書き込みが出来るはずです。あまりケーブルが長いとうまく行かないようです。AVRの機種判別がうまくいかない場合は、結線が間違っています。 |
_ ■ シリアル接続ライタの制作 ■ |
ATMEL純正互換の秋月のライタの回路図(ココとか→AVRマイコンのページ)を参考にしてAVRライタを制作します。RS-232Cのレベル変換に、Trを使用している例も多いのですが、本体側に電力的な負担をかけたくないので、普通にRS232Cトランシーバ(MAX232互換品)を使用します。 冒頭にも出たこんな感じのヤツです 〜主な材料〜 ・AVR AT90S-1200 (ライタ制御用) ×1 ・コンデンサ内蔵発振子(レゾネータ) 4.00MHz ×1 ・MAX232C互換 ADM232 (RS-232-Cトランシーバ) ×1 ・7805 (3端子レギュレータ) ×1 ・20ピン ICソケット(丸ピン,AVR用) ×1 ・14ピン ICソケット(角ピン,MAX232用) ×1 ・0.1uF(104) 積層セラミックコンデンサ ×少々 ・パスコン用電解コンデンサ ×少々 ・電源示唆用,書込中示唆用LED 各×1 ・ISP端子用 ピンヘッダ オス ×少々 ・ISP端子用 フラットケーブル ×少々 ・ISP端子用 ピンヘッダコネクタ ×少々 ・D-sub 9ピンコネクタ (オスかメスかは環境次第) ×1 ・D-sub 9ピンコネクタ ハウジング ×1 ・2.1φ DCコネクタ + ACアダプタ ×1 ・万能基板 ×1 ・電源用ACアダプタ(+7V以上、適当なもの) あちこち参照して自分用に書きなおした 回路図です。 容量を書いてないCは104です。 うまく買えれば & 余りものを使えば、1000円ちょいくらいで済むと思います。なお、秋月電子でMAX232を買うと、14pin角ピンICソケット+積層セラミックコンデンサ数個は付いてきます。 |
_ ■ プログラマの調達 ■ |
今回制作するのは、ATMEL純正互換の秋月のライタのなので、ATMEL純正の書き込みツールと、秋月の書き込みツールが使えます。 ATMEL純正のものは、統合環境であるAVR Studio付属のものが使えるはずです、が私は使ったことがありません。 秋月の書き込みツールは、秋月電子のホームページ→(http://www.akizuki.ne.jp)からリンクを辿ると入手できます。入手できるのはアップデータだけなのですが、一度秋月製の別のプログラマをインストールしていれば普通に使えます。おそらくVisualBasicのランタイムの問題のようなので、VisualBasicのランタイムが入っていればファイルコピーだけでも問題無さそうです。私の場合は、秋月のPICのプログラマが既に入っていたので、普通にアップデータ単体で使用できました。 さらに、秋月の書き込みツールの互換プログラムが存在します。K.Muranaka氏のAVR-PRGです。VC++で書かれているので動作が軽いです。検索エンジンで検索すると見つかります。私はこれをメインに使わせてもらっています。この場を借りてお礼申し上げます。 なお、ATMEL純正以外の2者ともUSB-Serial変換経由で問題なく動作しています。ものによっては、USB-Serial変換経由で使うと鬼のように遅くなる場合があるようです。 640*480なので画面からはみ出した状態で使っています(^^; |