Я понимаю, что первоначальный вопрос касался Windows, но вот инструкции для других операционных систем:
Mac OS X
Для таймера задержки - после установки драйвера сделайте резервную копию и отредактируйте файл /System/Library/Extensions/FTDIUSBSerialDriver.kext/Contents/Info.plist
. Найдите раздел для вашего устройства, например,
<key>FTDI2XXBM</key>
<dict>
<key>CFBundleIdentifier</key>
<string>com.FTDI.driver.FTDIUSBSerialDriver</string>
И добавить следующее после вышеупомянутого
<key>ConfigData</key>
<dict>
<key>LatencyTimer</key>
<integer>1</integer>
</dict>
Я подозреваю, что это также будет работать для персонажа события, но я не уверен в правильности <key>
для использования.
Linux
Ядро Linux, которое поставляется с Ubuntu 14.04 (Linux 3.13.0-24-generic), уже устанавливает таймер задержки по умолчанию на 1 мс. Однако параметры доступны для изменения через sysfs
. Найдите ваше устройство в /sys/bus/usb-serial/devices
$ ls /sys/bus/usb-serial/devices/
ttyUSB0
$ ls /sys/bus/usb-serial/devices/ttyUSB0
driver event_char latency_timer port_number power subsystem tty uevent
Вы можете установить символ события, отображая значение в event_char
. Значение представляет собой значение ASCII символа события (например, «A» равно 65) плюс 256 (это устанавливает 9-й бит в 1, что обеспечивает поддержку символа события), поэтому для «A» значение равно 65 + 256 = 321:
$ sudo -i
<authenticate>
# echo 321 > /sys/bus/usb-serial/devices/ttyUSB0/event_char
Чтобы использовать 0x00 в качестве символа события, просто передайте значение 256, а для отключения символа события - значение 0.
Вы также должны быть в состоянии изменить таймер задержки таким образом.
Посмотрите, что установлено сейчас:
# cat /sys/bus/usb-serial/devices/ttyUSB0/latency_timer
1
Теперь отключите флаг low_latency, иначе задержка всегда будет равна 1:
# setserial /dev/ttyUSB0 ^low_latency
Затем установите таймер задержки, например, на 4 мс
# echo 4 > /sys/bus/usb-serial/devices/ttyUSB0/latency_timer
# cat /sys/bus/usb-serial/devices/ttyUSB0/latency_timer
1
Но я думаю, что это не имеет большого значения, так как по умолчанию он составляет минимум 1 мс.