USBブラスター的なものを自作する計画。
POFの書き込みだけならマイコンボードで実現できそうですが、デバッグ使うSignalTapまで考えるとUSBブラスターが欲しくなります。
USBブラスターの自作で検索すると、FTDI製のUSB-232C変換ICであるFT245Bと、FPGAかCPLDで実現したという記事が出てきます。僕もこれと同じ構成で作ってみます。
さらに最近はPICやARMで製作された方のページもあって、皆さますごいなぁと思いながら読んでいます。
目次
- 1. 構成
- 2. FTDI製品情報
- 3. 違いを比較
- 3-1. USB2.0, USB1.1
- 3-2. Single, Dual, Quad
- 3-3. UART, FIFO, SPI/I2C
- 4. MPROG
構成
FPGA/CPLD
使用するFPGAかCPLDは、手元にある2つ有力候補。
- AlteraのMAX5 評価ボード
- XilinxのPYNQ
USBブラスター機能が含まれた評価ボードじゃないとプログラムを書き込めない。まさに卵が先か鶏が先か状態。
USB変換IC
もう1つの主要部品、USB変換のFTDI製ICを手しないといけない。
ネットで検索するとFT245BよりもFT245Rのほうがよくヒットする。ほかにもHとかXとか2とか。
http://akizukidenshi.com/catalog/g/gK-01977/
例えば秋月のコレ。232と245どっちがいいの?出力はTTL(CMOS)レベルなので5 V?
ほかにも、
http://akizukidenshi.com/catalog/g/gM-08461/
http://akizukidenshi.com/catalog/g/gK-06894/
いろいろ出てくるので、類似製品はどんなものか、そして代替可能なのかをまとめます。気になるところはこちらです。
- FPGAと接続する側のバス幅と電圧
- IDなどを書き換えてUSBブラスターとして認識させられるかどうか
また最後に、ID等を書き換えるMPROGに言及します。
FTDI製品情報
まずはメーカーの製品ページで情報を確認。
USB RS232 – FTDI designs and supplies USB semiconductor devices with Legacy support including royalty-free drivers. Application areas include USB RS232, ( USB Serial ), USB Parallel, USB Docking Stations, and upgrades of Legacy designs to USB.
関係ありそうな製品をピックアップするとこんなところです。わかる人にとってはこれがもう回答かもしれません。
FT Series ICs – USB Slave Converter
型番 | 内容 | |
---|---|---|
FT232H | Single Channel Hi-Speed USB to Multipurpose UART/FIFO IC | - |
FT2332H | Hi-Speed USB 2.0 – Dual UART/FIFO Converter | - |
FT4232H | Hi-Speed USB 2.0 – Quad UART Converter | - |
FT4222H | Hi-Speed USB to SPI/I2C Bridge | - |
FT232R | Single USB 2.0 to Serial UART Converter IC | - |
FT245R | Signal USB 2.0 to FIFO Converter IC | - |
FT2232D/C/L | Dual USB UART/FIFO IC | - |
FT232B | Single USB to UART Converter ICs | - |
FT245B | Single USB to FIFO Converter ICs | - |
FT8U232AM | USB 1.1 to UART IC | Discontinued |
FT8U245AM | USB 1.1 to FIFO IC | Discontinued |
FT8U100AX | Multi-Function USB 1.1 Hub Controller IC | Discontinued |
(赤字は製造中止品、青字は今回の候補品)
違いは、↓のようなところと考えました。軽く考察してみます。
- USB2.0 or USB1.1
- Single, Dual, or Quad
- UART, FIFO, or SPI/I2C
違いを比較
USB2.0, USB1.1
USBのバージョンの違いです。今回の目的に対してハードウェア視点でコメントすると「大差なし」です。USBバージョン互換性があるし、コネクタも共通なのでどちらでも大丈夫そうです。
一応、よく見かける(?)違いを挙げときます。
- USB2.0: 最大転送速度の理論値が480 Mbps (Hi-Speed)
- USB1.1: 最大転送速度の理論値が12 Mbps (Full-Speed)
今回の用途であるUSBブラスターでは、この部分の転送速度に関しては大差ないと思います。速いに越したことはないけど。
Single, Dual, Quad
USBのチャンネル数の違いです。
- Single: 1チャンネル
- Dual: 2チャンネル
- Quad: 4チャンネル
UART, FIFO, SPI/I2C
組み込み機器側のインターフェースです。
UART
UART版は、組み込み機器側との接続がRS-232Cシリアル(TX/RX)となります。後段ICとUART(RS-232C)で接続する場合に選択します。
WikipediaのUARTの説明はこちらです。
UART (Universal Asynchronous Receiver/Transmitter, ユーアート) は、調歩同期方式によるシリアル信号をパラレル信号に変換したり、その逆方向の変換を行うための集積回路である。
FTDI製ICでは


FIFO
組み込み機器側がパラレルのバスとなっているデバイスです。今回はこれが適合します。
FT245Rの場合は、FIFOで送受信バッファが用意されています。
- 128 byte 送信バッファ
- 256 byte 受信バッファ
インターフェースは(ブロック図をによると)、
- 8bitのデータバス
- FIFOの制御信号
で構成されています。
FT245Rのデータシートの記載はこうです。
Single chip USB to parallel FIFO bidirectional data transfer interface.
FTDI製ICのブロックは


SPIとI2C
FT2442Hのデータシートからブロック図の抜粋です。

Quad SPIとI2CとGPIOがついているようです。内容は必要なときに検討することにします。
MPROG
MPROGは、FTDI製ICのEEPROM内を書き換えるメーカーの公式ツールです。
MProg supersedes the FTD2XXST utility and is the current EEPROM programming utility from FTDI.
今回使うべきデバイスの選択(FT245RかFT245B)にあたって、このツールが対応できていることが条件になります。どちらも対応されているとは思っていますが。
コメントを残す