Читайте также:
|
|
Как и в стандартном COM-порте, основная величина, задающая частоту следования битовых интервалов – это 16-битовый делитель DL, задаваемый через регистры COMDIV0 (младший байт) и COMDIV1 (старший байт). Описание этих регистров приведено далее???
Частота следования битовых интервалов в микросистемах ADuC702x в стандартном режиме 16450 определяется формулой:
Здесь: 32768 – частота кварцевого резонатора, Ml – коэффициент умножения контура фазовой автоподстройки частоты (1275 по данным Технического Описания), 2 CD – коэффициент деления формирователя тактовой частоты ядра (от 1 до 128 при величинах CD от 0 до 7), DL – 16-битовый программно задаваемый коэффициент деления.
Порядок действий в программе при задании частоты следования битовых интервалов следующий:
1) Разрешить доступ к регистрам делителя DL – установкой в «1» бита 7 (DLAB) в регистре COMCON0.
2) Записать два байта (заранее вычисленного) делителя в регистры COMDIV0 (младший) и COMDIV1 (старший).
3) Сбросить бит DLAB и одновременно задать формат пакета в регистре COMCON0.
При максимальной тактовой частоте ядра 41.779200 МГц (при CD =0) доступен диапазон частот следования битовых интервалов от 1305600 Гц (при DL =1) до 19,9219 Гц при (DL =65535). Стандартные частоты следования битовых интервалов можно задать лишь с некоторой погрешностью, для отдельных стандартных частот (при CD=0) значения величины DL и значения получаемой погрешности задания частоты битовых интервалов приведены в следующей таблице:
Стандартная битовая частота | Делитель DL | Действительная частота | Ошибка % |
0x88 | |||
0x44 | |||
0x2D | +0,74% | ||
0x17 | +1,45% | ||
0x0B | +3% | ||
0x05 | +13,3% |
Величины ошибки, приведённые в таблице, за исключением скорости 230400, являются допустимыми (максимальная величина ошибки должна быть меньше 4%), но наличие ошибки задания частоты повышает вероятность неверной передачи.
Дробный делитель (Fractional Divider)
С целью повышения точности задания битовой частоты в микросистемы семейства ADuC702x дополнительно введён так называемый дробный делитель (Fractional Divider), который работает совместно со стандартным блоком формирования частоты.Схема дробного делителя изображена на рисунке:
Дробный делитель управляется через дополнительный периферийный регистр COMDIV2. Его подробное описание будет приведено далее.
При включённом «дробном делителе» (если бит FBEN – COMDIV2:15 установлен в 1) переключается мультиплексор в блоке формирования частоты следования битовых интервалов, и она задаётся более сложной формулой:
Здесь ‑ величина дробного делителя. Ее определяют два параметра: M и N, значение M может быть задано в диапазоне от 1 до 4, а значение N ‑ в диапазоне от 0 до 2047. При увеличении любого из параметров M, N величина FD увеличивается от 1,0 (при M =1, N =0) до 4,99951 (при M =4, N =2047). Во столько же раз можно уменьшить частоту Baudrate, при этом шаг ее изменения составит (в относительных единицах 0,05%...0,01%, т.е., используя дробный делитель, можно задать Baudrate с высокой точностью.
При использовании дробного делителя, частота Baudrate зависит уже от четырех параметров:
CD (Core Divider), DL (Divisor Latch), M, N. Величину CD выбирают, чтобы получить требуемую частоту тактирования процессорного ядра Fcore=41,7792/2CD. Остальные же три величины: DL, M, N влияют только на Baudrate. Требуемую величину Baudrate можно получить при нескольких различных сочетаниях DL, M, N.
Покажем, как это можно сделать на примере получения стандартной частоты 230400, которая без использования дробного делителя может быть установлена лишь с погрешностью +13,3% (см. последнюю строку в табл.???). Как уже было упомянуто, дробный делитель может принимать значения от 1,0 до 4,9995
Определение значений M и N следует выполнять, используя нижеприведённое выражение:
Подставив в это выражение требуемое значение Baudrate, надо подобрать величину DL так, чтобы получить значение левой части в пределах от 1 до 4,9995. Целая часть этого числа даст M, а из дробной легко получить значение N.
Для задания битовой частоты 230400 при CD =0 из соотношения:
можно получить и использовать две допустимые комбинации { DL,FD },они приведены в двух левых столбцах табл.???
DL | FD | M | N | Baudrate | d% |
1,1333 | 273=0x111 274=0x112 | 230406 230307 | +0,0026% ‑0,04% | ||
2,8333 | 1706=0x6AA 1707=0x6AB | 230426 230386 | +0,011% -0,006% |
Для каждой из этих комбинаций в таблице приведена пара сочетаний параметров M и N (столбцы 3 и 4), дающих приближение Baudrate с избытком и с недостатком.
Для более точного, нежели в табл.??? задания стандартной частоты 115200 Бод, могут использоваться шесть сочетаний величин { DL,M,N }, эти сочетания, и даваемые ими Baudrate и ее погрешность d% приведены в табл.???.
DL | FD | M | N | Baudrate | d% |
1,1333 | 273=0x111 274=0x112 | 115203 115153 | +0,0026% ‑0,04% | ||
2,2666 | 546=0x222 547=0x223 | 115203 115178 | +0,0026% ‑0,019% | ||
3,7778 | 1592=0x638 1593=0x639 | 115213 115198 | +0,011% -0,002% |
управления дробным делителем
Регистр дробного делителя COMDIV2 адрес 0xFFFF072C, длина два байта, «чтение-запись».
Биты | Имя поля | Описание (функция) |
FBEN | «1» ‑ разрешить работу дробного делителя, «0» ‑ запретить. | |
14-13 | --- | Резервировано |
12-11 | FBM[1-0] | Вличина M в пределах от 1 до 4 (комбинация битов 00 задаёт значение 4) |
10-0 | FBN[10-0] | Величина N в пределах от 0 до 2047 |
Дата добавления: 2015-09-10; просмотров: 86 | Поможем написать вашу работу | Нарушение авторских прав |