
- •Отличительные особенности микроконтроллеров at91 на базе ядра arm® Thumb®
- •. Описание
- •2. Краткий обзор конфигурации семейства at91sam7s
- •3. Структурная схема
- •4. Назначение выводов
- •5. Назначение внешних выводов для различных корпусов
- •6. Питание
- •7. Порты ввода-вывода
- •8. Архитектура ядра процессора
- •9. Память
- •10. Системный контроллер
- •10.1 Организация памяти системного контроллера
- •10.2 Контроллер сброса
- •10.3 Тактовый генератор
- •10.4 Контроллер управления потребляемой мощностью
- •Расширенный контроллер прерываний и модуль внутрисхемной отладки
- •Таймеры, контроллер портов ввода-вывода и контроллер режимов стабилизатора напряжения питания
- •11. Периферийные модули
- •11.1 Организация памяти периферийных модулей
- •11.2 Дополнительные функции портов ввода-вывода
- •11.3 Функции портов pa0…pa31
- •11.4 Идентификаторы периферийных модулей
- •11.5 Последовательный периферийный интерфейс
- •Двухпроводной интерфейс, usart, spi
- •11.9 Таймер-счетчик (tc)
- •Шим контроллер, usb, ацп
- •12. Обзор процессора arm7tdmi
- •13. Отличительные способности средств отладки и тестирования Описание и структурная схема
- •13.3 Примеры применения
- •13.4 Описание выводов для отладки и тестирования
- •13.5 Функциональное описание
- •14. Контроллер сброса (rstc) Обзор и структурная схема
- •14.3 Функциональное описание
- •14.4 Пользовательский интерфейс контроллера сброса
- •15. Таймер реального времени (rtt)
- •15.3 Функциональное описание
- •15.4 Пользовательский интерфейс таймера реально времени
- •16. Интервальный таймер (pit)
- •16.3 Функциональное описание
- •16.4 Пользовательский интерфейс интервального таймера
- •17. Сторожевой таймер (wdt)
- •17.3 Функциональное описание
- •17.4 Пользовательский интерфейс сторожевого таймера
- •18. Контроллер режимов стабилизатора напряжения (vreg)
- •19. Контроллер памяти (mc)
- •19.3 Функциональное описание
- •19.4 Пользовательский интерфейс контроллера памяти
- •20. Контроллер встроенной флэш-памяти (efc)
- •20.3 Пользовательский интерфейс контроллера встроенной флэш-памяти
- •21. Интерфейс программирования флэш-памяти (ffpi)
- •21.3. Последовательный интерфейс программирования флэш-памяти
- •22. Стартовый загрузчик at91sam7 (бут загрузчик)
- •23. Контроллер пдп (dma) периферийных модулей
- •23.3 Функционирование контроллера dma
- •23.4 Контроллер пдп (pdc). Интерфейс работы
- •24. Расширенный Контроллер Прерываний (aic)
- •24.6 Особенности контроллеров at91 серии
- •24.7 Функциональное описание
- •24.8 Контроллер прерываний aic. Интерфейс пользователя
- •25. Тактовый генератор
- •26. Контроллер управления потребляемой мощности (pmc)
- •26.5 Контроллер тактовых сигналов периферийных модулей (Peripheral Clock Controller)
- •26.6 Контроллер программно управляемых внешних тактовых сигнала
- •6.7 Последовательность программирования
- •26.8 Переключение тактовых сигналов
- •26.9 Регистры контроллера управления потребляемой мощности
- •27. Модуль внутрисхемной отладки (dbgu)
- •27.4. Работа уапп (uart)
- •27.5 Пользовательский интерфейс модуля внутрисхемной отладки
- •28. Контроллер параллельного ввода-вывода
- •8.5 Функциональное описание
- •28.7. Пользовательский интерфейс контроллера параллельного ввода - вывода
- •9. Последовательный периферийный интерфейс (spi)
- •29.6 Функциональное описание
- •29.7 Пользовательский интерфейс последовательно - параллельного интерфейса (spi)
- •30. Двухпроводной интерфейс
- •30.5 Функциональное описание
- •30.6. Пользовательский интерфейс двухпроводного интерфейса
- •33. Таймер-счетчик (тс)
- •33.5 Функциональное описание
- •33.6 Пользовательский интерфейс таймера-счетчика (тс)
- •34. Контроллер широтно-импульсной модуляции (шим)
- •34.5 Функциональное описание
- •34.6 Пользовательский интерфейс шим-контроллера (pwm)
- •35. Порт usb-устройства (udp)
- •35.5. Функциональное описание
- •35.5.2.8 Транзакция "Статус"
- •35.6. Пользовательский интерфейс usb порта (udp)
- •36. Аналогово-цифровой преобразователь (ацп)
- •36.5 Функциональное описание
- •36.6 Пользовательский интерфейс ацп
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:
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. |