2012/09/20

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

前回の記事では,Terasic DE0上のRS-232 Serial Portと自作シリアルケーブルによってシリアル通信を実現しました. しかし,RS-232準拠のシリアル通信に使用するD-sub9端子(COMポート)は既にレガシーインタフェースであり,PCに標準搭載されることも稀となっています.

この代替として使用されるのがUSB-シリアル変換ケーブルやUSB-シリアル変換モジュールです. これらのデバイスはPCに仮想的なCOMポートとして認識され,アプリケーションからは従来のシリアル通信と同様に制御することができます. 前者のUSB-シリアル変換ケーブルを使えば,シリアルケーブルやデバイスのD-sub9端子をPCのUSB端子に接続できます. USB-シリアル変換ケーブルは家電量販店でも販売されており,入手は簡単です. 後者のUSB-シリアル変換モジュールはマイコンなどから直接入出力可能な5.0Vや3.3Vなどの信号電圧に対応しているものが多く,自作電子回路などで仮想COMポートを使用したシリアル通信を実装したいときに便利です. 各社からさまざまな製品が発売されており,電子部品店などで入手できます.

DE0のGPIOの電源電圧(VCCIO)は3.3Vです. 今回はUSB-シリアル変換モジュールを用いてシリアル通信を実装してみました.

USB-シリアル変換モジュール

USB-シリアル変換モジュールに採用されているICは2種類に大別できると思います. 1つはFTDI社のFT232シリーズで,もう1つはSilicon Laboratories社のCP210Xシリーズです. どちらも基本的な機能は同様ですので,細かな仕様の違いのほか,モジュールの寸法,各コネクタ形状や価格などを総合的に比較して製品を選択すると良いでしょう. DE0と接続する場合,3.3Vの信号電圧に対応している必要があります.

私は,Strawberry Linux社から発売されているUSB-シリアル変換モジュール FT232RXを採用しました. このモジュールにはFTDI社のFT232RLが搭載されています.

下の写真は,モジュールのキットを組み立てた状態です. キットにはICと周辺部品が実装済みのプリント基板,USB Type-B端子および2x10ピンヘッダが付属しています. これらをはんだ付けすることで,モジュールが完成します. ここでは,VCCIOの電圧を簡単に切り替えできるように1x3ピンヘッダとジャンパを別途取り付けています. これらの部品がなくても動作しますが,後々他の回路で使いまわす可能性があるなら実装しておいて損はないと思います.


Strawberry Linux社 USB-シリアル変換モジュール FT232RX
DE0と接続する
USB-シリアル変換モジュールを用意したら,後は簡単です. フロー制御を行わず,モジュールへの電源供給にUSBバスパワーを使用する場合は,RXD,TXDおよびGNDの合計3本の信号線のみ結線すればOKです. RXDとTXDはGPIOの適当な入出力端子にアサインします.

これで,PCがD-sub9端子を搭載していない場合でも,UARTによるシリアル通信を仮想COMポートを使用して実現することができます.


DE0とFT232RX

0 件のコメント:

コメントを投稿