SSブログ

MACH445 JTAG書き込み [FPGA]

かなり前に調達していた1995製造のMACH445-15。
01mach445P1030182.jpg
AMDのJTG資料により25PDSUBコネクタのピン対応が分かったので、何かの付録のJTAG基板のパターンをほとんどカットし、バッファには手持ちのVHC244をシール基板に載せて利用。

10JTAG322.JPG20MACHjtag33.jpg30jtag2P1030184.jpg31jtagP1030183.jpg

MACH445をQFP100Pのピッチ変換基板に載せ評価基板を作った。
50MACH445test34.jpg
40pkg80.jpg

MACH445は20年前のCPLDで、AMDで開発され、後にVantisに移管された。その後はLatticeに移った様だが、最近のツールには、さすがにMACH445の名前はみつからなかった。手持ちのMACHPRO 1.1で書き込んでみた。MACHXLでデザインファイルをコンパイルしてJEDファイル作る。MACHPROのために JEDファイル名を記述したCHNファイルを作成し、MACHPROを起動する。

MACHWRT.CHN
60MACHchn31.jpg

MACHWRT.BAT
70machbat32.jpg

MACHPRO 1.1を動かすためにパラレルポート付きDOSマシンが必要である。ちょうどTHINKPAD535が押入れの奥にあったので、10年ぶりくらいに通電してみた。時計は狂っていたが、DOS7.0が立ち上がった。
81TP53585.jpg

TP535でMACHXLは立ち上がるが、MACHXLソースのコンパイル中にエラーコード無しで停止していまう。現用のWindows7上にDOSBox0.74をインストールしてDOSエミュレータ上でMACHXLを使い、JEDファイルを作った。
dosbox059.jpg
エディタでJEDファイル名記述したCHNとMACHPROを記述したBATファイルを作って、SD(2G)-PCカードアダプタ経由で、TP535にコピーする。16GのSDカードはDOSで認識できなかった。
71sdpc86.jpg

TP535のパラレルポートにケーブル経由で、JTAGアダプタと、MACH445評価基板を接続し、5V電源を接続する。
80jtagwrtP1030172.jpg
コマンドプロンプトからでも良いが、ファイルを探しにくいので、TP535で使っていたファイラー(MIEL)からMACHWRT.BATを実行する。
90miel1P1030171.jpg92mielwP1030173.jpg

MACHPRO 1.1が起動され、書き込みとべりファイが10秒程度でできる。
94mielwP1030174.jpg96JTAGWRT36.JPG

終了レポートが出るので、正常終了を確認して、5VをoffにしてJTAGを切り離す。今回は8ビットカウンタ5個と、8ビットレジスタ6個を入れたが、先にI/Oピンが一杯になってしまった。

MACH445に入れたカウンタとレジスタの等価回路
98MACHreg29.jpg

クロックからのFFoutまでのデレーが6nsくらいなので、TTLのLS並みと思うが、消費電流が33MHz動作で、5V350mAとかなり多い。
99b1delay5.jpg
8ビットカウンタの出力TC[0..6]
99MACH445CT37.JPG

簡単に書き込みが出来たが、パラレルポートのあるPCがあまりない。20年前のCPLDであっても、用途を限れば使えそうであるが、消費電流が多く使いにくい。未使用品があと数個あるが、何ができるかな。

参考:回路図PDF、PDS,JED



----------------------------------------------------------------------------

Xbox360 Xecuter Nand-X RGH Edition JTAG Kit v3

Xbox360 Xecuter Nand-X RGH Edition JTAG Kit v3

  • 出版社/メーカー: Xbox360周辺機器
  • メディア: Video Game



AMDのCPLD MACH445の開発ツール(DOS) [FPGA]

部品を整理していると、20年くらい前に調達していた1995年製造のMACH445-15が数個出てきた。評価の為変換基板に載せてみた。
01mach445P1030182.jpg02MACH445.jpg
MACH445はAMD製のJTAG書き込み可能な100ピンQFPのCPLDで、128マクロセルを持っている。今ではXilinxなどからより高速なCPLDが数百円で入手可能なので、時代の進化を感じる。MACHの開発ツールは、DOS上で動作するMACHXLがあった。今ではソフトのサポートは無いが、以下からダウンロードできる様である。400ページ近いソフトウエアガイドも付いている。PALASMの様な言語である。
00guide4.jpg

Download MACHXL 2.1 Software
http://noel.feld.cvut.cz/hw/amd/mxl21sw_.html

自分は、昔使っていたThinkpad535にMACHXL2.1が入っていたので、Windows7で動作するのDOSエミュレータDOSBOX-0.74の上で使った。
Thinkpad535では設定がまずいのか、MACHXLコンパイルは途中で停止してしまったが、JTAG書き込みは出来た。JTAG書き込みの紹介は後日。

DOSBOXを以下からダウンロードしてインストールする。
http://www.dosbox.com/
dosbox059.jpg

ドライブC にDOSデレクトリを作っておく。
C:\DOS

C:\DOS以下にMACH関連ツールをコピー。

C:\DOS
    \MACH
      \MACHXL
        \EXE
        \USR
        \EXSAMPLES
        \DATAFILE

USR以下にデザインファイルのソースを置く。コンパイル後にレポートファイルが沢山できるので、デザインファイル毎にデレクトリを作っておいた方が管理が楽である。

MACHXLのソースはPALの論理記述に使ったPALASMに似た言語であるが、階層記述や、回路図記述が出来ないので、簡単な回路でないとかなりめんどう。
試行として、\EXAMPLESの中にカウンタの例COUNTER.PDSがあるので、CHIPをMACH445に変更。ファイル名も適当に変えておく。

DOSBOX-0.74 Optionsを起動してdosbox-0.74.conf に以下追加し、仮想ドライブCのマウントとPATHを設定する。

------------------------------------
mount c c:\dos
c:
SET MACHXL=C:\MACH\MACHXL\
path=z:\;c:\bat;c:\bin;c:\tools
PATH = %PATH%;C:\MACH\MACHXL\EXE
cd c:\MACH\MACHXL\USR
-----------------------------------

key配列が違うので、DOSboxを起動して、よく使う記号(+-\など)をkeymapperで設定する。完全には直らないが、読み替えて使う。ソースの修正は主にWindowsから行うので、あまり問題にはならない。コマンドプロンプトからMACHXLを起動。
3dosbox1.jpg4dosbox2.jpg5machxl3.jpg

デザインファイルのある場所をカレントデレクトリに設定
6cwd24.jpg

Retrieve・・でデザインファイルを指定(FILE.PDS)
7retr5.jpg
RUN>Compilation、オプションを設定してf10押下
80opt7.jpg

エラー無ければ10秒くらいで完了メッセージ。PINの指定によってはMACHFITRに20分くらいかかる事もあった。
8a9run8.jpg
レポートファイルの中に、ピンやFFの使用量が書かれている。
8b10rpt9.jpg

JEDファイルが出来ている事を確認して、JEDファイル名を入れた書き込み用CHNファイルと書き込みプログラム起動BATを作成

MACHWRT.CHN
---------------------------------------------
; 08/29/2015: MACH445 counter
'COUNTER' MACH445 P 6 CNT6PIN.JED / -o Z -f MACHWRT.OUT;
---------------------------------------------

MACHWRT.BAT
----------------------------------------------
machpro -i MACHWRT.CHN -z 3
----------------------------------------------

書き込みの流れ
9amachpro40.jpg

machproのオペレーション
9bchncmd42.jpg

JEDを作る毎にCHNを書き換えるのが面倒になったので、JEDを指定してCHNとBATを作るツールを作った。JEDCHN.EXE
9cjedchn0.JPG
使い方:
JEDCHN.ZIPを適当なフォルダに解凍して出来たファイルJEDCHN.EXEをダブルクリック。画面上でJEDを指定すると、JEDのあるフォルダにコマンドに応じたCHNとBATができる。JEDCHNのアンインストールはファイル削除。レジストリは使っていない。

MACH445の書き込みはパラレルポートが必要なので、Thinkpad535の出番。

Thinkpad535のパラレルポートに書き込み器を接続。
JED,CHN,BATをSD-PCカードアダプタ経由で、ThinkPad535に移行し、BATを起動。書き込みは、簡単に終わった。 こちらの紹介は後日。

JEDCHN.ZIP(Windows)


----------------------------------------------------------------------------------------

FPGA ボードで学ぶ組込みシステム開発入門 ~Altera編~

FPGA ボードで学ぶ組込みシステム開発入門 ~Altera編~

  • 作者: 小林 優
  • 出版社/メーカー: 技術評論社
  • 発売日: 2011/09/22
  • メディア: 大型本






今日のジャンク:XC9572 [FPGA]

今日のジャンク
部品取りした後の基板をもらった。LSI LOGICのコントローラの様だ。コイルが割れているので、大きな力が加わったようだ。それでも使えそうな部品が残っている。
pci241.jpg

XC9572TQG100:XilinxのCPLD
TA550
DS276:RS232Cドライバ
JS28F320:32MビットFlash

しばらく使っていなかったSMD取り外しキットを使ってXC9572を取り外した。XC9572は、かなり熱くなったので、心配したが、JTAGkey_cloneから簡単なデータの書き込みはできた。このクラスのCPLDは数百円で入手できるので、取り外して再利用することは、価格的には割に合わないことは分かっているが、面白い部品が乗っている基板を見るとわくわくしてしまう。 
このまま廃棄するのは、可哀想。何に使おうか。 とりあえず、外したICを、変換基板に乗せて動作確認ができた。 


基板:XC9572が実装されている
xlinx242.jpg

SMD取り外しキット
smd5.jpgsmd6.jpg

JTAG:
JTAG34.jpg

Initialize
init9.JPG

Blank chk:何か入っている。
blank.JPG

read:読んでみた。
read7.JPG

program
prog13.JPG

ISE9.1 

JTAGkey cloneもどき(FT2232D) [FPGA]

JTAGkey cloneもどき(FT2232D)

XilinxのCPLDをいじって見たくなったが、すでにパラレルポートが使えるPCが無く、USB経由でできるものを探した。AmontecからJTAGKeyが出ており、そのcloneの製作例もあった。なぜか大昔に調達したFT2232D、変換基板はあったが、6Mhzの水晶とレベル変換ICが無い。12MHzの水晶はあったので、分周して6MHzにする。レベル変換は74VHC244があったのでこれで代用。自分のtarget電圧は2.5Vと3.3Vに限定するので、何とかなりそう。部品を秋月のユニバーサルに乗せて、半田付け終了。回路図には無いが、CMOSの未使用入力ピンはGNDに接続してある。秋月からFT2232Dの実装されたモジュールが最近では1450円であるので、部品調達、組み立て手間を考えると購入した方が安いかもしれない。自分は昔購入したストック品消費のため、部品を組み立てた。
できたらレベル変換は74LVC2G125や、74LVC2T45にしたかったが、少量では送料の方が
高価なため、入手できなかった。   実験基板に実装した為、余計な部品が乗っている。

jtag00.jpgjtag02.jpg
目的はcblsrvを使ってiMPACTからコンフィグすること。
組み立て完成後、FTDI社のMProを使ってEEPROMに設定を書き込む。結局ねむいさんのところに設定ファイルとドライバがあったので利用させてもらった。
MProg.JPG

cblsrvhはcblsrv-0.1_ft2232_r4804を使った。

毎回入力は面倒なので、1行バッジファイルを作ってcblsrv.exeのあるデイレクトリに入れショートカットをデイスクトップに置く。

---------------
cblsrv.exe -c amontec -p 50000

iMPACTを起動し、Cable Setup,Initialize Cainまではうまくいくが、その後はすべて
のコマンドでエラーとなる。DeviceIDが先頭ビットを除いてall'1'になっている。
ISE9.1からISE13.1に切り替えてもだめで、しばらくあきらめていたが、デバイスドライバの設定で、VCPにチェックをいれてOKになった。ばんざい。VCPでは無いはずだが、ふしぎ。 それでもISE13.1では使えない。
dev.JPG
iMpact.JPG
確認環境
Xp sp3
ISE9.1
cblsrv:r4804
device:XC9572XL
jtag78.jpg

参考
ねむいさん EEPROM:http://nemuisan.blog.bai.ne.jp/?eid=155027
fenrirさん:http://fenrir.naruoka.org/archives/000644.html
製作   :http://www.koka-in.org/~kensyu/handicraft/diary/20080926.html




この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。