(2002.03.03更新) | |
(2002.08.11更新) |
しかも動かすカードを限定し、動作中のカードの抜き差しをせず、8bit データバスモードを持っているカードなら、付加回路無しで IRQ と 23bit 弱の I/O をカードと直結すれば OK です。例えば 40pin の AVR や H8 があれば、あとはコネクタとのハンダ付けだけで PC カードを動かせる訳です。
という訳で AVR AT90S4414 と無線 LAN PC カードを接続してみました。写真では 16bit データバスを制御するためにマイコン以外にラッチとロジックを追加していますが、最終的には下記のような 24bit の I/O を直結するだけで動かす事が出来るようになりました。この辺は CQ 出版のインタフェース誌 1999年 12月号特集「メモリカード活用技術の徹底研究」が非常に参考になりました。
それにしても無線 LAN カードは電力大喰らいですねえ。基板上の3端子レギュレータがかなり高温になってビックリしてしまいました。
とりあえず現状のソースを公開
アクセスポイントを使わない Adhoc モードでのみ動作、シリアルコンソールを通じたコマンドにて UDP パケットのブロードキャスト、UDP パケットの受信が出来るように作っていたつもりなのですが、何せ1年以上も前の話なので、完成度は忘れてしまいました。下記ソース中に独り言テキストも入っておりますので、その辺も合わせて楽しんで頂ければと思います。
私のスキルがナニだったのでここまでしか出来ていないのですが、最近流行の無線 LAN も結構簡単にマイコン遊びに組み込めるのだ、ということがお伝え出来れば本望です。一応 Tiny H8 + CF カード無線 LAN という野望も持ってはいるのですが、キューに溜まっているものが多すぎるので自分では実現できないでしょう。
まず回路図です。下記のように AVR AT90S4414 と PCMCIA コネクタを直結するだけで、PC カードを制御することが出来ます。あとは電源用の3端子や PC とシリアル接続するための MAX232C 等を搭載すれば良いでしょう。5V 動作可能な PC カードのみ対応、活線挿抜は出来ません。無線 LAN カードの種類にもよりますが、沢山電流が流れます。放熱板の無い無印 7805 ですと動作はするものの非常に熱くなります。
今回、回路図作成には BSch を用いてみました。多くの方がライブラリを公開して下さっているおかげで、AVR や PCMCIA コネクタも簡単に記述出来ました。この場を借りて、お礼申し上げます。
次はファームウェアです。AVR AT90S4414 に書き込むことで動作します。38400bps にて通信ソフトと接続し、電源を投入するとバージョン No. の表示と無線 LAN PC カードの初期化後に OK と送信し、コマンド入力待ち状態になります。IP アドレスは 192.168.0.150 に、無線 LAN チャネル番号は 7 番になっており、変更するにはファームウェアの修正が必要です。また、現状では Adhoc モードでのみ動作しております。
コマンド入力状態で s xxx と通信ソフトから打ち込むと、xxx の部分がアスキーコードで UDP パケットとしてポート番号 0x8002 にブロードキャストされます。ちなみに通信ソフトにはデバッグ用の文字列が表示されます。また外部から同じように UDP パケットでアスキー文字列がブロードキャストされた場合には、送られたアスキー文字列がデバッグ用文字列と一緒に通信ソフトに表示されます。実験用なので、送信する文字列は数文字程度にした方が良いと思います。
このソースを作っていた一昨年の年末の頃から思えば、随分無線 LAN も一般的になってきました。ちゃんとインフラストラクチャモードに対応して、TCP/IP に対応して、H8 にて CF 無線 LAN カードでも制御できると、非常に楽しいかもしれません。思いがけず外部からのトリガで復活したこのプロジェクト。これで打ち止めとなるのか、それとも発展するのか、自分でも気になるところです。