実は昔はキットが高価だった事などありEZ-USBは避けてきたのだが、ハードオフで ジャンクを買ったりしていくつか手に入り、正規の使い道のなくなった物などもで てきたので、ちょっと調べて見る事にした。(2013/10)
CypressはEZ-USBをAnchor Chipsを買収して手に入れたのだが、そのまえからCY7C63xxx というRISCチップを使った製品を作ってみた模様。
EZ-USBはオリジナルは12M対応でFX2というモデルで480M対応となっている。FX3という USB Ver3に対応したモデルもあるようだ。
2001年 CQ出版の資料でちょっと古いが、EZ-USBの構造の資料があり参考になった。
もちろんMacでの開発になるのだが、京ぽんのドライバを作られていた、raktajinoさん のページや、 電子工作系でいろいろ参考にさせてもらっている「なんでも作っちゃう、かも。」さん のページを参考に してみた。
最近はPICやAVRの方がホットで、上記の記事も少し古い物になっているので、変わっ てしまった点を書いてみる。
昔のXcodeにはサンプルコードが含まれていたが、Xcode Ver3のどこからかサンプル
コードが添付されなくなり、これに含まれていたEzloader ExampleはAppleのDeveloper
のサイトにも無い為、古いXcodeをインストールして拾い出すしかなくなっている。
IOKitのオープンソースに含まれているようです。
Ezloader ExampleはgithubにもIOKitのツリーでコピーされていたりする。使いにく かったのとFX2の対応とrawバイナリーの対応を入れてgitにレポジトリ (Ezloader_OSX) を作ってみた。
これに加えSDCCが2.xから3.xにバージョンが変わり、ANSIにない予約語には__が必要に なっている。raktajinoさんのサンプルコードで__data,__interrupt,__using, __critical,__sbit,__at,__xdataがこれに該当していた。このエラーは以下のように 出てきて何の事か分かりにくい。
ezusb_reg.h:27: syntax error: token -> 'at' ; column 7
FX2系のlibusbベースのコードを本家のCypressが AN74505というサンプルソース を2012/11から提供を初めていた。
8051系のチップはEZ-USB以外にもTIのTUSB3410やCC2xxxなどがある。 KEYSPANのリモコンモジュールでEEPROMを外してTUSB3410が見えるようにしてサンプル プログラムをダウンロードしてみた。ダウンロードとサンプルプログラムは にはここにあったものを使った。
Silicon LabsもC8051F30xという8051ベースののチップを作っていてこれは元々Cygnal 社が作っていた物を買収したみたいだ。
このマルチメーターでも使われているが、 昔は沖電気など国内にも8051なチップを作っていたメーカーがあったが、理由は 分からないが、無くなってしまったのかもしれない。
AN74505をlibusbでの処理をIOUSBで書き直して、 github に置いておきました。
上記をやっていて、気がついたのだがIOUSBの関数名や変数名はちょっと無理矢理 なところがある。Mac OS Xの開発で期間が決められたきつい仕事だったのかもしれず いたしかたなかったのかもしれない。しかしながらユーザーランドにUSBを 出してくれたIOUSBの功績は計り知れない。
FX2はUSBのパフォーマンスが良かったのかデーター送信用のモジュールに使われる 事が多かったようだ。FX3はUSB3対応のようだが、USB3に8bitマイコンはちょっと 不釣り合いな気もする。
いろいろ分解していて気がついたのだがAtemlもAVRを始める前(?)にAT89C51という 8051系のマイコンを作っていたようだ。