Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: UART LPC2103/LPC2106
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
EXeGLuMATOR
Интересует вопросик - на какой максимальной скорости его можно запустить? В частности UART1. Интересует скорость для потокового ввода-вывода, стабильная и устойчивая. smile.gif
В частности - требуется работа с VNC1L девайсом. А то что-то быстрее чем на 115200 не заводится. Точнее не работает. В мануале озвучена циферка 438000 (или около того) - может он так работать?
VNC1L - работает устойчиво на 460800, а вот филипс.... Или мне надо руки править...

Ну и в догонку... Кто-то работал с VNC1L? Может есть примеры как с ним дружить по сериалу? Парсеры какие-нить... rolleyes.gif
etoja
Проверил LPC2106 : UART0 может работать на битовых скоростях 230400 и 460800 бод.
При этом процессор должен тактироваться кварцем, частота которого равна битовой скорости, умноженной на целое число, например

частота тактировки процессора (pclk) = 14.7456 МГц
Для получения битовой скорости 460800 бод нужно будет установить для UART0 делитель
14.7456 МГц / 460800 бод =32.
Alex03
в отличие от 2106 в 2103 есть Fractional Divider в UART-ах, позволяющий уменьшить ошибки деления частот (особенно актуальные для больших скоростей)
Судя по доке максимальная частота UART-ов = PCLK / 16.
Правда в доке на 2103 есть ошибочка, формулу
Код
UART1baudrate = PCLK / (16*(16*U1DML+U1DLL)*(1+DivAddVal/MulVal))

следует читать как
Код
UART1baudrate = PCLK / (16*(256*U1DML+U1DLL)*(1+DivAddVal/MulVal))

Мож уже и поправили в доке.
EXeGLuMATOR
Спасибо!
Я так понимаю, что при использовании ПЛЛ все сохраняется, т.е. если частота кварца 14.7456, множитель ПЛЛ 4 (PCLK 58.9824), то делитель UART= 4*32=128?
etoja
Нет, неправильно.
Делитель для UART опирается на частоту периферии, которая называется PCLK.
Эта частота получается из внутренней тактовой частоты ядра процессора с помощью делителей 1:1, 1:2, 1:4. При включении питания по умолчанию устанавливается делитель 1:4.
Внутренняя тактовая частота ядра процессора равна частоте внешнего кварца, умноженной на коэффициент цепи фазовой автоподстройки (PLL).

Таким образом, если внешний кварц имеет частоту 14.7456МГц, а PLL вы запрограммировали на коэффициент умножения 4, по частота ядра процессора будет (14.7456МГц*4).

Частота тактировки периферии (PCLK) при включении питания в 4 раза меньше этой частоты, если вы не запрограммировали иначе. То есть PCLK = (14.7456МГц*4) / 4 = 14.7456МГц.

Для получения битовой скорости 406800 бод вам следует в UART установить делитель 14.7456МГц/406800=32.
EXeGLuMATOR
В общем согласно всех формул - делитель UART - PCLK/(BAUD*16). Соотв - при частоте кварца 14,7456 и умножении PLL 4 - получается 58982400/(406800*16)=9. Вот. Работает.
Реально опробовал скорость 921600. Коэффициент - 4. Работает нормально. Выше - уже с девайсом нет общих скоростей. sad.gif А так думаю и выше пошло-бы... smile.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.