Космонавт 0 2 января, 2020 Опубликовано 2 января, 2020 (изменено) · Жалоба С новым годом многоуважаемое сообщество. Давненько не писал на электроникс но вот пришло время, нужен совет. Давеча появилась необходимость передавать данные на ПК, со скоростью примерно мегабит. Физический последовательный порт справляется с такой скоростью довольно плохо, поэтому решено было остановится на ЮСБ. Подключаю стмку к Линуксу по USB с эмуляцией виртуального последовательного порта (communication device class). Подключение прямое, никаких хабов, переходников и т.д. Кубом сгенерил проект с полноскоростным юсб 2.0 12МБит. Пк видит подключение как /dev/ttyACM0. Стмкой передаю тестовую последовательность в порт по одному байту, каждая посылка с периодичностью 11мкс. На Линуксе открываю Putty порт с параметрами 921600, 1 стоп бит, без контроля четности и логирую все это в файл. В логе наблюдаю такую картину ...0x01 0x02 0x03 0x05 0x06 0x08 0x0B 0x0C 0x0E 0x16 0x17... видно, что некоторые байты были пропущены. На виндовс машинах так же провалы в последовательности, и они больше чем в Линуксе. При увеличении периода до 87 мкс что примерно соответствует битрейту 115200, последовательность передается без ошибок. Собственно вопрос - действительно ли лимит драйвера 115200 ? Может можно поправить где то конфигурационные файлы ? Вообще приветствуются все идеи. Задавал тот же вопрос на юникс стакиксченчж, но там пока глухо. То ли праздники, то ли никто не сталкивался с подобным. Изменено 2 января, 2020 пользователем Космонавт Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 63 2 января, 2020 Опубликовано 2 января, 2020 · Жалоба 4 minutes ago, Космонавт said: Собственно вопрос - действительно ли лимит драйвера 115200 ? Со стороны ПК - нет (под Линуксом, во всяком случае). А вот со стороны куба можно ждать чего угодно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 119 2 января, 2020 Опубликовано 2 января, 2020 · Жалоба 38 минут назад, Космонавт сказал: В логе наблюдаю такую картину ... Насколько я помню, putty пишет в лог не все байты. Байты с кодом 0x00 она у меня точно отбрасывала. Выставленная в настройках терминальной программы скорость влияет только на число, передаваемое в команде SET_LINE_CODING и на скорость обмена по USB никак не влияет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Космонавт 0 3 января, 2020 Опубликовано 3 января, 2020 · Жалоба 15 hours ago, Сергей Борщ said: putty пишет в лог не все байты Вот фрагмент моего лога. Как видно нули там есть. Да и было бы странно, что бы на 115200 логировалось все, а на 921600 - не все. Пока копаю в сторону куба. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться