FTDIUSBを使用してUARTブレークアウトブリッジ。データの一部がバッファーに受信されたときにタイミングを開始し、タイムアウト時に送信するタイマー、Receive Buffer LatencyTimerが組み込まれています。このタイムアウトはデフォルトで16ミリ秒に設定されています。
ドキュメントには、WindowsおよびD2XXドライバーを使用する場合、このタイムアウトはftdiport.inf
ファイルの値を次のように変更することで変更できると記載されています。
[FtdiPort.NT.HW.AddReg]
HKR,,"LatencyTimer",0x00010001,16
代わりに、Linuxを使用してVCPから値を読み取ります(/dev/ttyUSB0)
を使用します。このセットアップで見つかる.inf変数に相当するものにアクセスして変更するにはどうすればよいですか?
代わりに、マイクロコントローラーのレジスターに直接書き込む必要がありますか?その場合、ブリッジのレジスタと、ブリッジを使用して接続しているセンサーのレジスタをどのように区別しますか?
あなたはおそらく 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
これにより、タイマーが16msから1ms(最小)に下がり、待ち時間が短縮されます。