2012/09/18

FPGA入門 - Terasic DE0でシリアル通信(UART)

FPGAとPC間の通信インタフェースを考えたとき,比較的簡単に実装できそうなものとして,UARTによるシリアル通信が挙げられると思います. FPGAボードにD-sub9端子(COMポート)が実装されていれば,この端子とPC側のD-sub9端子をシリアルケーブル(クロスケーブル)で接続することで,RS-232準拠のシリアル通信が可能なはずです. しかし残念ながら,Terasic DE0にはD-sub9端子が実装されておらず,シリアル通信を行うためには一手間必要となります.

DE0のRS-232 Serial Port

DE0はD-sub9端子を備えていないものの,RS-232準拠のシリアル通信を行うために必要なICが実装されており,このICを経由してFPGAに接続されている各信号線を引き出すためのテストポイントが用意されています. ICはADM3202で,これはFPGAの入出力電圧とRS-232準拠の伝送信号電圧の相互変換を行う機能を持っています.

私は,ここにピンヘッダをはんだ付けしました.下の写真はピンヘッダ実装後のものです.


DE0のRS-232 Serial Port(テストポイント)
シリアルケーブルの作成

次に,ピンヘッダに接続するシリアルケーブルを作りました. フラットケーブルのFPGAボード側はQIコネクタ,PC側はD-sub9ピンコネクタ(メス)になっています. ほとんど考慮する必要はないかと思いますが,ノイズの影響を抑えるためにケーブルは短めとしました. このためケーブル長が足りない場合は,ストレートのシリアルケーブルもしくはUSB-シリアル変換ケーブルを接続する必要があります.


シリアルケーブルの配線図

シリアルケーブルのD-subシェル内部
完成

完成したシリアルケーブルをテストポイントに接続した様子です. VHDLでUARTを記述してシリアル通信が行えるかテストしてみましたが,正常に動作しました.


Serial Cable for Terasic DE0
製品紹介

0 件のコメント:

コメントを投稿