MPSSE-JTAGの作り方
MPSSEとはMulti-Protocol Synchronous Serial Engineの略で、FTDI社のUSB-UART変換ICに付いている汎用のUSB-シリアル変換機能のことです。
UART、SPI、I2Cなどの汎用のUSB-シリアル変換を行う機能です。その中にJTAGもあるので、それを使ってUSB-JTAG変換ケーブルを作ります。
準備
対応デバイス
MPSSE-JTAGに対応しているデバイスは、
FTDI社のFT232H、FT2232D、FT2232H、FT4232Hです。
FT232B、FT232R、FT230X、FT234X、FT60Xでは使用できませんのでご注意ください。
EEPROM
MPSSEを使用するにはFTDIデバイスにEEPROMの接続が必須となります。EEPROMがなければソフトウェアでどんなに設定してもMPSSEモードになることができません。
※EEPROMなしでもMPSSEとして動作できすることを確認しました。(2025/5/14)
対応しているEEPROMは、93LC56Bです。93AA56Bも可能ですが、93LC56Aや93AA56Aは不可です。末尾についているBというのは16bitタイプを表すもので、FTDIデバイスのEEPROMは必ず16bitのBタイプである必要があります。必ずBタイプを使用してください。
※AT93LC46ENも使えた
※LCとAAは電圧の違いなので本質的な違いではない
対応する基板
秋月電子のFT2232D基板(EEPROM付)や、FT232H基板をご利用いただけます。後者はAdafruitという海外Makerの間で有名なボードです。
写真1 Adafruit FT232H基板を使って作るMPSSE-JTAG
このページではMPSSEケーブルを自作する方法について解説していきます。
基板の配線
MPSSEモードを使うには、ADBUS0にTCKを、ADBUS1にTDIを、ADBUS2にTDOを、ADBUS3にTMSを接続します。ADBUS0~3はMPSSEによってハードウェア的に動作するのでこの割り当ては決まっています。
FT2232D/FT2232HはポートAとポートBがあり、BDBUSを使うこともできます。FT4232HはポートA~Dがあるので、CDBUS、DDBUSを使うこともできます。
図1 MPSSEのピン割り当て
TRSTやCPUリセットを使いたい場合は、ADBUS4~7、ACBUS0~7のいずれかのピンに接続してください。MITOUJTAGの中からソフトウェア的に操作します。
レベル変換
FTDIデバイスのVCCIOは3.3V固定(2.97V~3.63V)なので、ターゲットとなるFPGAやCPUが
2.5Vや1.8Vのデバイスである場合はレベル変換が必要になります。
図2 MPSSEのレベル変換
基本的に上記の4本の配線を接続するだけでよいのですが、必要に応じてレベル変換を行ってください。
EEPROMへの書き込み
EEPROMに書き込むにはFT_Progというツールを使います。
(書き込まなくても動作します。)
FT_ProgはFTDI社のページ https://ftdichip.com/utilities/ からダウンロードしてください。
図3 FT_Progのダウンロードリンク
FT_Progを起動してSCANボタンを押すと、以下のような画面になります。
図4 FT_Progの起動画面
Product DescやManufacture Descは任意の文字に書き換えて構いませんが、ベンダIDとプロダクトIDは変更しないほうがよいでしょう。
図5 Descriptionを書き換え
画面左のHardware Specificツリーを展開したらPort AのHardwareを開き、245 FIFOを選択してください。(デフォルトはRS232 UARTになっている)
図6 245FIFOの選択
それから書き込みボタンを押し、Programボタンを押せば完了です。
図7 EEPROMへのプログラム
MPSSE-JTAGボードを作ります
特殊電子回路では、安価でシンプルなMPSSE-JTAGボードを開発中です。
実装済み基板と簡易ケース、ALTERA10pinフラットケーブル、9pinフライリードケーブル、XILINX 14ピンリボンケーブルをセットにして、ほぼ原価である10000円程度で発売できるように開発を行っています。
図8 開発中のMPSSE-JTAGボード
次の図に回路図を示します。お客様がご自身でMPSSE-JTAGケーブルを作成する際にご利用ください。
図9 回路図(クリックでPDFが開く)