« 2011年5月 | トップページ | 2011年10月 »

2011年9月

2011年9月15日 (木)

EZ-USB FX2LPでBlasterクローン

3年位前に、IT PLAZA(オプティマイズ)にてMINI FX2
(EZ-USB FX2LP 56ピン)を購入し、
そのままほとんど放置してました。

最近になって、AlteraのCPLDの書き込み環境がほしくなりました。
特にダウンロードケーブルの部分を安く買えないか探していたところ、
作っている人がいるのがわかりました。
「Blasterクローン」や「Blasterもどき」で検索すると
FT245+CPLD(orFPGA)、PICマイコンなどで実現してるようです。

そこでEZ-USB FX2を使ってやれないか検索していると
http://ixo-jtag.sourceforge.net/
がありました。
ソースコードは
http://ixo-jtag.svn.sourceforge.net/viewvc/ixo-jtag/usb_jtag/trunk/
の下にある「Download GNU tarball」で。
使用する部分はc51ディレクトリ以下です。

しかし、そのままコンパイルしても
私が持っているのはFX2LPの56ピンなので
実在しないポート(Port C)に割り当てられます。
そこで以下のように変更。

TDI: Port C.0→Port B.0
TDO: Port C.1→Port B.1
TCK: Port C.2→Port B.2
TMS: Port C.3→Port B.3

Port Bに変更しました。
変更したhw_basic.cをここに置いておきます。
「hw_basic.c」をダウンロード

また、○○○-Blasterとして認識させるため、
dscr.a51を変更。以下の2箇所を変更するだけです。
(VID/PID、文字列を何にするのかは調べてください。)

        VID              = 0x16C0         ; Vendor ID 0x16C0 
        PID              = 0x06AD         ; Product ID 0x06AD

        .db        'U, 0
        .db        'S, 0
        .db        'B, 0
        .db        '-, 0
        .db        'J, 0
        .db        'T, 0
        .db        'A, 0
        .db        'G, 0
        .db        '-, 0
        .db        'I, 0
        .db        'F, 0

ソースコード自体はこれで変更終了です。

あとはコンパイルができればhex完成。

windowsでやれないか、かなりもがきましたが、
sdccは2.9.0にする必要があったり、
makeなどにも手を入れる必要があったりで
大して知識がない私には無理でした。
というわけで、素直にLINUXでやろうと
VirtualBoxにUbuntuをインストール。参考→
「ubuntsu_vbox_guestadd_install.7z」をダウンロード

Synapticパッケージマネージャで
SDCCと依存ファイルをインストール。
※このときサポート期間中のubuntuでないと
インストールができないので注意!参考→
「ubuntus_sdcc_install.7z」をダウンロード

これで環境ができたので
ソースコードを適当な位置で解凍、
c51ディレクトリ下のfx2ディレクトリで

make

を実行。さらに、c51ディレクトリで

make

を実行すればhexができます。

あとはAlteraのツールをインストールしておき
(インストールだけに一時間もかかった!)、
FX2をUSB接続、hexをダウンロード、
○○○-Blasterと認識されたら
Alteraのフォルダにあるドライバをインストール
します。
これでprogrammerを立ち上げ、
○○○-Blasterを選択すると書き込みの環境のできあがりです。
programmerはquartus\binにあるquartus_pgmw.exeを
実行したらすぐ立ち上がります。
※デバイスとFX2のポートの電圧が異なる場合は
抵抗分圧などであわせる必要があると思います。

| | コメント (0) | トラックバック (0)

« 2011年5月 | トップページ | 2011年10月 »