日記/2018-12-31/FT232 シリーズの synchronous bit-bang モード
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
] [
リンク元
]
開始行:
* FT232 シリーズの synchronous bit-bang モード [#se38c80d]
FTDI 社の FT232 シリーズには,USB - UART 変換だけでなく G...
この FT232 シリーズの synchronous bit-bang について見てみ...
** synchronous bit-bang とは [#z53f426d]
[[Application Note AN_232R-01 Bit Bang Mode Availability ...
- 内部ボーレートクロックに同期してビットデータを送受信
- 受信データは送信データに同期してサンプルする
-- ただし,受信データサンプル → 送信データ送出 の順番で処...
と''いうことになっています''.
** ホスト環境 [#k555b6b6]
- debian testing(buster)
-- Linux kernel 4.18.0
- libftdi 0.20-4
通信ライブラリは,FTDI 純正の D2XX ではなく libftdi を,...
このテストプログラムは
>0x00 0xff 0x00 0xff ...
というシーケンスを送信します.
つまり,1サンプルごとに出力ポートから L → H → L → ... を...
** FT232RL (おそらく偽物) [#w55c13cc]
#ref(IMG_20181226_012234.jpg,center,10%)
まず最初は,よく見かける中国製の FT232RL 基板.
価格も安かったので,おそらくは FT232RL の偽物を使用してい...
この基板をホスト PC に接続し,コマンドラインからテストコ...
$ ./baud_test -m s -b 10000 -c 128
real baudrate used: 10000
this test should take 10.00 seconds
and took 41.4536 seconds, this is 2412 baud or factor 0....
で,FT232RL の TxD ピンをオシロで見ると,以下のような波形...
#ref(IMG_20181227_030102.jpg,center,10%)
…何じゃこりゃ.
画面の時間軸(横軸)1マス分が 100 μs = 1/10000[bps] にな...
描画ごとに輝線を消さない persist モードで観測してみると
#ref(IMG_20181227_030202.jpg,center,10%)
このようになりました.
信号の変わり目は 100 μs の倍数にはなっていることがわかり...
また,テストコマンドの実行結果出力では factor 0.241 と出...
データ出力が滞っているためでしょう.
** FT2232D [#qfb50fa5]
#ref(IMG_20181226_012353.jpg,center,10%)
#ref(IMG_20181226_012604.jpg,center,10%)
次は[[Olimex 社の ARM-USB-TINY>https://www.olimex.com/Pro...
内部で FT2232D を使用しています.
FT2232D の偽物が出回っているという話は聞かないので,これ...
で,同様にコマンドを実行.
$ ./baud_test -p i:0x15ba:0x0004 -m s -b 10000 -c 128
real baudrate used: 10000
this test should take 10.00 seconds
and took 39.7634 seconds, this is 2515 baud or factor 0....
出力波形と persist 表示.
#ref(IMG_20181229_023659.jpg,center,10%)
#ref(IMG_20181229_023812.jpg,center,10%)
FT232RL(偽)と同様に 100μs ごとの不定間隔で出力されてい...
ホンモノでも同じ動きをするんだなぁ.
** FT2232H [#ea3d72e6]
#ref(IMG_20181226_012330.jpg,center,10%)
最後に FT2232H.
USB 2.0 high speed (480Mbps) で UART が2回路入りのもので...
FTDI 社から出ている [[FT2232H-56Q>https://www.ftdichip.co...
これもおそらく本物でしょう.
コマンドラインからテストプログラムを実行します.
$ ./baud_test -p i:0x0403:0x6010 -m s -b 10000 -c 128
real baudrate used: 10000
this test should take 10.00 seconds
and took 7.7110 seconds, this is 12969 baud or factor 1....
出力波形はこちら.
#ref(IMG_20181229_030516.jpg,center,10%)
今度は H → L → H → … と規則正しく出力されています.
が,よく見ると出力間隔が若干短いような.
画面上では 12820 bps と読めます.
テストプログラムの実行結果でも出力速度が 1.297 倍とありま...
FT2232H 側の問題なのか libftdi 側の問題なのかは不明.
** 考察とまとめ [#f7aaf058]
*** 機能 [#r380d1c7]
USB full speed (12Mbps) 系のデバイス (FT232RL, FT2232D) ...
UART のように受信側でタイミングを取るインターフェースの場...
が,I2C や SPI のように送信側から送信ビットとクロックを送...
用途を選んで使ってやれば使えないこともない,といったとこ...
一方,USB high speed (480Mbps) 系の FT2232H では出力タイ...
おそらくは libftdi 側の問題だとは思いますが,詳細は不明で...
まぁ,問題があるにしてもビットレートの設定値を調整すれば...
*** コスト [#t73a38fd]
趣味で使う場合は,特性を知った上で FT232RL の偽物の乗った...
規則正しい出力が欲しい場合は,FT(2)232H を使うべきかとい...
FT232H は基板モジュールの形では ¥2,000 前後で売られてい...
ただ,仕事で使う場合,「マイコン基板へのファームウェア書...
FT(2)232H ならばデバイスへのファームウェア書き込みは不要...
生産台数・方法にもよりますが,部品単価の安いワンチップマ...
終了行:
* FT232 シリーズの synchronous bit-bang モード [#se38c80d]
FTDI 社の FT232 シリーズには,USB - UART 変換だけでなく G...
この FT232 シリーズの synchronous bit-bang について見てみ...
** synchronous bit-bang とは [#z53f426d]
[[Application Note AN_232R-01 Bit Bang Mode Availability ...
- 内部ボーレートクロックに同期してビットデータを送受信
- 受信データは送信データに同期してサンプルする
-- ただし,受信データサンプル → 送信データ送出 の順番で処...
と''いうことになっています''.
** ホスト環境 [#k555b6b6]
- debian testing(buster)
-- Linux kernel 4.18.0
- libftdi 0.20-4
通信ライブラリは,FTDI 純正の D2XX ではなく libftdi を,...
このテストプログラムは
>0x00 0xff 0x00 0xff ...
というシーケンスを送信します.
つまり,1サンプルごとに出力ポートから L → H → L → ... を...
** FT232RL (おそらく偽物) [#w55c13cc]
#ref(IMG_20181226_012234.jpg,center,10%)
まず最初は,よく見かける中国製の FT232RL 基板.
価格も安かったので,おそらくは FT232RL の偽物を使用してい...
この基板をホスト PC に接続し,コマンドラインからテストコ...
$ ./baud_test -m s -b 10000 -c 128
real baudrate used: 10000
this test should take 10.00 seconds
and took 41.4536 seconds, this is 2412 baud or factor 0....
で,FT232RL の TxD ピンをオシロで見ると,以下のような波形...
#ref(IMG_20181227_030102.jpg,center,10%)
…何じゃこりゃ.
画面の時間軸(横軸)1マス分が 100 μs = 1/10000[bps] にな...
描画ごとに輝線を消さない persist モードで観測してみると
#ref(IMG_20181227_030202.jpg,center,10%)
このようになりました.
信号の変わり目は 100 μs の倍数にはなっていることがわかり...
また,テストコマンドの実行結果出力では factor 0.241 と出...
データ出力が滞っているためでしょう.
** FT2232D [#qfb50fa5]
#ref(IMG_20181226_012353.jpg,center,10%)
#ref(IMG_20181226_012604.jpg,center,10%)
次は[[Olimex 社の ARM-USB-TINY>https://www.olimex.com/Pro...
内部で FT2232D を使用しています.
FT2232D の偽物が出回っているという話は聞かないので,これ...
で,同様にコマンドを実行.
$ ./baud_test -p i:0x15ba:0x0004 -m s -b 10000 -c 128
real baudrate used: 10000
this test should take 10.00 seconds
and took 39.7634 seconds, this is 2515 baud or factor 0....
出力波形と persist 表示.
#ref(IMG_20181229_023659.jpg,center,10%)
#ref(IMG_20181229_023812.jpg,center,10%)
FT232RL(偽)と同様に 100μs ごとの不定間隔で出力されてい...
ホンモノでも同じ動きをするんだなぁ.
** FT2232H [#ea3d72e6]
#ref(IMG_20181226_012330.jpg,center,10%)
最後に FT2232H.
USB 2.0 high speed (480Mbps) で UART が2回路入りのもので...
FTDI 社から出ている [[FT2232H-56Q>https://www.ftdichip.co...
これもおそらく本物でしょう.
コマンドラインからテストプログラムを実行します.
$ ./baud_test -p i:0x0403:0x6010 -m s -b 10000 -c 128
real baudrate used: 10000
this test should take 10.00 seconds
and took 7.7110 seconds, this is 12969 baud or factor 1....
出力波形はこちら.
#ref(IMG_20181229_030516.jpg,center,10%)
今度は H → L → H → … と規則正しく出力されています.
が,よく見ると出力間隔が若干短いような.
画面上では 12820 bps と読めます.
テストプログラムの実行結果でも出力速度が 1.297 倍とありま...
FT2232H 側の問題なのか libftdi 側の問題なのかは不明.
** 考察とまとめ [#f7aaf058]
*** 機能 [#r380d1c7]
USB full speed (12Mbps) 系のデバイス (FT232RL, FT2232D) ...
UART のように受信側でタイミングを取るインターフェースの場...
が,I2C や SPI のように送信側から送信ビットとクロックを送...
用途を選んで使ってやれば使えないこともない,といったとこ...
一方,USB high speed (480Mbps) 系の FT2232H では出力タイ...
おそらくは libftdi 側の問題だとは思いますが,詳細は不明で...
まぁ,問題があるにしてもビットレートの設定値を調整すれば...
*** コスト [#t73a38fd]
趣味で使う場合は,特性を知った上で FT232RL の偽物の乗った...
規則正しい出力が欲しい場合は,FT(2)232H を使うべきかとい...
FT232H は基板モジュールの形では ¥2,000 前後で売られてい...
ただ,仕事で使う場合,「マイコン基板へのファームウェア書...
FT(2)232H ならばデバイスへのファームウェア書き込みは不要...
生産台数・方法にもよりますが,部品単価の安いワンチップマ...
ページ名:
-->