UART 115Кбод на Мегах.
UART 115Кбод на Мегах.
Все это было на ардуинах На 3в и 8 МГц 328 принимает только первый байт без ошибок на 115,
а на 5в 16МГц 2560 работает. Почему? По ДШ там 3% ошибки на этих частотах и скорости.
а на 5в 16МГц 2560 работает. Почему? По ДШ там 3% ошибки на этих частотах и скорости.
- Реклама
Re: UART 115Кбод на Мегах.
Наверно потому, что арифметику в школе не учили. На 8-ми погрешность -3,5%, а на 16-ти +2,1.
-
veso74
- Поставщик валерьянки для Кота
- Сообщения: 1916
- Зарегистрирован: Сб май 05, 2012 20:24:52
- Откуда: KN34PC, Болгария
- Контактная информация:
Re: UART 115Кбод на Мегах.
В помощь: WormFood's AVR Baud Rate Calculator
Посмотрите на погрешность. Находитесь за пределами рекомендуемой ошибки.
Посмотрите на погрешность. Находитесь за пределами рекомендуемой ошибки.
Re: UART 115Кбод на Мегах.
Только немножко врут эти калькуляторы. Причём, все одинаково. Видать под копирку делались.)
- Starichok51
- Модератор
- Сообщения: 19055
- Зарегистрирован: Сб авг 14, 2010 15:05:51
- Откуда: г. Озерск, Челябинская обл.
Re: UART 115Кбод на Мегах.
в даташитах на эти МК есть эти таблицы, причем, правильные.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
- Реклама
Re: UART 115Кбод на Мегах.
Кстати, в avr-gcc давно есть заголовочный файл <util/setbaud.h>
Если погрешность более 2%, компилятор выдаст предупреждение об этом.
Если погрешность более 2%, компилятор выдаст предупреждение об этом.
- Starichok51
- Модератор
- Сообщения: 19055
- Зарегистрирован: Сб авг 14, 2010 15:05:51
- Откуда: г. Озерск, Челябинская обл.
Re: UART 115Кбод на Мегах.
я использую с кварцем 8 МГц скорость 250000 - нулевая погрешность.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Re: UART 115Кбод на Мегах.
А я с кварцем на 16 имею 2000000/сек и чо?)
- Starichok51
- Модератор
- Сообщения: 19055
- Зарегистрирован: Сб авг 14, 2010 15:05:51
- Откуда: г. Озерск, Челябинская обл.
Re: UART 115Кбод на Мегах.
я рад за тебя.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
- DX168B
- Друг Кота
- Сообщения: 4468
- Зарегистрирован: Вс янв 24, 2010 19:19:52
- Откуда: Главный Улей России (Moscow)
- Контактная информация:
Re: UART 115Кбод на Мегах.
Пользовался самописными макросами.
F_CPU должен быть предварительно определен корректным значением тактовой частоты.
Код: Выделить всё
/* Макросы вычисления битрейта */
#define UBRR_SET(bps) (uint16_t)((F_CPU / (16 * bps)) - 1)
#define UBRR_2X_SET(bps) (uint16_t)((F_CPU / (8 * bps)) - 1)
/* Варианты применения */
/* При сброшенном бите U2X */
UBRR = UBRR_SET(9600ul);
/* При установленном бите U2X */
UCSRA = _BV(U2X0);
UBRR = UBRR_2X_SET(115200ul);
I am DX168B and this is my favourite forum on internet!
- COKPOWEHEU
- Говорящий с текстолитом
- Сообщения: 1525
- Зарегистрирован: Чт июн 10, 2010 20:11:19
Re: UART 115Кбод на Мегах.
У вас округления нет.
Код: Выделить всё
#define UBRR_SET(bps) (uint16_t)( ((F_CPU / 8 / (bps) + 1)/2) - 1)
#define UBRR_2X_SET(bps) (uint16_t)( ((F_CPU / 4 / (bps) + 1)/2) - 1)
Код: Выделить всё
(U2X=0)
F_CPU = 12000000 baudrate = 115200
UBRR = 5 6
err = 8.5 % -7.0 %
(U2X=1)
F_CPU = 4000000 baudrate = 57600
UBRR = 7 8
err = 8.5 % -3.6 %
Re: UART 115Кбод на Мегах.
Кварцы у адуринкоподобных (да и неспециализированные под UART) всегда имеют свою погрешность и температурные отклонения, кои добавляются к табличным.

-
Иван Михайлович
- Первый раз сказал Мяу!
- Сообщения: 23
- Зарегистрирован: Пт июл 14, 2023 19:07:53
Re: UART 115Кбод на Мегах.
В ардуинах стоят керамические резонаторы, у которых стабильность частоты в десятки раз ниже, чем у кварцевых.
Окстись! Открой DataSheet и просветись!
Re: UART 115Кбод на Мегах.
Ну а кварц правильный поставить?
9,216МГц в продаже встречаются, 328-я с ним будет работать от 2,7в.
9,216МГц в продаже встречаются, 328-я с ним будет работать от 2,7в.


