Скорость передачи данных через UART AT90S8535
- Сообщения: 6
- Зарегистрирован: Пт апр 13, 2007 18:05:07
- Откуда: Самарский государственный Аэрокосмический университет
Подскажите, пожалуйста, как настроить таймер на скорость вывода данных 19200 бит/с через последовательный порт, какие там коэффициенты пересчёта и т.д.
- Реклама
Настраивать и рассчитывать удобно мастером CVAVR.
Книги по микроконтроллерам - библиотека:
http://www.roboforum.ru/viewtopic.htm?t=2031
Книги по микроконтроллерам - библиотека:
http://www.roboforum.ru/viewtopic.htm?t=2031
- Сообщения: 6
- Зарегистрирован: Пт апр 13, 2007 18:05:07
- Откуда: Самарский государственный Аэрокосмический университет
Спасибо, я почитала, но я это всё знаю уже...
Хочу ещё добавить, что если я устанавливаю скорость передачи данных менее 19200 бит/с, то все данные выводятся нормально, а если делаю вот так:
ldi tmp, 2 ;19200 бит/с, если частота кварца = 1Гц
out UBRR,tmp
ldi tmp,0b00001101 ;Инициализация UART
out UCR,tmp ;TXEN=1,RXEN=0,СHR9=1,TXB8=1
Т.е. устанавливаю скорость как раз 19200 бит/с, то выводятся данные неправильно и появляется сообщение об ошибке со странным символом: +8%. Кто знает, как это исправить???
Хочу ещё добавить, что если я устанавливаю скорость передачи данных менее 19200 бит/с, то все данные выводятся нормально, а если делаю вот так:
ldi tmp, 2 ;19200 бит/с, если частота кварца = 1Гц
out UBRR,tmp
ldi tmp,0b00001101 ;Инициализация UART
out UCR,tmp ;TXEN=1,RXEN=0,СHR9=1,TXB8=1
Т.е. устанавливаю скорость как раз 19200 бит/с, то выводятся данные неправильно и появляется сообщение об ошибке со странным символом: +8%. Кто знает, как это исправить???
Рекомендую книгу: А.В. Евстигнеева "Микроконтроллеры AVR семейства Classic (Tiny и Mega) и конечно же даташит на МК. Это библия.
BAUD = (Fsck)/(16*(UBR+1))
BAUD - скорость
Fsck - тактовая частота
UBR- содержимое регистра контроллера скорости передачи
Для различных тактовых частот, будет разное значение в регистре UBR. Кроме того, на некоторых тактовых частотах будут появляться ошибки. 2% ошибок - допустимый максимум. Но на практике больше 1% вообще использовать не рекомендуют.
В даташите в разделе USART есть табличка, где уже все рассчитано. Смотрите!
BAUD = (Fsck)/(16*(UBR+1))
BAUD - скорость
Fsck - тактовая частота
UBR- содержимое регистра контроллера скорости передачи
Для различных тактовых частот, будет разное значение в регистре UBR. Кроме того, на некоторых тактовых частотах будут появляться ошибки. 2% ошибок - допустимый максимум. Но на практике больше 1% вообще использовать не рекомендуют.
В даташите в разделе USART есть табличка, где уже все рассчитано. Смотрите!
Today fine night...
- Сообщения: 6
- Зарегистрирован: Пт апр 13, 2007 18:05:07
- Откуда: Самарский государственный Аэрокосмический университет
- Реклама

