34.6 Пользовательский интерфейс ШИМ-контроллера (PWM)
Таблица 34.2. Расположение в памяти регистров контроллера широтно-импульсной модуляции
Смещение |
Регистр |
Наименование |
Доступ |
Значение после сброса |
0x00 |
Регистр режима ШИМ |
PWM_MR |
чтение/запись |
0 |
0x04 |
Регистр разрешения ШИМ |
PWM_ENA |
только запись |
- |
0x08 |
Регистр отключения ШИМ |
PWM_DIS |
только запись |
- |
0x0С |
Регистр статуса ШИМ |
PWM_SR |
только чтение |
0 |
0x10 |
Регистр разрешения прерывания ШИМ |
PWM_IER |
только запись |
0 |
0x14 |
Регистр отключения прерывания ШИМ |
PWM_IDR |
только запись |
- |
0x18 |
Регистр маски прерывания ШИМ |
PWM_IMR |
только чтение |
0 |
0x1С |
Регистр статуса прерывания ШИМ |
PWM_ISR |
только чтение |
0 |
0x4C - 0xFC |
Зарезервировано |
- |
- |
- |
0x100 - 0x1FC |
Зарезервировано |
- |
- |
- |
0x200 |
Регистр режима канала 0 |
PWM_CMR0 |
чтение/запись |
0х0 |
0x204 |
Регистр рабочего цикла канала 0 |
PWM_CDTY0 |
чтение/запись |
0х0 |
0x208 |
Регистр периода канала 0 |
PWM_CPRD0 |
чтение/запись |
0х0 |
0x20С |
Регистр счетчика канала 0 |
PWM_CCNT0 |
только чтение |
0х0 |
0x210 |
Регистр обновления канала 0 |
PWM_CUPD0 |
только запись |
- |
... |
Зарезервировано |
- |
- |
- |
0x220 |
Регистр режима канала 1 |
PWM_CMR1 |
чтение/запись |
0х0 |
0x224 |
Регистр рабочего цикла канала 1 |
PWM_CDTY1 |
чтение/запись |
0х0 |
0x228 |
Регистр периода канала 1 |
PWM_CPRD1 |
чтение/запись |
0х0 |
0x22С |
Регистр счетчика канала 1 |
PWM_CCNT1 |
только чтение |
0х0 |
0x230 |
Регистр обновления канала 1 |
PWM_CUPD1 |
только запись |
- |
… |
… |
… |
… |
… |
34.6.1 Регистр режима ШИМ
Наименование регистра: PWM_MR
Тип доступа: чтение/запись
31 |
30 |
29 |
28 |
27 |
26 |
25 |
24 |
- |
- |
- |
- |
PREB |
23 |
22 |
21 |
20 |
19 |
18 |
17 |
16 |
DIVB |
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
- |
- |
- |
- |
PREA |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
DIVA |
- DIVA, DIVB - коэффициент деления CLKA, CLKB:
DIVA, DIVB |
CLKA, CLKB |
0 |
Синхронизация CLKA, CLKB отключена |
1 |
Синхронизация CLKA, CLKB - синхронизация, выбранная значением PREA, PREB |
2-255 |
Синхронизация CLKA, CLKB - синхронизация, выбранная значением PREA, PREB и поделенная на DIVA, DIVB. |
PREA, PREB |
Синхронизация на входе делителя |
0 |
0 |
0 |
0 |
MCK |
0 |
0 |
0 |
1 |
MCK/2 |
0 |
0 |
1 |
0 |
MCK/4 |
0 |
0 |
1 |
1 |
MCK/8 |
0 |
1 |
0 |
0 |
MCK/16 |
0 |
1 |
0 |
1 |
MCK/32 |
0 |
1 |
1 |
0 |
MCK/64 |
0 |
1 |
1 |
1 |
MCK/128 |
1 |
0 |
0 |
0 |
MCK/256 |
1 |
0 |
0 |
1 |
MCK/512 |
1 |
0 |
1 |
0 |
MCK/1024 |
прочее |
зарезервировано |
34.6.2 Регистр разрешения работы ШИМ
Наименование регистра: PWM_ENA
Тип доступа: только запись
31 |
30 |
29 |
28 |
27 |
26 |
25 |
24 |
- |
- |
- |
- |
- |
- |
- |
- |
23 |
22 |
21 |
20 |
19 |
18 |
17 |
16 |
- |
- |
- |
- |
- |
- |
- |
- |
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
- |
- |
- |
- |
- |
- |
- |
- |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
- |
- |
- |
- |
CHID3 |
CHID2 |
CHID1 |
CHID0 |
- CHIDx - идентификатор канала:
- 0 - не оказывает влияния.
- 1 - разрешение ШИМ-выхода канала x.
34.6.3 Регистр отключения ШИМ
Наименование регистра: PWM_DIS
Тип доступа: только запись
31 |
30 |
29 |
28 |
27 |
26 |
25 |
24 |
- |
- |
- |
- |
- |
- |
- |
- |
23 |
22 |
21 |
20 |
19 |
18 |
17 |
16 |
- |
- |
- |
- |
- |
- |
- |
- |
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
- |
- |
- |
- |
- |
- |
- |
- |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
- |
- |
- |
- |
CHID3 |
CHID2 |
CHID1 |
CHID0 |
- CHIDx - идентификатор канала:
- 0 - не оказывает влияния.
- 1 - отключение выхода ШИМ канала х.
34.6.4 Регистр статуса ШИМ
Наименование регистра: PWM_SR
Тип доступа: только чтение
31 |
30 |
29 |
28 |
27 |
26 |
25 |
24 |
- |
- |
- |
- |
- |
- |
- |
- |
23 |
22 |
21 |
20 |
19 |
18 |
17 |
16 |
- |
- |
- |
- |
- |
- |
- |
- |
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
- |
- |
- |
- |
- |
- |
- |
- |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
- |
- |
- |
- |
CHID3 |
CHID2 |
CHID1 |
CHID0 |
- CHIDx - идентификатор канала:
- 0 - ШИМ-выход канала х отключен.
- 1 - ШИМ-выход канала х включен.
34.6.5 Регистр разрешения прерывания ШИМ
Наименование регистра: PWM_IER
Тип доступа: только запись
31 |
30 |
29 |
28 |
27 |
26 |
25 |
24 |
- |
- |
- |
- |
- |
- |
- |
- |
23 |
22 |
21 |
20 |
19 |
18 |
17 |
16 |
- |
- |
- |
- |
- |
- |
- |
- |
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
- |
- |
- |
- |
- |
- |
- |
- |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
- |
- |
- |
- |
CHID3 |
CHID2 |
CHID1 |
CHID0 |
- CHIDx - идентификатор канала:
- 0 - не оказывает влияния.
- 1 - разрешение прерывания для ШИМ-канала х.
34.6.6 Регистр отключения прерывания ШИМ
Наименование регистра: PWM_IDR
Тип доступа: только запись
31 |
30 |
29 |
28 |
27 |
26 |
25 |
24 |
- |
- |
- |
- |
- |
- |
- |
- |
23 |
22 |
21 |
20 |
19 |
18 |
17 |
16 |
- |
- |
- |
- |
- |
- |
- |
- |
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
- |
- |
- |
- |
- |
- |
- |
- |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
- |
- |
- |
- |
CHID3 |
CHID2 |
CHID1 |
CHID0 |
- CHIDx - идентификатор канала:
- 0 - не оказывает влияния.
- 1 - отключает прерывание в ШИМ-канале х.
34.6.7 Регистр маски прерывания ШИМ
Наименование регистра: PWM_IMR
Тип доступа: только чтение
31 |
30 |
29 |
28 |
27 |
26 |
25 |
24 |
- |
- |
- |
- |
- |
- |
- |
- |
23 |
22 |
21 |
20 |
19 |
18 |
17 |
16 |
- |
- |
- |
- |
- |
- |
- |
- |
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
- |
- |
- |
- |
- |
- |
- |
- |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
- |
- |
- |
- |
CHID3 |
CHID2 |
CHID1 |
CHID0 |
- CHIDx - идентификатор канала:
- 0 - прерывание в ШИМ-канале x отключено.
- 1 - прерывание в ШИМ-канале х включено.
34.6.8 Регистр статуса прерывания ШИМ
Наименование регистра: PWM_ISR
Тип доступа: только чтение
31 |
30 |
29 |
28 |
27 |
26 |
25 |
24 |
- |
- |
- |
- |
- |
- |
- |
- |
23 |
22 |
21 |
20 |
19 |
18 |
17 |
16 |
- |
- |
- |
- |
- |
- |
- |
- |
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
- |
- |
- |
- |
- |
- |
- |
- |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
- |
- |
- |
- |
CHID3 |
CHID2 |
CHID1 |
CHID0 |
- CHIDx - идентификатор канала:
- 0 - с момента последнего чтения регистра PWM_ISR не было достигнуто нового периода.
- 1 - с момента последнего чтения регистра PWM_ISR был достигнут как минимум один новый период.
Прим.: считывание PWM_ISR автоматически приводит к сбрасыванию флагов CHIDx.
34.6.9 Регистр режима канала ШИМ
Наименование регистра: PWM_CMRx
Тип доступа: чтение/запись
31 |
30 |
29 |
28 |
27 |
26 |
25 |
24 |
- |
- |
- |
- |
- |
- |
- |
- |
23 |
22 |
21 |
20 |
19 |
18 |
17 |
16 |
- |
- |
- |
- |
- |
- |
- |
- |
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
- |
- |
- |
- |
- |
CPD |
CPOL |
CALG |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
- |
- |
- |
- |
CPRE |
- CPRE - предделитель канала:
PREA, PREB |
Синхронизация на входе делителя |
0 |
0 |
0 |
0 |
MCK |
0 |
0 |
0 |
1 |
MCK/2 |
0 |
0 |
1 |
0 |
MCK/4 |
0 |
0 |
1 |
1 |
MCK/8 |
0 |
1 |
0 |
0 |
MCK/16 |
0 |
1 |
0 |
1 |
MCK/32 |
0 |
1 |
1 |
0 |
MCK/64 |
0 |
1 |
1 |
1 |
MCK/128 |
1 |
0 |
0 |
0 |
MCK/256 |
1 |
0 |
0 |
1 |
MCK/512 |
1 |
0 |
1 |
0 |
MCK/1024 |
1 |
0 |
1 |
1 |
CLKA |
1 |
1 |
0 |
0 |
CLKB |
прочее |
зарезервировано |
- CALG - выравнивание канала:
- 0 - период с левым выравниванием.
- 1 - период с выравниванием по центру.
- CPOL - полярность канала:
- 0 - период начинается с низкого уровня.
- 1 - период начинается с высокого уровня.
- CPD - период обновления канала:
- 0 - значение, записанное в PWM_CUPDx, изменит заполнение импульсов со следующего периода.
- 1 - значение, записанное в PWM_CUPDx, изменит период следования импульсов со следующего периода.
34.6.10 Регистр заполнения импульсов в канале ШИМ
Наименование регистра: PWM_CDTYx
Тип доступа: чтение/запись
31 |
30 |
29 |
28 |
27 |
26 |
25 |
24 |
CDTY |
23 |
22 |
21 |
20 |
19 |
18 |
17 |
16 |
CDTY |
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
CDTY |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
CDTY |
Только первые 16 разрядов (размер счетчика внутреннего канала) являются значащими.
- CDTY: заполнение импульсов в канале ШИМ
Определяет заполнение импульсов. Данное значение должно находится между 0 и CPRD (PWM_CPRx).
34.6.11 Регистр периода следования импульсов канала ШИМ
Наименование регистра: PWM_CPRDx
Тип доступа: чтение/запись
31 |
30 |
29 |
28 |
27 |
26 |
25 |
24 |
CPRD |
23 |
22 |
21 |
20 |
19 |
18 |
17 |
16 |
CPRD |
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
CPRD |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
CPRD |
Только первые 16 разрядов (размер счетчика внутреннего канала) являются значащими.
- CPRD: период следования импульсов в канале ШИМ
Если выбрана генерация импульсов с левым выравниванием, то период следования импульсов зависит от источника синхронизации счетчика и может быть вычислен следующим образом:
- (X * CPRD)/MCK, если используется сигнал главной синхронизации MCK, поделенный предделителем на величину X (1, 2, 4, 8, 16, 32, 64, 128, 256, 512 или 1024).
- (CPRD * DIVA)/MCK или (CPRD * DIVB)/MCK, если главная синхронизация поделена одним из делителей DIVA или DIVB.
Если выбрана генерация импульсов с выравниванием по центру, то период следования импульсов зависит источника синхронизации счетчика и вычисляется следующим образом:
- (2* X * CPRD)/MCK, если используется сигнал главной синхронизации MCK, поделенный предделителем на величину X (1, 2, 4, 8, 16, 32, 64, 128, 256, 512 или 1024).
- (2 * CPRD * DIVA)/MCK или (2 * CPRD * DIVB)/MCK , если главная синхронизация поделена одним из делителей DIVA или DIVB.
34.6.12 Регистр счетчика канала ШИМ
Наименование регистра: PWM_CCNTx
Тип доступа: только чтение
31 |
30 |
29 |
28 |
27 |
26 |
25 |
24 |
CNT |
23 |
22 |
21 |
20 |
19 |
18 |
17 |
16 |
CNT |
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
CNT |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
CNT |
- CNT - регистр счетчика канала
Значение внутреннего счетчика. Данный регистр сбрасывается в следующих случаях:
- - разрешена работа канала (записью CHIDx в регистр PWM_ENA).
- - счетчик достигает значения CPRD, определенного в регистре PWM_CPRDx, если задана генерация импульсов с левым выравниванием.
34.6.13 Регистр обновления канала ШИМ
Наименование регистра: PWM_CUPDx
Тип доступа: только запись
31 |
30 |
29 |
28 |
27 |
26 |
25 |
24 |
CUPD |
23 |
22 |
21 |
20 |
19 |
18 |
17 |
16 |
CUPD |
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
CUPD |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
CUPD |
Данный регистр входит в состав механизма двойной буферизации для обновления периода или заполнения импульсов. Этот механизм позволяет предотвратить генерацию нежелательных импульсов при изменении периода или заполнения импульсов.
Только первые 16 разрядов (размер счетчика внутреннего канала) являются значащими.
CPD (регистр PWM_CMRx) |
|
0 |
Заполнение импульсов (CDTC в регистре PWM_CDRx) обновляется значением из CUPD в начале следующего периода. |
1 |
В начале следующего периода обновляется период следования импульсов (параметр CPRD в регистре PWM_CPRx) значением из CUPD. |
|