FTDI社のUSB-UART変換ICには(MPSSEとはMulti-Protocol Synchronous Serial Engine)というUART、SPI、I2Cなどの汎用のUSB-シリアル変換機能機能が付いているものがあります。
汎用シリアルの中にJTAGもあるので、それを使うとUSB-JTAG変換ケーブルを作ることができます。
準備
まず、MPSSE-JTAGに対応しているデバイスは、
- FT232H、FT2232D、FT2232H、FT4232H
です。
- FT232B、FT232R、FT230X、FT234X、FT60X
では使用できませんのでご注意ください。
EEPROM
MPSSEを使用するにはFTDIデバイスにEEPROMを外付けする必要があります。
(EEPROMがなければソフトウェアでどんなに設定してもMPSSEモードになることができないと思っていたのですが、できるという報告もあり、本当はどっちなのかはわかりません)
対応しているEEPROMは、93LC56Bです。
93AA56Bも可能ですが、93LC56Aや93AA56Aは不可です。
末尾についているBというのは16bitタイプを表すもので、FTDIデバイスのEEPROMは必ず16bitのBタイプである必要があります。
必ずBタイプを使用してください。
FTDIチップが乗った基板を用意する
例えば、秋月電子のFT2232D基板(EEPROM付)や、FT232H基板がご利用いただけます。
後者はAdafruitという海外Makerの間で有名なボードです。

基板の配線
MPSSEモードを使うには、ADBUS0にTCKを、ADBUS1にTDIを、ADBUS2にTDOを、ADBUS3にTMSを接続します。ADBUS0~3はMPSSEによってハードウェア的に動作するのでこの割り当ては決まっています。
FT2232D/FT2232HはポートAとポートBがあり、BDBUSを使うこともできます。FT4232HはポートA~Dがあるので、CDBUS、DDBUSを使うこともできます。
TRSTやCPUリセットを使いたい場合は、ADBUS4~7、ACBUS0~7のいずれかのピンに接続してください。MITOUJTAGの中からソフトウェア的に操作します。

レベル変換をしたい場合
TDIデバイスのVCCIOは3.3V固定(2.97V~3.63V)ですが、昨今のFPGAやCPUではJTAGが2.5Vや1.8Vのデバイスも多くなっています。
そのような場合はレベル変換が必要になります。
EEPROMへの書き込み
EEPROMに書き込むにはFT_Progというツールを使います。
FT_ProgはFTDI社のページ https://ftdichip.com/utilities/ からダウンロードしてください。

FT_Progを起動してSCANボタンを押すと、以下のような画面になります。

Product DescやManufacture Descは任意の文字に書き換えて構いませんが、ベンダIDとプロダクトIDは変更しないほうがよいでしょう。

画面左のHardware Specificツリーを展開したらPort AのHardwareを開き、245 FIFOを選択してください。(デフォルトはRS232 UARTになっている)

それから書き込みボタンを押し、Programボタンを押せば完了です。

最近のコメント