
Estoy usando un puente de conexión FTDI USB a UART. Tiene un temporizador incorporado, el temporizador de latencia del búfer de recepción, que comienza a cronometrar cuando se recibe un dato en un búfer y, cuando se agota el tiempo de espera, envía los datos. Este tiempo de espera está establecido de forma predeterminada en 16 milisegundos.
La documentación indica que cuando se utilizan controladores Windows y D2XX, este tiempo de espera se puede modificar cambiando el valor en el ftdiport.inf
archivo de la siguiente manera:
[FtdiPort.NT.HW.AddReg]
HKR,,"LatencyTimer",0x00010001,16
En cambio, estoy usando Linux y leyendo valores de un VCP (usando /dev/ttyUSB0)
. ¿Cómo accedería y cambiaría el equivalente de las variables .inf que encontraría en esta configuración?
¿Debería escribir directamente en los registros del microcontrolador? Si es así, ¿cómo puedo diferenciar entre los registros en el puente y los registros en el sensor al que estoy usando el puente para conectarme?
Respuesta1
Probablemente estés buscando el establecer comando serial.
Este comando le brinda mucho menos control que el .inf
archivo:
setserial /dev/ttyUSB0 low_latency
Para una configuración más exacta, es posible que pueda configurar el Temporizador de latencia FTDI (si no está bloqueado contra actualizaciones):
#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
Esto reducirá el temporizador de 16 ms a 1 ms (el mínimo) para reducir la latencia.