Собрали плату на камне 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 сам генерит какие то запросы? Подскажите пожалуйста, кто что думает по этому поводу!!
Не генерит. точно. Возможно, это из-за помех - возникает импульс в линии и контроллер воспринимает это как старт передачи. Вы когда принимаете данные, анализируете состояние битов отвечающих за ошибки приема? Такие как отсутствие стоп-бита, неверный контроль четности, состояние линии "разрыв". Правда, при полном отключении контроля четности одиночный импульс может вызвать вполне корректный прием порции данных $00 или $FF.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения