TE0790とは
TrenzElectronic社からTE0790というUSB-JTAGモジュールが発売されています。
TE0790はFT2232Hを使ったUSB-JTAGとUSB-UARTを備えた切手サイズのモジュールで、XILINXのVivadoからはDigilent互換のUSB-JTAGとして認識されます。TrenzElectronic社がDigilent社と提携していてXILINXのライセンスが提供されているからそのようなことができます。
FT2232Hの裏にはLatticeのCPLDがレベルバッファ用に載っていて、実はすごい実装密度なのです。
TE0790の型番
TE0790にはTE0790-02やTE0790-03Lなどいくつかの型番がありますが、02と03は基本的には基板のバージョンの違いなので大きな差はありません。現在では02版は絶版になっているので入手可能なのは03のみです。
したがって、TE0790-03かTE0790-03Lかを選ぶことになりますが、Lが付く方は少しだけ価格は安い分、Digilent互換ではないので、Vivadoから認識されません。
XILINXユーザであればTE0790-03以外の選択肢はないと言えるでしょう。
TE0790の使い方
TE0790 pinout
さて使い方ですが、この12ピンのコネクタは2.54mmピッチでXILINXの14pin JTAGとの互換性はありません。
ピン配置は下の図のようになっています。
実際には裏返して使うことになるので、裏面のピン配置のほうが重要かもしれません。
TE0790 switch & LED
UART RX、UART TXはUARTの通信が行われたときに点灯します。ユーザLEDは、標準のCPLDファームウェアではプッシュスイッチが押されたときに点灯します。プッシュスイッチにもユーザLEDにも特に機能はありません。
DIPスイッチは、左から4,3,2,1という番号になっていて、下下上下にします。これでS2-4=ON、S2-3=ON、S2-2=OFF、S2-1=ONになります。
- S2-1(↓)・・・ONならば通常モード(必須)。OFFならばCPLD書き換えモード。
- S2-2(↑)・・・必ずOFFにすること(必須)
- S2-3(↓)・・・ONならばUser I/O電源(VIO)を3.3Vに接続する。OFFならばVIOはピンヘッダから供給する。
- S2-4(↓)・・・ONならばUSBバスパワーから3.3Vを給電する。OFFならば3.3Vはピンヘッダから供給する。
つまり、S2-3で、このUSB-JTAGのメインの3.3V電源をUSBから供給するかピンヘッダから供給するかを選びます。
S2-3をONにしているとピンヘッダの3.3VからターゲットFPGAボードへ電流が逆流するのでご注意ください。このボードの電源は300mAの容量しかないので、TE0790をUSB電源ボードとして利用するのは難しいでしょう。
VIOはI/O電源でJTAG信号やUARTの信号の電圧振幅ですが、S2-4でこれを3.3Vにするかユーザが設定するかを選びます。設定範囲は1.14V~3.6Vです。この選択ができるので、1.5Vの電源電圧対応ICのJTAGにも接続することができるというわけです。
実際に使ってみた
当社のSpartan-7ボードと一緒に万能基板に乗せた場合のようすです。
このように裏返して実装します。引っこ抜けるのが心配であればねじ穴を使って固定します。
この設定ではメインのFPGA基板から3.3VをもらわずにUSBバスパワーで動作します。しかしVIOと3.3Vがつながっているので結果的には3.3Vは全部つながってしまうのですけどね。
なお、TCK速度は15.15MHz(66ns)でした。
Digilent互換なので、Vivadoからもつながります。
UARTもつないでいるので、MicroBlazeを入れたシステムなどでTeraTermを使ってprintfを表示できます。
使用上の注意(これをやるとライセンスが消える!)
最後に大事なことを。
TE0790は、FTDI社のプログラミングツールを使ってFT2232HのEEPROMにアクセスしてはいけません。もし、アクセスすると通常は見えない領域に書かれたXILINXのJTAGライセンスが消去されて無効になってしまうからです。このときFTDIのツールは警告を発しません。
購入方法
TE0790-03は、日本の代理店から即納で購入できます。
https://www.trenz.jp/product/TE0790-03