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

Baud rate Error

Добавлено: Чт сен 08, 2011 20:51:39
Midnight
Всем доброго времени суток. Пол месяца назад, наверное, создавал тему по поводу "общения" двух мк (atmega1284 и cygnal с8051f530). Всё заработало и решил я со скоростями побаловать. Когда создавал проект для меги, пользовался конструктором(Codevision), там макс. bps был указан 115200 (резонатор на 16МГц), залез в даташит, обнаружил, что это не предел, вплоть до 1Мбит/сек. Baud rate error при этом для 115200 -3,5%, для 23,4к -8,5%, начал баловаться, думал что уже на 115200 будут проблемы: может пакет криво будет приходить, однако и на 115200 всё работает и на 230к и даже на 1Мб/сек. Смотрел десятки раз никаких сбоев не обнаружил...возник вопрос, а правильно ли я понимаю что такое Baud rate error? Я думал, что это погрешность, что данные будут не корректно отправлены(ну или приняты), т.е. к примеру, включил ты прибор, а тут бац! и вот они 3,5% неудачной передачи, пакет не корректно долетел до слэйва. Кто поведает конкретно, что за птица это такая-Baud rate error?

Re: Baud rate Error

Добавлено: Чт сен 08, 2011 21:22:59
Zwanzig
Baudrate Error - отклонение в процентах реальной скорости от идеальной, это в любом ДШ написано. Тактовый генератор UART генерит синхру на основе значения регистра предделителя, который, естественно, можно загружать только целочисленными значениями. Поэтому с некоторыми кварцами можно вообще не попасть в нужную частоту. Т.к. интерфейс асинхронный, то на принимающей стороне МК синхронизируется по стартовому биту и начинает снимать сэмплы по тикам от своего тактового генератора. Если 3 сэпмла посередине одинаковые - типа данные дошли нормально и рассинхрона нет, и бит сдвигается в регистр. Соответственно, сели разница в частотах будет слишком велика, то данные будут приняты неверно. Там по-моему даже какой-то флаг есть, я не помню, RTFM :))

Re: Baud rate Error

Добавлено: Пт сен 09, 2011 21:40:22
YS
Смотрел десятки раз никаких сбоев не обнаружил...
Значит, Вы везучий. :) Но флаг FE (Framing Error) Вы таки проверяйте. :)

Re: Baud rate Error

Добавлено: Сб сен 10, 2011 08:17:24
МитяРа
Мяу всем..
YS писал(а):Но флаг FE (Framing Error) Вы таки проверяйте.
:? А чё, у 51-х в USART-е новый флаг появился? Ткните носом, не знал..

Re: Baud rate Error

Добавлено: Сб сен 10, 2011 13:44:54
Zwanzig
YS скорее всего имеет в виду AVR :)

Re: Baud rate Error

Добавлено: Сб сен 10, 2011 15:10:55
Meteor
Midnight писал(а):решил я со скоростями побаловать.
Внесу свои 3 копейки в тему.
Если у вас 2 МК, работающие на одной скорости, с одинаковыми тактовыми генераторами, то никаких сбоев ожидать не следует ни на стандартных, ни на нестандартных частотах.
Совсем иной расклад будет, когда одно устройство работает скажем от генератора на 11,0592 МГц, а второе от генератора 14 МГц. При этом скорости "как-то криво", но совпадают (разбег например 3%). Тогда начиная с некоторого момента, начнется расхождение в приеме и данные станут недостоверными.

Re: Baud rate Error

Добавлено: Сб сен 10, 2011 21:07:13
YS
Таки да, я про AVR. Они фигурировали в начале топика.

Re: Baud rate Error

Добавлено: Сб сен 10, 2011 21:20:57
Meteor
Автор совместно с победоносными криками, могбы выложить схемы - тогда было бы яснее. :sleep:
А так "у меня работает, сбоев не нашел".
Через месяц скажет "тут работает, а там не работает, скажите почему?" :tea: