MacOSXでEZ-USB FX2LP
Posted by arms22 on 2007年01月26日

オプティマイズのMINI FX2を入手した。MINI FX2はEZ-USB FX2LP(Cypress CY7C68013A)を搭載したUSB2.0ハイスピード(480Mbps)に対応したボードだ。EZ-USB(Cypress AN2131SC)を搭載したボードの何倍も早いぜ!
MacOS XでCypress EZ-USBを参考に開発環境を構築。以下、そのメモ。
用意したもの。
・MINI FX2 (オプティマイズ)
・SDCC (Smalle Device C Compiler) 2.6.0
・libusb 0.1.1.12
・EZ-USB FX2LP Development Kit
・Ezload (Xcodeのサンプル・コード)
・SDCCのインストール
CypressのDevelopment KitにはKeil(評価版)が付属するが、MacOSXでは使えないのでSDCCをインストールした。MacOSX用のバイナリは↓からダウンロードできる。
http://sourceforge.net/project/showfiles.php?group_id=599
圧縮ファイルを解凍し/Developer/SDCCへコピーする。
shallの実行時パスに/Developer/SDCC/binを追加する。
~/.bash_profileに次の行を追加する。
export PATH=$PATH:/Developer/SDCC/bin
・libusbのインストール
libusbはLinux,FreeBSD,MacOSXに対応した汎用USBライブラリで、ユーザレベルのアプリケーションからUSBデバイスを制御できる。
ソースコードを↓からダウンロード。
http://libusb.sourceforge.net/
% ./configure
% make
% sudo make install
・EZloadのビルド
EzloadはEZ-USB(Cypress AN2131SC)にしか対応していないので、EZ-USB FX2LP(Cypress CY7C68013A)に対応させる。
必要なのはCPUコントロールレジスタのアドレス変更だけで、次の行を置き換えるだけだ。
105: #define k8051_USBCS 0x7F92
↓
105: #define k8051_USBCS 0xE600
あとここで配布されているパッチをあてておく。
このパッチでEzloadの引数(VenderIDとProductID)に16進数を使えるようになる。
できた実行ファイルは/Developer/SDCC/binにコピーしておくと後で便利。
・EZ-USB FX2LP Development Kitの移植
CypressのページからEZ-USB FX2LP Development Kit(SETUP_FX2LP_DVK_1004.exe)をダウンロードする。
Development Kitはexeで配布されているのでインストールにはwindowsが必要だ。
Development KitにはUSBに必要な処理がほとんど記述されたフレームワークとライブラリが含まれている。
しかしこれらのコードはKeil用でSDCC用に移植する必要がある。
fenrir's Blogのこの記事を参考に移植を行った。
大量のシンタックス書き換えとアセンブラの書き換えで移植は完了。移植したコード。
・ファームウェアのダウンロード
テスト用のファームウェアはDevelopment KitのExamples/bulkloopをSDCCでコンパイルできる様に修正したもの使います。bulkloopはバルク転送のテスト用ファームウェアでEP02OUTからのデータをEP06INに、EP04OUTからのデータをEP08INに書き出す簡単なプログラムです。
ファームウェアの動作確認をする為にlibusbを使ったテストツールも作成しました。
ターミナルからの入力をEP2OUTに書き込み、EP6INから読み出す単純なプログラムです。
ソースコードとバイナリを置いておきます。
↑で作成したファームウェアをMINI FX2にダウンロードします。
fw.hexというファイルがあるので、それを04B48613.hexにリネームし次のコマンドでファームウェアのダウンロードを行います。
% Ezload 0x04B4 0x8613
ファームウェアのダウンロードはすぐに完了します。
このMacについて→詳しい情報→ハードウェア→USB装置ツリーを表示して、EZ-USBの名前があるか確認。
次にテストツールを起動してコマンドラインに適当な文字を入力。
64バイト毎にデバイスにデータが転送され、入力したデータがエコーバックされます。
参考URL
MacOS XでCypress EZ-USB
http://homepage.mac.com/raktajino/EZ-USB/EZUSBintro.html
オプティマイズ EZ-USB FX2
http://optimize.ath.cx/FX2_USB/index.html
nandのページ
http://homepage.mac.com/nand/Menu6.html
fenrir BLog
http://fenrir.naruoka.org/
CYPRESS
http://www.cypress.com/
SDCC
http://sdcc.sourceforge.net/
libusb
http://libusb.sourceforge.net/
VHDLシミュレータ
Posted by arms22 on 2007年01月08日

ノートPCがあまりにも低速なのでVHDL記述とシミュレートはMac環境で行う事にした。
VHDLのシミュレータはGHDLを使う。
GHDLはgccをベースに開発されたVHDLコンパイラ/シミュレータで、↓のURLでMac用のバイナリが配布されている。
http://eng-osx.sourceforge.net/GHDL.html
上記ページのDownloadsからGHDL-0.18-2005Mar12.dmgをダウンロードした。
最新verのGHDL-0.24-2006Jul06.dmgは10.4以上かつIntelマックでしか動作しない。
dmgをマウントするとpkgインストーラが含まれているので実行するだけでOK。
/Developer/Simulator/GHDLにインストールされる。
↓のURLにGHDLの日本語訳マニュアルがあるので、マニュアルにしたがって全加算器のシミュレートをしてみる。
http://www.cyber-labo.co.jp/ghdl_guide/top.html
% ghdl -a adder.vhdl
% ghdl -a adder_tb.vhdl
% ghdl -e adder_tb
% ghdl -r adder_tb --vcd=adder.vcd
GHDLでシミュレートした波形を確認する為にGTKWaveもインストールした。
GTKWaveのMac用バイナリも↓のURLで配布されている。
GTKwave-1.3.55-2005Mar18.dmgをダウンロードした。
http://eng-osx.sourceforge.net/GTKwave.html
GTKWaveもGHDLと同様、pkgインストーラで配布されているので実行するだけでOK。
/Developer/Simulator/GTKWaveにインストールされる。
GTKWaveの実行にはX11が必要なのでインストールしておく。
実行時パスに/Developer/Simulator/GTKWave/binを追加し、.bashrに次の行を追加。
export PATH=$PATH:/Developer/Simulator/GHDL/bin:/Developer/Simulator/GTKwave/bin
xtermから次の様に.vcdファイルを引数に与えてgtkwaveを実行する。
% gtkwave adder.vcd
VHDLはじめました。
Posted by arms22 on 2007年01月07日

トランジスタ技術の付録基板を使ってVHDLの勉強をはじめました。
少し大きめの蛇の目基板に付録基板を搭載しました。
空いたスペースにはADコンバータ、SRAM、USBインタフェースを追加する予定です。
USERIO1-8にはLEDを8個、直接ドライブしています。USERIO15,16にはスイッチを2つ。
とりあえずLEDちかちか回路を作成、書き込み、動作確認できました。
ノートPCにQuartusIIをインストールしコンパイルさせているのですが、ノートPCがあまりにも低速(MMX300MHz)なため、簡単な回路のコンパイルに5分以上かかってしまいます。。
これからどんどん回路が大きくなっていくと更に時間がかかりそうです。
やった事メモ
1.評価用ライセンス取得
2.QuartusIIインストール
3.ByteBlaster用デバイスドライバインストール
4.LEDちかちか回路作成
5.回路書き込み
6.MITOUJTAG評価版インストール
7.MITOUJTAGでピンのハイ/ロー切り替え