FTDI製 USB変換IC 【自作USBブラスター】

USBブラスター的なものを自作する計画。

POFの書き込みだけならマイコンボードで実現できそうですが、デバッグ使うSignalTapまで考えるとUSBブラスターが欲しくなります。

USBブラスターの自作で検索すると、FTDI製のUSB-232C変換ICであるFT245Bと、FPGAかCPLDで実現したという記事が出てきます。僕もこれと同じ構成で作ってみます。

さらに最近はPICやARMで製作された方のページもあって、皆さますごいなぁと思いながら読んでいます。

構成

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製品情報

まずはメーカーの製品ページで情報を確認。

FTDI Products

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

型番内容
FT232HSingle Channel Hi-Speed USB to Multipurpose UART/FIFO IC
FT2332HHi-Speed USB 2.0 – Dual UART/FIFO Converter
FT4232HHi-Speed USB 2.0 – Quad UART Converter
FT4222HHi-Speed USB to SPI/I2C Bridge
FT232RSingle USB 2.0 to Serial UART Converter IC
FT245RSignal USB 2.0 to FIFO Converter IC
FT2232D/C/LDual USB UART/FIFO IC
FT232BSingle USB to UART Converter ICs
FT245BSingle USB to FIFO Converter ICs
FT8U232AMUSB 1.1 to UART ICDiscontinued
FT8U245AMUSB 1.1 to FIFO ICDiscontinued
FT8U100AXMulti-Function USB 1.1 Hub Controller ICDiscontinued

(赤字は製造中止品、青字は今回の候補品)

違いは、↓のようなところと考えました。軽く考察してみます。

  • 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では
FT232R ブロック図
FT232R ブロック図
FT232R 回路シンボル
FT232R 回路シンボル

FIFO

組み込み機器側がパラレルのバスとなっているデバイスです。今回はこれが適合します。

FT245Rの場合は、FIFOで送受信バッファが用意されています。

  • 128 byte 送信バッファ
  • 256 byte 受信バッファ

インターフェースは(ブロック図をによると)、

  • 8bitのデータバス
  • FIFOの制御信号

で構成されています。

FT245Rのデータシートの記載はこうです。

Single chip USB to parallel FIFO bidirectional data transfer interface.

FTDI製ICのブロックは
FT245R ブロック図
FT245R ブロック図
FT245R 回路シンボル
FT245R 回路シンボル

SPIとI2C

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

FT2442H ブロック図
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)にあたって、このツールが対応できていることが条件になります。どちらも対応されているとは思っていますが。

スポンサーリンク