Страница 1 из 1

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

Добавлено: Вт ноя 20, 2012 16:52:21
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 сам генерит какие то запросы? Подскажите пожалуйста, кто что думает по этому поводу!!

Заранее всем Спасибо!!

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

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