Скорость UART для 1921ВК035

32-разрядные микроконтроллеры разработки АО "НИИЭТ"

Модераторы: ea, dav, bkolbov, Alis, pip, _sva_

Ответить
PeterLvov
Сообщения: 3
Зарегистрирован: 22 окт 2015, 15:00

Скорость UART для 1921ВК035

Сообщение PeterLvov »

Добрый день!
При попытке задать скорость UART для микроконтроллера 1921ВК035 возникла проблема с несоответствием скорости.

Из железа у меня Ваша отладочная плата для этого контроллера.

При настройке пользуюсь функцией AutoBaudConfig из plib35_uart:

Код: Выделить всё

uart_clk_freq = RCU_GetUARTClkFreq(UARTx_Num);
int_div = uart_clk_freq / (16 * BaudRate);
frac_div = (uint32_t)((uart_clk_freq / (16.0f * BaudRate) - int_div) * 64.0f + 0.5f);
Значение uart_clk_freq у меня = 15 000 000 (кварц 12 МГц, тактирование от PLL 60 МГц и целочисленный делитель для UART 4 = 15 МГц);
Пытаюсь задать значение скорости 57 600 бод. Соответственно, int_dev = 0x10 (16 в десятичной), frac_div = 0x12 (18 десятичной). Должна получиться скорость порядка 57,5 кБод, однако при передаче байта из UART осциллографом вижу 43,48 кБод (3/4 от заданного).

В чем может быть проблема?

С уважением.
PeterLvov
Сообщения: 3
Зарегистрирован: 22 окт 2015, 15:00

Re: Скорость UART для 1921ВК035

Сообщение PeterLvov »

Да, для программирования использую Keil 5. Версия пакета для контроллера 2.0.5 от марта 2019 года, если это существенно.
PeterLvov
Сообщения: 3
Зарегистрирован: 22 окт 2015, 15:00

Re: Скорость UART для 1921ВК035

Сообщение PeterLvov »

В общем, разобрался, похоже.

Для тактирования надо все-таки четко определить (#define) частоту кварца OSECLK_VAL
Ответить

Вернуться в «32-разрядные микроконтроллеры»