Задать вопрос
@Rudtoha

Проблема тактирования карты?

Всем привет. Делаю проект карт ридера с использованием LPC11u12, в котором встроена возможность связи со смарт картой через UART. Для обеспечения нужной частоты нужно заполнить регистры DLL и DLM по следующему правилу:
uint32_t divider = ((( sys_clk / ((F/D) / 2) ) / baudrate + 1) >> 1;

LPC_USART->DLM = (divider >> 8) & 0xff;	
LPC_USART->DLL = divider & 0xff;


Проблема в чем: F/D * baudrate это и есть частота тактирования карты, а значит их можно заменить прям значением этой пресловутой частоты. НО ничего в таком случае не работает
uint32_t divider = (((sys_clk * 2) / Freq) + 1) >> 1;

Скажу сразу - значения делителя идентичные, но нужная частота не обеспечивается.
  • Вопрос задан
  • 75 просмотров
Подписаться 1 Средний Комментировать
Решения вопроса 1
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
НО ничего в таком случае не работает

А с оригинальной формулой -- работает? Каковы значения sys_clk, F, D и baudrate?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы