Серийный порт Prolific PL2303 до 250000 бит / с
Мне нужно запустить мой /dev/ttyUSB0 (преобразующий конвертер pl2303 USB-RS232) на скорости 250 кбит / с с помощью c. Куда бы я ни посмотрел, все говорили, что ближайшая достижимая скорость - 230400 бит / с ( http://lxr.linux.no/#linux+v3.9.5/drivers/usb/serial/pl2303.c и несколькими строками позже (строка 325) " ПРИМЕЧАНИЕ. Поддерживаются только значения, определенные в baud_sup!"). Но я на 100% уверен, что это можно сделать, потому что в Windows (с использованием компонента SerialPort C# по умолчанию) я могу просто установить 250000 в качестве скорости передачи, и он с радостью выведет данные с такой скоростью (измеренной с помощью осциллографа, поэтому не переключаться на ближайший доступный или на 9600, как описано в драйвере Linux в строке 325!).
Кто-нибудь знает способ установить обычную скорость передачи данных в Linux?
И прежде чем вы спросите, я разработал устройство, которое обменивается данными на скорости 250 кбит / с, эта скорость необходима и является самой высокой, которую я могу получить без ошибок, поэтому я не могу ее изменить.
1 ответ
Это проблема в драйвере Linux. От линии 333 до линии 348 водитель форсирует скорость передачи данных. При удалении этого кода скорость передачи вычисляется по формуле 12*1000*1000*32 / бод, и это дает ошибку 0% при 250 кбит / с, что полностью соответствует тому, что я получаю в Windows. Я с нетерпением жду улучшения официального драйвера.