Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Уч. пос. МПТ (2.04.12).pdf
Скачиваний:
403
Добавлен:
22.03.2015
Размер:
10.95 Mб
Скачать

1.14.4 Порядок настройки ШИМ

1.Задать режим PWM для портовых линий, которые послужат выходами ШИМ через регистры PINSEL0, PINSEL1 (раздел 1.9.3).

2.Задать частоту импульсов путем записи в регистр PWMMR0 значения, рассчитанного по формуле (1.14.1) или (1.14.7).

3.Задать длительности импульсов и (или) начальные фазы с помощью регистров PWMMR1–6. Необходимо устанавливать значения только тех регистров, которые связаны с задействованными выходами ШИМ. Использовать выражения (1.14.2) при нулевой начальной фазе, выражения (1.14.3– 1.14.5) при регулируемой начальной фазе.

4.Произвести настройку счетчика модуля ШИМ через регистр PWMTCR. Необходимо установить бит включения счетчика; рекомендуется разрешить работу защелок. Следовательно, типовым значением является

.

5.Включить необходимые выходы ШИМ и выбрать режим управления начальной фазой для каждого канала через регистр PWMPCR.

После того как настройка произведена, генерирование прямоугольных импульсов с заданными параметрами будет продолжаться, не требуя никакого участия со стороны программы. Изменение параметров сигнала (частоты, начальной фазы, скважности) возможно в любой точке программы путем следующей последовательности действий:

а) запись новых значений в регистры PWMMR0–6;

б) установка битов разрешения обновления защелок в регистре PWMLER. Запись единиц должна производиться одной командой.

Сброс регистра PWMLER в ноль выполняется автоматически. Остановка ШИМ возможна путем сброса бита CNTEN в регистре

PWMTCR. Рекомендуется той же командой сбросить таймер установкой бита RESET в том же регистре.

В разделе 3.6 приведены выражения для расчета пороговых значений, позволяющие организовать ШИМ, частотное и фазовое управление.

1.15 Аналого-цифровые преобразователи

1.15.1 Краткие сведения о встроенных АЦП

Микроконтроллер LPC2148 оснащен двумя встроенными аналогоцифровыми преобразователями (АЦП) поразрядного уравновешивания. Основные параметры встроенных АЦП приведены в таблице 1.15.1.

Каждый АЦП с помощью аналогового мультиплексора позволяет выбирать один из нескольких сигналов, поступающих одновременно на аналоговые входы. Для АЦП 0 таких входов шесть (AD0.1–4, AD0.6.–7), для АЦП 1 — восемь (AD1.0–7). В остальном АЦП идентичны.

Входы АЦП совмещены с цифровыми портовыми линиями. Как было показано в разделе 1.9.3 выбор функции, выполняемой входом, осуществляется через регистры PINSEL0 и PINSEL1.

61

Таблица 1.15.1 – Основные параметры АЦП МК LPC2148

Разрядность, бит

3–10

Мин. время преобразования при разрядности 10 бит, мкс

2,44

Макс. производительность при разрядности 10 бит, преобр./с

409 090

Мин. время преобразования при разрядности 3 бит, мкс

0,89

Макс. производительность при разрядности 3 бит, преобр./с

1 125 000

Число мультиплексируемых аналоговых входов (АЦП 0/1)

6 / 8

Диапазон измеряемого напряжения

0–3,3 В

Имеется рекомендация, в соответствии с которой для сохранения точности выходное сопротивление источника измеряемого напряжения не должно превышать 40 кОм.

1.15.2 Общие рекомендации по использованию АЦП

Взаимодействие с аналого-цифровым преобразователем включает три основных действия: запуск АЦП, ожидание готовности результата преобразования, считывание и обработка результата. Существует несколько вариантов алгоритмической реализации взаимодействия с аналого-цифровым преобразователем. Основное отличие состоит в способе запуска АЦП. Запуск может осуществляться:

а) программным путем; б) по совпадению счетчика с пороговым значением;

в) внешним электрическим сигналом; г) окончанием предыдущего преобразования.

В таблице 1.15.2 дана краткая характеристика перечисленных способов. Ниже будут рассмотрены все способы взаимодействия с АЦП, даны рекомендации по выбору каждого варианта, а также предложены шаблоны программного кода для их реализации.

Программный запуск АЦП реализуется командой, выполняемой при наступлении некоторого события. Таким событием может быть нажатие кнопки, получение команды от компьютера, истечение интервала времени и т. п. Единственным преимуществом программного запуска является то, что он не требует привлечения других ресурсов МК, таких как таймерысчетчики.

При решении большинства задач желательна строгая периодичность запуска АЦП, а в некоторых случаях совершенно необходима. Могут быть названы следующие причины. Во-первых, большинство методов цифровой обработки сигналов разработаны для случая периодической дискретизации. Для их применения необходимо, чтобы дискретные отсчеты напряжения были получены через равные интервалы времени. Нарушение периодичности неизбежно приведет к возникновению дополнительного шума квантования.

Во-вторых, одним из распространенных способов борьбы с некоторыми видами помех является синхронизация частоты квантования с частотой измеряемого процесса или с частотой питающей сети.

62

Таблица 1.15.2 — Способы запуска АЦП в микроконтроллере LPC2148

Способ

Преимущества

Недостатки

Применение

запуска АЦП

 

 

 

 

Программный

Не задействует ап-

Непериодиче-

Измерение посто-

 

паратных

ская дискрети-

янного или медлен-

 

узлов МК

зация

но меняющегося

 

 

 

напряжения с пери-

 

 

 

одом дискретиза-

 

 

 

ции от 0,1 с и выше

От таймера

Периодическая дис-

Задействован

Широкий круг за-

 

кретизация; не тре-

таймер

дач цифровой обра-

 

бует участия про-

 

ботки сигналов

 

граммы

 

 

 

Внешним

Синхронизация

Задействован

Системы импульс-

сигналом

внешним

вывод МК; тре-

но-фазового управ-

 

процессом

бует источника

ления, цифровая

 

 

синхросигнала

обработка сигналов

Непрерывное

Периодическая дис-

Ограниченные

Цифровая

обработ-

преобразова-

кретизация; не за-

возможности

ка сигналов с высо-

ние

действует узлов

выбора частоты

кими

частотами

 

МК; мин. задержки

квантования

квантования

 

между преобр.

 

 

 

Программный запуск АЦП практически не позволяет обеспечить строгую периодичность запуска АЦП, а значит и периода дискретизации сигнала. Причина заключается в том, что выполнение каждой итерации программы занимает различное время, например, из-за ветвлений с различным числом команд в ветвях. Дополнительные временные задержки создают прерывания от разных источников.

В связи с этим, программный запуск применять не рекомендуется. Программный запуск допустим лишь в случаях, когда нет необходимости в строгой периодичности дискретизации, например при измерении постоянного или медленно меняющегося напряжения и притом, что нежелательно использовать один из таймеров-счетчиков специально для формирования сигнала запуска АЦП.

Отметим, что команда запуска АЦП, помещенная в процедуре обработки прерывания от таймера также не обеспечит строгой дискретизации. Точнее обеспечит периодичность с некоторой погрешностью. Погрешность возникает вследствие неизбежных временных задержек, которые имеют случайный характер (см. раздел 1.11.8).

Автоматический запуск при достижении таймером заданного по-

рогового значения. Этот способ можно назвать наиболее универсальным и пригодным для решения большинства практических задач. Сигнал, формируемый схемой совпадения таймера-счетчика, приведет к запуску без участия программы. Запуск осуществляется строго периодически. Прерывание от

63

таймера при этом использовать не требуется. Это является еще одним преимуществом — отсутствуют затраты процессорного времени на обработку прерывания и команды запуска АЦП. Имеется единственный недостаток — использование важного аппаратного ресурса — таймера-счетчика.

Считывание результата можно организовать путем программного опроса, либо с помощью прерывания от АЦП. Второй вариант предпочтителен.

Запуск внешним электрическим сигналом. Внешний пуск обеспе-

чивает синхронизацию процесса квантования с измеряемым процессом, что в некоторых задачах совершенно необходимо, а в ряде других случаев, как упоминалось выше, позволяет устранить некоторые составляющие случайной погрешности. Использование одного из выводов МК, является несущественным недостатком. Существенную трудность составляет необходимость построения аппаратной схемы синхронизации.

Непрерывная работа. В таком случае также обеспечивается строгая периодичность, однако, доступна фиксированная сетка частот тактирования АЦП и соответствующих частот квантования. При этом не предоставляется возможность выбирать период квантования с шагом в один машинный цикл МК. Доступный шаг гораздо больше. Следует отметить, что такой способ запуска может гарантировать работу АЦП без простоев, то есть позволяет добиться наибольшей его производительности.

1.15.3 Управляющие регистры

Рассмотрим регистры, отвечающие за настройку аналого-цифровых преобразователей (рисунок 1.15.1).

Регистры ADxCR

Биты 0–7 (SEL) отвечают за выбор каналов АЦП. Каждому биту соответствует канал с тем же номером AD0.0–AD0.7 (АЦП 0) или AD1.0–AD1.7 (АЦП 1). Одновременная установка нескольких битов допускается только в режиме автоматического сканирования каналов (см. ниже).

Биты 8–15 (CLKDIV) служат для выбора тактовой частоты АЦП. Тактовая частота определяется по формуле

,

(1.15.1)

где — тактовая частота периферийных устройств, которая может быть равна целой, половине или четверти тактовой частоты МК (раздел 1.7.2). Значение не должно превышать 4,5 МГц.

Бит 16 (BURST). Единица в данном разряде переводит АЦП в режим автоматического сканирования каналов. Производится поочередное преобразование сигналов в каналах, выбранных битами SEL. В этом режиме биты START (см. ниже) должны быть равны нулю.

Биты 17–19 (CLKS) имеют значение только в режиме автоматического сканирования каналов (). Эти биты определяют время преобразования и разрядность результата. Значению соответствует время преобразования 11 тактов, разрядность 10 бит. С увеличением на единицу CLKCS, на единицу уменьшается время преобразования и разрядность.

64

65

ADxCR – настройка АЦП

31

 

 

 

 

 

28

 

27

26

24

23

22

21

20

19

17

16

15

8

7

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

GE

START

 

 

 

 

 

 

 

CLKS

 

 

T

 

 

CLKDIV

 

 

 

SEL

 

 

 

 

 

 

 

 

 

 

 

 

N

 

 

 

 

S

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ED

 

 

 

 

 

PD

 

 

 

 

BUR

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Фронт/срез

 

 

 

Способ запуска

 

 

 

ВКЛ

 

 

Число тактов

 

 

 

 

 

 

Делитель частоты

 

 

Выбор каналов АЦП ADx.7:0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

в непр. режиме

 

 

 

 

Непрерывное преобразование

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ADGSR – запуск всех АЦП

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

31

 

 

 

 

 

28

 

27

26

24

23

 

 

20

19

17

16

15

8

7

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

GE

START

 

 

 

 

 

 

 

 

 

ST

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

BUR

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ED

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Фронт/срез

 

 

 

Способ запуска

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Непрерывное преобразование

 

 

 

 

 

ADxGDR – общий результат

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

31

30

 

29

28

 

27

26

24

23

 

 

 

 

 

 

16

15

8

7

6

5

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

E

-

 

 

 

 

 

 

 

 

CHN

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

RESULT

 

 

 

 

 

VE

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

N

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

DO

O UN

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

R

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Готов

 

 

 

Потеря результата

Номер канала

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Результат аналого-цифрового преобразования

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ADxDRx – результат для канала

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

31

30

 

29

28

 

27

 

24

23

 

 

 

 

 

 

16

15

8

7

6

5

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

NE

-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

RESULT

 

 

 

 

 

VE

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

DO

O N

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

RU

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Готов

 

 

 

Потеря результата

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Результат аналого-цифрового преобразования

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ADxSTAT – состояние

31

24

23

20

19

17

16

15

 

 

 

 

8

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ADINT

 

 

OVERUN7:0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Потеря результата каналов ADx.7:0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Флаг прерывания

 

 

 

 

 

ADxINTEN – управление прерыванием

 

 

 

 

 

 

 

 

 

 

 

 

 

31

24

23

 

 

 

 

16

15

12

 

11

9

8

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ADG

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

INTEN

Разр. прер. от всех каналов

7

0

DONE7:0

Готовность результата каналов ADx.7:0

7

0

ADINTEN7:0

Разрешение прерываний от каналов ADx.7:0

Рисунок 1.15.1 – Схема регистров для управления аналого-цифровыми преобразователями

Таблица 1.15.3 – Режимы запуска АЦП

START

Режим запуска АЦП

000

Преобразования не выполняются

001

Запустить преобразование немедленно

010

Запуск внешним сигналом на входе P0.16

011

Запуск внешним сигналом на входе P0.22

100

Запуск сигналом MAT0.1

101

Запуск сигналом MAT0.3

110

Запуск сигналом MAT1.0

111

Запуск сигналом MAT1.1

Значению соответствует время преобразования 4 такта, разрядность 3 бита. При разрядность составляет 10 бит, преобразование занимает 11 тактов независимо от состояния CLKS.

Минимальное время преобразования определяется выражением

(мкс),

(1.15.2)

где — разрядность АЦП.

Бит 21 (PDN) включает (1) и отключает (0) АЦП. Должен быть установлен в единицу.

Биты 24–26 (START) служат для выбора способа запуска АЦП (таблица 1.15.3). Эти биты должны быть равны нулю в режиме автоматического сканирования каналов ().

Следует понимать принципиальное отличие запуска внешним сигналом на входах P0.16 и P0.22 от запуска сигналами MATx.x, которые формируются внутренней схемой совпадения встроенного таймера-счетчика и могут не быть подключенными к внешним выводам МК (раздел 1.13.1).

Бит 27 (EDGE). Выбор нарастающего (0) или спадающего (1) фронта сигнала запуска АЦП при .

Регистр ADGSR позволяет одновременно настроить запуск двух АЦП. Значения битов BURST, START, EDGE абсолютно аналогичны регистрам ADxCR. Остальные биты должны задаваться отдельно для каждого АЦП через регистр ADxCR.

Регистр ADxGDR. Результат аналого-цифрового преобразования счи-

тывается из регистров AD0GDR и AD1GDR (ADxGDR).

Биты 6–15 (RESULT) содержат десятиразрядный результат аналогоцифрового преобразования. Входное напряжение АЦП связано с результатом АЦП и опорным напряжением, подключенным к входу Vref МК, выражением

. (1.15.3)

Биты 24–26 (CHN) содержат двоичный номер канала АЦП от 0 (000) до 7 (111), для которого получен результат, хранимый в разрядах RESULT.

Бит 30 (OVERUN). Бит равен единице, если в режиме автоматического сканирования каналов () результат АЦП потерян, то есть не

66