Последовательное соединение через USB с загрузкой LIVE USB
Приложение использует последовательную связь через USB и отлично работает, когда компьютер загружается с жесткого диска.
Я создал образ liveUSB (.iso) работающей ОС. Загрузил тот же ПК с USB-накопителя, на котором находится образ.iso.
Теперь DUT подключен, и приложение запускается, которое сообщает, что на линии в большинстве случаев присутствует мусор. Тем не менее, он работает на некоторых попытках, это очень противоречиво.
Я не мог понять, чем загрузка с Live USB отличается от загрузки с жесткого диска.
К вашему сведению, на ПК установлена Fedora Core 22 с ядром Linux 4.0.4.
Последовательная связь: скорость передачи данных 115200 с 1 стоповым битом.
Буду признателен за любую оказанную помощь.
Спасибо,
Шахаб
редактировать
я проверил dmesg
и нашел разницу,
cdc_acm : failed to set dtr/rts
на Live USB загрузке. Это не видно в другом случае. Похоже на этот вопрос по stackru.
Еще одно наблюдение, последовательная связь работает нормально, когда устройство подключено и компьютер загружается с карты памяти Live USB. Если USB-кабель к устройству отсоединен и подключен снова, он сообщает о проблеме.
1 ответ
После повторного подключения USB-кабеля ваш номер последовательного порта, вероятно, будет увеличен, и у вас будет мертвый /dev/ttyUSB0 и, возможно, новый рабочий /dev/ttyUSBX. Поскольку ваше приложение сохраняет /dev/ttyUSB0 открытым, оно не будет удалено, пока вы не перезапустите приложение. Продолжайте читать старый ttyUSB0, и вы получите мусор. Вторым намеком будет то, что у вас, вероятно, есть файловая система, доступная только для чтения, при загрузке из live, поэтому вы не можете создать ничего нового в папке / dev, чтобы новое устройство не отображалось.