CC253x/4x User's Guide (Rev. F)

CC253x System-on-Chip Solution for 2.4-GHz IEEE 802.15.4 ZigBee® Applications

 

CC2540/41 System-on-Chip Solution for 2.4- GHz Bluetooth® low energy Applications

 

User's Guide Руководство пользователя

 

Literature Number: SWRU191F

Скачать оригинал (eng)

 

 

 

 

 

Cодержание

Предисловие.................................................14
1. Введение................................................. 17
1.1 Обзор ................................................ 18
1.1.1 Процессор и память ............................................ .................................................. ... 21
1.1.2 Часы и управление питанием ........................................... ..................................... 21
1.1.3 Периферийные устройства .............................................. .................................................. ......... 21
1.1.4 Радио .............................................. .................................................. ................ 23
1.2 Приложения ................................................ .................................................. ............... 23
2 8051 CPU ............................................... .................................................. .......................... 24
2.1 8051 CPU Введение .............................................. .................................................. .... 25
2.2 Память ................................................ .................................................. .................... 25
2.2.1 Карта памяти ............................................. .................................................. ........ 25
2.2.2 Пространство памяти ЦП ............................................ .................................................. 27
2.2.3 Физическая память ............................................. .................................................. ... 28
2.2.4 Доступ к памяти XDATA ............................................ .............................................. 33
2.2.5 Memory Arbiter ............................................. .................................................. ..... 33
2.3 Регистры ЦП ............................................... .................................................. ............. 34
2.3.1 Указатели данных ............................................. .................................................. ....... 34
2.3.2 Регистры R0 – R7 ........................................... .................................................. ..... 35
2.3.3 Слово статуса программы ............................................ ................................................. 35
2.3.4 Аккумулятор .............................................. .................................................. ........ 36
2.3.5 B Регистрация ............................................. .................................................. ........... 36
2.3.6 Указатель стека ............................................. .................................................. ........ 36
2.4 Сводка инструкций .............................................. .................................................. .. 36
2.5 Прерывания ................................................ .................................................. .................. 40
2.5.1 Маскировка прерываний ............................................. .................................................. ... 41
2.5.2 Обработка прерываний ............................................. .................................................. 45
2.5.3 Приоритет прерывания ............................................. .................................................. ..... 47
3 Интерфейс отладки ............................................... .................................................. ................. 50
3.1 Режим отладки ............................................... .................................................. ............... 51
3.2 Отладочная связь ............................................... .................................................. ... 51
3.3 Команды отладки ............................................... .................................................. ........ 53
3.3.1 Конфигурация отладки ............................................. ................................................. 55
3.3.2 Состояние отладки ............................................. .................................................. ....... 55
3.3.3 Аппаратные точки останова ............................................. ............................................... 56
3.4 Программирование Flash ............................................... .................................................. ....... 57
3.4.1 Биты блокировки ............................................. .................................................. ............. 57
3.5 Интерфейс отладки и режимы питания ............................................ .......................................... 57
3.6 Регистры ................................................ .................................................. .................. 59
4 Управление питанием и часы ............................................. .............................................. 60
4.1 Управление питанием Введение .............................................. ........................................... 61
4.1.1 Активный и режим ожидания ........................................... ................................................. 62
4.1.2 PM1 .............................................. .................................................. ................. 62
4.1.3 PM2 .............................................. .................................................. ................. 62
4.1.4 PM3 .............................................. .................................................. ................. 62
4.2 Контроль управления питанием ............................................. ................................................. 62
4.3 Регистры управления питанием ............................................. .............................................. 63
4.4 Генераторы и часы .............................................. .................................................. ..... 66
4.4.1 Генераторы .............................................. .................................................. .......... 66
4.4.2 Системные часы ............................................. .................................................. ....... 66
4.4.3 Генераторы 32 кГц ........................................... .................................................. .... 67
4.4.4 Генератор и тактовые регистры ........................................... ....................................... 67
4.5 Генерация тактов таймера .............................................. .................................................. ..... 69
4.6 Хранение данных ............................................... .................................................. ............. 69
5 Сброс ................................................ .................................................. .............................. 70
5.1 Сброс при включении питания и детектор отключения питания .................................. 71
5.2 Детектор потери тактового сигнала ............................................. ............................. 71
6 Flash Controller ............................................... .................................................. ................ 72
6.1 Организация флэш-памяти .............................................. ................................................. 73
6.2 Flash-запись ............................................... .................................................. ................. 73
6.2.1 Процедура Flash-записи ........................................... ................................................. 73
6.2.2 Писать несколько раз в слово ......................................... ...................................... 74
6.2.3 DMA Flash Write ............................................ .................................................. .... 74
6.2.4 Флэш-память CPU ............................................ .................................................. ..... 75
6.3 Стирание Flash-страницы .............................................. ............................ 75
6.3.1 Выполнение стирания флэш-памяти из флэш-памяти ......................... 76
6.3.2 Различный размер страницы Flash на CC2533 ........................................76
6.4 Flash DMA Trigger .............................................. ............................................ 76
6.5 Регистры контроллера флэш-памяти .............................................. ................ 76
7 Порты ввода/вывода ............................................. ......................................... 78
7.1 Неиспользуемые выводы ввода/вывода ............................................ ........................ 79
7.2 Низкое напряжение питания ввода/вывода ........................................... ...................... 79
7.3 Универсальный ввод/вывод ........................................... .............................. 79
7.4 Прерывания ввода-вывода общего назначения .......................................... . 79
7.5 DMA общего назначения ввода/вывода .......................................... ............80
7.6 Периферийный ввод / вывод ............................................. ................................. 80
7.6.1 Таймер 1 ............................................. .................................................. ............... 81
7.6.2 Таймер 3 ............................................. .................................................. ............... 81
7.6.3 Таймер 4 ............................................. .................................................. ............... 82
7.6.4 USART 0 ............................................. .................................................. ............ 82
7.6.5 USART 1 ............................................. .................................................. ............ 82
7.6.6 АЦП .............................................. .................................................. ................. 83
7.7 Интерфейс отладки ............................................... ......................................... 83
7.8 32-кГц вход XOSC ............................................ ........................................ 83
7.9 Тестовые выходные сигналы радио ............................................. ....................... 84
7.10 Сигнал выключения питания MUX (PMUX) ......................................... ............... 84
7.11 Регистры ввода / вывода ............................................. ................................. 84
8 DMA контроллер ............................................... ................................................. 92
8.1 Операция прямого доступа к памяти ............................................... ................. 93
8.2 Параметры конфигурации DMA .............................................. ...................... 95
8.2.1 Адрес источника ............................................. .................................................. ..... 95
8.2.2 Адрес назначения ............................................. .................................................. 95
8.2.3 Количество переводов ............................................. .................................................. ...... 95
8.2.4 Настройка VLEN ............................................. .................................................. ........ 96
8.2.5 Триггерное событие ............................................. .................................................. ........ 96
8.2.6 Увеличение источника и получателя ........................................... ................................... 96
8.2.7 Режим передачи DMA ............................................ .................................................. 97
8.2.8 Приоритет прямого доступа к памяти ............................................. ................ 97
8.2.9 Передача байтов или слов ........................................... ................................................ 97
8.2.10 Маска прерывания ............................................. .................................................. ..... 97
8.2.11 Настройка режима 8 ............................................ .................................................. ..... 97
8.3 Настройка конфигурации DMA .............................................. .................................................. 97
8.4 Остановка передач DMA .............................................. .................................................. .. 98
8.5 Прерывания DMA ............................................... .................................................. ............. 98
8.6 Структура данных конфигурации DMA ............................................ ........................................... 98
8.7 Доступ к памяти DMA .............................................. .................................................. ...... 98
8.8 Регистры DMA ............................................... .................................................. ........... 101
9 Таймер 1 (16-битный таймер) ......................................... .......................................... 103
9.1 16-битный счетчик ............................................. .................................................. .............. 104
9.2 Работа таймера 1 .............................................. .................................................. ........ 104
9.3 Режим свободного хода ............................................. .................................................. ....... 104
9.4 Режим по модулю ............................................... .................................................. ............. 105
9.5 Режим вверх-вниз ........................................... .................................................. ......... 105
9.6 Управление в канальном режиме ............................................. ............. 105
9.7 Режим ввода ввода .............................................. .................................................. ...... 106
9.8 Режим сравнения выходных данных .............................................. .............................106
9.9 Генерация и обучение ИК-сигналов ............................................ ........................................ 111
9.9.1 Введение .............................................. .................................................. ....... 111
9.9.2 Модулированные коды ............................................. .................................................. 111
9.9.3 Немодулированные коды ........................................... ............................................... 112
9.9.4 Обучение .............................................. .................................................. ........... 113
9.9.5 Другие соображения ............................................. ............................................... 113
9.10 Прерывания от Таймера 1 .............................................. .................................................. ......... 113
9.11 Триггеры DMA Таймера 1 ............................................. .................................................. ..... 113
9.12 Регистры Таймера 1 .............................................. .................................................. ......... 114
9.13 Доступ к регистрам таймера 1 как массива ........................................... ..................................... 119
10 Таймер 3 и Таймер 4 (8-битные таймеры) ...................................... ................................................ 120
10.1 8-битный счетчик таймера ............................................ .................................................. ......... 121
10.2 Управление таймером 3 и таймером 4 .......................................... ........................................... 121
10.2.1. Автономный режим ........................................... ................................................. 121
10.2.2. Режим вниз ............................................. .................................................. ....... 121
10.2.3 Режим по модулю ............................................. .................................................. ..... 121
10.2.4 Режим вверх-вниз ......................................... .................................................. 121
10.3 Управление режимом канала .............................................. ....................................121
10.4 Режим ввода ввода .............................................. .................................................. ...... 122
10.5 Режим сравнения выходных данных .............................................. ....................... 122
10.6 Прерывания от Таймера 3 и Таймера 4 ........................................... ...........122
10.7 Триггеры DMA Таймера 3 и Таймера 4 .......................................... .................... 123
10.8 Регистры Таймера 3 и Таймера 4 ........................................... ............................ 123
11 Таймер сна ............................................... .................................................. ..................... 128
11.1 Общие положения ................................................ ................................................. 129
11.2 Сравнение таймеров ............................................... ........................................ 129
11.3 Захват таймера ............................................... .................................................. ............ 129
11.4 Регистры таймера сна .............................................. .................................................. ... 130
12 АЦП ................................................ .................................................. .............................. 132
12.1 АЦП Введение ............................................... .................................................. ......... 133
12.2 Работа АЦП ............................................... .................................................. ........... 133
12.2.1 Входы АЦП ............................................. .................................................. ....... 133
12.2.2 Последовательности преобразования АЦП ............................................ ... 134
12.2.3 Преобразование одного АЦП ............................................ ............................................ 134
12.2.4 Режимы работы АЦП ............................................ ............................................. 134
12.2.5 Результаты преобразования АЦП ............................................ .......................................... 135
12.2.6 АЦП опорного напряжения ............................................ ........................................... 135
12.2.7 Время преобразования АЦП ............................................ ........................................... 135
12.2.8 Прерывания АЦП ............................................. .................................................. ... 135
12.2.9 Триггеры ADC DMA ............................................ ................................................. 135
12.2.10 Регистры АЦП ............................................. .................................................. .. 136
13 Монитор батареи ............................................... .................................................. ............... 139
13.1 Функциональность и использование монитора батареи .........................................140
13.2 Использование монитора батареи для контроля температуры ..............................140
13.3 Регистры контроля батареи .............................................. ................................................. 141
14 Генератор случайных чисел ............................................. .................................................. 143
14.1 Введение ................................................ .................................................. .............. 144
14.2 Работа генератора случайных чисел ........................................... ..................................... 144
14.2.1. Генерация псевдослучайной последовательности ............................................  144
14.2.2 Посев .............................................. .................................................. .......... 144
14.2.3 CRC16 .............................................. .................................................. ........... 144
14.3 Регистры генератора случайных чисел ........................................... ..................................... 145
15 AES сопроцессор ............................................... .................................................. ............ 146
15.1 Работа AES ............................................... .................................................. ........... 147
15.2 Ключ и IV .............................................. .................................................. ................. 147
15.3 Заполнение входных данных ............................................. .................................................. ..... 147
15.4 Интерфейс для процессора .............................................. .................................................. .......... 147
15.5 Режимы работы .............................................. .................................................. ...... 147
15.6 CBC-MAC .............................................. .................................................. .................. 147
15.7 Режим СКК ............................................... .................................................. ................ 148
15,8 AES прерывания ............................................... .................................................. ............ 150
15.9 Триггеры AES DMA .............................................. .................................................. ....... 150
15.10 Регистры AES ............................................... .................................................. ........... 150
16 Сторожевой таймер ............................................... .................................................. .............. 152
16.1 Сторожевой режим ............................................... .................................................. .......... 153
16.2 Режим таймера ............................................... .................................................. ............... 153
16.3 Регистр сторожевого таймера .............................................. .................................................. 153
17 USART ................................................ .................................................. .......................... 155
17.1 Режим UART ............................................... .................................................. .............. 156
17.1.1 Передача UART ............................................. .................................................. ... 156
17.1.2 Получение UART ............................................. .................................................. ... 156
17.1.3 Аппаратное управление потоком UART ........................................... ..................................... 156
17.1.4 Формат символов UART ............................................ ........................................... 157
17.2 Режим SPI ............................................... .................................................. ................. 157
17.2.1 Операция SPI Master ............................................ .............................................. 157
17.2.2 Работа ведомого SPI ............................................ ................................................ 158
17.3 SSN Slave-Select Pin ............................................ .................................................. ...... 158
17.4 Генерация скорости передачи ............................................. .................................................. .... 158
17.5 Промывка USART ............................................... .................................................. ......... 159
17.6 USART Прерывания ............................................... .................................................. ........ 159
17.7 Триггеры USART DMA .............................................. .................................................. .... 159
17.8 Регистры USART ............................................... .................................................. ........ 159
18 Операционный усилитель ............................................... ..................................................  164
18.1 Описание ................................................ .................................................. ............... 165
18.2 Калибровка ................................................ .................................................. ............... 165
18.3 Источник синхронизации ............................................... ..................................................165
18.4 Регистры ................................................ .................................................. ................. 165
19 Аналоговый компаратор ............................................... .................................................. .......... 166
19.1 Описание ................................................ .................................................. ............... 167
19.2 Регистрация ................................................ .................................................. .................. 167
20 I2C ................................................. .................................................. ................................ 168
20.1 Эксплуатация ................................................ .................................................. ................ 169
20.1.1 I2C Инициализация и сброс .............................................. ....................................... 170
20.1.2 I2C Serial Data ............................................... .................................................. 170
20.1.3 Режимы адресации I2C ............................................... .......................................... 171
20.1.4 Режимы работы модуля I2C .............................................. ................................... 171
20.1.5 I2C Генерация тактовых импульсов и синхронизация .............................................177
20.1.6 Ошибка шины ............................................. .................................................. .......... 178
20.1.7 Прерывание I2C ................................................ .................................................. .... 178
20.1.8 I2C Pins ................................................ .................................................. ......... 178
20.2 Регистры I2C ................................................ .................................................. ............. 178
21 USB-контроллер ............................................... .................................................. ................ 181
21.1 USB Введение ............................................... .................................................. ......... 182
21.2 USB Enable ............................................... .................................................. ............... 182
21,3 48-МГц USB PLL ............................................ .................................................. ........... 182
21.4 Прерывания USB ............................................... .................................................. ............ 183
21,5 Конечная точка 0 ............................................... .................................................. ................ 183
21.6 Прерывания конечной точки-0 ............................................. .............................183
21.6.1 Условия ошибки ............................................. .................................................. .. 184
21.6.2 Транзакции SETUP (состояние IDLE) ......................................... .................................. 184
21.6.3 IN-транзакции (состояние передачи) ......................................... ........................................... 184
21.6.4 OUT транзакции (RX State) ......................................... ........................................ 185
21.7 Конечные точки 1–5 ............................................. ................................................. 185
21.7.1 Управление FIFO ............................................. ................................................ 185
21.7.2 Двойная буферизация ............................................. .................................................. 186
21.7.3 Доступ к FIFO ............................................. .................................................. ...... 187
21.7.4 Конечная точка 1–5 Прерывания .......................................... .............................................. 187
21.7.5 Конечная точка массива или прерывания IN .......................................... ... 188
21.7.6. Изохронная конечная точка IN ............................................ ........................................... 188
21.7.7 Конечная точка OUT или прерывания OUT .......................................... ..................................... 188
21.7.8 конечная точка изохронного выхода ............................................ ........................................ 188
21.8 DMA ................................................ .................................................. ...................... 189
21.9 Сброс USB ............................................... .................................................. ................ 189
21.10 Приостановить и возобновить .............................................. .................................................. ... 189
21.11 Дистанционный звонок ............................................. .................................................. ......... 189
21.12 USB-регистры ............................................... .................................................. ........... 190
22 Таймер 2 (таймер MAC) ........................................... .................................................. ............ 197
22.1 Работа таймера ............................................... .................................................. .......... 198
22.1.1 Общее .............................................. .................................................. ........... 198
22.1.2 Верхний счетчик ............................................. .................................................. ....... 198
22.1.3 Переполнение таймера ............................................. .................................................. ... 198
22.1.4 Увеличение дельты таймера ............................................ ............................................. 198
22.1.5 Сравнение таймеров ............................................. .................................................. .. 198
22.1.6 Счетчик переполнения ............................................. .................................................. ... 198
22.1.7 Обновление подсчета переполнения ........................................... ............................................. 199
22.1.8 Переполнение-Счет переполнения ........................................... ........................................... 199
22.1.9 Сравнение переполнения-подсчета ........................................... ........................................... 199
22.1.10 Ввод ввода ............................................. .................................................. ... 199
22.1.11 Длинное сравнение (только CC2541) ......................................... ..................................... 199
22.2 Прерывания ................................................ .................................................. ................. 199
22.3 Выходы события (триггер DMA и события радио) ........................................ ............ 200
22.4 Синхронизация запуска и остановки таймера .......................................... .................. 200
22.4.1 Общее .............................................. .................................................. ........... 200
22.4.2 Таймер синхронного останова ............................................ .......................................... 200
22.4.3 Таймер синхронного запуска ............................................ .......................................... 201
22.5 Регистры Таймера 2 .............................................. .................................................. ......... 202
23 CC253x Radio ............................................... .................................................. .................. 208
23.1 RF Core ............................................... .................................................. ................... 209
23.1.1 Прерывания .............................................. .................................................. ......... 209
23.1.2 Регистры прерываний ............................................. ................................................. 209
23.2 Доступ к FIFO ............................................... .................................................. .............. 213
23.3 DMA ................................................ .................................................. ...................... 213
23.4 Карта памяти ............................................... .................................................. ............. 213
23.4.1 RXFIFO .............................................. .................................................. .......... 214
23.4.2 TXFIFO .............................................. .................................................. ........... 214
23.4.3 Карта памяти с фильтрацией кадров и соответствием источника .................. 214
23.5 Программирование частоты и канала ............................................. ................................... 215
23.6 Формат модуляции IEEE 802.15.4-2006 ......................................... ...................................... 215
23.7 Формат кадра IEEE 802.15.4-2006 ......................................... ........................................... 217
23.7.1 PHY Layer ............................................. .................................................. ........ 217
23.7.2 Уровень MAC ............................................. .................................................. ........ 217
23.8 Режим передачи ............................................... .................................................. ........... 218
23.8.1 Управление TX ............................................. .................................................. ........ 218
23.8.2 TX State Timing ............................................ .................................................. ... 218
23.8.3 TXFIFO Access ............................................. .................................................. .. 218
23.8.4 Ретрансляция .............................................. .................................................. .. 219
23.8.5 Условия ошибки ............................................. .................................................. .. 219
23.8.6 Блок-схема TX ............................................ .................................................. 219
23.8.7 Обработка переданного кадра ............................................ ................................... 221
23.8.8 Заголовок синхронизации ............................................. .......................................... 221
23.8.9 Поле длины кадра ........................................... .................................................. 221
23.8.10 Последовательность проверки кадра ............................................ ................. 221
23.8.11 Прерывания .............................................. .................................................. ....... 222
23.8.12 Оценка чистых каналов ........................................... ....................................... 222
23.8.13 Программирование выходной мощности ............................................ ......... 222
23.8.14 Советы и хитрости ............................................ .................................................. .. 222
23.9 Режим приема ............................................... .................................................. ........... 222
23.9.1 RX Control ............................................. .................................................. ........ 222
23.9.2 RX State Timing ............................................ .................................................. .. 223
23.9.3 Обработка полученных кадров ........................................... ....................................... 223
23.9.4 Поля заголовка синхронизации и длины кадра ........................................ ................ 224
23.9.5 Фильтрация кадров ............................................. .................................................. ... 224
23.9.6 Соответствие адреса источника ............................................ ......................................... 227
23.9.7 Последовательность проверки кадра ........................................... ......................... 230
23.9.8 Подтверждение передачи ............................................. ................................ 230
23.10 Доступ к RXFIFO ............................................... .................................................. .......... 232
23.10.1 Использование FIFO и FIFOP .......................................... ........................................ 232
23.10.2 Условия ошибки ............................................. .................................................. 233
23.10.3 RSSI .............................................. .................................................. ............ 233
23.10.4 Индикация качества связи ............................................ ............................................ 234
23.11 Государственный автомат радиоуправления ............................................ ........... 234
23.12 Генерация случайных чисел ............................................. .............................................. 236
23.13 Выходные сигналы радиосигналов пакетов и тестирование радиосвязи ....................237
23.14 Командный строб-процессор .............................................. .............................................. 238
23.14.1 Память команд ............................................. ............................................... 238
23.14.2 Регистры данных ............................................. .................................................. .. 239
23.14.3 Выполнение программы ............................................. ............................................... 239
23.14.4 Запросы прерывания ............................................. ............................................... 239
23.14.5 Случайное число Инструкция ............................................ ..................................... 239
23.14.6 Запуск программ CSP ............................................ .......................................... 239
23.14.7 Регистры .............................................. .................................................. ....... 240
23.14.8 Краткое описание набора инструкций ............................................ ..............241
23.14.9 Определение набора инструкций ............................................ ......................................... 243
23.15 Регистры ................................................ .................................................. ................. 255
23.15.1 Обновление настроек реестра ............................................ ......................................... 256
23.15.2 Регистрация режимов доступа ............................................ .......................................... 256
23.15.3 Описания регистров ............................................. ............................................ 257
24 CC2540 и CC2541 Bluetooth низкоэнергетическое радио .......................................... ........... 275
24.1 Регистры ................................................ .................................................. ................. 276
25 Запатентованный режим радиоуправления CC2541 ............................................. ............ 278
25.1 RF Core ............................................... .................................................. ................... 279
25.2 Прерывания ................................................ .................................................. ................. 279
25.2.1 Регистры прерываний ............................................. ................................................. 279
25.3. Память радиочастотных данных ............................................. ........................... 280
25.3.1. FIFO .............................................. .................................................. ............. 281
25.3.2 DMA .............................................. .................................................. .............. 284
25.3.3 Регистры на основе ОЗУ ........................................... .............................................. 285
25.3.4. Переменные в ОЗУ Страница 5 .......................................... ............................... 291
25.4 Бит-потоковый процессор ............................................. ......................................... 291
25.4.1 Отбеливание .............................................. .................................................. ........ 291
25.4.2 CC2500-совместимое отбеливание PN9 .......................................... ............... 292
25.4.3 CRC .............................................. .................................................. .............. 293
25.4.4 Режим сопроцессора ............................................. ................................................ 295
25.5 Программирование частоты и канала ............................................. ................................... 296
25.6 Форматы модуляции ............................................... .................................................. ..... 296
25.7 Приемник ................................................ .................................................. .................. 296
25.8 Формат пакета ............................................... .................................................. ............ 297
25.8.1 Организация пакетов RX FIFO ........................................... ..................................... 299
25.8.2 Организация пакетов TX FIFO ........................................... ...................................... 300
25.8.3 TX-буферы для полезной нагрузки ACK .......................................... ......................................... 300
25.9 Механизм канального уровня .............................................. .................................................. ......... 301
25.9.1 Регистр команд ............................................. ................................................ 302
25.9.2. Задачи радиосвязи ............................................. .................................................. ...... 302
25.9.3. RF Испытательные команды ............................................ ................................................ 317
25.10 Генерация случайных чисел .............................................. ............................................. 318
25.11. Обнюхивание пакетов ............................................... .................................................. ........... 319
25.12 Регистры ................................................ .................................................. ................. 320
25.12.1 Обзор регистра ............................................. ................................................ 320
25.12.2 Обновление настроек регистрации ............................................ ......................................... 321
25.12.3 Описания регистра SFR ............................................ ....................................... 322
26 Регулятор напряжения ............................................... .................................................. ........... 342
27 Доступное программное обеспечение ............................................... .................................. 343
27.1 Программное обеспечение SmartRF ™ для оценки (www.ti.com/smartrfstudio) . ................. 344
27.2 Сетевой протокол RemoTI ™ (www.ti.com/remoti)  .................................... ................................ 344
27.3 Сетевой протокол SimpliciTI ™ (www.ti.com/simpliciti).................................... ........................... 345
27.4 Программное обеспечение TIMAC (www.ti.com/timac) ...................................... .................. 345
27.5 Программное обеспечение Z-Stack ™(www.ti.com/z-stack) ................................. ........ 346
27.6 Программное обеспечение стека BLE .............................................. ......................346
A Сокращения ................................................ .................................................. ................. 347
B Дополнительная информация ............................................... ....................................350
B.1 Веб-сайт RF Instruments по малой мощности Texas Instruments .................................. 351
B.2 Маломощное РЧ Онлайн-сообщество ......................................... ............................................ 351
B.3 Сеть разработчиков маломощных радиостанций Texas Instruments ................................. 351
B.4 Электронный информационный бюллетень с низким энергопотреблением .................... 351
C Ссылки ................................................ .................................................. ..................... 352
Лист регистраций изменений................................................ ........................................ 353
 

Предисловие

Об этом руководстве

CC2540 и CC2541 - это экономичные решения с низким энергопотреблением и истинной системой на кристалле (SoC) для приложений с низким энергопотреблением Bluetooth. Они позволяют создавать надежные главные или подчиненные узлы BLE при очень низких общих затратах на спецификацию. CC2540 и CC2541 сочетают в себе превосходную производительность ведущего радиочастотного приемопередатчика с микроконтроллером 8051 с расширенным отраслевым стандартом, встроенной программируемой флэш-памятью, 8 КБ ОЗУ и многими другими мощными вспомогательными функциями и периферийными устройствами. CC2540 и CC2541 подходят для систем, где требуется очень низкое энергопотребление. Доступны очень маломощные режимы сна. Короткое время перехода между режимами работы также обеспечивает низкое энергопотребление.

CC2540 выпускается в двух разных версиях: CC2540F128 и CC2540F256 с 128 КБ и 256 КБ флэш-памяти соответственно.

CC2541 выпускается в двух разных версиях: CC2541F128 и CC2541F256 с 128 КБ и 256 КБ флэш-памяти соответственно.

CC2541F128 / F256 выпускается в двух разных версиях: CC2541F128 / F256 с 128 и 256 КБ флэш-памяти соответственно.

В сочетании со стеком низкоэнергетических протоколов Bluetooth от Texas Instruments, CC2540F128 / CC2540F256 и CC2541F128 / CC2541F256 представляют собой наиболее комплексное на рынке одномодовое низкоэнергетическое решение Bluetooth.

Решение CC253x System-on-Chip для 2,4 ГГц подходит для широкого спектра применений. Они могут быть легко построены на основе стандартных протоколов IEEE 802.15.4 (сетевой протокол RemoTI ™, программное обеспечение TIMAC и программное обеспечение Z-Stack ™ для решений, совместимых с ZigBee®) или поверх проприетарного сетевого протокола SimpliciTI ™. Использование, однако, не ограничивается только этими протоколами. Например, семейство CC253x также подходит для реализаций 6LoWPAN и Wireless HART.

Каждая глава этого руководства описывает детали модуля или периферийного устройства; Однако не все функции присутствуют на всех устройствах. Чтобы увидеть различия в функциях, см. Таблицу 0-1 в разделе «Устройства».

Подробные технические данные, такие как энергопотребление и характеристики РЧ, см. В технических характеристиках устройства (Приложение C).

Связанная документация и программное обеспечение от Texas Instruments

Связанная документация (например, лист данных CC2530 и листок данных CC2540 ) может можно найти в приложении С.

Для получения дополнительной информации о программном обеспечении, которое можно использовать с решением Systemon-Chip CC253x, CC2540 или CC2541 (например, программное обеспечение SmartRF ™ для оценки производительности и функциональности радиосвязи), см. Главу 27, в которой также содержится дополнительная информация о сетевом протоколе RemoTI. сетевой протокол SimpliciTI, программное обеспечение TIMAC, программное обеспечение Z-Stack и программное обеспечение стека BLE.

Предупре​ждение FCC

Это оборудование генерирует, использует и может излучать радиочастотную энергию и не было проверено насоответствие лимитам вычислительных устройств в соответствии с частью J части 15 правил FCC, которые предназначенs для обеспечения разумной защиты от радиочастотных помех. Операция этого оборудование в других средах может создавать помехи для радиосвязи, в этом случае пользователь за свой счет должен будет принять любые меры, которые могут потребоваться для исправления этого вмешательство.

Если​ вам нужна помощь

Вся техническая поддержка осуществляется через информационные центры продукции TI (PIC) - www.ti.com/support.
Чтобы отправить запрос по электронной почте, введите свои контактные данные, а также запрос на ссылку - форма запроса PIC.
Также посетите разделы Low Power RF, ZigBee и Bluetooth с низким энергопотреблением сообщества TI E2E (http://e2e.ti.com/support/wireless-connectivity), где вы можете легко связаться с другими CC253x, CC2540 и CC2541 пользователи и найти часто задаваемые вопросы, заметки о дизайне, заметки о применении, видео и так далее.

Глоссарий

Сокращения, используемые в данном руководстве пользователя, можно найти в Приложении А.

Устройства

Семейство решений System-on-Chip CC253x состоит из нескольких устройств. В следующей таблице приведен обзор устройства и указаны различия в размерах памяти и периферийных устройствах. Полный список функций любого из устройств см. В соответствующем листе данных (Приложение C).

Таблица 0-1. Обзор семейства CC253x

Feature
CC2530F32, -F64,
-F128/, -F256
CC2531F128, 
CC2531F256
CC2533F32, 
-F64, -F96
CC2540F128, 
-F256
CC2541F128, 
-F256
FLASH_SIZE
32 KB, 64 KB, 
128 KB, 256 KB
128 KB, 256 KB 32 KB, 64 KB, 96 KB 128 KB, 256 KB 128 KB, 256 KB
SRAM_SIZE 8 KB, 8 KB, 8 KB, 8 KB 8 KB, 8 KB 4 KB, 4 KB, 6 KB 8 KB 8 KB
USB Not included Included Not included Included Not included
ADC Included Included Not included Included Included
Battery monitor Not included Not included Included Not included Not included
I2C Not included Not included Included Not included Included
Operational amplifier Included Included Not included Included Not included
Analog comparator Included Included Not included Included Included
Условные обозначения:
FLASH_SIZE - размер FLASH
SRAM_SIZE - размер SRAM

Регистрация ко​нвенций

Каждый регистр SFR и XREG описан в отдельной таблице, где каждый заголовок таблицы содержит следующую информацию в указанном формате:
Для регистров XREG: ИМЯ РЕГИСТРА (адрес XDATA) - описание регистра
Каждая таблица имеет пять столбцов для описания различных полей регистра, как описано ниже:
Столбец 1 - Bit: обозначает, какие биты регистра описаны и адресованы в конкретной строке
Колонка 2 - Name: конкретное имя поля регистра
Столбец 3 - Reset: сброс или начальное значение поля регистра
Столбец 4 - R/W: ключ, указывающий доступность битов в поле (более подробную информацию см. В таблице 0-2)
Колонка 5 - Description: более подробная информация о поле регистра и часто описание функций различных значений

В описаниях регистров каждое поле регистра отображается с символом (R/W), указывающим режим доступа к полю регистра. Значения регистра всегда даются в двоичной записи, если только не префикс 0x, что указывает на шестнадцатеричное обозначение

Таблица 0-2. Соглашения о регистрах битов

 

SYMBOL  ACCESS MODE 
R/W Read and write
Read-only
R0  Read as 0
R1  Read as 1
Write-only
W0 Write as 0
W1  Write as 1
H0  Hardware clear
H1  Hardware set

2.5 Прерывания

CPU имеет 18 источников прерываний. Каждый источник имеет свой собственный флаг запроса, расположенный в наборе регистров SFR флага прерывания. Каждое прерывание, запрошенное соответствующим флагом, может быть индивидуально разрешено или запрещено.

Определения источников прерываний и векторов прерываний приведены в таблице 2-5.

Прерывания сгруппированы в набор групп уровней приоритета с выбираемыми уровнями приоритета.
Регистры разрешения прерывания описаны в разделе 2.5.1, а настройки приоритета прерывания описаны в разделе 2.5.3.

2.5.1 Маскировка прерывания

Каждое прерывание может быть индивидуально разрешено или запрещено битами разрешения прерывания в SFR разрешения прерывания IEN0, IEN1 и IEN2. SFR, разрешающие прерывания ЦП, описаны ниже и сведены в Таблицу 2-5.

Обратите внимание, что некоторые периферийные устройства имеют несколько событий, которые могут генерировать запрос на прерывание, связанный с этим периферийным устройством. Это относится к Порту 0, Порту 1, Порту 2, Таймеру 1, Таймеру 2, Таймеру 3, Таймеру 4, контроллеру DMA и Радио. Эти периферийные устройства имеют биты маски прерывания для каждого внутреннего источника прерывания в соответствующем регистре SFR или XREG.

Для включения любого из прерываний необходимо выполнить следующие шаги:
  1. Сбросить флаги прерывания.
  2. Установите отдельный бит разрешения прерывания в регистре SFR периферийных устройств, если он есть.
  3. Установите соответствующий отдельный бит разрешения прерывания в регистре IEN0, IEN1 или IEN2 на 1.
  4. Включите глобальное прерывание, установив бит EA в IEN0 в 1.
  5. Начните процедуру обслуживания прерывания с соответствующего векторного адреса этого прерывания. Адреса см. в Таблице 2-5.

На рис. 2-4 представлен полный обзор всех источников прерываний и связанных с ними регистров управления и состояния.

Заштрихованные прямоугольники на рис. 2-4 — это флаги прерывания, которые автоматически сбрасываются аппаратным обеспечением при вызове процедуры обслуживания прерывания. _/-\_ указывает на однократный выстрел либо из-за источника уровня, либо из-за фронта формирования. Прерывания без этого должны рассматриваться как инициируемые уровнем (применимо к портам P0, P1 и P2). Поля переключения отображаются в состоянии по умолчанию и _/ ИЛИ  -\_указывают на обнаружение нарастающего или спадающего фронта, то есть в какой момент времени генерируется прерывание. Как правило, для импульсных или импульсных источников прерываний следует очищать регистры флагов прерываний ЦП перед очисткой бита флага источника, если он доступен, для флагов, которые не сбрасываются автоматически. Для источников уровня необходимо очистить источник перед очисткой флага процессора.

Обратите внимание, что при очистке флагов исходного прерывания в регистре, содержащем несколько флагов, прерывания могут быть потеряны, если выполняется операция чтения-модификации-записи (даже в одной ассемблерной инструкции), так как она также очищает флаги прерывания, которые стали активными между чтением и операция записи. Флаги прерывания источника (за исключением флагов прерывания контроллера USB) имеют режим доступа R/W0. Это означает, что запись 1 в бит не имеет никакого эффекта, поэтому 1 должна быть записана во флаг прерывания, который нельзя сбрасывать. Например, чтобы очистить бит TIMER2_OVF_PERF (бит 3) T2IRQF в коде C, нужно сделать:

T2IRQF = ~(1 << 3);
а не:
T2IRQF &= ~(1 << 3); // неправильный!

Таблица 2-5. Обзор прерываний

Номер  Описание Имя прерывания Вектор прерывания Маска прерывания, ЦП Флаг прерывания, ЦП
0 ошибка RF core RFERR 0x03 IEN0.RFERRIE TCON.RFERRIF(1)
1 ADC end of conversion ADC 0x0B IEN0.ADCIE TCON.ADCIF(1)
2 USART 0 RX завершен URX0 0x13 IEN0.URX0IE TCON.URX0IF(1)
3 USART 1 RX завершен URX1 0x1B IEN0.URX1IE TCON.URX1IF(1)
4 Шифрование или дешифрование AES завершено ENC 0x23 IEN0.ENCIE S0CON.ENCIF
5 Таймер сна сравнить ST 0x2B IEN0.STIE IRCON.STIF
6
Входы Port-2, USB или I2С
P2INT 0x33 IEN2.P2IE IRCON2.P2IF(2)
7 USART 0 TX завершен UTX0 0x3B IEN2.UTX0IE IRCON2.UTX0IF
8 Передача DMA завершена DMA 0x43 IEN1.DMAIE IRCON.DMAIF
9 Таймер 1 (16 бит) захват, сравнение, переполнение T1 0x4B IEN1.T1IE IRCON.T1IF(1) (2)
10 Timer 2 T2 0x53 IEN1.T2IE IRCON.T2IF(1) (2)
11 Таймер 3 (8 бит) захват, сравнение, переполнение T3 0x5B IEN1.T3IE IRCON.T3IF(1) (2)
12 Таймер 4 (8 бит) захват, сравнение, переполнение T4 0x63 IEN1.T4IE IRCON.T4IF(1) (2)
13 Port 0 входы P0INT 0x6B IEN1.P0IE IRCON.P0IF(2)
14 USART 1 TX завершен UTX1 0x73 IEN2.UTX1IE IRCON2.UTX1IF
15 Port 1 входы P1INT 0x7B IEN2.P1IE IRCON2.P1IF(2)
16 RF общие прерывания RF 0x83 IEN2.RFIE   S1CON.RFIF(2)
17 Переполнение сторожевого таймера в режиме таймера WDT 0x8B IEN2.WDTIE IRCON2.WDTIF
(1) Сбрасывается аппаратно при вызове процедуры обслуживания прерывания
(2) Существуют дополнительные биты маски IRQ и флага IRQ.
 
 

Рисунок 2-4. Обзор прерываний

IEN0 (0xA8) – Interrupt Enable 0 – разрешение прерывания 0

Bit Name Reset R/W Описание
7 EA 0 R/W
Отключает все прерывания.
0: прерывание не подтверждается.
1: каждый источник прерывания отдельно включается или выключается установкой соответствующего бита разрешения.
6 - 0 R0 Зарезервирован. Читать как 0
5 STIE 0 R/W
Разрешить прерывание таймера сна
0: Прерывание отключено
1: прерывание разрешено
4 ENCIE 0 R/W
Включение прерывания шифрования и дешифрования AES
0: Прерывание отключено
1: прерывание разрешено
3 URX1IE 0 R/W
USART 1 Разрешение прерывания RX
0: Прерывание отключено
1: прерывание разрешено
2 URX0IE 0 R/W
Разрешение прерывания USART0 RX
0: Прерывание отключено
1: прерывание разрешено
1 ADCIE 0 R/W
Разрешение прерывания АЦП
0: Прерывание отключено
1: прерывание разрешено
0 RFERRIE 0 R/W
Включение прерывания по ошибке RF
0: Прерывание отключено
1: прерывание разрешено

IEN1 (0xB8) – Interrupt Enable 1 – разрешение прерывания 1

Bit Name Reset R/W Описание
7:6 - 00 R0 Зарезервирован. Читать как 0
5 P0IE 0 R/W
Разрешение прерывания порта 0
0: Прерывание отключено
1: прерывание разрешено
4 T4IE 0 R/W
Разрешение прерывания от таймера 4
0: Прерывание отключено
1: прерывание разрешено
3 T3IE 0 R/W
Разрешение прерывания от таймера 3
0: Прерывание отключено
1: прерывание разрешено
2 T2IE 0 R/W
Разрешение прерывания от таймера 2
0: Прерывание отключено
1: прерывание разрешено
1 T1IE 0 R/W
Разрешение прерывания от таймера 1
0: Прерывание отключено
1: прерывание разрешено
0 DMAIE 0 R/W
Разрешение прерывания передачи DMA
0: Прерывание отключено
1: прерывание разрешено

IEN2 (0x9A) – Interrupt Enable 2 – разрешение прерывания 2

Bit Name Reset R/W Описание
7:6 - 00 R0 Зарезервирован. Читать как 0
5 WDTIE 0 R/W
Разрешение прерывания сторожевого таймера
0: Прерывание отключено
1: прерывание разрешено
4 P1IE 0 R/W
Разрешение прерывания порта 1
0: Прерывание отключено
1: прерывание разрешено
3 UTX1IE 0 R/W
USART 1 Разрешение прерывания TX
0: Прерывание отключено
1: прерывание разрешено
2 UTX0IE 0 R/W
USART 0 Разрешение прерывания TX
0: Прерывание отключено
1: прерывание разрешено
1 P2IE 0 R/W
Разрешение прерывания порта 2
0: Прерывание отключено
1: прерывание разрешено
0 RFIE 0 R/W
Разрешение общего прерывания RF
0: Прерывание отключено
1: прерывание разрешено

2.5.2 Обработка прерываний

Когда происходит прерывание, ЦП обращается к адресу вектора прерывания, как показано в таблице 2-5. После запуска службы прерывания ее можно прервать только прерыванием с более высоким приоритетом. Служба прерывания завершается RETI (командой возврата из прерывания). При выполнении RETI ЦП возвращается к инструкции, которая должна была быть следующей в момент возникновения прерывания.

Когда возникает условие прерывания, ЦП также указывает на это, устанавливая бит флага прерывания в регистрах флага прерывания. Этот бит устанавливается независимо от того, разрешено или запрещено прерывание. Если прерывание разрешено, когда установлен флаг прерывания, затем в следующем командном цикле прерывание подтверждается аппаратным обеспечением, вызывая LCALL по соответствующему адресу вектора.

Для ответа на прерывание требуется разное количество времени в зависимости от состояния ЦП в момент возникновения прерывания. Если ЦП выполняет обслуживание прерывания с таким же или более высоким приоритетом, новое прерывание находится в ожидании до тех пор, пока оно не станет прерыванием с наивысшим приоритетом. В других случаях время отклика зависит от текущей инструкции. Самый быстрый ответ на прерывание — семь машинных циклов.

Сюда входит один машинный цикл для обнаружения прерывания и шесть циклов для выполнения LCALL.

ПРИМЕЧ​АНИЕ. Если прерывание отключено и флаг прерывания опрашивается, ассемблерная инструкция 8051 JBC не должна использоваться для опроса флага прерывания и очистки его при установке. Если инструкция JBC используется, флаг прерывания может быть повторно установлен немедленно.

ПРИМЕЧАНИЕ. Если ассемблерная инструкция XCH A, IEN0 используется для сброса глобального флага разрешения прерывания EA, ЦП может войти в программу прерывания в цикле, следующем за этой инструкцией. В этом случае процедура прерывания выполняется с EA, установленным на 0, что может задержать обслуживание прерываний с более высоким приоритетом.

TCON (0x88) – Interrupt Flags — флаги прерывания

Bit Name Reset R/W Описание
7 URX1IF 0 R/W H0
Флаг прерывания USART 1 RX. Устанавливается в 1, когда происходит прерывание USART 1 RX, и сбрасывается, когда ЦП обращается к подпрограмме обслуживания прерывания.
0: прерывание не ожидается
1: Ожидание прерывания
6 - 0 R/W Зарезервирован.
5 ADCIF 0 R/W H0
Флаг прерывания АЦП. Устанавливается в 1, когда происходит прерывание от АЦП, и сбрасывается, когда ЦП обращается к подпрограмме обработки прерывания.
0: прерывание не ожидается
1: Ожидание прерывания
4 - 0 R/W Зарезервирован.
3 URX0IF 0 R/W H0
USART 0 Флаг прерывания RX. Устанавливается в 1, когда происходит прерывание USART 0, и сбрасывается, когда ЦП обращается к подпрограмме обслуживания прерывания.
0: прерывание не ожидается
1: Ожидание прерывания
2 IT1 1 R/W Зарезервирован. Всегда должен быть установлен в 1. Установка нуля разрешает обнаружение низкоуровневого прерывания, что почти всегда имеет место (однократное, когда инициируется запрос на прерывание).
1 RFERRIF 0 R/W H0
Флаг прерывания ошибки радиочастотного ядра. Устанавливается в 1, когда происходит прерывание RFERR, и сбрасывается, когда ЦП обращается к подпрограмме обслуживания прерывания.
0: прерывание не ожидается
1: Ожидание прерывания
0 IT0 1 R/W Зарезервирован. Всегда должен быть установлен в 1. Установка нуля разрешает обнаружение низкоуровневого прерывания, что почти всегда имеет место (однократное, когда инициируется запрос на прерывание).

S0CON (0x98) – Interrupt Flags 2 - флаги прерывания 2

Bit Name Reset R/W Описание
7:2 - 0000 00 R/W Зарезервирован
1 ENCIF_1 0 R/W
прерывание AES. ENC имеет два флага прерывания, ENCIF_1 и ENCIF_0. Установка одного из этих флагов требует прерывания обслуживания. Оба флага устанавливаются, когда сопроцессор AES запрашивает прерывание.
0: прерывание не ожидается
1: Ожидание прерывания
0 ENCIF_0 0 R/W
прерывание AES. ENC имеет два флага прерывания, ENCIF_1 и ENCIF_0. Установка одного из этих флагов требует прерывания обслуживания. Оба флага устанавливаются, когда сопроцессор AES запрашивает прерывание.
0: прерывание не ожидается
1: Ожидание прерывания

S1CON (0x9B) – Interrupt Flags 3 - флаги прерывания 3

Bit Name Reset R/W Описание
7:2 - 0000 00 R/W Зарезервирован
1 RFIF_1 0 R/W
Общее прерывание RF. RF имеет два флага прерывания, RFIF_1 и RFIF_0. Установка одного из этих флагов требует прерывания обслуживания. Оба флага устанавливаются, когда радио запрашивает прерывание.
0: прерывание не ожидается
1: Ожидание прерывания
0 RFIF_0 0 R/W
Общее прерывание RF. RF имеет два флага прерывания, RFIF_1 и RFIF_0. Установка одного из этих флагов требует прерывания обслуживания. Оба флага устанавливаются, когда радио запрашивает прерывание.
0: прерывание не ожидается
1: Ожидание прерывания

IRCON (0xC0) – Interrupt Flags 4 – флаги прерывания 4

Bit Name Reset R/W Описание
7 STIF 0 R/W
Флаг прерывания таймера сна
0: прерывание не ожидается
1: Ожидание прерывания
6 - 0 R/W Должен быть записан 0. Запись 1 всегда включает источник прерывания.
5 P0IF 0 R/W
Флаг прерывания порта 0
0: прерывание не ожидается
1: Ожидание прерывания
4 T4IF 0 R/W H0
Флаг прерывания Таймера 4. Устанавливается в 1, когда происходит прерывание от Таймера 4, и сбрасывается, когда ЦП обращается к подпрограмме обслуживания прерывания.
0: прерывание не ожидается
1: Ожидание прерывания
3 T3IF 0 R/W H0
Флаг прерывания Таймера 3. Устанавливается в 1, когда происходит прерывание от Таймера 3, и сбрасывается, когда ЦП обращается к подпрограмме обслуживания прерывания.
0: прерывание не ожидается
1: Ожидание прерывания
2 T2IF 0 R/W H0
Флаг прерывания Таймера 2. Устанавливается в 1, когда происходит прерывание от Таймера 2, и сбрасывается, когда ЦП обращается к подпрограмме обслуживания прерывания.
0: прерывание не ожидается
1: Ожидание прерывания
1 T1IF 0 R/W H0
Флаг прерывания Таймера 1. Устанавливается в 1, когда происходит прерывание от Таймера 1, и сбрасывается, когда ЦП обращается к подпрограмме обслуживания прерывания.
0: прерывание не ожидается
1: Ожидание прерывания
0 DMAIF 0 R/W
Флаг прерывания DMA завершения
0: прерывание не ожидается
1: Ожидание прерывания

IRCON2 (0xE8) – Interrupt Flags 5 – флаги прерывания 5

Bit Name Reset R/W Описание
7:5 - 000 R/W Зарезервирован
4 WDTIF 0 R/W
Флаг прерывания сторожевого таймера
0: прерывание не ожидается
1: Ожидание прерывания
3 P1IF 0 R/W
Флаг прерывания порта 1
0: прерывание не ожидается
1: Ожидание прерывания
2 UTX1IF 0 R/W
Флаг прерывания USART 1 TX
0: прерывание не ожидается
1: Ожидание прерывания
1 UTX0IF 0 R/W
Флаг прерывания USART 0 TX
0: прерывание не ожидается
1: Ожидание прерывания
0 P2IF 0 R/W
Флаг прерывания порта 2
0: прерывание не ожидается
1: Ожидание прерывания

2.5.3 Приоритет прерывания

Прерывания сгруппированы в шесть групп приоритета прерывания, и приоритет для каждой группы устанавливается регистрами IP0 и IP1. Чтобы присвоить прерыванию более высокий приоритет, то есть его группе прерываний, соответствующие биты в IP0 и IP1 должны быть установлены, как показано в таблице 2-6.

Группы приоритетов прерываний с назначенными источниками прерываний показаны в таблице 2-7. Каждой группе назначается один из четырех уровней приоритета. Пока выполняется запрос на обслуживание прерывания, его нельзя прерывать прерыванием более низкого или того же уровня.

В случае, когда одновременно принимаются запросы на прерывание с одинаковым уровнем приоритета, для определения приоритета каждого запроса используется последовательность опроса, показанная в таблице 2-8. Обратите внимание, что последовательность опроса на Рисунке 2-4 представляет собой алгоритм из Таблицы 2-8, а не то, что опрос выполняется среди битов IP, как показано на рисунке.

IP1 (0xB9) – Interrupt Priority 1 – приоритет прерывания 1

Bit Name Reset R/W Описание
7:6 - 00 R/W Зарезервирован
5 IP1_IPG5 0 R/W Группа прерываний 5, бит управления приоритетом 1, см. Таблицу 2-7: Группы приоритетов прерываний
4 IP1_IPG4 0 R/W Группа прерываний 4, бит управления приоритетом 1, см. Таблицу 2-7: Группы приоритетов прерываний
3 IP1_IPG3 0 R/W Группа прерываний 3, бит управления приоритетом 1, см. Таблицу 2-7: Группы приоритетов прерываний
2 IP1_IPG2 0 R/W Группа прерываний 2, бит управления приоритетом 1, см. Таблицу 2-7: Группы приоритетов прерываний
1 IP1_IPG1 0 R/W Группа прерываний 1, бит управления приоритетом 1, см. Таблицу 2-7: Группы приоритетов прерываний
0 IP1_IPG0 0 R/W Группа прерываний 0, бит управления приоритетом 1, см. Таблицу 2-7: Группы приоритетов прерываний

IP0 (0xA9) – Interrupt Priority 0 – приоритет прерывания 0

Bit Name Reset R/W Описание
7:6 - 00 R/W Зарезервирован
5 IP0_IPG5 0 R/W Группа прерываний 5, бит управления приоритетом 1, см. Таблицу 2-7: Группы приоритетов прерываний
4 IP0_IPG4 0 R/W Группа прерываний 4, бит управления приоритетом 1, см. Таблицу 2-7: Группы приоритетов прерываний
3 IP0_IPG3 0 R/W Группа прерываний 3, бит управления приоритетом 1, см. Таблицу 2-7: Группы приоритетов прерываний
2 IP0_IPG2 0 R/W Группа прерываний 2, бит управления приоритетом 1, см. Таблицу 2-7: Группы приоритетов прерываний
1 IP0_IPG1 0 R/W Группа прерываний 1, бит управления приоритетом 1, см. Таблицу 2-7: Группы приоритетов прерываний
0 IP0_IPG0 0 R/W Группа прерываний 0, бит управления приоритетом 1, см. Таблицу 2-7: Группы приоритетов прерываний

Таблица 2-6. Настройка уровня приоритета

IP1_x IP0_x Уровень приоритета
0 0 0 - самый низкий
0 1 1
1 0 2
1 1 3 – самый высокий

Таблица 2-7. Группы приоритета прерывания

Группа Прерывания
IPG0 RFERR RF DMA
IPG1 ADC T1 P2INT
IPG2 URX0 T2 UTX0
IPG3 URX1 T3 UTX1
IPG4 ENC T4 P1INT
IPG5 ST P0INT WDT

Таблица 2-8. Последовательность опроса прерывания

Номер прерывания Имя прерывания

Последовательность опроса

 ↓

0 RFERR
16 RF
8 DMA
1 ADC
9 T1
2 URX0
10 T2
3 URX1
11 T3
4 ENC
12 T4
5 ST
13 P0INT
6 P2INT
7 UTX0
14 UTX1
15 P1INT
17 WDT

4 Управление питанием и часы

Работа с низким энергопотреблением возможна через различные режимы работы (режимы питания). Различные режимы работы называются активным режимом, режимом ожидания и режимами питания 1, 2 и 3 (PM1 – PM3).

Тема ................................................. .................................................. страница

4.1 Управление питанием Введение ..............................................61
4.2 Контроль управления питанием ............................................. 62
4.3 Регистры управления питанием ............................................. 63
4.4 Генераторы и часы .............................................. ............. 66
4.5 Генерация тактов таймера .............................................. ......... 69
4.6 Хранение данных ............................................... ...................... 69

4.1 Управление питанием Введение

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

Пять различных режимов работы (режимы питания) называются активным режимом, режимом ожидания, PM1, PM2 и PM3 (PM1, PM2 и PM3 также называются спящими режимами). Активный режим является нормальным режимом работы, тогда как PM3 имеет самое низкое энергопотребление. Влияние различных режимов мощности на работу системы показано в таблице 4-1 вместе с опциями регулятора напряжения и генератора.

Таблица 4-1. Режимы питания

Power Mode Высокочастотный генератор Низкочастотный генератор Регулятор напряжения
Конфигурация
A 32-MHz XOSC
B 16-MHz RCOSC
C 32-kHz XOSC
D 32-kHz RCOSC
 
Активный или режим ожидания A or B C or D ON
PM1 None C or D ON
PM2 None C or D OFF
PM3 None None OFF

Активный режим: полностью функциональный режим. Регулятор напряжения на цифровом ядре включен, и либо 16-МГц RC-генератор, либо 32-МГц кварцевый генератор, либо оба работают. Либо 32-кГц RCOSC, либо 32-кГц XOSC работает.

Режим ожидания - Idle mode: идентичен активному режиму, за исключением того, что ядро ​​ЦП перестает работать (находится в режиме ожидания).

PM1: регулятор напряжения на цифровой части включен. Ни 32-МГц XOSC, ни 16-МГц RCOSC не работают. Работает либо 32-кГц RCOSC, либо 32-кГц XOSC. Система переходит в активный режим при сбросе, внешнем прерывании или по истечении таймера сна.

PM2: регулятор напряжения на цифровом сердечнике выключен. Ни 32-МГц XOSC, ни 16-МГц RCOSC не работают. Работает либо 32-кГц RCOSC, либо 32-кГц XOSC. Система переходит в активное состояние при сбросе, внешнем прерывании или по истечении таймера сна.

PM3: Регулятор напряжения на цифровом ядре выключен. Ни один из генераторов не работает. Система переходит в активный режим при сбросе или внешнем прерывании.

POR активен в PM2 и PM3, но BOD выключен, что обеспечивает ограниченный контроль напряжения. Если напряжение питания снижается до уровня ниже 1,4 В во время PM2 или PM3, при температуре 70 ° C или выше, а затем восстанавливается до хорошего рабочего напряжения до повторного ввода активного режима, регистры и содержимое ОЗУ сохраняются в PM2. или PM3 может стать измененным. Следовательно, следует соблюдать осторожность при проектировании источника питания системы, чтобы этого не происходило. Напряжение можно периодически точно контролировать, входя в активный режим, так как сброс BOD запускается, если напряжение питания ниже приблизительно 1,7 В.

CC2533 и CC2541 имеют функции для автоматического выполнения проверки CRC сохраненных значений регистра конфигурации в PM2 и PM3, чтобы проверить, что состояние устройства не было изменено во время сна.

Биты в SRCRC.CRC_RESULT указывают, были ли какие-либо изменения, и, включив SRCRC.CRC_RESET_EN, устройство немедленно сбрасывает себя со сбросом сторожевого таймера, если SRCRC.CRC_RESULT не равен 00 (= CRC пропущенных сохраненных регистров) после пробуждения из PM2 или PM3. Регистр SRCRC также содержит бит SRCRC.FORCE_RESET, который может использоваться программным обеспечением для немедленного запуска сброса сторожевого таймера для перезагрузки устройства.

Для CC2533 и CC2541 дополнительная аналоговая архитектура сброса добавляет еще один детектор отключения (3VBOD), который измеряет нерегулируемое напряжение. Целью этого 3VBOD является снижение потребления тока устройством, когда на него подается напряжение значительно ниже рабочего напряжения.

4.1.1 Active and Idle Modes - Активный и режим ожидания

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

Активный режим используется для нормальной работы. При включении бита PCON.IDLE в активном режиме (SLEEPCMD.MODE = 0x00) ядро ​​ЦП перестает работать, и вводится режим ожидания. Все остальные периферийные устройства функционируют нормально, и любое разрешенное прерывание пробуждает ядро ​​ЦП (для возврата из режима ожидания в активный режим).

4.1.2 PM1

В PM1 высокочастотные генераторы отключены (32-МГц XOSC и 16-МГц RCOSC). Регулятор напряжения и включенный генератор с частотой 32 кГц включены. Когда PM1 введен, отключение питания последовательность запускается PM1 используется, когда ожидаемое время до события пробуждения является относительно коротким (менее 3 мс), поскольку PM1 использует последовательность быстрого выключения и включения питания.

4.1.3 PM2

PM2 занимает второе место по энергопотреблению. В PM2 активны сброс при включении питания, внешние прерывания, выбранный генератор с частотой 32 кГц и периферийный таймер отключения. Контакты ввода/вывода сохраняют режим ввода/вывода и заданное значение до входа в PM2. Все остальные внутренние цепи отключены. Регулятор напряжения также выключен. Когда вводится PM2, запускается последовательность выключения питания.

PM2 обычно вводится при использовании таймера сна в качестве события пробуждения, а также в сочетании с внешними прерываниями. PM2 обычно следует выбирать по сравнению с PM1, когда ожидаемое время сна превышает 3 мс Использование меньшего времени ожидания не снижает энергопотребление системы по сравнению с использованием PM1.

4.1.4 PM3

PM3 используется для достижения режима работы с самым низким энергопотреблением. В PM3 все внутренние цепи, которые питаются от регулятора напряжения, отключены (в основном все цифровые модули; только исключение составляют обнаружение прерывания и определение уровня POR). Внутренний регулятор напряжения и все генераторы также отключены.

Сброс (POR или внешний) и внешние порты ввода/вывода - единственные функции, которые работают в этом режиме.

Выводы ввода/вывода сохраняют режим ввода/вывода и заданное значение до входа в PM3. Условие сброса или включенное событие внешнего прерывания ввода/вывода пробуждает устройство и переводит его в активный режим (внешнее прерывание начинается с того места, где оно вошло в PM3, тогда как сброс возвращается к выполнению в начале программы). Содержимое ОЗУ и регистров частично сохраняется в этом режиме (см. Раздел 4.6). PM3 использует ту же последовательность выключения и включения питания, что и PM2.

PM3 используется для достижения сверхнизкого энергопотребления при ожидании внешнего события. Его следует использовать, когда ожидаемое время ожидания превышает 3 мс.

4.2 Управление питанием

Требуемый режим питания выбирается битами MODE в регистре управления SLEEPCMD и битом PCON.IDLE. Установка регистра SFR. Бит PCON.IDLE входит в режим, выбранный SLEEPCMD.MODE.

Включенное прерывание от контактов порта или таймера отключения или сброса при включении питания выводит устройство из других режимов питания и переводит его в активный режим.

При вводе PM1, PM2 или PM3 выполняется последовательность выключения питания. Когда устройство выводится из PM1, PM2 или PM3, оно запускается на частоте 16 МГц и автоматически изменяется на 32 МГц, если CLKCONCMD.OSC был 0 при входе в режим питания (настройка PCON.IDLE). Если CLKCONCMD.OSC был равен 1, когда PCON.IDLE был установлен, то при переходе в режим питания он продолжает работать на частоте 16 МГц.

Инструкция, которая устанавливает бит PCON.IDLE, должна быть выровнена определенным образом для правильной работы. Первый байт инструкции по сборке, следующий сразу за этой инструкцией, не должен быть размещен на 4-байтовой границе. Кроме того, кеш не должен быть отключен (см. CM в описании регистра FCTL в Главе 6). Несоблюдение этого требования может привести к увеличению потребления тока. При условии, что это требование выполнено, первая инструкция по сборке после инструкции, которая устанавливает бит PCON.IDLE, выполняется до ISR прерывания, которое вызвало пробуждение системы, но после пробуждения системы. Если эта инструкция является глобальным отключением прерывания, возможно, что за ней последует код для выполнения после активации, но до обслуживания ISR.

Пример того, как это можно сделать в компиляторе IAR, показан ниже. Команда для установки PCON в 1 помещается в функцию, записанную в коде сборки. В C-файле, вызывающем эту функцию, объявление например

extern void EnterSleepModeDisableInterruptsOnWakeup (void);

используется.

RSEG NEAR_CODE: CODE: NOROOT (2) гарантирует, что инструкция MOV PCON, # 1 размещена на 2-байтовой границе. Это 3-байтовая инструкция, поэтому следующая инструкция не помещается в 4-байтовую инструкцию граница, как требуется. В следующем примере это инструкция EA CLR, которая отключает все прерывания.

Это означает, что ISR прерывания, которое разбудило систему, не выполняется до тех пор, пока бит IEN0.EA не будет снова установлен позже в коде. Если эта функциональность не нужна, инструкцию CLR EA можно заменить на NOP.

PUBLIC EnterSleepModeDisableInterruptsOnWakeup FUNCTION
EnterSleepModeDisableInterruptsOnWakeup,0201H RSEG NEAR_CODE:CODE:NOROOT(2)
EnterSleepModeDisableInterruptsOnWakeup: MOV PCON,#1 CLR EA RET

4.3. Регистры управления питанием

В этом разделе описываются регистры управления питанием. Все биты регистра сохраняют свои прежние значения при вводе PM2 или PM3.

SRCRC (0x6262) – Sleep Reset CRC (CC2533 and CC2541 only)

Bit  Name  Reset  R/W Description 
7 XOSC_AMP_DET_EN 0 R/W
0: отключить
1: Включить амплитудный детектор для 32-МГц XOSC, только CC2533
6 - 0 R0 Зарезервированный. Всегда читай 0
5 FORCE_RESET 0 R/W
0: никаких действий
1: принудительный сброс сторожевого таймера.
4 - 0 R Зарезервированный
3:2 CRC_RESULT 00 R/W
00: CRC сохраненных регистров пройден
01: Ошибка низкого значения CRC
10: сбой высокого значения CRC
11: оба значения CRC не выполнены
1 - 0 R Зарезервированный
0 CRC_RESET_EN 0 R/W
0: отключить сброс микросхемы из-за CRC.
1: включить сброс микросхемы, если CRC_RESULT! = 00 после пробуждения из PM2 или PM3.

PCON (0x87) – Power Mode Control

Bit  Name  Reset  R/W Description 
7:1 - 0000 000 R/W Зарезервировано, всегда пишите как 0000 000.
0 IDLE 0 R0/W H0
Управление режимом питания. Запись 1 в этот бит вынуждает устройство переходить в режим питания, установленный SLEEPCMD.MODE (обратите внимание, что MODE = 0x00 AND IDLE = 1 останавливает работу ядра процессора). Этот бит всегда читается как 0.
Все активные прерывания очищают этот бит, когда он активен, и устройство снова переходит в активный режим.

SLEEPCMD (0xBE) – Sleep-Mode Control Command - команда управления в спящем режиме

Bit  Name  Reset  R/W Description 
7 OSC32K_CALDIS 0 R/W
Отключить калибровку генератора RC 32 кГц
Калибровка RC генератора 0: 32 кГц включена.
Калибровка RC генератора 1: 32 кГц отключена.
Эта настройка может быть записана в любое время, но она не вступит в силу, пока микросхема не будет запущена на 16-МГц высокочастотном RC-генераторе.
6:3 - 000 0 R0 Зарезервированный. Всегда пишите как 1
2 - 1 R/W Зарезервированный
1:0 MODE[1:0] 00 R/W
Настройка режима питания
00: Active or Idle mode - активный или режим ожидания
01: режим питания 1 (PM1)
10: режим питания 2 (PM2)
11: режим питания 3 (PM3)

SLEEPSTA (0x9D) – Sleep-Mode Control Status - Состояние управления в спящем режиме

Bit  Name  Reset  R/W Description 
7 OSC32K_CALDIS 0 R
Состояние калибровки генератора RC 32 кГц
SLEEPSTA.OSC32K_CALDIS показывает текущее состояние отключения калибровки RC 32 кГц. Бит не установлен на то же значение, что и SLEEPCMD.OSC32K_CALDIS, прежде чем микросхема будет запущена на 32-кГц RC генераторе.
6:5 - 00 R Зарезервированный
4:3 RST[1:0] XX R
Бит состояния, указывающий причину последнего сброса. Если имеется несколько сбросов, регистр содержит только последнее событие.
00: Сброс при включении питания и обнаружение отключения питания
01: внешний сброс
10: Сброс сторожевого таймера
11: сброс потери часов
2:1 - 00 R Зарезервированный
0 CLK32K 0 R Тактовый сигнал 32 кГц (синхронизированный с системными часами)

Рисунок 4-1. Обзор системы часов

4.4 Генераторы и часы

Устройство имеет одно внутреннее системное время или основное время. Источником системных часов может быть либо 16-МГц RC-генератор, либо 32-МГц кварцевый генератор. Управление часами осуществляется с помощью SFR регистра CLKCONCMD.

Существует также один источник тактовой частоты 32 кГц, который может быть либо генератором RC, либо кварцевым генератором, также управляемым регистром CLKCONCMD.

Регистр CLKCONSTA - это регистр только для чтения, используемый для получения текущего статуса часов.

Выбор генератора позволяет найти компромисс между высокой точностью в случае кварцевого генератора и низким энергопотреблением при использовании RC-генератора. Обратите внимание, что работа радиочастотного приемопередатчика требует использования кварцевого генератора 32 МГц.

В CC2533, CC2540 и CC2541 доступен дополнительный модуль для определения стабильности XOSC 32 МГц. Этот амплитудный детектор может быть полезен в средах со значительным шумом на источнике питания, чтобы гарантировать, что источник синхронизации не используется, пока тактовый сигнал не стабилизируется. В CC2533 этот модуль можно включить, установив бит SRCRC.XOSC_AMP_DET_EN, и это добавляет около 20 мкс ко времени запуска 32-МГц XOSC. В CC2540 и CC2541 модуль всегда включен.

4.4.1 Осцилляторы

Рисунок 4-1 дает обзор системы часов с доступными источниками часов.

В устройстве присутствуют два высокочастотных генератора:
  • 32-МГц кварцевый генератор
  • 16-МГц RC генератор

Время запуска кварцевого генератора на 32 МГц может быть слишком длинным для некоторых применений; следовательно, устройство может работать на 16-МГц RC генераторе до тех пор, пока кварцевый генератор не станет стабильным. 16-МГц RC генератор потребляет меньше энергии, чем кварцевый генератор, но поскольку он не так точен, как кварцевый генератор, его нельзя использовать для работы радиочастотного приемопередатчика.

В устройстве присутствуют два низкочастотных генератора:
  • 32-кГц кварцевый генератор
  • 32-кГц RC генератор.

XOSC 32 кГц разработан для работы на частоте 32,768 кГц и обеспечивает стабильный тактовый сигнал для систем, требующих точности по времени. RCOSC 32 кГц работает при калибровке 32,753 кГц. Калибровка может выполняться только при включенной 32-МГц XOSC, и эту калибровку можно отключить, включив бит SLEEPCMD.OSC32K_CALDIS. RCOSC 32 кГц следует использовать для снижения затрат и энергопотребления по сравнению с решением XOSC 32 кГц. Два генератора с частотой 32 кГц не могут работать одновременно.

4.4.2 Системные часы

Системные часы получены из выбранного источника системных часов, который является 32-МГц XOSC или 16-МГц RCOSC. Бит LKCONCMD.OSC выбирает источник системных часов. Обратите внимание, что для использования радиочастотного трансивера, кварцевый генератор 32 МГц должен быть выбран и устойчивым.

Обратите внимание, что изменение бита CLKCONCMD.OSC не приводит к мгновенному изменению системных часов. Изменение источника синхронизации вступает в силу, когда CLKCONSTA.OSC = CLKCONCMD.OSC. Это связано с требованием иметь стабильные часы до фактического изменения источника синхронизации. Также обратите внимание, что бит CLKCONCMD.CLKSPD отражает частоту системных часов и, следовательно, является зеркалом бита CLKCONCMD.OSC.

16-МГц RC-генератор калибруется один раз после выбора 32-МГц XOSC и остается стабильным, то есть когда бит CLKCONSTA.OSC переключается с 1 на 0.

ПРИМЕЧАНИЕ. Переключение с источника тактовой частоты 16 МГц на источник тактовой частоты 32 МГц (и наоборот) согласуется с настройкой CLKCONCMD.TICKSPD. Медленная настройка CLKCONCMD.TICKSPD при изменении CLKCONCMD.OSC приводит к более длительному времени, прежде чем фактическое изменение источника вступит в силу. Самое быстрое переключение достигается, когда CLKCONCMD.TICKSPD равен 000.

П​РИМЕЧАНИЕ. После выхода из PM1, PM2 или PM3 ЦП должен дождаться, пока CLKCONSTA.OSC станет равным 0, прежде чем начнутся операции, требующие запуска системы на 32-МГц XOSC (например, радиосвязи).

4.4.3 32-кГц генераторы

Два генератора с частотой 32 кГц присутствуют в устройстве в качестве источников тактовых импульсов для тактовой частоты 32 кГц:

  • 32 кГц XOSC
  • 32-кГц RCOSC

​По умолчанию после сброса RCOSC 32 кГц включается и выбирается в качестве источника тактовой частоты 32 кГц. RCOSC потребляет меньше энергии, но менее точен по сравнению с 32-кГц XOSC. Выбранный 32-кГц источник синхронизации управляет таймером сна, генерирует тик для сторожевого таймера и используется в качестве строба в таймере 2 для расчета времени сна таймера сна. Бит регистра CLKCONCMD.OSC32K выбирает генератор, который будет использоваться в качестве источника тактовой частоты 32 кГц. Этот бит не указывает на стабильность 32-кГц XOSC.

Бит регистра CLKCONCMD.OSC32K может быть записан в любое время, но он не вступает в силу, пока RCOSC 16 МГц не станет активным источником системных часов. Когда системная тактовая частота изменяется с 16-МГц RCOSC на 32-МГц XOSC (CLKCONCMD.OSC с 1 на 0), калибровка 32-кГц RCOSC запускается и выполняется один раз, если выбран 32-кГц RCOSC. Во время калибровки используется разделенная версия 32-МГц XOSC. Результатом калибровки является то, что RSOSC с частотой 32 кГц работает на частоте 32,753 кГц. Калибровка RCOSC 32 кГц может занять до 2 мсек. Калибровку можно отключить, установив для SLEEPCMD.OSC32K_CALDIS значение 1. В конце калибровки может возникнуть дополнительный импульс на тактовом источнике с частотой 32 кГц, что приведет к увеличению таймера отключения на 1.

Обратите внимание, что после переключения на 32-кГц XOSC и при переходе с PM3 с включенной 32-кГц XOSC осциллятору требуется до 500 мс для стабилизации на правильной частоте. Таймер отключения, сторожевой таймер и детектор потери тактовой частоты не должны использоваться до стабилизации 32-кГц XOSC.

4.4.4 Генератор и тактовые регистры

В этом разделе описываются генератор и тактовые регистры. Все биты регистра сохраняют свои прежние значения при вводе PM2 или PM3.

CLKCONCMD (0xC6) – Clock Control Command - команда управления часами

Bit  Name  Reset  R/W Description 
7 OSC32K 1 R/W
Выбор источника синхронизации 32 кГц. Установка этого бита инициирует только изменение источника синхронизации.
CLKCONSTA.OSC32K отражает текущую настройку. RCOSC на 16 МГц должен быть выбран в качестве системных часов, когда этот бит должен быть изменен. Этот бит не указывает на стабильность 32-кГц XOSC.
0: 32 кГц XOSC
 1: 32 кГц RCOSC
6 OSC 1 R/W
Выбор источника системных часов. Установка этого бита инициирует только изменение источника синхронизации.
CLKCONSTA.OSC отражает текущую настройку.
0: 32 МГц XOSC
1: 16 МГц RCOSC 
5:3 TICKSPD[2:0] 001 R/W
Таймер тиков настройки выхода. Не может быть выше настройки системных часов, заданной настройкой бита OSC.
000: 32 МГц
001: 16 МГц
010: 8 МГц
011: 4 МГц
100: 2 МГц
101: 1 МГц
110: 500 кГц
111: 250 кГц
Обратите внимание, что CLKCONCMD.TICKSPD можно установить на любое значение, но эффект ограничен настройкой CLKCONCMD.OSC; то есть, если CLKCONCMD.OSC = 1 и CLKCONCMD.TICKSPD = 000, CLKCONSTA.TICKSPD читает 001, а реальный TICKSPD составляет 16 МГц.
2:0 CLKSPD 001 R/W
Тактовая частота. Не может быть выше настройки системных часов, заданной настройкой бита OSC. Указывает текущую системную тактовую частоту
000: 32 МГц
001: 16 МГц
010: 8 МГц
011: 4 МГц
100: 2 МГц
101: 1 МГц
110: 500 кГц
111: 250 кГц
Обратите внимание, что CLKCONCMD.CLKSPD можно установить на любое значение, но эффект ограничен настройкой CLKCONCMD.OSC; то есть если CLKCONCMD.OSC = 1 и CLKCONCMD.CLKSPD = 000,
CLKCONSTA.CLKSPD читает 001, а реальный CLKSPD - 16 МГц.
Также обратите внимание, что отладчик нельзя использовать с разделенными системными часами. При запуске отладчика значение CLKCONCMD.CLKSPD должно быть установлено на 000, когда CLKCONCMD.OSC = 0, или на 001, когда CLKCONCMD.OSC = 1.

CLKCONSTA (0x9E) – Clock Control Status - Состояние управления часами

Bit  Name  Reset  R/W Description 
7 OSC32K 1 R
Текущий выбранный источник тактовой частоты 32 кГц:
0: 32 кГц XOSC
1: 32 кГц RCOSC 
6 OSC 1 R
Текущие системные часы выбраны:
0: 32-МГц XOSC
1: 16 МГц RCOSC 
5:3 TICKSPD[2:0] 001 R
Текущий таймер
000: 32 МГц
001: 16 МГц
010: 8 МГц
011: 4 МГц
100: 2 МГц
101: 1 МГц
110: 500 кГц
111: 250 кГц
2:0 CLKSPD 001 R
Текущая тактовая частота
000: 32 МГц
001: 16 МГц
010: 8 МГц
011: 4 МГц
100: 2 МГц
101: 1 МГц
110: 500 кГц
111: 250 кГц

4.5 Генерация тактов таймера

Значение регистра CLKCONCMD.TICKSPD управляет глобальным предварительным масштабированием для Таймера 1, Таймера 3 и Таймера 4. Значение предварительного масштабирования может быть установлено в диапазоне от 0,25 МГц до 32 МГц. Следует отметить, что если CLKCONCMD.TICKSPD указывает более высокую частоту, чем системные часы, фактическое значение предварительного масштабирования, указанное в CLKCONSTA.TICKSPD, совпадает с системными часами.

4.6 Хранение данных

В режимах питания PM2 и PM3 питание отключается от большей части внутренних цепей. Однако SRAM сохраняет свое содержимое, а содержимое внутренних регистров также сохраняется в PM2 и PM3.

Все регистры CPU, RF и периферийные устройства сохраняют свое содержимое в PM2 и PM3, кроме регистров AES, I2C и USB, OBSSEL0 – OBSSEL5, TR0 и в CC2541, LLECTRL.

Переключение в режимы с низким энергопотреблением PM2 или PM3 выглядит прозрачным для программного обеспечения. Обратите внимание, что значение таймера сна не сохраняется в PM3.

Все регистры сохраняют свои значения в PM1.

 

7 I/O Ports - Порты ввода/вывода

Имеется 21 вывод цифровых входов / выходов, которые могут быть сконфигурированы как цифровые входы / выходы общего назначения или как периферийные сигналы ввода / вывода, подключенные к АЦП, таймерам или периферийным устройствам USART. Использование портов ввода / вывода полностью настраивается из пользовательского программного обеспечения через набор регистров конфигурации.

Порты ввода / вывода имеют следующие ключевые функции:

  • 21 цифровой вход / выход
  • Универсальный ввод / вывод или периферийный ввод / вывод
  • Возможность подтягивания или опускания на входах
  • Возможность внешнего прерывания
Возможность внешнего прерывания доступна на всех 21 выводе ввода/вывода. Таким образом, внешние устройства могут генерировать
прерывание, если требуется. Функция внешнего прерывания также может использоваться, чтобы вывести устройство из спящего режима (режимы питания PM1, PM2 и PM3).

Тема ................................................. .................................................. ........................ страница

7.1 Неиспользуемые выводы ввода/вывода ............................................ ......................... 79
7.2 Низкое напряжение питания ввода/вывода ........................................... ..................... 79
7.3 Универсальный ввод/вывод ........................................... ................................................ 79
7.4 Прерывания ввода-вывода общего назначения .......................................... ................. 79
7.5 DMA общего назначения ввода/вывода .......................................... ........................ 80
7.6 Периферийный ввод/вывод ............................................. ............................................. 80
7.7 Интерфейс отладки ............................................... .................................................. 83
7.8 32-кГц вход XOSC ............................................ ................................................. 83
7.9 Тестовые выходные сигналы радио ............................................. .......................... 84
7.10 Сигнал выключения питания MUX (PMUX) ......................................... ............ 84
7.11 Регистры ввода/вывода ............................................. ........................................ 84

7.1 Неиспользуемые выводы ввода/вывода

Неиспользуемые выводы ввода/вывода должны иметь определенный уровень и не должны оставаться плавающими. Один из способов сделать это - оставить контакт неподключенным и настроить его как вход ввода/вывода общего назначения с нагрузочным резистором. Это также
состояние всех выводов во время и после сброса (кроме P1.0 и P1.1, которые не имеют возможности подтягивания или опускания). В качестве альтернативы, вывод может быть сконфигурирован как выход ввода/вывода общего назначения. В любом случае, контакт не следует подключать напрямую к VDD или GND, чтобы избежать чрезмерного энергопотребления.

7.2 Низкое напряжение питания ввода/вывода

В приложениях, где выводы напряжения питания цифрового ввода/вывода DVDD1 и DVDD2 ниже 2,6 В, бит регистра PICTL.PADSC должен быть установлен в 1, чтобы получить выходные характеристики постоянного тока, указанные в таблице характеристик постоянного тока устройства. Лист данных (Приложение C).

7.3 Универсальный ввод/вывод

При использовании в качестве ввода-вывода общего назначения контакты организованы в виде трех 8-битных портов: порт 0, порт 1 и порт 2; обозначается P0, P1 и P2. P0 и P1 являются полными 8-битными портами, тогда как P2 имеет только пять используемых бит.

Все порты имеют как битовую, так и байтовую адресацию через регистры SFR P0, P1 и P2. Каждый вывод порта может быть индивидуально настроен для работы в качестве универсального ввода-вывода или периферийного ввода-вывода.

Выходная мощность привода составляет 4 мА на всех выходах, за исключением двух выходов с высоким напряжением, P1.0 и P1.1, каждый из которых имеет выходную мощность 20 мА.

Регистры PxSEL, где x - это номер порта 0–2, используются для конфигурирования каждого контакта в порте в качестве вывода ввода-вывода общего назначения или в качестве периферийного сигнала ввода-вывода. По умолчанию после сброса все цифровые входные/выходные контакты настроены как входные контакты общего назначения.

Чтобы изменить направление вывода порта, регистры PxDIR используются для установки каждого вывода порта в качестве входа или выхода. Таким образом, установив соответствующий бит в PxDIR на 1, соответствующий вывод становится выходом.

При чтении регистров портов P0, P1 и P2 логические значения на входных контактах возвращаются независимо конфигурации контактов. Это не применяется во время выполнения инструкций чтения-изменения-записи. Инструкции чтения-изменения-записи: ANL, ORL, XRL, JBC, CPL, INC, DEC, DJNZ, MOV, CLR и SETB. Работая с регистром порта, верно следующее: когда адресат является отдельным битом в регистре порта P0, P1 или P2, значение регистра, а не значение на выводе, считывается, изменяется и записывается обратно в регистр порта.

При использовании в качестве входа выводы порта ввода/вывода общего назначения могут быть настроены на подтягивание, опускание или третье состояние. По умолчанию после сброса входы настраиваются как входы с подтягиванием. Отмените выбор функции pullup или pulldown на входе, соответствующий бит в PxINP должен быть установлен в 1.

Выводы портов ввода/вывода P1.0 и P1.1 не имеют возможности подтягивания или опускания. Обратите внимание, что контакты настроены как
периферийные сигналы ввода/вывода не имеют возможности подтягивания или опускания, даже если периферийная функция является входом.

В режимах питания PM1, PM2 и PM3 контакты ввода / вывода сохраняют режим ввода/вывода и выходное значение (если применимо), которое был установлен при вводе PM1, PM2 или PM3.

7.4 Прерывания ввода / вывода общего назначения

Пины ввода/вывода общего назначения, настроенные как входы, могут использоваться для генерации прерываний. Прерывания могут быть
настроены на срабатывание по нарастающему или падающему фронту внешнего сигнала. Каждый из P0, P1 и P2 порты имеют биты разрешения прерывания порта, общие для всех битов в пределах порта, расположенного в регистрах IEN1 – IEN2 следующее:
  • IEN1.P0IE: разрешение прерывания P0
  • IEN2.P1IE: разрешение прерывания P1
  • IEN2.P2IE: разрешение прерывания P2
В дополнение к этим общим разрешениям прерываний, биты в каждом порту имеют отдельные разрешения прерываний находится в регистрах SFR P0IEN, P1IEN и P2IEN. Четные контакта ввода/вывода настроены как периферийные входы/выходы или выходы общего назначения имеют прерывания, генерируемые при включении.

Когда условие прерывания возникает на одном из выводов ввода / вывода, флаг состояния прерывания в соответствующем регистре флага прерывания P0-P2, P0IFG, P1IFG или P2IFG, устанавливается в 1. Флаг состояния прерывания устанавливается независимо от того, установлен ли Пин имеет свой набор разрешения прерываний. Когда прерывание обслуживается, флаг состояния прерывания очищается путем записи 0 в этот флаг. Этот флаг должен быть очищен до очистки порта ЦП флаг прерывания (PxIF). Это показано на рис. 2-4: между входной линией и PxIFG есть обнаружение краев, но между PxIFG и PxINT не обнаружено ни краев, ни одного выстрела. Практическое влияние этого является то, что написано в разделе 2.5.1

Регистры SFR, используемые для прерываний, описаны далее в этом разделе. Регистры суммируются следующим образом:
  • P0IEN: прерывание P0 разрешено
  • P1IEN: разрешение прерывания P1
  • P2IEN: прерывание P2 разрешено
  • PICTL: конфигурация фронта P0, P1 и P2
  • P0IFG: флаги прерываний P0
  • P1IFG: флаги прерываний P1
  • P2IFG: флаги прерываний P2

7.5 Универсальный ввод/вывод DMA

При использовании в качестве выводов ввода / вывода общего назначения каждый из портов P0 и P1 связан с одним триггером DMA. Эти триггеры DMA: IOC_0 для P0 и IOC_1 для P1, как показано в таблице 8-1.

Триггер IOC_0 активируется при возникновении прерывания на выводах P0. Триггер IOC_1 активируется при возникновении прерывания на выводах P1.

7.6 Периферийный ввод/вывод

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

Для USART и таймерного ввода-вывода, установка соответствующих битов PxSEL в 1 необходима для того, чтобы выходные сигналы на цифровом выводе ввода-вывода контролировались периферийным устройством. Для периферийных входов с цифровых выводов ввода / вывода это необязательно.

PxSEL = 1 переопределяет настройку подтягивания или опускания для вывода, поэтому, чтобы иметь возможность управлять подтягиванием и опусканием с помощью битов PxINP, бит PxSEL должен быть установлен в 0 для этого вывода.

Обратите внимание, что периферийные устройства имеют два альтернативных расположения для своих выводов ввода / вывода; см. таблицу 7-1. Приоритет может быть установлен между периферийными устройствами, если присутствуют противоречивые настройки, относящиеся к отображению ввода / вывода (используя биты P2SEL.PRIxP1 и P2DIR.PRIP0). Можно использовать все комбинации, не вызывающие конфликтов.

Обратите внимание, что периферийное устройство обычно присутствует в выбранном месте, даже если оно не используется, и другому периферийному устройству, которое будет использовать контакты, должен быть присвоен более высокий приоритет. Исключением являются выводы RTS и CTS USART в режиме UART с отключенным управлением потоком, а вывод SSN USART настроен в режиме ведущего SPI.

Также обратите внимание, что периферийные устройства, которые имеют входные контакты, получают вход от контакта независимо от настройки PxINP, и это может влиять на состояние периферийного устройства. Например, UART должен быть очищен перед использованием, если на контакте RX могла быть активность перед тем, как использовать его в качестве контакта UART.

Таблица 7-1. Отображение контактов периферийных входов / выходов

Periphery/
Function
P0 P1 P2
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 4 3 2 1 0
ADC A7 A6 A5 A4 A3 A2 A1 A0                         T
Operational
amplifier
          O - +                          
Analog
comparator
    + -                                  
USART 0 SPI

Alt. 2
    C SS MO MI                              
                    M0 MI C SS              
USART 0 UART

Alt. 2
    RT CT TX RX                              
                    TX  RX  RT  CT              
USART 1 SPI
 
Alt. 2
    MI  M0  SS                              
                MI  M0  SS                  
USART 1 UART
 
Alt. 2
    RX  TX  RT  CT                              
                RX  TX  RT  CT                  
TIMER 1
 
Alt. 2
  4 3 2 1 0                              
3 4                       0  1   2           
TIMER 3
 
Alt. 2
                      1 0                
                1 0                      
TIMER 4
 
Alt. 2
                             1  0          
                                  1       0 
32-kHz XOSC                                 Q1 Q2      
DEBUG                                     DC DD  
OBSSEL                     5 4 3 2 1 0          

7.6.1 Таймер 1

PERCFG.T1CFG выбирает, использовать ли альтернативу 1 или альтернативу 2.

В таблице 7-1 сигналы Таймера 1 показаны следующим образом:
  • 0: канал 0 захватывает или сравнивает вывод
  • 1: канал 1 захватывает или сравнивает вывод
  • 2: канал 2 захватывает или сравнивает вывод
  • 3: Канал 3 захватывает или сравнивает вывод
  • 4: канал 4 захватывает или сравнивает вывод
P2DIR.PRIP0 выбирает порядок приоритета при назначении нескольких периферийных устройств для порта 0. При значении 10 приоритет имеют каналы 0–1 Таймера 1, а при значении 11 каналы 2–3 Таймера 1 имеют приоритет. Чтобы все каналы Таймера 1 были видны в альтернативном местоположении 1, переместите и USART 0, и USART 1 в альтернативное местоположение 2.

P2SEL.PRI1P1 и P2SEL.PRI0P1 выбирают порядок приоритета при назначении нескольких периферийных устройств для порта 1. Каналы таймера 1 имеют приоритет, когда первый установлен на низком уровне, а второй - на высоком.

7.6.2 Таймер 3

PERCFG.T3CFG выбирает, использовать ли альтернативу 1 или альтернативу 2.

В таблице 7-1 сигналы Таймера 3 показаны следующим образом:
  • 0: канал 0 захватывает или сравнивает вывод
  • 1: канал 1 захватывает или сравнивает вывод
P2SEL.PRI2P1 и P2SEL.PRI3P1 выбирают порядок приоритета при назначении нескольких периферийных устройств для порта 1. Каналы таймера 3 имеют приоритет, когда оба бита установлены на высокий уровень. Если P2SEL.PRI2P1 установлен высокий и P2SEL.PRI3P1 установлен на низкий уровень, каналы Таймера 3 имеют приоритет над USART 1, но USART 0 имеет приоритет над каналами Таймера 3, а также над USART 1.

7.6.3 Таймер 4

PERCFG.T4CFG выбирает, использовать ли альтернативу 1 или альтернативу 2.

В Таблице 7-1 сигналы Таймера 4 показаны следующим образом:
  • 0: канал 0 захватывает или сравнивает вывод
  • 1: канал 1 захватывает или сравнивает вывод
P2SEL.PRI1P1 выбирает порядок приоритета при назначении нескольких периферийных устройств для порта 1. Каналы таймера 4 имеют приоритет при установке бита.

7.6.4 USART 0

Регистр SFR бит PERCFG.U0CFG выбирает, использовать ли альтернативное 1 или альтернативное 2 местоположения.

В таблице 7-1 сигналы USART 0 показаны следующим образом:

UART:

  • RX: RXDATA
  • TX: TXDATA
  • RT: RTS
  • CT: CTS
SPI:
  • MI: MISO
  • МО: МОСИ
  • C: SCK
  • SS: SSN
P2DIR.PRIP0 выбирает порядок приоритета при назначении нескольких периферийных устройств для порта 0. При значении 00 USART 0 имеет приоритет. Обратите внимание, что если выбран режим UART и аппаратное управление потоком отключено, USART 1 или Таймер 1 имеет преимущество при использовании портов P0.4 и P0.5.

P2SEL.PRI3P1 и P2SEL.PRI0P1 выбирают порядок приоритета при назначении нескольких периферийных устройств для порта 1. USART 0 имеет приоритет, когда оба установлены на 0. Обратите внимание, что если выбран режим UART и аппаратное управление потоком отключено, таймер 1 или таймер 3 имеет приоритет использовать порты P1.2 и P1.3.

7.6.5 USART 1

Бит регистра SFR PERCFG.U1CFG выбирает, использовать ли альтернативное 1 или альтернативное 2 местоположения.

В таблице 7-1 сигналы USART 1 показаны следующим образом:

UART:
  • RX: RXDATA
  • TX: TXDATA
  • RT: RTS
  • CT: CTS
SPI:
  • MI: MISO
  • МО: МОСИ
  • C: SCK
  • SS: SSN
P2DIR.PRIP0 выбирает порядок приоритета при назначении нескольких периферийных устройств для порта 0. При значении 01 USART 1 имеет приоритет. Обратите внимание, что если выбран режим UART и аппаратное управление потоком отключено, USART 0 или Таймер 1 имеет преимущество при использовании портов P0.2 и P0.3.

P2SEL.PRI3P1 и P2SEL.PRI2P1 выбирают порядок приоритета при назначении нескольких периферийных устройств для порта 1. USART 1 имеет приоритет, когда первый установлен на 1, а последний на 0. Обратите внимание, что если выбран режим UART и аппаратное управление потоком отключено, USART 0 или Таймер 3 имеет приоритет для использования портов P1.4 и P1.5.

7.6.6 АЦП

В таблице 7-1 сигналы АЦП показаны следующим образом:
  • A0: вход АЦП 0
  • A1: вход АЦП 1
  • A2: вход АЦП 2
  • A3: вход АЦП 3
  • A4: АЦП вход 4
  • A5: вход АЦП 5
  • A6: вход АЦП 6
  • A7: вход АЦП 7
  • T: АЦП внешний пусковой контакт
При использовании АЦП выводы порта 0 должны быть настроены как входы АЦП. Можно использовать до восьми входов АЦП. Чтобы настроить вывод порта 0 для использования в качестве входа АЦП, соответствующий бит в регистре APCFG должен быть установлен на 1. Значения по умолчанию в этом регистре выбирают выводы порта 0 в качестве входа без АЦП, т. e. wифровых входов / выходов.

Настройки в регистре APCFG переопределяют настройки в P0SEL.

АЦП может быть настроен на использование универсального контакта ввода / вывода P2.0 в качестве внешнего триггера для запуска преобразований. P2.0 должен быть настроен как универсальный ввод / вывод в режиме ввода при использовании для АЦП внешний триггер.

7.6.7 Операционный усилитель и аналоговый компаратор

При использовании операционного усилителя и аналогового компаратора соответствующие выводы порта 0 должны быть сконфигурированы как входы АЦП (см. Таблицу 7-1). Чтобы настроить вывод порта 0 для использования в качестве входа АЦП, соответствующий бит в регистре APCFG должен быть установлен в 1. Значения по умолчанию в этом регистре выбирают выводы порта 0 как входы без АЦП, то есть цифровые входы / выходы.

Настройки в регистре APCFG переопределяют настройки в P0SEL.

7.7 Интерфейс отладки

Порты P2.1 и P2.2 используются для данных отладки и тактовых сигналов соответственно. Они показаны как DD (данные отладки) и DC (часы отладки) в Таблице 7-1. В режиме отладки интерфейс отладки контролирует направление этих контактов. Pullup и pulldown отключены на этих выводах в режиме отладки.

7.8 32-кГц вход XOSC

Порты P2.3 и P2.4 могут использоваться для подключения внешнего кристалла 32 кГц. Эти выводы порта используются 32-кГц XOSC, когда CLKCONCMD.OSC32K низок, независимо от настроек регистра. Контакты порта устанавливаются в аналоговом режиме, когда CLKCONCMD.OSC32K имеет низкий уровень.

7.9 Тестовые выходные сигналы радио

Используя регистры OBSSELx (OBSSEL0 – OBSSEL5), пользователь может выводить разные сигналы с радиочастотного ядра на выводы GPIO. Эти сигналы могут быть полезны для отладки протоколов низкого уровня или для управления внешним PA, LNA или коммутаторами. Регистры управления OBSSEL0 – OBSSEL5 могут использоваться для переопределения стандартного поведения GPIO и вывода сигналов ядра RF (rfc_obs_sig0, rfc_obs_sig1 и rfc_obs_sig2) на выводы P1 [0: 5]. Список доступных сигналов см. В соответствующих регистрах RFC_OBS_CTRLx в разделе 23.15.3 для CC253x или в разделе 24.1 для CC2540 или в главе 25 для CC2541.

7.10 Сигнал выключения питания MUX (PMUX)

Регистр PMUX может использоваться для вывода тактовой частоты 32 кГц и / или статуса цифрового регулятора напряжения.

Выбранный источник тактовой частоты 32 кГц может быть выведен на один из выводов P0. Бит разрешения CKOEN включает выход на P0, а вывод P0 выбирается с помощью CKOPIN (подробности см. В описании регистра PMUX). Когда CKOEN установлен, все другие конфигурации для выбранного контакта будут отменены. Часы выводятся во всех режимах питания; однако в PM3 часы останавливаются (см. PM3 в главе 4).

Кроме того, статус цифрового регулятора напряжения может быть выведен на один из контактов P1. Когда бит DREGSTA установлен, выводится статус цифрового регулятора напряжения. DREGSTAPIN выбирает контакт P1 (см. Описание регистра PMUX для деталей). Когда DREGSTA установлен, все остальные конфигурации для выбранного контакта перезаписываются. Выбранный вывод выводит 1, когда на встроенный в кристалл цифровой регулятор напряжения 1,8 В подается питание (микросхема имеет регулируемую мощность). Выбранный вывод выводит 0 при отключении встроенного цифрового стабилизатора напряжения 1,8 В, то есть в PM2 и PM3.

7.11 I/O Registers - Регистры ввода / вывода

Регистры для портов ввода / вывода описаны в этом разделе. Регистры являются:
  • P0: Port 0
  • P1: Port 1
  • P2: Port 2
  • PERCFG: Peripheral-control register - Регистр периферийного контроля
  • APCFG: Analog peripheral I/O configuration - Конфигурация аналогового периферийного ввода / вывода
  • P0SEL: Port 0 function-select register - регистр выбора функции порта 0
  • P1SEL: Port 1 function-select register - регистр выбора функции порта 1
  • P2SEL: Port 2 function-select register - регистр выбора функции порта 2
  • P0DIR: Port 0 direction register - регистр направления порта 0
  • P1DIR: Port 1 direction register - регистр направления порта 1
  • P2DIR: Port 2 direction register - регистр направления порта 2
  • P0INP: Port 0 input-mode register - регистр режима ввода порта 0
  • P1INP: Port 1 input-mode register - регистр режима ввода порта 1
  • P2INP: Port 2 input-mode register - регистр режима ввода порта 2
  • P0IFG: Port 0 interrupt-status flag register - регистр флага состояния прерывания порта 0
  • P1IFG: Port 1 interrupt-status flag register - регистр флага состояния прерывания порта 1
  • P2IFG: Port 2 interrupt-status flag register - регистр флага состояния прерывания порта 2
  • PICTL: Interrupt edge register - регистр фронт прерывания
  • P0IEN: Port 0 interrupt-mask register - регистр маски прерывания порта 0
  • P1IEN: Port 1 interrupt-mask register - регистр маски прерывания порта 1
  • P2IEN: Port 2 interrupt-mask register - регистр маски прерывания порта 2
  • PMUX: Power-down signal-mux register - регистр мультиплексирования сигнала при отключении питания
  • OBSSEL0: Observation output control register 0 - регистр управления выходом наблюдения 0
  • OBSSEL1: Observation output control register 1 - регистр управления выходом наблюдения 1
  • OBSSEL2: Observation output control register 2 - регистр управления выходом наблюдения 2
  • OBSSEL3: Observation output control register 3 - регистр управления выходом наблюдения 3
  • OBSSEL4: Observation output control register 4 - регистр управления выходом наблюдения 4
  • OBSSEL5: Observation output control register 5 - регистр управления выходом наблюдения 5

P0 (0x80) – Port 0

Bit  Name  Reset  R/W Description 
7:0 P0[7:0] 0xFF R/W Порт 0. Порт ввода-вывода общего назначения. Бит-адресуемый из SFR. Этот внутренний регистр ЦП доступен для чтения, но не для записи из XDATA (0x7080).

P1 (0x90) – Port 1

Bit  Name  Reset  R/W Description 
7:0 P1[7:0] 0xFF R/W Порт 1. Порт ввода-вывода общего назначения. Бит-адресуемый из SFR. Этот внутренний регистр ЦП доступен для чтения, но не для записи из XDATA (0x7090).

P2 (0xA0) – Port 2

Bit  Name  Reset  R/W Description 
7:5 - 000 R0 Зарезервированный
4:0 P2[4:0] 1 1111 R/W Порт 2. Порт ввода-вывода общего назначения. Бит-адресуемый из SFR. Этот внутренний регистр ЦП доступен для чтения, но не для записи из XDATA (0x70A0).

PERCFG (0xF1) – Peripheral Control - Регистр периферийного контроля

Bit  Name  Reset  R/W Description 
7 - 0 R0 Зарезервированный
6 T1CFG 0 R/W
Timer 1 I/O location
0: Alternative 1 location
1: Alternative 2 location
5 T3CFG 0 R/W
Timer 3 I/O location 
0: Alternative 1 location 
1: Alternative 2 location
4 T4CFG 0 R/W
Timer 4 I/O location 
0: Alternative 1 location 
1: Alternative 2 location
3:2 - 00 R/W Зарезервированный
1 U1CFG 0 R/W
USART 1 I/O location
0: Alternative 1 location
1: Alternative 2 location
0 U0CFG 0 R/W
USART 0 I/O location 
0: Alternative 1 location 
1: Alternative 2 location

APCFG (0xF2) – Analog Peripheral I/O Configuration - Конфигурация аналогового периферийного ввода / вывода

Bit  Name  Reset  R/W Description 
7:0 APCFG[7:0] 0x00 R/W
Конфигурация аналогового периферийного ввода / вывода. APCFG [7: 0] выбирает P0.7 – P0.0 в качестве аналогового ввода / вывода.
0: аналоговый ввод / вывод отключен
1: аналоговый ввод / вывод включен

P0SEL (0xF3) – Port 0 Function Select - регистр выбора функции порта 0

Bit  Name  Reset  R/W Description 
7:0 SELP0_[7:0] 0x00 R/W
P0.7 to P0.0 function select
0: General-purpose I/O
1: Peripheral function

P1SEL (0xF4) – Port 1 Function Select - регистр выбора функции порта 1

Bit  Name  Reset  R/W Description 
7:0 SELP1_[7:0] 0x00 R/W
P1.7 to P1.0 function select 
0: General-purpose I/O 
1: Peripheral function

P2SEL (0xF5) – Port 2 Function Select and Port 1 Peripheral Priority Control - Выбор функции порта 2 и периферийное управление приоритетом порта 1

Bit  Name  Reset  R/W Description 
7 - 0 R0 Зарезервированный
6 PRI3P1 0 R/W
Порт 1 периферийный приоритет управления. Этот бит определяет, какой модуль имеет приоритет в случае, когда модули назначены на те же контакты.
0: USART 0 имеет приоритет.
1: USART 1 имеет приоритет
5 PRI2P1 0 R/W
Порт 1 периферийный приоритет управления. Этот бит определяет порядок приоритета в случае, когда PERCFG назначает USART 1 и Timer 3 на одни и те же контакты.
0: USART 1 имеет приоритет.
1: Timer 3 имеет приоритет.
4 PRI1P1 0 R/W
Порт 1 периферийный приоритет управления. Этот бит определяет порядок приоритета в случае, когда PERCFG назначает Timer 1 и Timer 4 одинаковым контактам.
0: Timer 1 имеет приоритет.
1: Timer 4 имеет приоритет.
3 PRI0P1 0 R/W
Порт 1 периферийный приоритет управления. Этот бит определяет порядок приоритета в случае, когда PERCFG назначает USART 0 и Timer 1 для одних и тех же контактов.
0: USART 0 имеет приоритет.
1: Таймер 1 имеет приоритет.
2 SELP2_4 0 R/W
P2.4 function select
0: General-purpose I/O
1: Peripheral function
1 SELP2_3 0 R/W
P2.3 function select 
0: General-purpose I/O 
1: Peripheral function
0 SELP2_0 0 R/W
P2.0 function select 
0: General-purpose I/O 
1: Peripheral function

P0DIR (0xFD) – Port 0 Direction - направление

Bit  Name  Reset  R/W Description 
7:0 DIRP0_[7:0] 0x00 R/W
P0.7 to P0.0 I/O direction
0: Input
1: Output

P1DIR (0xFE) – Port 1 Direction - направление

Bit  Name  Reset  R/W Description 
7:0 DIRP1_[7:0] 0x00 R/W
P1.7 to P1.0 I/O direction 
0: Input 
1: Output

P2DIR (0xFF) – Port 2 Direction and Port 0 Peripheral Priority Control  - управление направлением порта 2 и периферийным приоритетом порта 0

Bit  Name  Reset  R/W Description 
7:6 PRIP0[1:0] 00 R/W
Порт 0 периферийный приоритет управления. Эти биты определяют порядок приоритета в случае когда PERCFG назначает несколько периферийных устройств одним и тем же контактам.
Подробный список приоритетов:
00:
1-й приоритет: USART 0
2-й приоритет: USART 1
3-й приоритет: Timer 1
01:
1-й приоритет: USART 1
2-й приоритет: USART 0
3-й приоритет: Timer 1
10:
1-й приоритет: Timer 1, channels 0–1
2-й приоритет: USART 1
3-й приоритет: USART 0
4-й приоритет: Timer1, channels 2–3
11:
1-й приоритет: Timer 1, channels 2–3
2-й приоритет: USART 0
3-й приоритет: USART 1
4-й приоритет: Timer 1, channels 0–1
5 - 0 R0 Зарезервированный
4:0 DIRP2_[4:0] 0 0000 R/W
P2.4 to P2.0 I/O direction
0: Input
1: Output

P0INP (0x8F) – Port 0 Input Mode -  режим ввода

Bit  Name  Reset  R/W Description 
7:0 MDP0_[7:0] 0x00 R/W
P0.7 to P0.0 I/O input mode
0: Pullup or pulldown [see P2INP (0xF7) – Port 2 input mode]
1: 3-state

P1INP (0xF6) – Port 1 Input Mode -  режим ввода

Bit  Name  Reset  R/W Description 
7:0 MDP1_[7:2] 0000 00 R/W
P1.7 to P1.2 I/O input mode
0: Pullup or pulldown [see P2INP (0xF7) – Port 2 input mode]
1: 3-state
1:0 - 00 R0 Зарезервированный

P2INP (0xF7) – Port 2 Input Mode -  режим ввода

Bit  Name  Reset  R/W Description 
7 PDUP2 0 R/W
Port 2 pull-or-pulldown выберите. Выбирает функцию для всех выводов порта 2, сконфигурированных как входы pull-or-pulldown.
0: Pullup
1: Pulldown
6 PDUP1 0 R/W
Port 1 pull-or-pulldown выберите. Выбирает функцию для всех выводов порта 1, сконфигурированных как входы pull-or-pulldown.
0: Pullup
1: Pulldown
5 PDUP0 0 R/W
Port 0 pull-or-pulldown выберите. Выбирает функцию для всех выводов порта 0, сконфигурированных как входы pull-or-pulldown.
0: Pullup
1: Pulldown
4:0 MDP2_[4:0] 0 0000 R/W
P2.4 to P2.0 I/O input mode
0: Pullup or pulldown
1: 3-state

P0IFG (0x89) – Port 0 Interrupt Status Flag - флаг состояния прерывания по порту 0

Bit  Name  Reset  R/W Description 
7:0 P0IF[7:0] 0x00 R/W0
Порт 0, входы с 7 по 0, флаги состояния прерывания. Когда вывод входного порта имеет ожидающий запрос прерывания, устанавливается соответствующий флаг бита.

P1IFG (0x8A) – Port 1 Interrupt Status Flag - флаг состояния прерывания по порту 1

Bit  Name  Reset  R/W Description 
7:0 P1IF[7:0] 0x00 R/W0
Порт 1, входы с 7 по 0, флаги состояния прерывания. Когда вывод входного порта имеет ожидающий запрос прерывания, устанавливается соответствующий флаг бита.

P2IFG (0x8B) – Port 2 Interrupt Status Flag флаг состояния прерывания по порту 2

Bit  Name  Reset  R/W Description 
7:6 - 00 R0 Зарезервированный
5 DPIF 0 R/W0 USB D+ interrupt-status flag.Этот флаг устанавливается, когда на линии D + имеется ожидающий запрос прерывания, и используется для обнаружения событий возобновления USB в состоянии приостановки USB. Этот флаг не устанавливается, когда USB-контроллер не приостановлен.
4:0 P2IF[4:0] 0 0000 R/W0 Порт 2, входы с 4 по 0, флаги состояния прерывания. Когда вывод входного порта имеет ожидающий запрос прерывания, устанавливается соответствующий бит флага.

PICTL (0x8C) – Port Interrupt Control - управление прерываниями порта

Bit  Name  Reset  R/W Description 
7 PADSC 0 R/W
Управление силой привода для выводов ввода / вывода в режиме вывода. Выбирает повышение мощности выходного привода для учета низкого напряжения питания ввода-вывода на выводе DVDD (это обеспечивает такую же прочность привода при более низких напряжениях и при более высоких).
0: увеличение минимальной силы привода. DVDD1 и DVDD2, равные или превышающие 2,6 В
1: максимальное усиление привода. DVDD1 и DVDD2 менее 2,6 В
6:4 - 000 R0 Зарезервированный
3 P2ICON 0 R/W
Порт 2, входы от 4 до 0, конфигурация прерываний. Этот бит выбирает условие запроса прерывания для порта 2 входы с 4 по 0.
0: Rising edge Передний фронт на входе дает прерывание.
1: Falling edge Падающий фронт на входе дает прерывание.
2 P1ICONH 0 R/W
Порт 1, входы от 7 до 4, конфигурация прерываний. Этот бит выбирает условие запроса прерывания для порта 1 входы с 7 по 4.
0: Rising edge Передний фронт на входе дает прерывание.
1: Falling edge Падающий фронт на входе дает прерывание.
1 P1ICONL 0 R/W
Порт 1, входы от 3 до 0, конфигурация прерываний. Этот бит выбирает условие запроса прерывания для порта 1 входы с 3 по 0.
0: Rising edge Передний фронт на входе дает прерывание.
1: Falling edge Падающий фронт на входе дает прерывание.
0 P0ICON 0 R/W
Порт 0, входы от 7 до 0, конфигурация прерываний. Этот бит выбирает условие запроса прерывания для порта 0 входы с 7 по 0.
0: Rising edge Передний фронт на входе дает прерывание.
1: Falling edge Падающий фронт на входе дает прерывание.

P0IEN (0xAB) – Port 0 Interrupt Mask - маска прерывания порта 0

Bit  Name  Reset  R/W Description 
7:0 P0_[7:0]IEN 0x00 R/W0
Разрешение прерывания от порта P0.7 до P0.0
0: прерывания отключены.
1: прерывания включены.


P1IEN (0x8D) – Port 1 Interrupt Mask - маска прерывания порта 1

Bit  Name  Reset  R/W Description 
7:0 P1_[7:0]IEN 0x00 R/W0
Разрешение прерывания от порта P1.7 до P1.0
0: прерывания отключены.
1: прерывания включены.

P2IEN (0xAC) – Port 2 Interrupt Mask - маска прерывания порта 2

Bit  Name  Reset  R/W Description 
7:6 - 00 R0 Зарезервированный
5 DPIEN 0 R/W
USB D+ разрешение прерывания
0: USB D+ прерывание отключено
1: USB D+ прерывание включено
4:0 P2_[4:0]IEN 0 0000 R/W
Разрешение прерывания от порта P2.4 до P2.0
0: прерывания отключены.
1: прерывания включены.

PMUX (0xAE) – Power-Down Signal Mux - мультиплексор при отключении питания

Bit  Name  Reset  R/W Description 
7 CKOEN 0 R/W Включение синхронизации. Когда этот бит установлен, выбранная тактовая частота 32 кГц выводится на один из выводов P0. CKOPIN выбирает пин-код для использования. Это переопределяет все другие конфигурации для выбранного контакта. Часы выводятся во всех режимах питания; однако в PM3 часы останавливаются (см. PM3 в главе 4).
6:4 CKOPIN[2:0] 000 R/W Вывод синхронизации. Выбирает, какой вывод P0 будет использоваться для вывода выбранных тактовых импульсов 32 кГц.
3 DREGSTA 0 R/W Состояние цифрового регулятора напряжения. Когда этот бит установлен, состояние цифрового регулятора напряжения выводится на один из выводов P1. DREGSTAPIN выбирает пин-код. Когда DREGSTA установлен, все остальные конфигурации для выбранного контакта перезаписываются. Выбранный вывод выводит 1, когда на встроенный в кристалл цифровой регулятор напряжения 1,8 В подается питание (микросхема имеет регулируемую мощность). Выбранный вывод выводит 0 при отключении встроенного цифрового стабилизатора напряжения 1,8 В.
2:0 DREGSTAPIN[2:0] 000 R/W Digital Voltage Regulator Status Pin. Выбирает, какой вывод P1 будет использоваться для вывода сигнала DREGSTA.

Обратите внимание, что регистры с OBSSEL0 по OBSSEL5 не сохраняют данные в состояниях PM2 и PM3.

OBSSEL0 (0x6243) – Observation Output Control Register 0 - регистр управления выходом наблюдений 0

Bit  Name  Reset  R/W Description 
7 EN 0 R/W
Бит управления выводом наблюдения 0 на P1 [0].
0 - Выход наблюдения отключен
1 - Выход наблюдения включен
Примечание. Если этот параметр включен, он переписывает стандартное поведение GPIO P1.0.
6:0 SEL[6:0] 000 0000 R/W
Выберите выходной сигнал на выходе наблюдения 0
111 1011 (123): rfc_obs_sig0
111 1100 (124): rfc_obs_sig1
111 1101 (125): rfc_obs_sig2
Другие: Зарезервированны

OBSSEL1 (0x6244) – Observation Output Control Register 1 - регистр управления выходом наблюдений 1

Bit  Name  Reset  R/W Description 
7 EN 0 R/W
Бит управления выводом наблюдения 1 на P1 [1].
0 - Выход наблюдения отключен
1 - Выход наблюдения включен
Примечание. Если этот параметр включен, он переписывает стандартное поведение GPIO P1.1.
6:0 SEL[6:0] 000 0000 R/W
Выберите выходной сигнал на выходе наблюдения 1
111 1011 (123): rfc_obs_sig0
111 1100 (124): rfc_obs_sig1
111 1101 (125): rfc_obs_sig2
Другие: Зарезервированны

OBSSEL2 (0x6245) – Observation Output Control Register 2 - регистр управления выходом наблюдений 2

Bit  Name  Reset  R/W Description 
7 EN 0 R/W
Бит управления выводом наблюдения 2 на P1 [2].
0 - Выход наблюдения отключен
1 - Выход наблюдения включен
Примечание. Если этот параметр включен, он переписывает стандартное поведение GPIO P1.2.
6:0 SEL[6:0] 000 0000 R/W
Выберите выходной сигнал на выходе наблюдения 2
111 1011 (123): rfc_obs_sig0
111 1100 (124): rfc_obs_sig1
111 1101 (125): rfc_obs_sig2
Другие: Зарезервированны

OBSSEL3 (0x6246) – Observation Output Control Register 3 - регистр управления выходом наблюдений 3

Bit  Name  Reset  R/W Description 
7 EN 0 R/W
Бит управления выводом наблюдения 3 на P1 [3].
0 - Выход наблюдения отключен
1 - Выход наблюдения включен
Примечание. Если этот параметр включен, он переписывает стандартное поведение GPIO P1.3.
6:0 SEL[6:0] 000 0000 R/W
Выберите выходной сигнал на выходе наблюдения 3
111 1011 (123): rfc_obs_sig0
111 1100 (124): rfc_obs_sig1
111 1101 (125): rfc_obs_sig2
Другие: Зарезервированны

OBSSEL4 (0x6247) – Observation Output Control Register 4 - регистр управления выходом наблюдений 4

Bit  Name  Reset  R/W Description 
7 EN 0 R/W
Бит управления выводом наблюдения 4 на P1 [4].
0 - Выход наблюдения отключен
1 - Выход наблюдения включен
Примечание. Если этот параметр включен, он переписывает стандартное поведение GPIO P1.4.
6:0 SEL[6:0] 000 0000 R/W
Выберите выходной сигнал на выходе наблюдения 4
111 1011 (123): rfc_obs_sig0
111 1100 (124): rfc_obs_sig1
111 1101 (125): rfc_obs_sig2
Другие: Зарезервированны

OBSSEL5 (0x6248) – Observation Output Control Register 5 - регистр управления выходом наблюдений 5

Bit  Name  Reset  R/W Description 
7 EN 0 R/W
Бит управления выводом наблюдения 5 на P1 [5].
0 - Выход наблюдения отключен
1 - Выход наблюдения включен
Примечание. Если этот параметр включен, он переписывает стандартное поведение GPIO P1.5.
6:0 SEL[6:0] 000 0000 R/W
Выберите выходной сигнал на выходе наблюдения 5
111 1011 (123): rfc_obs_sig0
111 1100 (124): rfc_obs_sig1
111 1101 (125): rfc_obs_sig2
Другие: Зарезервированны

 8 DMA Controller - DMA контроллер

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

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

Контроллер DMA управляет передачей данных по всему диапазону адресов в пространстве памяти XDATA.
Поскольку большинство регистров SFR отображается в пространство памяти DMA, эти гибкие каналы DMA можно использовать для разгрузки ЦП инновационными способами, например, для подачи данных из памяти в USART или для периодической передачи выборок между АЦП и памятью. и так далее. Использование прямого доступа к памяти также может снизить энергопотребление системы, поддерживая ЦП в режиме пониженного энергопотребления без необходимости пробуждения для перемещения данных на периферийное устройство или с него (см. раздел 4.1.1 о режиме пониженного энергопотребления ЦП). Обратите внимание, что в разделе 2.2.3 описываются регистры SFR, которые не отображаются в пространство памяти XDATA.

Основные характеристики контроллера прямого доступа к памяти следующие:

  • Пять независимых каналов DMA
  • Три настраиваемых уровня приоритета канала DMA
  • 32 настраиваемых триггерных события передачи
  • Независимый контроль исходного и конечного адресов
  • Одиночный, блочный и повторный режимы передачи
  • Поддерживает поле длины в передаваемых данных, устанавливая переменную длину передачи
  • Может работать в режиме размера слова или размера байта.
Тема ................................................. ................................................. ........................ Страница
8.1 Работа с прямым доступом к памяти ............................................... ................... 93
8.4 Остановка передачи DMA .................................................. ....................................98
8.5 Прерывания DMA .................................................. ................................................ 98
8.6 Структура данных конфигурации DMA ................................................ ...............  98
8.7 Доступ к памяти прямого доступа к памяти.................................................. ....... 98
8.8 Регистры прямого доступа к памяти ....................................... .............................101

8.1 DMA Operation - Работа с прямым доступом к памяти

В контроллере DMA доступно пять каналов прямого доступа к памяти, пронумерованных от канала 0 до канала 4.
Каждый канал DMA может перемещать данные из одного места в пространстве памяти DMA в другое, то есть между ячейками XDATA.

Чтобы использовать канал DMA, его необходимо сначала настроить, как описано в Разделе 8.2 и Разделе 8.3.

На рис. 8-1 показана диаграмма состояний DMA. После того, как канал DMA настроен, он должен быть активирован, прежде чем будет разрешена любая передача. Канал DMA активируется установкой соответствующего бита в регистре DMAARM канала DMA.

Когда канал DMA активирован, передача начинается, когда происходит сконфигурированное триггерное событие DMA. Обратите внимание, что время активации одного канала (то есть получения данных конфигурации) занимает девять системных тактов; таким образом, если соответствующий бит DMAARM установлен и триггер появляется в течение времени, необходимого для настройки канала, требуемый триггер теряется. Если одновременно активируются два или более каналов DMA, время настройки всех каналов увеличивается (последовательное чтение из памяти). Если все пять включены, это занимает 45 системных тактов, и сначала готов канал 1, затем канал 2 и, наконец, канал 0 (все в течение последних восьми системных тактов). Возможны 32 триггерных события DMA (см. Таблицу 8-1), например, передача по UART, переполнение таймера. Триггерное событие, которое будет использоваться каналом DMA, устанавливается конфигурацией канала DMA; таким образом, информация об этом недоступна до тех пор, пока конфигурация не будет прочитана. Триггерные события прямого доступа к памяти перечислены в таблице 8-1.

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

Следует отметить, что если ранее сконфигурированный источник триггера генерирует события триггера во время настройки DMA, они считаются пропущенными событиями, и как только канал DMA готов, начинается передача. Это происходит, даже если новый источник триггера не совпадает с предыдущим. В некоторых ситуациях это приводит к ошибкам при переносе. Чтобы учесть это, источник триггера 0 должен быть источником между реконфигурациями. Это достигается путем настройки фиктивных адресов источника и получателя с использованием фиксированной длины в один байт, блочной передачи и источника триггера 0. Включение программного триггера (DMAREQ) очищает подсчет пропущенных триггеров, и при новой конфигурации новые триггеры не генерируются, извлекается из памяти (если только программное обеспечение не записывает DMAREQ для этого канала).

Бит DMAREQ очищается только тогда, когда происходит соответствующая передача DMA. Бит DMAREQ не сбрасывается, когда канал снят с охраны.

Рисунок 8-1. Операция прямого доступа к памяти

8.2 DMA Configuration Parameters - Параметры конфигурации прямого доступа к памяти

Настройка и управление работой прямого доступа к памяти осуществляется пользовательским программным обеспечением. В этом разделе описываются параметры, которые необходимо настроить, прежде чем можно будет использовать канал DMA. Раздел 8.3 описывает, как параметры настраиваются в программном обеспечении и передаются контроллеру прямого доступа к памяти.

Поведение каждого из пяти каналов прямого доступа к памяти настраивается со следующими параметрами:

Source address: Адрес источника: первый адрес, с которого канал DMA должен считывать данные.
Destination address: Адрес назначения: первый адрес, на который канал DMA должен записывать данные, считанные с исходного адреса. Пользователь должен убедиться, что место назначения доступно для записи.
Transfer count: Количество передач: количество передач, которые необходимо выполнить перед повторной активацией или снятием с охраны канала DMA и предупреждением ЦП с запросом на прерывание. Длина может быть определена в конфигурации или может быть определена, как описано далее для настройки VLEN.
VLEN setting: Настройка VLEN: Канал DMA поддерживает передачу переменной длины, используя первый байт или слово для установки длины передачи. При этом доступны различные варианты подсчета количества передаваемых байтов.
Priority: Приоритет: приоритет передачи DMA для канала DMA по отношению к ЦП и другим каналам DMA и портам доступа.
Trigger event: Триггерное событие: все передачи DMA инициируются так называемыми триггерными событиями DMA. Этот триггер либо запускает передачу блока DMA, либо одну передачу DMA. В дополнение к настроенному триггеру, DMA канал всегда можно активировать, установив назначенный ему флаг DMAREQ.DMAREQx. Источники запуска DMA описаны в таблице 8-1.
Source and destination increment: Приращение источника и назначения: Адреса источника и назначения можно контролировать, увеличивая или уменьшая их или не изменяя.
Transfer mode: Режим передачи: Режим передачи определяет, должна ли передача быть одиночной или блочной, или их повторяющимися версиями.
Byte or word transfers: Передача байтов или слов: определяет, должна ли каждая передача DMA быть 8-битной (байт) или 16-битной (слово).
Interrupt mask: Маска прерывания: запрос на прерывание генерируется по завершении передачи DMA. Бит маски прерывания определяет, включена или отключена генерация прерывания.
M8: Решите, использовать ли семь или восемь битов на байт для длины передачи. Это применимо только при передаче байтов.

Подробное описание всех параметров конфигурации дано в разделах с 8.2.1 по 8.2.11.

8.2.1 Адрес источника

Адрес в памяти XDATA, с которого канал DMA начинает считывать данные. Это может быть любой адрес XDATA — в ОЗУ, в отображаемом банке флэш-памяти (см. MEMCTR.XBANK), XREG или XDATA с адресом SFR.

8.2.2 Адрес назначения

Первый адрес, на который канал DMA должен записывать данные, считанные с исходного адреса. Пользователь должен гарантировать, что место назначения доступно для записи. Это может быть любой адрес XDATA — в ОЗУ, XREG или XDATA с адресом SFR.

8.2.3 Счетчик передач

Количество байтов/слов, которые должны быть переданы для завершения передачи DMA. Когда количество передач достигнуто, контроллер DMA перезаряжает или снимает с охраны канал DMA и предупреждает ЦП с запросом на прерывание. Счетчик передач может быть определен в конфигурации или может быть определен как переменная длина, как описано в Разделе 8.2.4.

8.2.4 Настройка VLEN

Канал DMA может использовать первый байт или слово (для слова используются биты 12:0) исходных данных в качестве длины передачи. Это позволяет передавать переменную длину. При использовании передачи переменной длины предлагаются различные варианты подсчета количества байтов для передачи. В любом случае в качестве максимального количества передач используется настройка счетчика передач (LEN). Если длина передачи, указанная первым байтом или словом, больше LEN, то передается LEN байтов или слов. При использовании передачи переменной длины LEN должен быть установлен на наибольшую допустимую длину передачи плюс один.

Обратите внимание, что бит M8 (раздел 8.2.11) используется только тогда, когда выбрана передача размером в байт.

С помощью VLEN можно установить следующие параметры:
  1. Передача количества байтов или слов, заданных первым байтом/словом + 1 (передается длина байта/слова, а затем столько байтов/слов, сколько диктуется длиной байта/слова)
  2. Передача количества байтов или слов, которыми управляет первый байт/слово
  3. Передача количества байтов или слов, заданных первым байтом/словом + 2 (передается длина байта/слова, а затем столько байтов/слов, сколько указано длиной байта/слова + 1)
  4. Передача количества байтов или слов, заданных первым байтом/словом + 3 (передается длина байта/слова, а затем столько байтов/слов, сколько указано длиной байта/слова + 2)

Рисунок 8-2 показывает опции VLEN.

Рисунок 8-2. Варианты передачи переменной длины (VLEN)

8.2.5 Триггерное событие

Каждый канал DMA может быть настроен на определение одного триггера. Это поле определяет, какой триггер определяет канал DMA.

8.2.6 Приращение источника и назначения

Когда канал DMA активируется или повторно активируется, адреса источника и получателя передаются внутренним указателям адресов. Возможности увеличения адреса:
  • Увеличение на ноль. Указатель адреса остается фиксированным после каждой передачи.
  • Увеличение на единицу. Указатель адреса увеличивается на один счетчик после каждой передачи.
  • Увеличение на два. Указатель адреса увеличивается на два счетчика после каждой передачи.
  • Уменьшить на единицу. Указатель адреса уменьшается на один счетчик после каждой передачи.
где счетчик равен 1 байту в байтовом режиме и 2 байтам в словном режиме.

8.2.7 Режим передачи DMA

Режим передачи определяет поведение канала DMA, когда он начинает передачу данных. Существует четыре режима передачи, описанные ниже:
Single: Одиночный: по триггеру происходит одна передача DMA, и канал DMA ожидает следующего триггера. После завершения количества передач, определяемого счетчиком передач, ЦП уведомляется, и канал DMA деактивируется.
Block: Блок: по срабатыванию триггера количество передач DMA, определяемое счетчиком передач, выполняется как можно быстрее, после чего ЦП уведомляется, а канал DMA деактивируется.
Repeated single: Повторяющийся одиночный: при триггере происходит одиночная передача DMA, и канал DMA ожидает следующего триггера. После того, как количество передач, указанное счетчиком передач, завершено, ЦП уведомляется, и канал DMA перенастроен.
Repeated block: Повторяющийся блок: по срабатыванию триггера количество передач DMA, определяемое счетчиком передач, выполняется как можно быстрее, после чего ЦП уведомляется, а канал DMA переустанавливается.

8.2.8 Приоритет прямого доступа к памяти

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

Схема используется для обеспечения доступа для всех. Существует три уровня приоритета прямого доступа к памяти:

High: Высокий: наивысший внутренний приоритет. Доступ к DMA всегда превалирует над доступом к ЦП.
Normal: Обычный: второй по величине внутренний приоритет. Доступ по DMA преобладает над ЦП, по крайней мере, при каждой второй попытке.
Low: Низкий: самый низкий внутренний приоритет. Доступ к DMA всегда зависит от доступа к ЦП.

8.2.9 Передача байтов или слов

Определяет, выполняется ли 8-битная (байт) или 16-битная (слово) передача.

8.2.10 Маска прерывания

По завершении передачи DMA канал может генерировать прерывание для процессора. Этот бит маскирует прерывание.

8.2.11 Настройка режима 8

Это поле определяет, использовать ли 7 или 8 бит на байт для длины передачи. Применимо только при передаче байтов.

8.3 Настройка конфигурации прямого доступа к памяти

Параметры канала DMA, такие как режим адреса, режим передачи и приоритет, описанные в предыдущем разделе, должны быть настроены до того, как канал DMA может быть поставлен на охрану и активирован. Параметры не настраиваются напрямую через регистры SFR, а записываются в специальную структуру данных конфигурации DMA в памяти. Для каждого используемого канала DMA требуется собственная структура данных конфигурации DMA. Структура данных конфигурации DMA состоит из восьми байтов и описана в разделе 8.6. Структура данных конфигурации DMA может находиться в любом месте, определяемом программным обеспечением пользователя, а местоположение адреса передается контроллеру DMA через набор SFR, DMAxCFGH:DMAxCFGL. Как только канал поставлен на охрану, контроллер DMA считывает структуру данных конфигурации для этого канала, заданную адресом в DMAxCFGH:DMAxCFGL.

Важно отметить, что метод указания начального адреса для структуры данных конфигурации DMA отличается для канала DMA 0 и каналов DMA 1–4 следующим образом:

DMA0CFGH:DMA0CFGL дает начальный адрес для структуры данных конфигурации канала 0 DMA.
DMA1CFGH:DMA1CFGL дает начальный адрес для структуры данных конфигурации канала 1 DMA, за которой следуют структуры данных конфигурации каналов 2–4.

Таким образом, DMA-контроллер ожидает, что структуры данных конфигурации DMA для каналов DMA 1–4 будут лежать в непрерывной области памяти, начиная с адреса, хранящегося в DMA1CFGH:DMA1CFGL, и состоящего из 32 байт.

8.4 Остановка передачи DMA

Текущие передачи DMA или подготовленные каналы DMA прерываются с помощью регистра DMAARM для отключения канала DMA.
Один или несколько каналов DMA прерываются путем записи 1 в бит регистра DMAARM.ABORT и одновременного выбора каналов DMA для прерывания путем установки соответствующих битов DMAARM.DMAARMx в 1.
При установке DMAARM.ABORT в 1 биты DMAARM.DMAARMx для непрерванных каналов должны быть записаны как 0.
Прерывание DMA не генерируется при прерывании текущей передачи DMA (снятие с охраны канала DMA).

8.5 Прерывания прямого доступа к памяти

Каждый канал прямого доступа к памяти может быть сконфигурирован для генерации прерывания ЦП при завершении передачи данных по прямому доступу к памяти.
Это достигается с помощью бита IRQMASK в конфигурации канала. Соответствующий флаг прерывания в регистре DMAIRQ SFR устанавливается при генерации прерывания.
Независимо от бита IRQMASK в конфигурации канала соответствующий флаг прерывания в регистре DMAIRQ устанавливается при завершении канала DMA. Таким образом, программное обеспечение всегда должно проверять (и очищать) этот регистр при перезапуске канала с измененной настройкой IRQMASK. В противном случае может быть сгенерировано прерывание на основе сохраненного флага прерывания.
Если передача DMA прерывается до ее завершения, соответствующий бит в регистре DMAIRQ не устанавливается и прерывание не генерируется.

8.6 Структура данных конфигурации DMA

Для каждого канала DMA структура данных конфигурации DMA состоит из восьми байтов. Структура данных конфигурации описана в таблице 8-2.

8.7 DMA Memory Access - Доступ к памяти прямого доступа к памяти

На передачу данных DMA влияет соглашение о порядке следования байтов. Обратите внимание, что дескрипторы DMA следуют соглашению с прямым порядком байтов, в то время как другие регистры следуют соглашению с прямым порядком байтов. Это должно быть учтено в компиляторах.

Таблица 8-1. Источники триггеров прямого доступа к памяти

DMA Trigger Functional Unit Description
Number Name
0 NONE DMA Нет триггера, установка бита DMAREQ.DMAREQx запускает передачу.
1 PREV DMA Канал DMA запускается завершением предыдущего канала.
2 T1_CH0 Timer 1 Таймер 1, сравнение, канал 0
3 T1_CH1 Timer 1 Таймер 1, сравнение, канал 1
4 T1_CH2 Timer 1 Таймер 1, сравнение, канал 2
5 T2_EVENT1 Timer 2 Таймер 2, импульс события 1
6 T2_EVENT2 Timer 2 Таймер 2, импульс события 2
7 T3_CH0 Timer 3 Таймер 3, сравнение, канал 0
8 T3_CH1 Timer 3 Таймер 3, сравнение, канал 1
9 T4_CH0 Timer 4 Таймер 4, сравнение, канал 0
10 T4_CH1 Timer 4 Таймер 4, сравнение, канал 1
11 ST Sleep Timer (not in CC2540/41) Таймер сна сравнить
RADIO1 Radio (CC2541) Радиотриггер DMA 1 (см. Раздел 25.3.2)
12 IOC_0 I/O controller Переход порта 0 (1)
13 IOC_1 I/O controller Переход порта 1 (1)
14 URX0 USART 0 USART 0 RX завершен
15 UTX0 USART 0 USART 0 TX завершен
16 URX1 USART 1 USART 1 RX завершен
17 UTX1 USART 1 USART 1 TX завершен
18 FLASH Flash controller Запись данных на флеш завершена
19 RADIO Radio (not in CC2540)
CC253x: Получен байт RF-пакета (см. Раздел 23.3)
CC2541: триггер Radio DMA 0 (см. раздел 25.3.2)
20 ADC_CHALL ADC Конец преобразования АЦП в последовательности, образец готов
21 ADC_CH11 ADC Конец АЦП канала преобразования 0 в последовательности, образец готов
22 ADC_CH21 ADC Конец АЦП канала преобразования 1 в последовательности, образец готов
23 ADC_CH32 ADC Конец АЦП канала преобразования 2 в последовательности, образец готов
24 ADC_CH42 ADC Конец АЦП канала преобразования 3 в последовательности, образец готов
25 ADC_CH53 ADC Конец АЦП канала преобразования 4 в последовательности, образец готов
26 ADC_CH63 ADC Конец АЦП канала преобразования 5 в последовательности, образец готов
27 ADC_CH74 ADC Конец АЦП канала преобразования 6 в последовательности, образец готов
28 ADC_CH84 ADC Конец АЦП канала преобразования 7 в последовательности, образец готов
29 ENC_DW AES Процессор шифрования AES запрашивает загрузку входных данных
30 ENC_UP AES Процессор шифрования AES запрашивает вызагрузку выходных данных
31 DBG_BW Debug interface Пакетная запись интерфейса отладки

(1) Использование этого источника запуска должно быть согласовано с битами разрешения прерывания порта. Обратите внимание, что все выводы порта, поддерживающие прерывания, генерируют триггер.

Таблица 8-2. Структура данных конфигурации DMA

Byte Offset Bit Name Description
0 7:0 SRCADDR[15:8] Адрес источника канала DMA, старший
1 7:0 SRCADDR[7:0] Адрес источника канала DMA, младший
2 7:0 DESTADDR[15:8] Адрес назначения канала DMA, старший. Обратите внимание, что флэш-память недоступна для прямой записи.
3 7:0 DESTADDR[7:0] Адрес назначения канала DMA, младший. Обратите внимание, что флэш-память недоступна для прямой записи.
4 7:5 VLEN[2:0]
Режим передачи переменной длины. В словном режиме биты 12:0 первого слова считаются длиной передачи.
000: Используйте LEN для подсчета передач
001: передать количество байтов или слов, указанное первым байтом или словом + 1 (до максимального значения, указанного LEN). Таким образом, счетчик передачи исключает длину байта или слово.
010: передать количество байтов или слов, указанное первым байтом или словом (до максимального значения, указанного в LEN). Таким образом, счетчик передачи включает длину байта или слова.
011: передать количество байтов/слов, указанное первым байтом/словом + 2 (до максимального значения, указанного LEN).
100: передать количество байтов/слов, указанное первым байтом/словом + 3 (до максимального значения, указанного LEN).
101: зарезервировано
110: зарезервировано
111: Альтернатива использованию LEN в качестве счетчика передач
4 4:0 LEN[12:8]
Счетчик передачи канала DMA
Используется как максимально допустимая длина, когда VLEN отличается от 000 и 111. Канал DMA считает слова в режиме WORDSIZE и байты в противном случае.
5 7:0 LEN[7:0]
Счетчик передачи канала DMA
Используется как максимально допустимая длина, когда VLEN отличается от 000 и 111. Канал DMA считает слова в режиме WORDSIZE и байты в противном случае.
6 7 WORDSIZE Выбирает, является ли каждая передача DMA 8-битной (0) или 16-битной (1).
6 6:5 TMODE[1:0]
Режим передачи канала DMA
00: Одиночный
01: Блокировать
10: Повторный сингл
11: Повторный блок
6 4:0 TRIG[4:0] Выбирает один из триггеров, показанных в таблице 8-1.
7 7:6 SRCINC[1:0]
Режим увеличения адреса источника (после каждой передачи):
00: 0 байтов или слов
01: 1 байт или слово
10: 2 байта или слово
11: –1 байт или слово
7 5:4 DESTINC[1:0]
Режим увеличения адреса назначения (после каждой передачи):
00: 0 байтов или слов
01: 1 байт или слово
10: 2 байта или слова
11: –1 байт или слово
7 3 IRQMASK
Маска прерывания для этого канала.
0: отключить генерацию прерываний
1: Включить генерацию прерываний на канале DMA.
7 2 M8
Режим 8-го бита для длины передачи VLEN; применимо только тогда, когда WORDSIZE = 0 и VLEN отличается от 000 и 111.
0: использовать все 8 бит для подсчета передачи
1: Используйте 7 LSB для подсчета передач
7 1:0 PRIORITY[1:0]
Приоритет канала DMA:
00: Низкий, ЦП имеет приоритет.
01: Уверен, DMA по крайней мере каждую вторую попытку
10: Высокий, DMA имеет приоритет
11: зарезервировано

8.8 Регистры прямого доступа к памяти

В этом разделе описываются регистры SFR, связанные с контроллером DMA.

DMAARM (0xD6) – DMA Channel Arm - Тревога DMA канала
Bit Name Reset R/W Description
7 ABORT 0 R0/W
Прерывание прямого доступа к памяти. Этот бит используется для остановки текущих передач DMA. Запись 1 в этот бит прерывает работу всех каналов, выбранных путем установки соответствующего бита DMAARM в 1.
0: Нормальная работа
1: Прервать все выбранные каналы
6:5 - 00 R/W зарезервирован
4 DMAARM4 0 R/W1
DMA тревога канал 4
Этот бит должен быть установлен для того, чтобы на канале происходила любая передача DMA. Для неповторяющихся
режимах передачи бит автоматически сбрасывается по завершении.
3 DMAARM3 0 R/W1
DMA тревога канал 4
Этот бит должен быть установлен для того, чтобы на канале происходила любая передача DMA. Для неповторяющихся
режимах передачи бит автоматически сбрасывается по завершении.
2 DMAARM2 0 R/W1
DMA тревога канал 4
Этот бит должен быть установлен для того, чтобы на канале происходила любая передача DMA. Для неповторяющихся
режимах передачи бит автоматически сбрасывается по завершении.
1 DMAARM1 0 R/W1
DMA тревога канал 4
Этот бит должен быть установлен для того, чтобы на канале происходила любая передача DMA. Для неповторяющихся
режимах передачи бит автоматически сбрасывается по завершении.
0 DMAARM0 0 R/W1
DMA тревога канал 4
Этот бит должен быть установлен для того, чтобы на канале происходила любая передача DMA. Для неповторяющихся
режимах передачи бит автоматически сбрасывается по завершении.
 
DMAREQ (0xD7) – DMA Channel Start Request and Status - Запрос на запуск канала DMA и статус
Bit Name Reset R/W Description
7:5 - 000 R0 зарезервирован
4 DMAREQ4 0 R/W1 H0
Запрос передачи DMA, канал 4
Если установлено значение 1, активируется канал DMA (имеет тот же эффект, что и одиночное триггерное событие). Этот бит сбрасывается при запуске передачи DMA.
3 DMAREQ3 0 R/W1 H0
Запрос передачи DMA, канал 3
Если установлено значение 1, активируется канал DMA (имеет тот же эффект, что и одиночное триггерное событие). Этот бит сбрасывается при запуске передачи DMA.
2 DMAREQ2 0 R/W1 H0
Запрос передачи DMA, канал 2
Если установлено значение 1, активируется канал DMA (имеет тот же эффект, что и одиночное триггерное событие). Этот бит сбрасывается при запуске передачи DMA.
1 DMAREQ1 0 R/W1 H0
Запрос передачи DMA, канал 1
Если установлено значение 1, активируется канал DMA (имеет тот же эффект, что и одиночное триггерное событие). Этот бит сбрасывается при запуске передачи DMA.
0 DMAREQ0 0 R/W1 H0
Запрос передачи DMA, канал 0
Если установлено значение 1, активируется канал DMA (имеет тот же эффект, что и одиночное триггерное событие). Этот бит сбрасывается при запуске передачи DMA.
 
DMA0CFGH (0xD5) – DMA Channel-0 Configuration Address High Byte - Старший байт адреса конфигурации канала DMA 0
Bit Name Reset R/W Description
7:0 DMA0CFG[15:8] 0x00 R/W Адрес конфигурации канала 0 DMA, старший байт
 
DMA0CFGL (0xD4) – DMA Channel-0 Configuration Address Low Byte - младший байт адреса конфигурации канала DMA 0
Bit Name Reset R/W Description
7:0 DMA0CFG[15:8] 0x00 R/W Адрес конфигурации канала 0 DMA, младший байт
 
DMA1CFGH (0xD3) – DMA Channel 1–4 Configuration Address High Byte - старший байт адреса конфигурации каналов 1–4 DMA
Bit Name Reset R/W Description
7:0 DMA1CFG[15:8] 0x00 R/W Адрес конфигурации каналов DMA 1–4, старший байт
 
DMA1CFGL (0xD2) – DMA Channel 1–4 Configuration Address Low Byte – Младший байт адреса конфигурации каналов 1–4 DMA
Bit Name Reset R/W Description
7:0 DMA1CFG[7:0]  0x00 R/W Адрес конфигурации каналов DMA 1–4, младший байт
 
DMAIRQ (0xD1) – DMA Interrupt Flag - флаг прерывания DMA
Bit Name Reset R/W Description
7:5 - 000 R0 зарезервирован
4 DMAIF4 0 R/W0
Флаг прерывания канала 4 DMA
0: передача канала DMA не завершена
1: передача канала DMA завершена или ожидается прерывание
3 DMAIF3 0 R/W0
Флаг прерывания канала 3 DMA
0: передача канала DMA не завершена
1: передача канала DMA завершена или ожидается прерывание
2 DMAIF2 0 R/W0
Флаг прерывания канала 2 DMA
0: передача канала DMA не завершена
1: передача канала DMA завершена или ожидается прерывание
1 DMAIF1 0 R/W0
Флаг прерывания канала 1 DMA
0: передача канала DMA не завершена
1: передача канала DMA завершена или ожидается прерывание
0 DMAIF0 0 R/W0
Флаг прерывания канала 0 DMA
0: передача канала DMA не завершена
1: передача канала DMA завершена или ожидается прерывание

9 Таймер 1 (16-битный таймер)

Таймер 1 — это независимый 16-разрядный таймер, который поддерживает типичные функции таймера и счетчика, такие как захват входных данных, сравнение выходных данных и функции ШИМ. Таймер имеет пять независимых каналов захвата или сравнения. Таймер использует один контакт ввода-вывода на канал. Таймер используется для широкого спектра приложений управления и измерения, а наличие режима прямого и обратного счета с пятью каналами позволяет, например, реализовать приложения управления двигателем.

Особенности Таймера 1 следующие:

  • Пять каналов захвата или сравнения
  • Захват нарастающего, спадающего или любого входного фронта
  • Установить, очистить или переключить сравнение выходных данных
  • Работа в свободном режиме, по модулю или по прямому и обратному счетчику.
  • Тактовый пределитель для деления на 1, 8, 32 или 128.
  • Запрос прерывания генерируется при каждом захвате или сравнении и подсчете терминалов.
  • Функция триггера прямого доступа к памяти
Тема ................................................. .................................................Страница
9.1 16-битный счетчик..................................................... ................ 104
9.2 Работа Таймера 1................................................................ .....  104
9.3 Автономный режим ...................................................... ............ 104
9.4 Модульный режим ....................................................... ............. 105
9.5 Режим «вверх-вниз»................................... .............................. 105
9.6 Управление режимом канала ....................................... ...........105
9.7 Режим захвата ввода ............................................... ................106
9.8 Режим сравнения выходных данных .......................................106
9.9 Генерация ИК-сигнала и обучение ...................................... ....111
9.10 Прерывания Таймера 1..................................................... ......113
9.11 Триггеры DMA Таймера 1 ...................................... .................113
9.12 Регистры Таймера 1 ...................................................... .........114
 

9.1 16-битный счетчик

Таймер состоит из 16-битного счетчика, который увеличивается или уменьшается при каждом активном фронте тактового сигнала. Период активных тактовых импульсов определяется битами регистра CLKCONCMD.TICKSPD, которые устанавливают глобальное деление системных часов, задавая переменную тактовую частоту от 0,25 МГц до 32 МГц (с учетом использования 32-МГц XOSC в качестве источника синхронизации). Эта частота далее делится в Таймере 1 на значение предварительного делителя, установленное T1CTL.DIV. Это значение предварительного делителя может быть 1, 8, 32 или 128. Таким образом, самая низкая тактовая частота, используемая Таймером 1, составляет 1953,125 Гц, а самая высокая — 32 МГц, когда XOSC 32 МГц используется в качестве источника системных тактовых импульсов. Когда 16-МГц RCOSC используется в качестве источника системных тактовых импульсов, тогда самая высокая тактовая частота, используемая Таймером 1, составляет 16 МГц.
Счетчик работает как автономный счетчик, счетчик по модулю или прямой счетчик для использования в ШИМ с выравниванием по центру.
Можно считать 16-битное значение счетчика через два 8-битных SFR, T1CNTH и T1CNTL, содержащих соответственно старший и младший байты. Когда считывается T1CNTL, старший байт счетчика в этот момент буферизуется в T1CNTH, так что старший байт может быть прочитан из T1CNTH. Таким образом, T1CNTL всегда должен быть прочитан первым, прежде чем читать T1CNTH.
Все операции записи в регистр T1CNTL сбрасывают 16-битный счетчик.
Счетчик выдает запрос на прерывание, когда достигается значение счетчика терминала (переполнение). Можно запускать и останавливать счетчик с помощью настроек управляющего регистра T1CTL. Счетчик запускается, когда в T1CTL.MODE записывается значение, отличное от 00. Если в T1CTL.MODE записано 00, счетчик останавливается на текущем значении.

9.2 Таймер 1 Работа

Обычно управляющий регистр T1CTL используется для управления работой таймера. Регистр состояния T1STAT содержит флаги прерывания. Различные режимы работы описаны ниже.

9.3 Автономный режим

В автономном режиме работы счетчик начинается с 0x0000 и увеличивается на каждый активный фронт тактового сигнала. Когда счетчик достигает значения 0xFFFF (переполнение), счетчик загружается значением 0x0000 и продолжает увеличивать свое значение, как показано на рис. 9-1. Когда достигается значение счетчика терминала 0xFFFF, устанавливается флаг прерывания T1STAT.OVFIF. Запрос на прерывание генерируется, если включен; подробности см. в Разделе 9.10. Автономный режим может использоваться для генерации независимых временных интервалов и частот выходного сигнала.
 

Рисунок 9-1. Автономный режим

9.4 Модульный режим

Когда таймер работает в режиме по модулю, 16-битный счетчик начинается с 0x0000 и увеличивается на каждый активный фронт тактового сигнала. После того, как счетчик достигает значения периода T1CC0, хранящегося в регистрах T1CC0H:T1CC0L, счетчик сбрасывается на 0x0000 и продолжает увеличиваться. Если таймер запускается со значением выше T1CC0, флаг прерывания T1STAT.OVFIF устанавливается при достижении значения счетчика терминала (0xFFFF), после чего счетчик возвращается к 0x0000. Запрос на прерывание генерируется, если включен; подробности см. в Разделе 9.10. Если требуется периодическое прерывание при значении периода, его можно получить, активировав прерывание сравнения выхода на канале 0, как описано в разделе 9.8. Режим по модулю можно использовать для приложений, где требуется период, отличный от 0xFFFF. Работа счетчика показана на рис. 9-2.

Рисунок 9-2. Модульный режим

9.5 Режим вверх-вниз

В режиме обратного таймера счетчик постоянно запускается с 0x0000 и ведет обратный отсчет до тех пор, пока не будет достигнуто значение, хранящееся в T1CC0H:T1CC0L, а затем счетчик ведет обратный отсчет до достижения 0x0000, как показано на рис. 9-3. Этот режим таймера используется, когда требуются симметричные выходные импульсы с периодом, отличным от 0xFFFF, и, следовательно, позволяет реализовать выровненные по центру выходные приложения ШИМ. Флаг прерывания T1STAT.OVFIF устанавливается, когда значение счетчика достигает 0x0000 в прямом и обратном режиме. Запрос на прерывание генерируется, если он включен, подробности см. в Разделе 9.10.

Рисунок 9-3. Режим вверх и вниз

9.6 Управление режимом канала

Режим канала устанавливается для каждого канала с помощью его регистра управления и состояния T1CCTLn. Настройки включают режимы захвата ввода и сравнения вывода.

9.7 Режим захвата ввода

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

ПРИМЕЧАНИЕ. Прежде чем вывод ввода-вывода сможет использоваться таймером, требуемый вывод ввода-вывода должен быть сконфигурирован как периферийный вывод Таймера 1.

Входной контакт канала синхронизирован с внутренними системными часами. Таким образом, импульсы на входном контакте должны иметь минимальную длительность, превышающую период системных часов.
Содержимое 16-битного регистра захвата считывается из регистров T1CCnH:T1CCnL.
Когда происходит захват, устанавливается флаг прерывания для канала T1STAT.CHnIF (n — номер канала). Запрос на прерывание генерируется, если включен; подробности см. в Разделе 9.10.

9.8 Режим сравнения выходных данных

В режиме сравнения выходов контакт ввода-вывода, связанный с каналом, устанавливается как выход. После запуска таймера содержимое счетчика сравнивается с содержимым регистра сравнения каналов T1CCnH:T1CCnL. Если регистр сравнения равен содержимому счетчика, выходной контакт устанавливается, сбрасывается или переключается в соответствии с настройкой режима сравнения вывода T1CCTLn.CMP. Обратите внимание, что все фронты на выходных контактах не имеют сбоев при работе в заданном режиме сравнения выходных данных. Запись в регистр сравнения T1CCnL буферизируется, так что значение, записываемое в T1CCnL, не вступает в силу до тех пор, пока не будет записан соответствующий старший регистр T1CCnH. Запись в регистры сравнения T1CCnH:T1CCnL не влияет на выходное значение сравнения до тех пор, пока значение счетчика не станет равным 0x00.

Обратите внимание, что канал 0 имеет меньше режимов сравнения вывода, потому что T1CC0H:T1CC0L имеет специальную функцию в режимах 6 и 7, что означает, что эти режимы не будут полезны для канала 0.

Когда происходит сравнение, устанавливается флаг прерывания для канала T1STAT.CHnIF (n — номер канала). Запрос на прерывание генерируется, если включен; подробности см. в Разделе 9.10.
Примеры режимов сравнения выхода в различных режимах таймера приведены на следующих рисунках.

С выравниванием по фронту: выходные сигналы ШИМ могут генерироваться с использованием режима таймера по модулю и каналов 1 и 2 в режиме сравнения выходов 6 или 7 (определяется битами T1CCTLn.CMP, где n равно 1 или 2), как показано на рис. 9-4. . Период сигнала ШИМ определяется настройкой в T1CC0, а рабочий цикл определяется в T1CCn, где n — канал ШИМ, 1 или 2.

Можно также использовать режим автономной работы таймера. В этом случае CLKCONCMD.TICKSPD и значение делителя предварительного делителя в битах T1CTL.DIV задают период ШИМ-сигнала. Полярность сигнала ШИМ определяется тем, используется ли режим сравнения выхода 6 или 7.
Выходные сигналы ШИМ также могут генерироваться с использованием режимов сравнения выходов 4 и 5, как показано на рис. 9-4, или с использованием режима по модулю, как показано на рис. 9-5. Использование режима сравнения вывода 4 или 5 предпочтительнее для простого ШИМ.

Выравнивание по центру: выходы ШИМ могут генерироваться, когда выбран режим повышения и понижения таймера. В зависимости от требуемой полярности сигнала ШИМ. Период сигнала ШИМ определяется T1CC0, а рабочий цикл для выхода канала определяется T1CCn, где n — канал ШИМ, 1 или 2.

Режим ШИМ с выравниванием по центру требуется для некоторых типов приложений с электроприводом, и обычно создается меньше шума, чем в режиме ШИМ с выравниванием по краю, поскольку переходы выводов ввода-вывода не выстраиваются по одному и тому же фронту тактового сигнала.

 

В некоторых типах приложений требуется определенная задержка или мертвое время между выходами. Как правило, это требуется для выходов, управляющих конфигурацией H-моста, чтобы избежать неконтролируемой перекрестной проводимости на одной стороне H-моста. Задержку или мертвое время можно получить на выходах ШИМ с помощью T1CCn, как показано ниже:

Предполагая, что каналы 1 и 2 используются для управления выходами с использованием режима повышения и понижения таймера, а каналы используют режимы сравнения выходов 4 и 5 соответственно, тогда период таймера (в тактах Таймера 1) это:
tP = T1CC0 × 2

и мертвое время, то есть время, когда оба выхода имеют низкий уровень (в тактах Таймера 1), определяется как:

tD = T1CC1 – T1CC2

Выходной контакт сравнения инициализируется значением, указанным в таблице 9-1, когда:

  • значение записывается в T1CNTL (все каналы Таймера 1)
  • 0x7 записывается в T1CCTLn.CMP (канал n)\

Таблица 9-1. Исходные выходные значения сравнения (режим сравнения)

Режим сравнения (T1CCTLn.CMP) Начальный результат сравнения
Установить вывод при сравнении (000) 0
Очистить вывод при сравнении (001) 1
Переключить вывод при сравнении (010) 0
Установить вывод при сравнении вверх, очистить при сравнении вниз в режиме вверх-вниз (011) 0
В других режимах, кроме режима «вверх-вниз», установить вывод при сравнении, очистить при 0 (011) 0
Очистить вывод при сравнении вверх, установить при сравнении вниз в режиме вверх-вниз (100) 1
В других режимах, кроме режима «вверх-вниз», очистить вывод при сравнении, установить на 0 (100) 1
Очистить при равенстве T1CC0, установить при равенстве T1CCn (101) 0
Устанавливается при равенстве T1CC0, очищается при равенстве T1CCn (110) 1

 

Рисунок 9-4. Режимы сравнения выходов, режим автономной работы таймера

 

Рисунок 9-5. Режимы сравнения выходов, режим таймера по модулю

 

Рисунок 9-6. Режимы сравнения выходов, режим таймера Up-and-Down

9.9 Генерация ИК-сигнала и обучение

В этом разделе описывается, как Таймер 1 можно настроить в режиме генерации ИК-сигналов, где он считает периоды Таймера 3, а выходной сигнал объединяется с выходным сигналом Таймера 3 для генерации модулированных потребительских ИК-сигналов.
с минимальным взаимодействием с процессором.

9.9.1 Введение

Генерация ИК-сигналов для дистанционного управления обычно осуществляется одним из двух способов:
  • Модулированные коды
  • Немодулированные коды (C-коды, флэш-коды)
Устройство включает в себя гибкие функции таймера для реализации генерации и изучения обоих типов ИК-сигналов с минимальным взаимодействием с процессором. Большинство протоколов IR могут быть реализованы только с одним вмешательством ЦП на команду.

9.9.2 Модулированные коды

Модулированные коды могут генерироваться с помощью Таймера 1 (16-битного) и Таймера 3 (8-битного). Таймер 3 в режиме по модулю используется для генерации несущей. Таймер 3 имеет на входе индивидуальный предварительный делитель. Его период устанавливается с помощью T3CC0. Канал 1 таймера 3 используется для выхода ШИМ. Рабочий цикл несущей устанавливается с помощью T3CC1.
Канал 1 использует режим сравнения: очистить вывод при сравнении, установить на 0x00 (T3CCTL1.CMP = 100). В Таблице 9-2 показан расчет погрешности частоты для несущей 38 кГц с использованием Таймера 3.

Таблица 9-2. Расчет погрешности частоты для несущей 38 кГц

Описание Значение
Системная тактовая частота 32,000 kHz
IR несущая частота 38 kHz
Период системных часов 0.00003125 ms
Период несущей ИК 0.026315789 ms
Предделитель таймера 4
Период таймера 0.000125 ms
Идеальное значение таймера 210.5263158
Истинное значение таймера 211
Истинный период таймера 0.026375 ms
Истинная частота таймера 37.91469194 kHz
Ошибка периода 59.21052632 ns
Ошибка частоты 85.30805687 Hz
Ошибка частоты % 0.2245%

Бит регистра IRCTL.IRGEN включает режим генерации IR в Таймере 1. Когда бит IRGEN установлен, Таймер 1 принимает выходной сигнал сравнения канала 1 Таймера 3 как такт вместо системного такта. 

Период Таймера 1 устанавливается с помощью T1CC0 с Таймером 1 в режиме по модулю (T1CTL.MODE = 10) и каналом 0 в режиме сравнения (T1CCTL0.MODE = 1). Режим сравнения канала 1 Чистый вывод при сравнении, установленный на 0x0000 (T1CCTL1.CMP = 100), используется для вывода стробирующего сигнала.

Количество периодов несущей метки устанавливается T1CC1. T1CC1 должен обновляться каждый период Таймера 1 с помощью DMA или ЦП. Обратите внимание, что обновление до T1CC1 буферизуется и не вступает в силу до тех пор, пока таймер 1 не достигнет 0x0000.

Количество периодов пространственной несущей устанавливается T1CC0. Его значение должно быть установлено равным общему количеству требуемых периодов метки и пробела. Значения сравнения буферизируются до тех пор, пока таймер не достигнет 0x0000.

Выход канала 1 Таймера 1 объединяется с выходом канала 1 Таймера 3 для формирования ИК-выхода, как показано на рис. 9-7.

Рисунок 9-7. Блок-схема таймеров в режиме генерации ИК

Синхронизация выходных сигналов канала 1 Таймера 3 и канала 1 Таймера 1 синхронизирована таким образом, что в сигнале IR Out не возникают помехи.

Когда бит IRGEN установлен, выходной сигнал IR направляется на контакты вместо обычного выхода канала 1 Таймера 1 (см. также раздел 7.6.1).

На рис. 9-8 показан пример таймера 3, инициализированного с рабочим циклом 33 % (T3CC0 = 3 × T3CC1).

Таймер 1 был инициализирован на 3.

Рисунок 9-8. Пример модулированного сигнала

Чтобы получить только период пробела, T1CC1 должен быть установлен на 0x00.

9.9.3 Немодулированные коды

Для генерации немодулированных ИК-кодов Таймер 1 используется в режиме по модулю. Период сигнала задается T1CC0, а длительность импульса задается T1CC1. T1CC1 указывает продолжительность периода метки, а T1CC0 дает общее количество периодов метки и пробела. Значения сравнения буферизируются до тех пор, пока таймер не достигнет 0x0000. Значения сравнения должны обновляться DMA или ЦП один раз за период, если они не должны оставаться неизменными.

9.9.4 Обучение

Обучение выполняется с помощью функции захвата Таймера 1 (16-битного) и Таймера 3 (8-битного). Таймер 3 может обрабатывать обнаружение несущей частоты, а Таймер 1 может обрабатывать кодовое обучение из демодулированного сигнала.

Схема может быть настроена, как показано на рисунке 9-9.

Рисунок 9-9. Схема IR Learning Board

9.9.4.1 Обнаружение несущей частоты

Таймер 3 используется для захвата и определения несущей частоты с входом непосредственно от PIN-диода ИК. Таймер должен производить выборку несущей ограниченное количество раз. Если обнаружена несущая, обнаруженная частота должна внести свой вклад в среднее число, которое можно сохранить в базе данных.

9.9.4.2 Обучение демодулированному коду

Выходной сигнал ИК PIN-диода демодулируется соответствующей схемой. Выход этой схемы используется как вход для одного из каналов Таймера 1 в режиме захвата.

9.9.5 Другие соображения

Выходной контакт ИК-сигнала должен быть переведен в состояние с высоким импедансом или опущен вниз во время сброса, чтобы избежать ненужного энергопотребления при включении ИК-светодиода. Обратите внимание, что только выход P1.1 для канала 1 Таймера 1 находится в состоянии высокого импеданса без подтягивания во время и после сброса.

9.10 Прерывания Таймера 1

Таймеру назначается один вектор прерывания. Запрос на прерывание генерируется, когда происходит одно из следующих событий таймера:
  • Счетчик достигает конечного значения счетчика (переполняется или поворачивается вокруг нуля).
  • Событие захвата ввода
  • Выходное событие сравнения

Регистр состояния, T1STAT, содержит флаги прерывания источника для события значения счетчика терминала и события сравнения или захвата пяти каналов. Флаг прерывания источника устанавливается, когда соответствующее событие происходит независимо от битов маски прерывания. Флаг прерывания ЦП IRCON.T1IF устанавливается, когда происходит одно из событий, если соответствующий бит маски прерывания равен 1. Биты маски прерывания: T1CCTLn.IM для пяти каналов и TIMIF.T1OVFIM для события переполнения. Флаг прерывания ЦП IRCON.T1IF также устанавливается, когда флаг прерывания источника Таймера 1 очищается, а один или несколько других флагов прерывания источника Таймера 1 все еще установлены, в то время как соответствующий бит маски прерывания установлен. Запрос на прерывание генерируется, когда IRCON.T1IF изменяется от 0 до 1, если IEN1.T1IEN и IEN0.EA равны 1.

9.11 Триггеры DMA Таймера 1

С Таймером 1 связаны три триггера DMA. Это триггеры DMA T1_CH0, T1_CH1 и T1_CH2, которые генерируются на событиях сравнения таймеров следующим образом:
  • T1_CH0 – сравнение канала 0
  • T1_CH1 – сравнение канала 1.
  • T1_CH2 – сравнение канала 2.

9.12 Регистры Таймера 1

В этом разделе описываются регистры Таймера 1, которые состоят из следующих регистров:
  • T1CNTH – Старший байт Таймера 1
  • T1CNTL – Младший байт Таймера 1
  • T1CTL – управление таймером 1
  • T1STAT – состояние таймера 1.
  • T1CCTLn – Управление захватом или сравнением канала n таймера 1
  • T1CCnH – Таймер 1 канала n фиксирует или сравнивает высокое значение
  • T1CCnL – Низкое значение захвата или сравнения канала n таймера 1

Бит регистра TIMIF.T1OVFIM находится в регистре TIMIF, который описывается вместе с регистрами Таймера 3 и Таймера 4.

T1CNTH (0xE3) – Timer 1 Counter High - Старший байт счетчика таймера 1

Bit  Name  Reset  R/W Description 
7:0 CNT[15:8] 0x00 R Старший байт счетчика таймера. Содержит старший байт 16-разрядного счетчика таймера, буферизованного во время чтения T1CNTL.

T1CNTL (0xE2) – Timer 1 Counter Low - Младший байт счетчика таймера 1

Bit  Name  Reset  R/W Description 
7:0 CNT[7:0] 0x00 R/W Младший байт счетчика таймера. Содержит младший байт 16-битного счетчика таймера. Запись чего-либо в этот регистр приводит к сбросу счетчика на 0x0000 и инициализации всех выходных контактов связанных каналов.

T1CTL (0xE4) – T1CTL (0xE4) – Управление таймером 1

Bit  Name  Reset  R/W Description 
7:4 - 0000 R0 Зарезервировано
3:2 DIV[1:0] 00 R/W
Значение делителя предварительного делителя. Генерирует активный фронт тактового сигнала, используемый для обновления счетчика следующим образом:
00: Частота  / 1
01: Частота / 8
10: Частота / 32
11: Частота / 128
1:0 MODE[1:0] 00 R/W
Выбор режима таймера 1. Режим работы таймера выбирается следующим образом:
00: Работа приостановлена.
01: Автономный, многократный подсчет от 0x0000 до 0xFFFF.
10: модуль, повторный счет от 0x0000 до T1CC0.
11: Вверх-вниз, многократный счет от 0x0000 до T1CC0 и от T1CC0 до 0x0000

T1STAT (0xAF) – Timer 1 Status - Состояние таймера 1

Bit  Name  Reset  R/W Description 
7:6 - 00 R0 Зарезервировано
5 OVFIF 0 R/W0
Флаг прерывания счетчика переполнения таймера 1. Устанавливается, когда счетчик достигает конечного значения счетчика в автономном режиме или в режиме по модулю, а также при достижении нуля в режиме обратного отсчета. Написание 1
не имеет никакого эффекта.
4 CH4IF 0 R/W0
Флаг прерывания канала 4 таймера 1. Устанавливается, когда возникает условие прерывания канала 4. Запись 1 не имеет эффект.
3 CH3IF 0 R/W0 Флаг прерывания канала 3 таймера 1. Устанавливается, когда возникает условие прерывания канала 3. Запись 1 не имеет эффект.
2 CH2IF 0 R/W0 Флаг прерывания канала 2 таймера 1. Устанавливается, когда возникает условие прерывания канала 2. Запись 1 не имеет эффект.
1 CH1IF 0 R/W0 Флаг прерывания канала 1 таймера 1. Устанавливается, когда возникает условие прерывания канала 1. Запись 1 не имеет эффект.
0 CH0IF 0 R/W0 Флаг прерывания канала 0 таймера 1. Устанавливается, когда возникает условие прерывания канала 0. Запись 1 не имеет эффект.

T1CCTL0 (0xE5) – Timer 1 Channel 0 Capture or Compare Control -таймер 1, канал 0, захват или управление сравнением

Bit  Name  Reset  R/W Description 
7 RFIRQ 0 R/W Если установлено, используйте прерывание RF для захвата вместо обычного ввода захвата.
6 OIM 1 R/W Маска прерывания канала 0. Включает запрос на прерывание, если установлено.
5:3 CMP[2:0] 000 R/W
Выбор режима сравнения канала 0. Выбирает действие на выходе, когда значение таймера равно значению сравнения в T1CC0
000: Установить вывод при сравнении
001: Очистить вывод при сравнении
010: Переключить вывод при сравнении
011: Установить выход при сравнении, сбросить на 0
100: Очистить вывод при сравнении, установить на 0
101: зарезервировано
110: зарезервировано
111: Инициализировать выходной контакт. CMP[2:0] не изменяется
2 MODE 0 R/W
Режим. Выберите режим захвата или сравнения канала 0 таймера 1.
0: Режим захвата
1: режим сравнения
1:0 CAP[1:0] 00 R/W
Выбор режима захвата канала 0
00: Нет захвата
01: Захват по переднему фронту
10: Захват по заднему фронту
11: Захват по всем краям

T1CC0H (0xDB) — таймер 1, канал 0, захват или сравнение значения, старший байт

Bit  Name  Reset  R/W Description 
7:0 T1CC0[15:8] 0x00 R/W Канал 0 таймера 1 захватывает или сравнивает значение старшего байта. Запись в этот регистр, когда T1CCTL0.MODE = 1 (режим сравнения), вызывает задержку обновления записанного значения T1CC0[15:0] до T1CNT = 0x0000.

T1CC0L (0xDA) — Таймер 1 Канал 0 Захват или значение сравнения, младший байт

Bit  Name  Reset  R/W Description 
7:0 T1CC0[7:0] 0x00 R/W Канал 0 таймера 1 захватывает или сравнивает значение младшего байта. Данные, записанные в этот регистр, сохраняются в буфере, но не записываются в T1CC0[7:0] до тех пор, пока не вступит в силу более поздняя запись в T1CC0H.

T1CCTL1 (0xE6) – Управление захватом или сравнением канала 1 таймера 1

Bit  Name  Reset  R/W Description 
7 RFIRQ 0 R/W Если установлено, используйте прерывание RF для захвата вместо обычного ввода захвата.
6 IM 1 R/W Маска прерывания канала 1. Включает запрос на прерывание, если установлено.
5:3 CMP[2:0] 000 R/W
Выбор режима сравнения канала 1. Выбирает действие на выходе, когда значение таймера равно значению сравнения в T1CC1.
000: Установить вывод при сравнении
001: Очистить вывод при сравнении
010: Переключить вывод при сравнении
011: Установить вывод при сравнении вверх, очистить при сравнении вниз в режиме вверх-вниз. В противном случае установите вывод
при сравнении очищать при 0.
100: Очистить вывод при сравнении вверх, установить при сравнении вниз в режиме вверх-вниз. В противном случае ясно вывод при сравнении, установить на 0.
101: Очистить при равенстве T1CC0, установить при равенстве T1CC1
110: Установить при равенстве T1CC0, очистить при равенстве T1CC1
2 MODE 0 R/W
Режим. Выберите режим захвата или сравнения канала 1 таймера 1.
0: Режим захвата
1: режим сравнения
1:0 CAP[1:0] 00 R/W
Выбор режима захвата канала 1
00: Нет захвата
01: Захват по переднему фронту
10: Захват по заднему фронту
11: Захват по всем краям

T1CC1H (0xDD) — таймер 1, канал 1, захват или сравнение значения, старший байт

Bit  Name  Reset  R/W Description 
7:0 T1CC1[15:8] 0x00 R/W Канал 1 таймера 1 захватывает или сравнивает значение старшего байта. Запись в этот регистр, когда T1CCTL1.MODE = 1 (режим сравнения), вызывает задержку обновления записанного значения T1CC1[15:0] до T1CNT = 0x0000.

T1CC1L (0xDC) – значение захвата или сравнения канала 1 таймера 1, младший байт

Bit  Name  Reset  R/W Description 
7:0 T1CC1[7:0] 0x00 R/W Канал 1 таймера 1 захватывает или сравнивает значение младшего байта. Данные, записанные в этот регистр, сохраняются в буфере, но не записываются в T1CC1[7:0] до тех пор, пока не вступит в силу более поздняя запись в T1CC1H.

T1CCTL2 (0xE7) – Управление захватом или сравнением канала 2 таймера 1

Bit  Name  Reset  R/W Description 
7 RFIRQ 0 R/W Если установлено, используйте прерывание RF для захвата вместо обычного ввода захвата.
6 IM 1 R/W Маска прерывания канала 2. Включает запрос на прерывание, если установлено.
5:3 CMP[2:0] 000 R/W
Выбор режима сравнения канала 2. Выбирает действие на выходе, когда значение таймера равно значению сравнения в T1CC2.
000: Установить вывод при сравнении
001: Очистить вывод при сравнении
010: Переключить вывод при сравнении
011: Установить вывод при сравнении вверх, очистить при сравнении вниз в режиме вверх-вниз. В противном случае установите вывод
при сравнении очищать при 0.
100: Очистить вывод при сравнении вверх, установить при сравнении вниз в режиме вверх-вниз. В противном случае ясно
вывод при сравнении, установить на 0.
101: Очистить при равенстве T1CC0, установить при равенстве T1CC2
110: Установить при равенстве T1CC0, очистить при равенстве T1CC2
111: Инициализировать выходной контакт. CMP[2:0] не изменяется.
2 MODE 0 R/W
Режим. Выберите режим захвата или сравнения канала 2 таймера 1.
0: Режим захвата
1: режим сравнения
1:0 CAP[1:0] 00 R/W
Выбор режима захвата канала 2
00: Нет захвата
01: Захват по переднему фронту
10: Захват по заднему фронту
11: Захват по всем краям

T1CC2H (0xDF) – значение захвата или сравнения канала 2 таймера 1, старший байт

Bit  Name  Reset  R/W Description 
7:0 T1CC2[15:8] 0x00 R/W Канал 2 таймера 1 захватывает или сравнивает значение старшего байта. Запись в этот регистр, когда T1CCTL2.MODE = 1 (режим сравнения), вызывает задержку обновления записанного значения T1CC2[15:0] до T1CNT = 0x0000.

T1CC2L (0xDE) — значение захвата или сравнения канала 2 таймера 1, младший байт

Bit  Name  Reset  R/W Description 
7:0 T1CC2[7:0] 0x00 R/W Канал 2 таймера 1 захватывает или сравнивает значение младшего байта. Данные, записанные в этот регистр, сохраняются в буфере, но не записываются в T1CC2[7:0] до тех пор, пока не вступит в силу более поздняя запись в T1CC2H.

T1CCTL3 (0x62A3) – Управление захватом/сравнением канала 3 таймера 1

Bit  Name  Reset  R/W Description 
7 RFIRQ 0 R/W Если установлено, используйте прерывание RF для захвата вместо обычного ввода захвата.
6 IM 1 R/W Маска прерывания канала 3. Включает запрос на прерывание, если установлено.
5:3 CMP[2:0] 000 R/W
Выбор режима сравнения канала 3. Выбирает действие на выходе, когда значение таймера равно значению сравнения в T1CC3.
000: Установить вывод при сравнении
001: Очистить вывод при сравнении
010: Переключить вывод при сравнении
011: Установить вывод при сравнении вверх, очистить при сравнении вниз в режиме вверх-вниз. В противном случае установите вывод
при сравнении очищать при 0.
100: Очистить вывод при сравнении вверх, установить при сравнении вниз в режиме вверх-вниз. В противном случае ясно
вывод при сравнении, установить на 0.
101: Очистить при равенстве T1CC0, установить при равенстве T1CC3
110: Установить при равенстве T1CC0, очистить при равенстве T1CC3
111: Инициализировать выходной контакт. CMP[2:0] не изменяется.
2 MODE 0 R/W
Режим. Выберите режим захвата или сравнения канала 3 таймера 1.
0: Режим захвата
1: режим сравнения
1:0 CAP[1:0] 00 R/W
Выбор режима захвата канала 3
00: Нет захвата
01: Захват по переднему фронту
10: Захват по заднему фронту
11: Захват по всем краям

T1CC3H (0x62AD) — значение захвата или сравнения канала 3 таймера 1, старший байт

Bit  Name  Reset  R/W Description 
7:0 T1CC3[15:8] 0x00 R/W Канал 3 таймера 1 захватывает или сравнивает значение старшего байта. Запись в этот регистр, когда T1CCTL3.MODE = 1 (режим сравнения), вызывает задержку обновления записанного значения T1CC3[15:0] до T1CNT = 0x0000.

T1CC3L (0x62AC) — значение захвата или сравнения канала 3 таймера 1, младший байт

Bit  Name  Reset  R/W Description 
7:0 T1CC3[7:0] 0x00 R/W Канал 3 таймера 1 захватывает или сравнивает значение младшего байта. Данные, записанные в этот регистр, сохраняются в буфере, но не записываются в T1CC3[7:0] до тех пор, пока не вступит в силу более поздняя запись в T1CC3H.

T1CCTL4 (0x62A4) — таймер 1, канал 4, управление захватом или сравнением

Bit  Name  Reset  R/W Description 
7 RFIRQ 0 R/W Если установлено, используйте прерывание RF для захвата вместо обычного ввода захвата.
6 IM 1 R/W Маска прерывания канала 4. Включает запрос на прерывание, если установлено.
5:3 CMP[2:0] 000 R/W
Выбор режима сравнения канала 4. Выбирает действие на выходе, когда значение таймера равно значению сравнения в T1CC4.
000: Установить вывод при сравнении
001: Очистить вывод при сравнении
010: Переключить вывод при сравнении
011: Установить вывод при сравнении вверх, очистить при сравнении вниз в режиме вверх-вниз. В противном случае установите вывод
при сравнении очищать при 0.
100: Очистить вывод при сравнении вверх, установить при сравнении вниз в режиме вверх-вниз. В противном случае ясно
вывод при сравнении, установить на 0.
101: Очистить при равенстве T1CC0, установить при равенстве T1CC4
110: Установить при равенстве T1CC0, очистить при равенстве T1CC4
111: Инициализировать выходной контакт. CMP[2:0] не изменяется.
2 MODE 0 R/W
Режим. Выберите режим захвата или сравнения канала 4 таймера 1.
0: Режим захвата
1: режим сравнения
1:0 CAP[1:0] 00 R/W
Выбор режима захвата канала 4
00: Нет захвата
01: Захват по переднему фронту
10: Захват по заднему фронту
11: Захват по всем краям

T1CC4H (0x62AF) — значение захвата или сравнения канала 4 таймера 1, старший байт

Bit  Name  Reset  R/W Description 
7:0 T1CC4[15:8] 0x00 R/W Канал 4 таймера 1 захватывает или сравнивает значение старшего байта. Запись в этот регистр, когда T1CCTL4.MODE = 1 (режим сравнения), вызывает задержку обновления записанного значения T1CC4[15:0] до T1CNT = 0x0000.

T1CC4L (0x62AE) — значение захвата или сравнения канала 4 таймера 1, младший байт

Bit  Name  Reset  R/W Description 
7:0 T1CC4[7:0] 0x00 R/W Канал 4 таймера 1 захватывает или сравнивает значение младшего байта. Данные, записанные в этот регистр, сохраняются в буфере, но не записываются в T1CC4[7:0] до тех пор, пока не вступит в силу более поздняя запись в T1CC4H.

IRCTL (0x6281) – Таймер 1 Управление генерацией IR

Bit  Name  Reset  R/W Description 
7:1 - 0000 000 R/W Зарезервировано
0 IRGEN 0 R/W Когда этот бит установлен, устанавливается соединение между каналом 1 Таймера 3 и входом тактов Таймера 1, чтобы таймеры можно было использовать для генерации модулированных ИК-кодов (см. также Раздел 9.9).

9.13 Доступ к регистрам Таймера 1 как к массиву

Доступ к регистрам канала захвата или сравнения Таймера 1 можно получить как к непрерывной области в пространстве памяти XDATA. Это облегчает доступ к регистрам как к простой индексированной структуре. Пять регистров управления захватом или сравнением отображаются на 0x62A0–0x62A4. 16-битные значения захвата или сравнения отображаются на 0x62A6–0x62AF; 0x62A5 не используется.

10 Timer 3 and Timer 4 (8-Bit Timers) - Таймер 3 и Таймер 4 (8-битные таймеры)

Таймер 3 и Таймер 4 - это два 8-битных таймера. Каждый таймер имеет два независимых канала захвата или сравнения, каждый из которых использует по одному выводу ввода-вывода на канал.

Функции Таймера 3 и Таймера 4 следующие:
  • Два канала захвата или сравнения
  • Установить, сбросить или переключить сравнение вывода
  • Предварительный делитель тактовой частоты для деления на 1, 2, 4, 8, 16, 32, 64, 128
  • Запрос на прерывание, генерируемый при каждом событии захвата или сравнения и терминального подсчета
  • Функция триггера DMA
Тема ................................................. ........................... Стр.
10.1 8-битный таймерный счетчик .............................. 121
10.3 Управление режимом канала .............................. 121
10.4 Режим захвата ввода .......................................... 122
10.5 Режим сравнения выходов .................................. 122

10.1 8-битный таймерный счетчик

Все функции таймера основаны на главном 8-битном счетчике таймера 3 и таймера 4. Счетчик увеличивается или уменьшается на каждом активном фронте тактового сигнала. Период активных фронтов тактового сигнала, как определено биты регистра CLKCONCMD.TICKSPD [2: 0] дополнительно умножаются (частота делится) на значение предварительного делителя, установленное TxCTL.DIV [2: 0] (где x относится к номеру таймера, 3 или 4). Счетчик работает как автономный счетчик, счетчик вниз, счетчик по модулю или как счетчик вверх и вниз.

Можно прочитать 8-битное значение счетчика через регистр SFR TxCNT, где x относится к номеру таймера, 3 или 4.
Возможность сбросить и остановить счетчик дается настройками регистра управления TxCTL. Счетчик запускается, когда в TxCTL.START записывается 1. Если в TxCTL.START записан 0, счетчик останавливается на своем текущем значении.

10.2 Управление режимами таймера 3 и таймера 4

Как правило, регистр управления TxCTL используется для управления работой таймера.

10.2.1 Free-Running Mode - Автономный режим

В автономном режиме работы счетчик начинается с 0x00 и увеличивается на каждом активном фронте тактового сигнала. Когда счетчик достигает 0xFF, в счетчик загружается 0x00 и он продолжает увеличивать свое значение.
Когда достигается конечное значение счетчика 0xFF (то есть происходит переполнение), устанавливается флаг прерывания TIMIF.TxOVFIF. Если разрешено, генерируется запрос прерывания; подробности см. в Разделе 10.6. В автономном режиме может использоваться для генерации независимых временных интервалов и частот выходных сигналов.

10.2.2 Down Mode - Вниз режим

В нижнем режиме после запуска таймера в счетчик загружается содержимое TxCC0. Затем счетчик отсчитывает до 0x00. Флаг прерывания TIMIF.TxOVFIF устанавливается при достижении 0x00. Если разрешено, генерируется запрос прерывания; подробности см. в Разделе 10.6. Режим таймера отключения обычно можно использовать в приложениях, где требуется интервал ожидания события.

10.2.3 Modulo Mode - Модульный режим

Когда таймер работает в модульном режиме, 8-битный счетчик начинается с 0x00 и увеличивается на каждом активном фронте тактового сигнала. После того, как счет достигнет значения периода, хранящегося в регистре TxCC0, счетчик сбрасывается на 0x00 и продолжает увеличиваться. Если таймер запускается со значением выше TxCC0, флаг прерывания TIMIF.TxOVFIF устанавливается при достижении конечного значения (0xFF), после чего счетчик сбрасывается до 0x00.
Если разрешено, генерируется запрос прерывания; подробности см. в Разделе 10.6. Если требуется периодическое прерывание при значении периода, это может быть получено путем разрешения прерывания сравнения выходов на канале 0, как объяснено в Разделе 10.5. Режим по модулю может использоваться для приложений, где требуется период, отличный от 0xFF.

10.2.4 Up-and-Down Mode - Режим вверх и вниз

В режиме таймера увеличения и уменьшения счетчик многократно запускается с 0x00 и ведет отсчет до тех пор, пока не будет достигнуто значение, хранящееся в TxCC0, а затем счетчик ведет обратный отсчет, пока не будет достигнуто значение 0x00. Этот режим таймера используется, когда требуются симметричные выходные импульсы с периодом, отличным от 0xFF, что позволяет реализовать приложения вывода ШИМ с выравниванием по центру. Флаг прерывания TIMIF.TxOVFIF устанавливается, когда значение счетчика достигает 0x00 в режиме увеличения и уменьшения. Если разрешено, генерируется запрос прерывания; подробности см. в Разделе 10.6.

Очистка счетчика путем записи в TxCTL.CLR также сбрасывает направление счета в режим обратного отсчета-0x00.

10.3 Управление режимом канала

Режимы каналов для каждого канала, 0 и 1, устанавливаются регистрами управления и состояния TxCCTLn, где n - номер канала, 0 или 1. Настройки включают режимы захвата и сравнения.

10.4 Режим захвата ввода

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

ПРИМЕЧАНИЕ. Прежде чем вывод ввода / вывода может использоваться таймером, требуемый вывод ввода / вывода должен быть настроен как периферийный вывод таймера 3 или таймера 4.

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

Содержимое 8-битного регистра захвата для канала n считывается из регистра T3CCn или T4CCn.

Когда происходит захват, устанавливается флаг прерывания для канала, TIMIF.TxCHnIF (x равен 3 или 4, n - номер канала). Если разрешено, генерируется запрос прерывания; подробности см. в Разделе 10.6.

10.5 Режим сравнения выходов

В режиме сравнения выходов контакт ввода / вывода, связанный с каналом, должен быть установлен на выход. После запуска таймера содержимое счетчика сравнивается с содержимым регистра сравнения каналов TxCCn. Если регистр сравнения равен содержимому счетчика, выходной контакт устанавливается, сбрасывается или переключается в соответствии с настройкой режима вывода сравнения TxCCTL.CMP1: 0. Обратите внимание, что все края на выходных контактах без сбоев при работе в данном режиме вывода сравнения.

Для простого использования ШИМ предпочтительны режимы сравнения выходов 4 и 5.

Запись в регистр сравнения TxCC0 или TxCC1 не влияет на выходное значение сравнения, пока значение счетчика не станет 0x00.

Когда происходит захват, устанавливается флаг прерывания для канала, TIMIF.TxCHnIF (x равен 3 или 4, n - номер канала). Если разрешено, генерируется запрос прерывания; подробности см. в Разделе 10.6.

Выходной контакт сравнения инициализируется значением, указанным в Таблице 10-1, когда:
  • 1 записывается в TxCNTR.CLR (все каналы таймера x)
  • 0x7 записывается в TxCCTLn.CMP (Таймер x, канал n)

Таблица 10-1. Исходные выходные значения сравнения (режим сравнения)

Режим сравнения (TxCCTLn.CMP) Исходный вывод сравнения
Установить выход при сравнении (000) 0
Очистить вывод при сравнении (001) 1
Включить вывод при сравнении (010) 0
Установить выход при сравнении, сбросить при сравнении вниз в режиме увеличения и уменьшения (011) 0
В других режимах, кроме режима увеличения и уменьшения, установить выход для сравнения, сбросить 0 (011) 0
Очистить вывод при сравнении, установить при сравнении вниз в режиме увеличения и уменьшения (100) 1
В других режимах, кроме режима увеличения и уменьшения, очистить вывод при сравнении, установить на 0 (100) 1
Установить выход для сравнения, сбросить 0xFF (101) 0
Очистить вывод при сравнении, установить на 0x00 (110)1  
 

10.6 Прерывания от таймера 3 и таймера 4

Каждому из таймеров назначается один вектор прерывания. Это Т3 и Т4. Запрос на прерывание генерируется, когда происходит одно из следующих событий таймера:
  • Счетчик достигает конечного значения счетчика.
  • Сравнить событие
  • Захват события
Регистр SFR TIMIF содержит все флаги прерывания для Таймера 3 и Таймера 4. Биты регистра TIMIF.TxOVFIF и TIMIF.TxCHnIF содержат флаги прерывания источника для двух событий значения конечного счетчика и четырех событий сравнения каналов соответственно. Флаг прерывания источника устанавливается, когда происходит соответствующее событие, независимо от битов маски прерывания. Флаг прерывания CPU IRCON.T3IF или IRCON.T4IF устанавливается, когда происходит одно из событий, если соответствующий бит маски прерывания равен 1.

Биты маски прерывания - это TxCCTLn.IM для четырех каналов и TxCTL.OVFIM для событий переполнения.

Флаг прерывания ЦП IRCON.T3IF или IRCON.T4IF также устанавливается, когда сбрасывается флаг прерывания источника Таймера 3 или Таймера 4, и один или несколько других флагов прерывания источника для того же таймера все еще установлены, пока установлен соответствующий бит маски прерывания. Запрос прерывания генерируется, когда IRCON.TxIF переходит от 0 к 1, если оба IEN1.TxIEN и IEN0.EA равны 1 (x равно 3 или 4).

10.7 Триггеры DMA Таймера 3 и Таймера 4

Два триггера DMA связаны с таймером 3, а два триггера DMA связаны с таймером 4.
  • T3_CH0: Таймер 3 канал 0 захват или сравнение
  • T3_CH1: Таймер 3, канал 1, захват или сравнение
  • T4_CH0: Таймер 4, канал 0, захват или сравнение
  • T4_CH0: Таймер 4, канал 1, захват или сравнение

10.8 Регистры таймера 3 и таймера 4

T3CNT (0xCA) – Timer 3 Counter - Счетчик

Bit  Name  Reset  R/W Description 
7:0 CNT[7:0] 0x00 R Байт отсчета таймера. Содержит текущее значение 8-битного счетчика

T3CTL (0xCB) – Timer 3 Control - Управление

Bit  Name  Reset  R/W Description 
7:5 DIV[2:0] 000 R/W
Значение делителя предделителя. Создает активный фронт тактовой частоты, используемый для синхронизации таймера из CLKCONCMD.TICKSPD, как показано ниже:
000: Тактовая частота / 1
001: Тактовая частота / 2
010: Тактовая частота / 4
011: Тактовая частота / 8
100: Тактовая частота /16
101: Тактовая частота / 32
110: Тактовая частота / 64
111: Тактовая частота / 128
4 START 0 R/W Запустить таймер. Нормальная работа при установке, приостановка при сбросе
3 OVFIM 1 R/W
Маска прерывания переполнения
0: прерывание отключено.
1: прерывание разрешено.
2 CLR 0 R0/W1 Очистить счетчик. Запись 1 в CLR сбрасывает счетчик до 0x00 и инициализирует все выходные контакты связанных каналов. Всегда читается как 0.
1:0 MODE[1:0] 00 R/W
Режимы Таймер 3. Выберите режим следующим образом:
00: автономный режим, повторный счет от 0x00 до 0xFF
01: Вниз, отсчет от T3CC0 до 0x00
10: по модулю, многократно считать от 0x00  до T3CC0
11: вверх и вниз, многократно считать от 0x00 до T3CC0 и до 0x00

T3CCTL0 (0xCC) – Timer 3 Channel 0 Capture or Compare Control - Захват или контроль сравнения

Bit  Name  Reset  R/W Description 
7 - 0 R0 Зарезервированный
6 IM 1 R/W
Маска прерывания канала 0
0: прерывание отключено.
1: прерывание разрешено
5:3 CMP[2:0] 000 R/W
Выбор режима вывода сравнения канала 0. Указанное действие происходит на выходе, когда значение таймера равно значению сравнения в T3CC0.
000: Установить вывод при сравнении
001: Очистить вывод при сравнении
010: Переключить вывод при сравнении
011: Установить выход при сравнении, сбросить 0
100: Очистить вывод при сравнении, установить на 0
101: Установить вывод при сравнении, очистить при 0xFF
110: Очистить вывод при сравнении, установить на 0x00
111: Инициализировать выходной контакт. CMP [2: 0] не изменен
2 MODE 0 R/W
Режим. Выберите режим таймера 3 канала 0
0: режим захвата
1: Режим сравнения
1:0 CAP[1:0] 00 R/W
Выбор режима захвата
00: Нет захвата
01: захват на переднем фронте
10: захват по падающему краю
11: захват с обеих сторон

T3CC0 (0xCD) – Timer 3 Channel 0 Capture or Compare Value - Захват или сравнение значений

Bit  Name  Reset  R/W Description 
7:0 VAL[7:0] 0x00 R/W
Захват таймера или сравнение значения, канал 0. Запись в этот регистр, когда T3CCTL0.MODE = 1 (режим сравнения) вызывает задержку обновления записанного значения T3CC0.VAL [7: 0] до T3CNT.CNT [7: 0] = 0x00

T3CCTL1 (0xCE) – Timer 3 Channel 1 Capture or Compare Control - Захват или контроль сравнения

Bit  Name  Reset  R/W Description 
7 - 0 R0 Зарезервированный
6 IM 1 R/W
Маска прерывания канала 1
0: прерывание отключено.
1: прерывание разрешено
5:3 CMP[2:0] 000 R/W
Выбор режима вывода сравнения канала 1. Указанное действие происходит на выходе, когда значение таймера равно значению сравнения в T3CC0.
000: Установить вывод при сравнении
001: Очистить вывод при сравнении
010: Переключить вывод при сравнении
011: Установить выход при сравнении, сбросить 0
100: Очистить вывод при сравнении, установить на 0
101: Установить вывод при сравнении, очистить при 0xFF
110: Очистить вывод при сравнении, установить на 0x00
111: Инициализировать выходной контакт. CMP [2: 0] не изменен
2 MODE 0 R/W
Режим. Выберите режим таймера 3 канала 1
0: Режим захвата
1: Режим сравнения
1:0 CAP[1:0] 00 R/W
Выбор режима захвата
00: Нет захвата
01: захват на переднем фронте
10: захват по падающему краю
11: захват с обеих сторон

T3CC1 (0xCF) – Timer 3 Channel 1 Capture or Compare Value - Захват или сравнение значений

Bit  Name  Reset  R/W Description 
7:0 VAL[7:0] 0x00 R/W Захват таймера или сравнение значения, канал 1. Запись в этот регистр, когда T3CCTL1.MODE = 1 (режим сравнения) вызывает задержку обновления записанного значения T3CC1.VAL [7: 0] до T3CNT.CNT [7: 0] = 0x00

T4CNT (0xEA) – Timer 4 Counter - Счетчик

Bit  Name  Reset  R/W Description 
7:0 CNT[7:0] 0x00 R Байт отсчета таймера. Содержит текущее значение 8-битного счетчика

T4CTL (0xEB) – Timer 4 Control - Управление

Bit  Name  Reset  R/W Description 
7:5 DIV[2:0] 000 R/W
Значение делителя предделителя. Создает активный фронт тактовой частоты, используемый для синхронизации таймера из CLKCONCMD.TICKSPD, как показано ниже:
000: Тактовая частота / 1
001: Тактовая частота / 2
010: Тактовая частота / 4
011: Тактовая частота / 8
100: Тактовая частота /16
101: Тактовая частота / 32
110: Тактовая частота / 64
111: Тактовая частота / 128
4 START 0 R/W Запустить таймер. Нормальная работа при установке, приостановка при сбросе
3 OVFIM 1 R/W
Маска прерывания переполнения
0: прерывание отключено.
1: прерывание разрешено.
2 CLR 0 R0/W1 Очистить счетчик. Запись 1 в CLR сбрасывает счетчик до 0x00 и инициализирует все выходные контакты связанных каналов. Всегда читается как 0.
1:0 MODE[1:0] 00 R/W
Режимы Таймер 4. Выберите режим следующим образом:
00: автономный режим, повторный счет от 0x00 до 0xFF
01: Вниз, отсчет от T3CC0 до 0x00
10: по модулю, многократно считать от 0x00  до T3CC0
11: вверх и вниз, многократно считать от 0x00 до T3CC0 и до 0x00

T4CCTL0 (0xEC) – Timer 4 Channel 0 Capture/Compare Control -  Захват или контроль сравнения

Bit  Name  Reset  R/W Description 
7 - 0 R0 Зарезервированный
6 IM 1 R/W
Маска прерывания канала 0
0: прерывание отключено.
1: прерывание разрешено
5:3 CMP[2:0] 000 R/W
Выбор режима вывода сравнения канала 0. Указанное действие происходит на выходе, когда значение таймера равно значению сравнения в T4CC0.
000: Установить вывод при сравнении
001: Очистить вывод при сравнении
010: Переключить вывод при сравнении
011: Установить выход при сравнении, сбросить 0
100: Очистить вывод при сравнении, установить на 0
101: Установить вывод при сравнении, очистить при 0xFF
110: Очистить вывод при сравнении, установить на 0x00
111: Инициализировать выходной контакт. CMP [2: 0] не изменен
2 MODE 0 R/W
Режим. Выберите режим таймера 4 канала 0
0: режим захвата
1: Режим сравнения
1:0 CAP[1:0] 00 R/W
Выбор режима захвата
00: Нет захвата
01: захват на переднем фронте
10: захват по падающему краю
11: захват с обеих сторон

T4CC0 (0xED) – Timer 4 Channel 0 Capture or Compare Value - Захват или сравнение значений

Bit  Name  Reset  R/W Description 
7:0 VAL[7:0] 0x00 R/W Захват таймера или сравнение значения, канал 0. Запись в этот регистр, когда T4CCTL0.MODE = 1 (режим сравнения) вызывает задержку обновления записанного значения T4CC0.VAL [7: 0] до T4CNT.CNT [7: 0] = 0x00

T4CCTL1 (0xEE) – Timer 4 Channel 1 Capture or Compare Control - Захват или контроль сравнения

Bit  Name  Reset  R/W Description 
7 - 0 R0 Зарезервированный
6 IM 1 R/W
Маска прерывания канала 1
0: прерывание отключено.
1: прерывание разрешено
5:3 CMP[2:0] 000 R/W
Выбор режима вывода сравнения канала 1. Указанное действие происходит на выходе, когда значение таймера равно значению сравнения в T4CC0.
000: Установить вывод при сравнении
001: Очистить вывод при сравнении
010: Переключить вывод при сравнении
011: Установить выход при сравнении, сбросить 0
100: Очистить вывод при сравнении, установить на 0
101: Установить вывод при сравнении, очистить при 0xFF
110: Очистить вывод при сравнении, установить на 0x00
111: Инициализировать выходной контакт. CMP [2: 0] не изменен
2 MODE 0 R/W
Режим. Выберите режим таймера 4 канала 1
0: Режим захвата
1: Режим сравнения
1:0 CAP[1:0] 00 R/W
Выбор режима захвата
00: Нет захвата
01: захват на переднем фронте
10: захват по падающему краю
11: захват с обеих сторон

T4CC1 (0xEF) – Timer 4 Channel 1 Capture or Compare Value - Захват или сравнение значений

Bit  Name  Reset  R/W Description 
7:0 VAL[7:0] 0x00 R/W Захват таймера или сравнение значения, канал 1. Запись в этот регистр, когда T4CCTL1.MODE = 1 (режим сравнения) вызывает задержку обновления записанного значения T4CC1.VAL [7: 0] до T4CNT.CNT [7: 0] = 0x00

TIMIF (0xD8) – Timer 1 Interrupt Mask, Timers 3 and 4 Interrupt Flags - Маска прерывания от Таймера 1, Флаги прерывания Таймеров 3 и 4

Bit  Name  Reset  R/W Description 
7 - 0 R0 Зарезервированный
6 T1OVFIM 1 R/W Маска прерывания переполнения таймера 1
5 T4CH1IF 0 R/W0
Таймер 4, флаг прерывания канала 1
0: нет ожидающих прерываний.
1: ожидание прерывания.
4 T4CH0IF 0 R/W0
Таймер 4, флаг прерывания канала 0
0: нет ожидающих прерываний.
1: ожидание прерывания.
3 T4OVFIF 0 R/W0
Флаг прерывания переполнения таймера 4
0: нет ожидающих прерываний.
1: ожидание прерывания.
2 T3CH1IF 0 R/W0
Таймер 3, флаг прерывания канала 1
0: нет ожидающих прерываний.
1: ожидание прерывания.
1 T3CH0IF 0 R/W0
Таймер 3, флаг прерывания канала 0
0: нет ожидающих прерываний.
1: ожидание прерывания.
0 T3OVFIF 0 R/W0
Флаг прерывания переполнения таймера 3
0: нет ожидающих прерываний.
1: ожидание прерывания.

11 Sleep Timer - Таймер сна

Таймер отключения используется для установки периода, в течение которого система входит и выходит из режимов малой мощности PM1 и PM2. Таймер сна также используется для поддержания синхронизации в Таймере 2 при переходе в режим питания PM1 или PM2.

Основными функциями таймера сна являются следующие:

  • 24-битный таймер с тактовой частотой 32 кГц
  • 24-битное сравнение с прерыванием и триггером DMA
  • 24-битный захват
Тема ................................................. ................................ страница
11.1 Общие положения ................................................ .............. 129
11.2 Сравнение таймеров ............................................... .......... 129
11.3 Захват таймера ............................................... ...................... 129
11.4 Регистры таймера сна .............................................. ........... 130

11.1 Общие положения

Таймер отключения - это 24-разрядный таймер, работающий на тактовой частоте 32 кГц (RCOSC или XOSC). Таймер начинает работать сразу после сброса и продолжает работать непрерывно.

Текущее значение таймера может быть считано из регистров SFR ST2: ST1: ST0. Когда ST0 считывается, текущее значение 24-битного счетчика фиксируется. Таким образом, регистр ST0 должен считываться перед ST1 и ST2, чтобы считывать правильное значение счетчика таймера отключения.

Таймер сна работает при работе во всех режимах питания, кроме PM3. Значение таймера сна не сохраняется в PM3. При возврате из PM1 или PM2 (где системные часы выключены) значение таймера сна в ST2: ST1: ST0 не обновляется до тех пор, пока после системных часов не будет обнаружен положительный фронт на тактовой частоте 32 кГц. перезапущен. Чтобы обеспечить считывание обновленного значения, дождитесь положительного перехода на тактовой частоте 32 кГц, выполнив опрос бита SLEEPSTA.CLK32K, прежде чем читать значение таймера сна.

Обратите внимание, что если напряжение питания падает ниже 2 В в режиме PM2, это может повлиять на интервал ожидания.

11.2 Сравнение таймеров

Событие сравнения таймера происходит, когда значение таймера равно 24-битному значению сравнения и на тактовой частоте 32 кГц имеется положительный фронт. Значение сравнения устанавливается путем записи в регистры ST2: ST1: ST0. Запись в ST0, когда STLOAD.LDRDY равен 1, инициирует загрузку нового значения сравнения, то есть самых последних значений, записанных в регистры ST2, ST1 и ST0. Это означает, что при записи значения сравнения, ST2 и ST1 должен быть записан до ST0. STLOAD.LDRDY равен 0 во время загрузки, и программное обеспечение не должно начинать новую загрузку, пока STLOAD.LDRDY не перевернется обратно на 1.

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

Бит разрешения прерывания для ST-прерывания - IEN0.STIE, а флаг прерывания - IRCON.STIF. Когда происходит событие сравнения таймера, устанавливается флаг прерывания IRCON.STIF.

В PM1 и PM2 событие сравнения таймера сна может использоваться для пробуждения устройства и возврата к активной работе в активном режиме. По умолчанию значение сравнения после сброса составляет 0xFF FFFF.

Для всех устройств, кроме CC2540 и CC2541, событие сравнения таймера сна может также использоваться в качестве триггера DMA (триггер DMA 11 в таблице 8-1).

Обратите внимание, что если напряжение питания падает ниже 2 В в режиме PM2, это может повлиять на интервал ожидания.

11.3 Захват таймера

Захват таймера происходит, когда установлен флаг прерывания для выбранного контакта ввода-вывода, и это событие было обнаружено 32-кГц тактовым генератором. Захват таймера сна включается настройкой STCC.PORT [1: 0] и STCC.PIN [2: 0] к выводу ввода / вывода, который должен использоваться для запуска захвата. Когда STCS.VALID становится высоким, значение захвата в STCV2: STCV1: STCV0 может быть прочитано. Захваченное значение на 1 больше, чем значение в данный момент для события на выводе ввода/вывода. Поэтому программное обеспечение должно вычитать 1 из зафиксированного значения, если требуется абсолютное время. Чтобы включить новый захват, выполните следующие действия:
1. Очистить STCS.VALID.
2. Подождите, пока SLEEPSTA.CLK32K не станет низким.
3. Подождите, пока SLEEPSTA.CLK32K не станет высоким.
4. Очистите флаг прерывания вывода в P0IFG, Регистр P1IFG или P2IFG.

Эта последовательность, использующая передний фронт на P0.0 в качестве примера, показана на рисунке 11-1. Невыполнение этой процедуры может привести к прекращению работы функции захвата до сброса микросхемы.

Рисунок 11-1. Захват таймера сна (пример использования Rising Edge на P0_0)

Невозможно переключить вывод захвата ввода, пока захват включен. Захват должен быть отключен, прежде чем можно будет выбрать новый вывод ввода-вывода. Чтобы отключить захват, выполните следующие действия (обратите внимание, что прерывания отключаются до половины цикла 32 кГц или 15,26 мкс):
1. Отключить прерывания.
2. Подождите, пока SLEEPSTA.CLK32K не станет высоким.
3. Установите для STCC.PORT [1: 0] значение 3. Это отключит захват
 

11.4 Регистры таймера сна

Регистры, используемые таймером сна:

• ST2 - Таймер сна 2
• ST1 - Таймер сна 1
• ST0 - Таймер сна 0
• STLOAD - состояние загрузки таймера сна
• STCC - Контроль захвата таймера сна
• STCS - состояние захвата таймера сна
• STCV0 - Байт значения захвата таймера сна 0
• STCV1 - Байт значения захвата таймера сна 1
• STCV2 - Байт значения захвата таймера сна 2

ST2 (0x97) – Sleep Timer 2

Bit  Name  Reset  R/W Description 
7:0 ST2[7:0] 0x00 R/W Таймер сна рассчитывает или сравнивает значение. При считывании этот регистр возвращает старшие биты [23:16] счетчика таймера сна. При записи этот регистр устанавливает старшие биты [23:16] сравниваемого значения. Считываемое значение фиксируется во время чтения регистра ST0. Записанное значение фиксируется при записи ST0.

ST1 (0x96) – Sleep Timer 1

Bit  Name  Reset  R/W Description 
7:0 ST1[7:0] 0x00 R/W Таймер сна рассчитывает или сравнивает значение. При считывании этот регистр возвращает средние биты [15: 8] счетчика таймера сна. При записи этот регистр устанавливает средние биты [15: 8] значения сравнения. Считываемое значение фиксируется во время чтения регистра ST0. Записанное значение фиксируется при записи ST0.

ST0 (0x95) – Sleep Timer 0

Bit  Name  Reset  R/W Description 
7:0 ST0[7:0] 0x00 R/W Таймер сна рассчитывает или сравнивает значение. При считывании этот регистр возвращает младшие биты [7: 0] счетчика таймера сна. При записи этот регистр устанавливает младшие биты [7: 0] сравниваемого значения. Записи в этот регистр игнорируются, если только STLOAD.LDRDY не равен 1.

STLOAD (0xAD) – Sleep Timer Load Status - состояние загрузки таймера сна

Bit  Name  Reset  R/W Description 
7:1 - 0000 000 R0 Зарезервированный
0 LDRDY 1 R Загрузка готова. Этот бит равен 0, когда таймер сна загружает 24-битное значение сравнения, и 1, когда таймер сна готов начать загрузку нового значения сравнения.

STCC (0x62B0) – Sleep Timer Capture Control - Контроль захвата таймера сна

Bit  Name  Reset  R/W Description 
7:5 - 000 R0 Зарезервированный
4:3 PORT[1:0] 11 R Выбор порта. Допустимые значения: 0–2. Захват отключен, если установлено значение 3, то есть выбрана неверная настройка.
2:0 PIN[2:0] 111   Пин выбрать. Допустимые значения: 0–7, если PORT [1: 0] равен 0 или 1, 0–5, если PORT [1: 0] равен 2. Захват отключен, если выбрана неверная настройка.

STCS (0x62B1) – Sleep Timer Capture Status - Состояние захвата таймера сна

Bit  Name  Reset  R/W Description 
7:1 - 0000 000 R0 Зарезервированный
0 VALID 0 R/W0 Захват действующий флаг. Установите в 1, когда значение захвата в STCV было обновлено. Очистить явно, чтобы разрешить новый захват.

STCV0 (0x62B2) – Sleep Timer Capture Value Byte 0 - Байт значения захвата таймера сна 0

Bit  Name  Reset  R/W Description 
7:0 STCV[7:0] 0x00 R Биты [7: 0] значения захвата таймера сна

STCV1 (0x62B3) – Sleep Timer Capture Value Byte 1 - Байт 1 значения захвата таймера сна

Bit  Name  Reset  R/W Description 
7:0 STCV[15:8] 0x00 R Биты [15: 8] значения захвата таймера сна

STCV2 (0x62B4) – Sleep Timer Capture Value Byte 2 - Байт значения захвата таймера сна 2

Bit  Name  Reset  R/W Description 
7:0 STCV[23:16] 0x00 R Биты [23:16] значения захвата таймера сна

12 ADC - АЦП

АЦП (в CC2530, CC2531, CC2540 и CC2541) поддерживает 14-разрядное аналого-цифровое преобразование с количеством эффективных битов до 12 (ENOB). Это включает в себя аналоговый мультиплексор с до восьми индивидуально конфигурируемых каналов и генератором опорного напряжения. Результаты преобразования могут быть записаны в память через DMA. Доступны несколько режимов работы.

Тема ................................................. ................................... страница

12.1 АЦП Введение ............................................... ................ 133
12.2 Работа АЦП ............................................... ................... 133

12.1 Введение АЦП

АЦП поддерживает до 14-битного аналого-цифрового преобразования с ENOB до 12 бит (эффективное количество бит). Это включает в себя аналоговый мультиплексор с до восьми индивидуально конфигурируемых каналов и генератором опорного напряжения. Результаты преобразования могут быть записаны в память через DMA. Доступны несколько режимов работы.

Основные характеристики АЦП следующие:

  • Выбираемые скорости прореживания, которые также устанавливают эффективное разрешение (от 7 до 12 бит).
  • Восемь отдельных входных каналов, односторонний или дифференциальный выбор напряжения
  • Опорное напряжение выбирается в качестве внутреннего, внешнего однополярного, внешнего дифференциала, или AVDD5
  • Генерация запроса прерывания
  • DMA срабатывает в конце конверсии
  • Вход датчика температуры
  • Возможность измерения батареи

Рисунок 12-1. Блок-схема АЦП

12.2 Работа АЦП

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

12.2.1 Входы АЦП

Сигналы на выводах порта 0 могут использоваться как входы АЦП. В дальнейшем эти выводы порта называются выводами AIN0 – AIN7. Входные контакты AIN0 – AIN7 подключены к АЦП.

Можно настроить входы как односторонние или дифференциальные. В случае выбора дифференциальных входов дифференциальные входы состоят из пар входов AIN0 – AIN1, AIN2 – AIN3, AIN4 – AIN5 и AIN6 – AIN7. Обратите внимание, что на эти контакты нельзя подавать отрицательный источник питания или источник питания выше, чем VDD (нерегулируемая мощность). Это разница между выводами каждой пары, которая преобразуется в дифференциальном режиме.

В дополнение к входным контактам AIN0 – AIN7 выход встроенного датчика температуры может быть выбран в качестве входа для АЦП для измерения температуры. Для этого регистры TR0.ADCTM и ATEST.ATESTCTRL должны быть установлены, как описано в описаниях регистров в Разделе 12.2.10 и Разделе 23.15.3 (CC253x) или Разделе 24.1 (CC2540), или Разделе 25.12 (CC2541) ,

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

Обратите внимание, что ссылка в этом случае не должна зависеть от напряжения батареи; например, напряжение AVDD5 не должно использоваться в качестве эталона.

Несимметричные входы от AIN0 до AIN7 представлены номерами каналов от 0 до 7. Каналы с номерами от 8 до 11 представляют дифференциальные входы, состоящие из AIN0 – AIN1, AIN2 – AIN3, AIN4 – AIN5, и AIN6 – AIN7. Номера каналов с 12 по 15 представляют GND (12), датчик температуры (14) и AVDD5 / 3 (15), причем канал 13 зарезервирован. Эти значения используются в полях ADCCON2.SCH и ADCCON3.SCH.

В​ход АЦП представляет собой ступень с переключаемой емкостью, которая потребляет ток во время преобразования. Например, эквивалентное входное сопротивление типичного устройства оказалось равным 176 кОм при использовании с входное напряжение 3 В, частота прореживания 512 × и внутреннее задание.

Чтобы включить датчик температуры в качестве входа для АЦП, бит TR0.ADCTM должен быть установлен в 1, прежде чем установить бит ATEST.ATESTCTRL в 1. При отключении датчика температуры в качестве входа, бит ATEST.ATESTCTRL должен быть установлен в 0 перед очисткой бита TR0.ADCTM. Регистр TR0 не имеет никакого сохранения в PM2 или PM3, поэтому ATEST и TR0 должны быть очищены надлежащим образом перед входом в эти режимы питания.

12.2.2 Последовательности преобразования АЦП

АЦП может выполнять последовательность преобразований и перемещать результаты в память (через DMA) без какого-либо взаимодействия с процессором.

На последовательность преобразования можно влиять с помощью регистра APCFG (см. Раздел 7.6.6), поскольку восемь аналоговых входов в АЦП поступают от выводов ввода вывода, которые не обязательно запрограммированы как аналоговые входы. Если канал обычно должен быть частью последовательности, но соответствующий аналоговый вход отключен в регистре APCFG, то этот канал пропускается. При использовании дифференциальных входов оба контакта в дифференциальной паре должны быть установлены как контакты аналогового входа в регистре APCFG.

Биты регистра ADCCON2.SCH используются для определения последовательности преобразования АЦП из входов АЦП. Если для ADCCON2.SCH установлено значение меньше 8, последовательность преобразования содержит преобразование из каждого канала от 0 до и включая номер канала, запрограммированный в ADCCON2.SCH. Когда для ADCCON2.SCH установлено значение от 8 до 12, последовательность состоит из дифференциальных входов, начиная с канала 8 и заканчивая запрограммированным каналом. Для ADCCON2.SCH больше или равно 12 последовательность состоит только из выбранного канала.

12.2.3 Одиночное преобразование АЦП

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

12.2.4 Режимы работы АЦП

В этом разделе описаны режимы работы и инициализация преобразований.

АЦП имеет три управляющих регистра: ADCCON1, ADCCON2 и ADCCON3. Эти регистры используются для настройки АЦП и для отчета о состоянии.

Бит ADCCON1.EOC - это бит состояния, который устанавливается на высокий уровень, когда преобразование заканчивается, и сбрасывается при чтении ADCH.

Бит ADCCON1.ST используется для запуска последовательности преобразований. Последовательность начинается, когда этот бит установлен на высокий уровень, ADCCON1.STSEL равен 11, и в настоящее время преобразование не выполняется. Когда последовательность завершена, этот бит автоматически очищается.

Биты ADCCON1.STSEL выбирают событие, которое начинает новую последовательность преобразований. Возможные варианты: нарастающий фронт на внешнем выводе P2.0, конец предыдущей последовательности, событие сравнения канала 0 таймера 1 или ADCCON1.ST = 1.

Регистр ADCCON2 контролирует, как выполняется последовательность преобразований.

ADCCON2.SREF используется для выбора опорного напряжения. Опорное напряжение должно быть изменено только тогда, когда преобразование не работает.

Биты ADCCON2.SDIV выбирают скорость прореживания, тем самым также разрешение и время, необходимое для завершения преобразования, и, следовательно, частоту дискретизации. Скорость прореживания должна изменяться только тогда, когда не выполняется преобразование.

Последний канал последовательности выбирается с помощью битов ADCCON2.SCH, как описано ранее.

Регистр ADCCON3 управляет номером канала, опорным напряжением и скоростью прореживания для одного преобразования. Одиночное преобразование происходит сразу после записи в регистр ADCCON3 или, если последовательность преобразования продолжается, сразу после ее завершения. Кодирование битов регистров точно такое же, как и для ADCCON2.

12.2.5. Результаты преобразования АЦП

Результат цифрового преобразования представлен в виде дополнения 2 с. Ожидается, что для односторонних конфигураций результат будет положительным. Это связано с тем, что в результате получается разница между входным сигналом и землей, которая всегда имеет положительную подпись (Vconv = Vinp - Vinn, где Vinn = 0 В). Значение максимум достигается, когда входной сигнал равен VREF, выбранного опорного напряжения. Для дифференциальных конфигураций разница между двумя выводами преобразуется, и эта разница может быть отрицательно подписана.

​Например, при скорости прореживания 512 с использованием только 12 MSB регистра результатов цифрового преобразования максимальное значение 2047 достигается, когда аналоговый вход (Vconv) равен VREF, и минимальное значение –2048 достигается, когда аналоговый вход равен –VREF.

Результат цифрового преобразования доступен в ADCH и ADCL, если для ADCCON1.EOC установлено значение 1. Обратите внимание, что результат преобразования всегда находится в разделе MSB объединенных регистров ADCH и ADCL.

Когда биты ADCCON2.SCH считываются, они указывают канал, по которому происходит преобразование. Результаты в ADCL и ADCH обычно применяются к предыдущему преобразованию. Если последовательность преобразования закончилась, ADCCON2.SCH имеет значение на единицу больше, чем последний номер канала, но если номер канала, последний раз записанный в ADCCON2.SCH, был 12 или более, это же значение считывается обратно.

12.2.6 АЦП опорного напряжения

Положительное опорное напряжение для аналого-цифрового преобразования выбирается в качестве либо внутренне генерируемого напряжения, контактный AVDD5, внешнее напряжение, приложенное к входному AIN7 ввода, или дифференциальное напряжение, приложенное к входам AIN6-AIN7.

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

12.2.7 Время преобразования АЦП

АЦП должен использоваться только с 32-МГц XOSC, и пользователь не должен реализовывать деление системных часов. Фактическая частота дискретизации АЦП 4 МГц генерируется фиксированным внутренним делением. Время, необходимое для выполнения преобразования, зависит от выбранной скорости прореживания. В общем, время конвертации определяется как:

Tconv = (decimation rate + 16) × 0.25 μs.

12.2.8 Прерывания АЦП

АЦП генерирует прерывание, когда одиночное преобразование, инициированное записью в ADCCON3, завершено. Когда преобразование из последовательности завершено, прерывание не генерируется.

12.2.9 Триггеры ADC DMA

АЦП генерирует триггер DMA каждый раз, когда преобразование из последовательности завершено. Когда одиночное преобразование завершается, триггер DMA не генерируется.

Существует один триггер DMA для каждого из восьми каналов, определенных первыми восемью возможными настройками для ADCCON2.SCH. Триггер DMA активен, когда новый образец готов из преобразования для канала. Триггеры DMA названы ADC_CHsd в таблице 8-1, где s - это односторонний канал, а d - дифференциальный канал.

Кроме того, один триггер DMA, ADC_CHALL, активен, когда новые данные готовы из любого из каналов в последовательности преобразования АЦП.

12.2.10 Регистры АЦП

В этом разделе описываются регистры АЦП.

ADCL (0xBA) – ADC Data, Low

Bit  Name  Reset  R/W Description 
7:2 ADC[5:0] 0000 00 R Наименее значимая часть результата преобразования АЦП
1:0 - 00 R0 Зарезервированный. Всегда читать как 0

ADCH (0xBB) – ADC Data, High

Bit  Name  Reset  R/W Description 
7:0 ADC[13:6] 0x00 R Наиболее значимая часть результата преобразования АЦП

ADCCON1 (0xB4) – ADC Control 1

Bit  Name  Reset  R/W Description 
7 EOC 0 R/H0
Конец конверсии. Сбрасывается, когда ADCH прочитан. Если новое преобразование завершено до считывания предыдущих данных, бит EOC остается высоким.
0: преобразование не завершено
1: преобразование завершено
6 ST 0 R/W1/H0
Начать преобразование. Читайте как 1, пока преобразование не завершится
0: конверсия не выполняется
1: Запустите последовательность преобразования, если ADCCON1.STSEL = 11 и последовательность не запущена.
5:4 STSEL[1:0] 11 R/W
Начните выбирать. Выбирает событие, которое начинает новую последовательность конверсий
00: Внешний триггер на выводе P2.0
01: Полная скорость. Не жди триггеров
10: Таймер 1, канал 0, событие сравнения
11: ADCCON1.ST = 1
3:2 - 00 R/W Управляет 16-битным генератором случайных чисел. См. ADCCON1 (0xB4) - описание управления АЦП 1 в разделе 14.3.
1:0 - 11 R/W Зарезервированный. Всегда установлен на 11

ADCCON2 (0xB5) – ADC Control 2

Bit  Name  Reset  R/W Description 
7:6 SREF[1:0] 00 R/W
Выбор опорного напряжения используется для последовательности преобразований
00: Внутреннее опорное напряжение
01: Внешнее опорное напряжение на вывод AIN7
10: Вывод AVDD5
11: Внешнее опорное напряжение на дифференциальном входе AIN6 – AIN7
5:4 SDIV[1:0] 01 R/W
Устанавливает частоту дисктретизации для каналов, включенных в последовательность преобразований. Частота дискретизации также определяет разрешение и время, необходимое для завершения преобразования.
00: 64 частота дискретизации (настройка 7 бит ENOB)
01: 128 частота дискретизации (настройка 9 бит ENOB)
10: 256 частота дискретизации (настройка 10 бит ENOB)
11: 512 частота дискретизации (настройка 12 бит ENOB)
3:0 SCH[3:0] 0000 R/W
Выбор канала последовательности. Выбирает конец последовательности. Последовательность может быть от AIN0 до AIN7 (SCH ≤ 7) или от дифференциального входа AIN0 – AIN1 до AIN6 – AIN7 (8 ≤ SCH ≤ 11). Для других настроек выполняется только одно преобразование.
При считывании эти биты указывают номер канала, на котором выполняется преобразование.
0000: AIN0
0001: AIN1
0010: AIN2
0011: AIN3
0100: AIN4
0101: AIN5
0110: AIN6
0111: AIN7
1000: AIN0 – AIN1
1001: AIN2 – AIN3
1010: AIN4 – AIN5
1011: AIN6 – AIN7
1100: GND
1101: зарезервировано
1110: датчик температуры
1111: VDD / 3

ADCCON3 (0xB6) – ADC Control 3

Bit  Name  Reset  R/W Description 
7:6 EREF[1:0] 00 R/W
Выбор опорного напряжения используется для диночного преобразования
00: Внутреннее опорное напряжение
01: Внешнее опорное напряжение на вывод AIN7
10: Вывод AVDD5
11: Внешнее задание на дифференциальном входе AIN6 – AIN7
5:4 EDIV[1:0] 00 R/W
Устанавливает частоту дискретизации, используемую для одиночного преобразования. Частота дискретизации также определяет разрешение и время, необходимое для завершения преобразования.
00: 64 скорость прореживания (7 бит ENOB)
01: 128 скорость прореживания (9 бит ENOB)
10: 256 скорость прореживания (10 бит ENOB)
11: 512 скорость прореживания (12 бит ENOB)
3:0 ECH[3:0] 0000 R/W
Выбор одного канала. Выбирает номер канала одиночного преобразования, которое запускается путем записи в ADCCON3.
0000: AIN0
0001: AIN1
0010: AIN2
0011: AIN3
0100: AIN4
0101: AIN5
0110: AIN6
0111: AIN7
1000: AIN0 – AIN1
1001: AIN2 – AIN3
1010: AIN4 – AIN5
1011: AIN6 – AIN7
1100: GND
1101: зарезервировано
1110: датчик температуры
1111: VDD/3

TR0 (0x624B) – Test Register 0

Bit  Name  Reset  R/W Description 
7:1 - 0000 000 R0 Зарезервированный. Написать как 0.
0 ADCTM 0 R/W Установите 1, чтобы подключить датчик температуры к SOC_ADC. См. Также описание регистра ATEST для включения датчика температуры в разделе 23.15.3 (CC253x) или в разделе 24.1 (CC2540) или в разделе 25.12.3 (CC2541).

 

Таймер 1, сравнение, канал 0

 

DMA1CFGH (0xD3) – DMA Channel 1–4 Configuration Address High Byte - старший байт адреса конфигурации каналов 1–4 DMA
Bit Name Reset R/W Description
7:0 DMA1CFG[15:8] 0x00 R/W Адрес конфигурации каналов DMA 1–4, старший байт

16 Watchdog Timer - Сторожевой таймер

Сторожевой таймер (WDT) предназначен для восстановления в ситуациях, когда ЦП может быть подвержен программному сбою. WDT сбрасывает систему, когда программное обеспечение не может очистить WDT в течение выбранного интервал времени. Сторожевой таймер можно использовать в приложениях, подверженных электрическим помехам, сбоям питания, электростатическим разрядам и т. д., или там, где требуется высокая надежность. Если в приложении функция сторожевого таймера не требуется, можно настроить сторожевой таймер для использования в качестве интервального таймера, который можно использовать для генерации прерываний через выбранные интервалы времени.

Функции сторожевого таймера следующие:
  • Четыре выбираемых интервала таймера
  • Режим сторожевого таймера
  • Режим таймера
  • Генерация запроса на прерывание в режиме таймера

WDT настраивается либо как сторожевой таймер, либо как таймер общего назначения. Работой модуля WDT управляет регистр WDCTL. Сторожевой таймер состоит из 15-битного счетчика, синхронизируемого источником тактовой частоты 32 кГц. Обратите внимание, что содержимое 15-битного счетчика недоступно для пользователя.

Содержимое 15-битного счетчика сохраняется во всех режимах питания, а сторожевой таймер продолжает отсчет при повторном входе в активный режим.

16.1 Режим сторожевого таймера .......................................  153
16.2 Режим таймера..................................................... ......... 153
16.3 Регистр сторожевого таймера ....................................... 153

16.1 Режим сторожевого таймера

WDT отключается после сброса системы. Чтобы запустить WDT в режиме сторожевого таймера, биты WDCTL.MODE[1:0] должны быть установлены на 10. Затем счетчик сторожевого таймера начинает увеличиваться с 0. Когда таймер включен в режиме сторожевого таймера, невозможно отключить таймер. Поэтому запись 00 или 01 в WDCTL.MODE[1:0] не имеет никакого эффекта, если WDT уже работает в режиме Watchdog.

WDT работает с тактовой частотой сторожевого таймера 32,768 кГц (при использовании XOSC 32 кГц). Эта тактовая частота дает периоды ожидания, равные 1,9 мс, 15,625 мс, 0,25 с и 1 с, что соответствует настройкам значения счетчика 64, 512, 8192 и 32 768 соответственно.

Если счетчик достигает выбранного значения интервала таймера, сторожевой таймер генерирует сигнал сброса для системы. Если последовательность очистки сторожевого устройства выполняется до того, как счетчик достигнет выбранного значения интервала таймера, счетчик сбрасывается на 0 и продолжает увеличивать свое значение. Последовательность очистки сторожевого таймера состоит из записи 0xA в WDCTL.CLR[3:0], за которой следует запись 0x5 в те же биты регистра в течение одного периода сторожевого таймера. Если эта полная последовательность не выполняется до окончания периода сторожевого таймера, сторожевой таймер генерирует сигнал сброса для системы.

Когда WDT включен в режиме сторожевого таймера, невозможно изменить режим путем записи в биты WDCTL.MODE[1:0], и нельзя изменить значение интервала таймера.

В режиме сторожевого таймера WDT не выдает запросы на прерывание.

16.2 Режим таймера

Чтобы запустить WDT в режиме таймера, биты WDCTL.MODE[1:0] должны быть установлены на 11. Таймер запускается, и счетчик начинает увеличиваться с 0. Когда счетчик достигает выбранного значения интервала, таймер создает прерывание. запрос (IRCON2.WDTIF или IEN2.WDTIE). Когда счетчик достигает значения выбранного интервала, таймер формирует запрос на прерывание, используя IRCON2.WDTIF в качестве флага прерывания и IEN2.WDTIE в качестве маски прерывания.

В режиме таймера можно очистить содержимое таймера, записав 1 в WDCTL.CLR[0]. Когда таймер очищается, содержимое счетчика устанавливается на 0. Запись 00 в WDCTL.MODE[1:0] останавливает таймер и сбрасывает его на 0.

Интервал таймера задается битами WDCTL.INT[1:0]. Интервал не может быть изменен во время работы таймера и должен быть установлен при запуске таймера. В режиме таймера сброс не производится при достижении интервала таймера.

Обратите внимание, что если выбран режим сторожевого таймера, режим таймера не может быть выбран до сброса микросхемы.

16.3 Регистр сторожевого таймера

В этом разделе описывается регистр WDCTL для сторожевого таймера.
 
WDCTL (0xC9) – Watchdog Timer Control - контроль сторожевого таймера
Bit Name Reset R/W Description
7:4 CLR[3:0] 0000 R0/W Очистить таймер. В режиме сторожевого таймера, когда в эти биты записывается 0xA, за которым следует 0x5, таймер очищается (то есть загружается 0). Обратите внимание, что таймер сбрасывается только тогда, когда 0x5 записывается в течение одного периода сторожевого таймера после записи 0xA. Запись этих битов, когда сторожевой таймер находится в состоянии IDLE, не имеет никакого эффекта. При работе в режиме таймера его можно сбросить до 0x0000 (но не остановить), записав 1 в CLR[0] (остальные 3 бита не имеют значения).
3:2 MODE[1:0] 00 R/W
Выбор режима. Эти биты используются для запуска WDT в режиме сторожевого таймера или в режиме таймера. Установка этих битов в IDLE останавливает таймер в режиме таймера. Примечание: чтобы переключиться в сторожевой режим при работе в режиме таймера, сначала остановите WDT, а затем запустите сторожевой таймер в режиме сторожевого таймера. При работе в режиме Watchdog запись этих битов не имеет никакого эффекта.
00: IDLE
01: зарезервировано
10: Режим сторожевого таймера
11: Режим таймера
1:0 INT[1:0] 00 R/W
Выбор интервала таймера. Эти биты выбирают интервал таймера, который определяется как заданное количество периодов генератора 32 кГц. Обратите внимание, что интервал можно изменить только тогда, когда WDT находится в состоянии IDLE, поэтому интервал должен быть установлен одновременно с запуском таймера.
00: Тактовый период × 32 768 (приблизительно 1 с) при работе XOSC 32 кГц.
01: Тактовый период × 8192 (приблизительно 0,25 с)
10: Тактовый период × 512 (приблизительно 15,625 мс)
11: Тактовый период × 64 (примерно 1,9 мс)
Для CC253x и CC2540, когда деление тактовой частоты включено с помощью CLKCONCMD.CLKSPD, длина интервала сторожевого таймера уменьшается на коэффициент, равный текущей тактовой частоте генератора, деленной на установленную тактовую частоту. Например, если выбран кварцевый резонатор 32 МГц и тактовая частота установлена ​​на 4 МГц, то время ожидания сторожевого таймера уменьшается на коэффициент 32 МГц / 4 МГц = 8. Если интервал сторожевого таймера, установленный WDCTL.INT, равен 1 с, номинально это 1/8 с при таком коэффициенте деления часов. Для CC2541 интервал сторожевого таймера не зависит от скорости деления часов.

 

Ваша оценка: None Средняя: 10 (8 votes)