Прерывистое соединение виртуальной машины с FTDI 232R

контекст

Мне было поручено заставить программу DOS работать на более современном оборудовании. Эта программа использует последовательный COM-порт для связи с целевым устройством с относительно низкой скоростью BAUD (обычно 4800).

До сих пор я использовал VirtualBox на компьютере с Windows для создания виртуальной машины FreeDOS и приобрел кабель FTDI TTL-232R и драйвер виртуального COM-порта для этого кабеля.

проблема

Эта установка работает на самом деле. Программное обеспечение может обмениваться данными с целевым устройством, но осциллограф показывает, что два или три байта будут отправлены, а затем пройдет до десяти миллисекунд, прежде чем будет отправлен другой кластер байтов. Это приводит к истечению времени ожидания целевого устройства до получения полного сообщения.

Поиск проблемы

Компьютер Windows, который я использую, на самом деле все еще имеет порт DB9. Если я использую это вместо кабеля FTDI, программное обеспечение работает гладко. Это наводит меня на мысль, что проблема не в FreeDOS.

Чтобы протестировать кабель FTDI, я написал короткий скрипт Python на компьютере Windows (с использованием pyserial) для связи с целевым устройством через виртуальный COM-порт. Это также работало гладко.

Я также прочитал соответствующую документацию. Я попытался изменить настройки драйвера без каких-либо последствий. Также кажется маловероятным, что драйвер является источником проблемы, учитывая, что скрипт Python работает нормально.

Помогите!

Если у кого-то есть идеи о том, как устранить эту проблему, или если вы обнаружите проблему, некоторые советы будут с благодарностью приняты!

1 ответ

Был там, сделал это.

Скорее всего, вы купили "фальшивый" FTDI USB-to-Serial. Те, "такая работа", но делают забавные вещи.

Получите настоящий FTDI (или даже лучше: PL2303), и все сгладится.

Другие вопросы по тегам