iCEstick Evaluation KitをUSBシリアル・アダプタとして使う

ずいぶん前に、iCEstickという評価キットを入手しました。Lattice社製のiCE40というFPGAが搭載されている、USBポート直結で使える小型のFPGA評価キットです。何に使おうかとずっと悩んでいたのですが、3.3VのUSBシリアルが必要になったときに、iCEstickを思い出しました。Raspberry PIなどの小型コンピュータでは、ピン・ヘッダにターミナル用のUARTが接続できます。しかし、このピン・ヘッダにPC用のUSBシリアル・ケーブルは直接接続できません。一般的には、FTDIのICなどを使ってレベルを変換してから接続する必要があります。今回はICEstickをFTDI-USBシリアル変換ケーブル(アダプタ)として代用しました。

iCEstick Evaluation Kit

iCEstick Evaluation Kit

SDカードとの大きさの比較

SDカードとの大きさの比較

iCEstick Evaluation Kitについて

IrDAトランシーバーと、Pmodコネクタが搭載されているのが特徴です。また、USBとiCE40HX1Kの間にはFTDI 2232Hが接続されています。これを使えば、USBシリアルとして動作させることができます。

全体の接続

iCEstickとRaspberry PIの接続は次のとおりです。接続は、TX,RX,GNDの3本です。Raspberry PI側GPIOのTXとRXは専用ピンです。iCEstick側Pmodの接続端子は、FPGAの設定次第です。この例ではPmodの1番ピンをTX、2番ピンをRXとしています。

iCEstickとRaspberry PIの接続

iCEstickとRaspberry PIの接続

iCEcube2をつかったbitstreamの作成

HDLファイル

iCEstickに搭載されているFTDIのTXとRXを、Pmodコネクタから出力します。一言でいえば、FPGAをバイパスしているだけです。それだけでは寂しいので、デバッグ用としてサンプリングしたシリアル信号をLEDに出力しています(機能的には不要)。

iCEcube2でbitstream作成

iCE40の開発ツールは、Lattice Diamondではなく、iCEcube2です。Lattice Diamondに比べると、GUIが非常にシンプルです。論理合成にSymplifyが使われている点は、Lattice Diamondと同じです。

iCEcube2のGUI

iCEcube2のGUI

iCEcube2の使い方やプロジェクト・データの作成方法は、”iCEstick Evaluation Kit User’s Guide”というpdfとサンプル見れば一応なんとかなります。というよりも、それ以外に情報があまり見当たりません。基本的には、次の順番で処理を実行すると、FPGAに書き込むbitstreamデータが生成されます。

  1. Synthesis Tool->Run Synplify Pro Synthesis
  2. P&R Flow->Import P&R Input Files
  3. P&R Flow->Run Placer
  4. P&R Flow->Run Router
  5. P&R Flow->Generate Bitmap

FPGAのリソース使用率は次のとおりです。バイパスしているだけなので、FPGAのリソースはほとんど使っていません。

ピンアサインについて

“iCEstick Evaluation Kit User’s Guide”というpdfに記載されているボードの回路図を見ると、Pmodのピンアサインがわかります。実際に使用した設定は次のとおりです。

bitstreamの書き込み

bitstreamのプログラムはDiamond Programmerで行います。Diamond Programmerは、(iCEcube2ではなく)Lattice Diamondに含まれています。iCECube2ではiCE40HX1Kをプログラムできないようです。Diamond Programmerの具体的な設定方法は、”iCEstick Evaluation Kit User’s Guide”に詳しく手順が記載されています。

Diamond Programmer

Diamond Programmer

動作確認

Raspberry PIのGPIOとiCEstickのPmodをワイヤーで接続します。

Raspberry PIと接続

Raspberry PIと接続

Tera Termなどのターミナル・ソフトを起動します。iCEstickは、”USB Serial Port”として認識されるので、ボーレート115200で接続します。この状態でRaspberry PIに電源を投入すると、起動ログが表示されます。

Raspberry PIの起動ログ

Raspberry PIの起動ログ

まとめ

USBシリアルとして、問題なく動作しました(正確にはiCE40をバイパスしてFTDIを使っているだけですが。。)

スポンサーリンク







  • このエントリーをはてなブックマークに追加
スポンサーリンク