
私は FTDI USB から UART へのブレークアウト ブリッジを使用しています。これには、受信バッファー待ち時間タイマーというタイマーが組み込まれており、バッファーにデータが受信されると計時を開始し、タイムアウトになるとデータを送信します。このタイムアウトは、デフォルトで 16 ミリ秒に設定されています。
ftdiport.inf
ドキュメントには、Windows および D2XX ドライバーを使用する場合、次のようにファイル内の値を変更することでこのタイムアウトを変更できると記載されています。
[FtdiPort.NT.HW.AddReg]
HKR,,"LatencyTimer",0x00010001,16
代わりに Linux を使用して、VCP から値を読み取っています ( を使用) /dev/ttyUSB0)
。このセットアップで見つかる .inf 変数に相当するものにアクセスして変更するにはどうすればよいでしょうか?
代わりに、マイクロコントローラのレジスタに直接書き込む必要がありますか? その場合、ブリッジ上のレジスタと、ブリッジを使用して接続しているセンサー上のレジスタをどのように区別すればよいですか?
答え1
おそらくあなたが探しているのは setserial コマンド。
このコマンドでは、ファイルよりも制御がはるかに少なくなります.inf
。
setserial /dev/ttyUSB0 low_latency
より正確な設定をするには、 FTDI レイテンシ タイマー (更新に対してロックされていない場合):
#cat /sys/bus/usb-serial/devices/ttyUSB0/latency_timer
16
# echo 1 > /sys/bus/usb-serial/devices/ttyUSB0/latency_timer
# cat /sys/bus/usb-serial/devices/ttyUSB0/latency_timer
1
これにより、タイマーが 16 ミリ秒から 1 ミリ秒 (最小) に短縮され、遅延が短縮されます。