HobNote
FT2232D USB-シリアル2ch変換モジュール関係[02]
since 2011.01.28
last update 2011.02.12



simple.c(examples)でFT2232D

examplesディレクトリのsimples.cは、そのままでは、FT2232Dには使えない。
で、以下のところを変えてsimple2232d.cとでもしておく
でコンパイル FT2232D USB-シリアル2ch変換モジュールを接続して実行してみる ftdi_read_chipidの0は、 ftdi_read_chipid()関数の戻り値。0なら正常。
FTDI chipidの5A0F082EはFTDIChip-ID?

今回、FT2232D USB-シリアル2ch変換モジュールを2つ購入してたので2つを各々接続&実行してみたが同じ値だった。
FTDIのWebSiteのFTDIChip-ID™ Projectsって項のことだとすると製品毎の値?のようだ。



bitbang.c(examples)でFT2232D

examplesディレクトリのbitbang.cも、そのままでは、FT2232Dには使えない。
で、以下のところを変えてbitbang2232d.cとでもしておく
でコンパイル FT2232D USB-シリアル2ch変換モジュールを接続して実行してみる。

すると、コンソール上は、以下のような感じで1secごとに1byteずつ出力される。
これが、モジュールのCN2側の33pin(AD7)〜40pin(AD0)を0V/5Vでasync BitBangしているようだ。
この辺りの動作は、(ADx)-LED-(1k〜2kΩ)-GNDを付けてみれば動作がわかりやすい。
※流せる電流は、絶対最大定格で24mA程度のようであり
  TX/RX用のLED駆動専用各pin以外は、あまり流さないほうがよさそう
  なので抵抗は、大きめにしてあまり電流を流さないようにしたほうがいい。
  まぁ、確認程度に使う分にはそれでいいじゃないだろうか



FT2232Dのシリアル通信Loop backテスト

このモジュールでブレッドボードを使って232 UART ModeでのLoopBackテストをやってみる。

基本的には、TXD-RXD間、RTS#-CTS#間、DTR#-DSR#間を接続して232 UART Modeでwrite/read
すればいいが、今回exampleにあるserial_read.cをちょこっと変えてテストしてみたので
一回プログラムを実行した後次に実行する前にリセットかけないと認識してくれなかったので
下の写真のようにリセットも有効になるようにした。
※今回の場合、RTS#-CTS#間、DTR#-DSR#間は繋げなくていいかも
プログラムは、
exampleのserial_read.cに対し、 その後、 でコンパイル
PCに接続して実行してみる。
入力したabcをwriteで書き込んだ後すぐreadをポーリング状態に
しているので最初の2回は、まだLoopBackで戻ってきてない状態で
3回目のreadで入力した文字が戻ってきたことがわかる。
また、ASCIIコードでは、'a'=0x61、'b'=0x62、'c'=0x63、'\0'=0x00であるから
RS232Cは、LSB Fastであることより
でオシロで波形をとってみると
で、
0 1000 0110 1 0 0100 0110 1 0 1100 0110 1 0 0000 0000 1...
のように読める。
(ここでstar bit=0,stop bit=1であるので)
ということは、この通信設定は、
ということになる。