我正在使用 FTDI USB 转 UART 连接桥。它有一个内置计时器,即接收缓冲区延迟计时器,当数据被接收到缓冲区时,它开始计时,并在超时后发送数据。此超时默认设置为 16 毫秒。
文档指出,当使用 Windows 和 D2XX 驱动程序时,可以通过更改文件中的值来更改此超时,ftdiport.inf
如下所示:
[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 毫秒(最低值),以减少延迟。