Разница между COM и USB

Подключаем наши девайсы к компьютеру. Обсуждаются: порты, протоколы, драйвера, языки программирования и т.д.
Ответить
Steve_g
Родился
Сообщения: 19
Зарегистрирован: Вт окт 16, 2012 12:49:28

Разница между COM и USB

Сообщение Steve_g »

Собрали плату на камне Atmega8, которая собирает данные о температуре, напряжении и пр.

Принцип работы - шлем в порт данные, они приходят на udr камня, возникает прерывание и обработчик прерывания смотрит, какая команда пришла на udr и в соответствии с этим вызывает соотв. функцию...

все работало нормально, пока плата подключалась к COM-порту...инициализация была stty -F /dev/ttyS0 9600

но как только мы купили переходник CP2102 и подключили его к USB, а к нему нашу плату , то возникла интересная ситуация

Инициализация stty -F /dev/ttyUSB0 9600 raw
посылаем данные echo -n $'\xКОМАНДА(02 например)' > /dev/ttyUSB0
слушаем cat /dev/ttyUSB0 в соседнем терминале - принимаем ответы ОК и температуру и пр.

НО, единственное отличие - раз в 2.20 секунд приходит в терминал прослушки порта такая последовательность

UN
UN
UN

Забыл сказать, что UN - ответ камня Atmega8a на команду, которую он не понимает... так вот - каким образом эти данные мне приходят, ведь я в порт ничего не посылаю..возможно порт USB сам генерит какие то запросы? Подскажите пожалуйста, кто что думает по этому поводу!!

Заранее всем Спасибо!!
Реклама
Alexeyslav
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич
Контактная информация:

Re: Разница между COM и USB

Сообщение Alexeyslav »

Не генерит. точно. Возможно, это из-за помех - возникает импульс в линии и контроллер воспринимает это как старт передачи. Вы когда принимаете данные, анализируете состояние битов отвечающих за ошибки приема? Такие как отсутствие стоп-бита, неверный контроль четности, состояние линии "разрыв". Правда, при полном отключении контроля четности одиночный импульс может вызвать вполне корректный прием порции данных $00 или $FF.
Реклама
Ответить

Вернуться в «Интеграция с ПК»