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одержание
Предисловие
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 КБ флэш-памяти соответственно.
Решение CC253x System-on-Chip для 2,4 ГГц подходит для широкого спектра применений. Они могут быть легко построены на основе стандартных протоколов IEEE 802.15.4 (сетевой протокол RemoTI ™, программное обеспечение TIMAC и программное обеспечение Z-Stack ™ для решений, совместимых с ZigBee®) или поверх проприетарного сетевого протокола SimpliciTI ™. Использование, однако, не ограничивается только этими протоколами. Например, семейство CC253x также подходит для реализаций 6LoWPAN и Wireless HART.
Подробные технические данные, такие как энергопотребление и характеристики РЧ, см. В технических характеристиках устройства (Приложение C).
Связанная документация (например, лист данных CC2530 и листок данных CC2540 ) может можно найти в приложении С.
Для получения дополнительной информации о программном обеспечении, которое можно использовать с решением Systemon-Chip CC253x, CC2540 или CC2541 (например, программное обеспечение SmartRF ™ для оценки производительности и функциональности радиосвязи), см. Главу 27, в которой также содержится дополнительная информация о сетевом протоколе RemoTI. сетевой протокол SimpliciTI, программное обеспечение TIMAC, программное обеспечение Z-Stack и программное обеспечение стека BLE.
Предупреждение FCC
Это оборудование генерирует, использует и может излучать радиочастотную энергию и не было проверено насоответствие лимитам вычислительных устройств в соответствии с частью J части 15 правил FCC, которые предназначенs для обеспечения разумной защиты от радиочастотных помех. Операция этого оборудование в других средах может создавать помехи для радиосвязи, в этом случае пользователь за свой счет должен будет принять любые меры, которые могут потребоваться для исправления этого вмешательство.
Если вам нужна помощь
Глоссарий
Устройства
Таблица 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 |
Регистрация конвенций
В описаниях регистров каждое поле регистра отображается с символом (R/W), указывающим режим доступа к полю регистра. Значения регистра всегда даются в двоичной записи, если только не префикс 0x, что указывает на шестнадцатеричное обозначение
Таблица 0-2. Соглашения о регистрах битов
SYMBOL | ACCESS MODE |
R/W | Read and write |
R | Read-only |
R0 | Read as 0 |
R1 | Read as 1 |
W | Write-only |
W0 | Write as 0 |
W1 | Write as 1 |
H0 | Hardware clear |
H1 | Hardware set |
2.5 Прерывания
Определения источников прерываний и векторов прерываний приведены в таблице 2-5.
2.5.1 Маскировка прерывания
Каждое прерывание может быть индивидуально разрешено или запрещено битами разрешения прерывания в SFR разрешения прерывания IEN0, IEN1 и IEN2. SFR, разрешающие прерывания ЦП, описаны ниже и сведены в Таблицу 2-5.
Обратите внимание, что некоторые периферийные устройства имеют несколько событий, которые могут генерировать запрос на прерывание, связанный с этим периферийным устройством. Это относится к Порту 0, Порту 1, Порту 2, Таймеру 1, Таймеру 2, Таймеру 3, Таймеру 4, контроллеру DMA и Радио. Эти периферийные устройства имеют биты маски прерывания для каждого внутреннего источника прерывания в соответствующем регистре SFR или XREG.
- Сбросить флаги прерывания.
- Установите отдельный бит разрешения прерывания в регистре SFR периферийных устройств, если он есть.
- Установите соответствующий отдельный бит разрешения прерывания в регистре IEN0, IEN1 или IEN2 на 1.
- Включите глобальное прерывание, установив бит EA в IEN0 в 1.
- Начните процедуру обслуживания прерывания с соответствующего векторного адреса этого прерывания. Адреса см. в Таблице 2-5.
На рис. 2-4 представлен полный обзор всех источников прерываний и связанных с ними регистров управления и состояния.
Заштрихованные прямоугольники на рис. 2-4 — это флаги прерывания, которые автоматически сбрасываются аппаратным обеспечением при вызове процедуры обслуживания прерывания. _/-\_ указывает на однократный выстрел либо из-за источника уровня, либо из-за фронта формирования. Прерывания без этого должны рассматриваться как инициируемые уровнем (применимо к портам P0, P1 и P2). Поля переключения отображаются в состоянии по умолчанию и _/- ИЛИ -\_указывают на обнаружение нарастающего или спадающего фронта, то есть в какой момент времени генерируется прерывание. Как правило, для импульсных или импульсных источников прерываний следует очищать регистры флагов прерываний ЦП перед очисткой бита флага источника, если он доступен, для флагов, которые не сбрасываются автоматически. Для источников уровня необходимо очистить источник перед очисткой флага процессора.
Обратите внимание, что при очистке флагов исходного прерывания в регистре, содержащем несколько флагов, прерывания могут быть потеряны, если выполняется операция чтения-модификации-записи (даже в одной ассемблерной инструкции), так как она также очищает флаги прерывания, которые стали активными между чтением и операция записи. Флаги прерывания источника (за исключением флагов прерывания контроллера USB) имеют режим доступа R/W0. Это означает, что запись 1 в бит не имеет никакого эффекта, поэтому 1 должна быть записана во флаг прерывания, который нельзя сбрасывать. Например, чтобы очистить бит TIMER2_OVF_PERF (бит 3) T2IRQF в коде C, нужно сделать:
Таблица 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 |
Рисунок 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 Управление питанием и часы
Тема ................................................. .................................................. страница
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 работает.
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, который может использоваться программным обеспечением для немедленного запуска сброса сторожевого таймера для перезагрузки устройства.
4.1.1 Active and Idle Modes - Активный и режим ожидания
Активный режим - это полнофункциональный режим работы, в котором активны процессор, периферийные устройства и радиопередатчик. Цифровой регулятор напряжения включен.
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
Сброс (POR или внешний) и внешние порты ввода/вывода - единственные функции, которые работают в этом режиме.
Выводы ввода/вывода сохраняют режим ввода/вывода и заданное значение до входа в PM3. Условие сброса или включенное событие внешнего прерывания ввода/вывода пробуждает устройство и переводит его в активный режим (внешнее прерывание начинается с того места, где оно вошло в PM3, тогда как сброс возвращается к выполнению в начале программы). Содержимое ОЗУ и регистров частично сохраняется в этом режиме (см. Раздел 4.6). PM3 использует ту же последовательность выключения и включения питания, что и PM2.
PM3 используется для достижения сверхнизкого энергопотребления при ожидании внешнего события. Его следует использовать, когда ожидаемое время ожидания превышает 3 мс.
4.2 Управление питанием
Включенное прерывание от контактов порта или таймера отключения или сброса при включении питания выводит устройство из других режимов питания и переводит его в активный режим.
При вводе 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);
используется.
Это означает, что ISR прерывания, которое разбудило систему, не выполняется до тех пор, пока бит IEN0.EA не будет снова установлен позже в коде. Если эта функциональность не нужна, инструкцию CLR EA можно заменить на NOP.
4.3. Регистры управления питанием
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 Генераторы и часы
Существует также один источник тактовой частоты 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 МГц на источник тактовой частоты 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.
4.4.4 Генератор и тактовые регистры
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 цифровой вход / выход
- Универсальный ввод / вывод или периферийный ввод / вывод
- Возможность подтягивания или опускания на входах
- Возможность внешнего прерывания
Тема ................................................. .................................................. ........................ страница
7.1 Неиспользуемые выводы ввода/вывода
7.2 Низкое напряжение питания ввода/вывода
7.3 Универсальный ввод/вывод
Все порты имеют как битовую, так и байтовую адресацию через регистры SFR P0, P1 и P2. Каждый вывод порта может быть индивидуально настроен для работы в качестве универсального ввода-вывода или периферийного ввода-вывода.
Регистры PxSEL, где x - это номер порта 0–2, используются для конфигурирования каждого контакта в порте в качестве вывода ввода-вывода общего назначения или в качестве периферийного сигнала ввода-вывода. По умолчанию после сброса все цифровые входные/выходные контакты настроены как входные контакты общего назначения.
Чтобы изменить направление вывода порта, регистры PxDIR используются для установки каждого вывода порта в качестве входа или выхода. Таким образом, установив соответствующий бит в PxDIR на 1, соответствующий вывод становится выходом.
При использовании в качестве входа выводы порта ввода/вывода общего назначения могут быть настроены на подтягивание, опускание или третье состояние. По умолчанию после сброса входы настраиваются как входы с подтягиванием. Отмените выбор функции pullup или pulldown на входе, соответствующий бит в PxINP должен быть установлен в 1.
В режимах питания PM1, PM2 и PM3 контакты ввода / вывода сохраняют режим ввода/вывода и выходное значение (если применимо), которое был установлен при вводе PM1, PM2 или PM3.
7.4 Прерывания ввода / вывода общего назначения
- IEN1.P0IE: разрешение прерывания P0
- IEN2.P1IE: разрешение прерывания P1
- IEN2.P2IE: разрешение прерывания P2
Когда условие прерывания возникает на одном из выводов ввода / вывода, флаг состояния прерывания в соответствующем регистре флага прерывания P0-P2, P0IFG, P1IFG или P2IFG, устанавливается в 1. Флаг состояния прерывания устанавливается независимо от того, установлен ли Пин имеет свой набор разрешения прерываний. Когда прерывание обслуживается, флаг состояния прерывания очищается путем записи 0 в этот флаг. Этот флаг должен быть очищен до очистки порта ЦП флаг прерывания (PxIF). Это показано на рис. 2-4: между входной линией и PxIFG есть обнаружение краев, но между PxIFG и PxINT не обнаружено ни краев, ни одного выстрела. Практическое влияние этого является то, что написано в разделе 2.5.1
- P0IEN: прерывание P0 разрешено
- P1IEN: разрешение прерывания P1
- P2IEN: прерывание P2 разрешено
- PICTL: конфигурация фронта P0, P1 и P2
- P0IFG: флаги прерываний P0
- P1IFG: флаги прерываний P1
- P2IFG: флаги прерываний P2
7.5 Универсальный ввод/вывод DMA
Триггер IOC_0 активируется при возникновении прерывания на выводах P0. Триггер IOC_1 активируется при возникновении прерывания на выводах P1.
7.6 Периферийный ввод/вывод
Для USART и таймерного ввода-вывода, установка соответствующих битов PxSEL в 1 необходима для того, чтобы выходные сигналы на цифровом выводе ввода-вывода контролировались периферийным устройством. Для периферийных входов с цифровых выводов ввода / вывода это необязательно.
Обратите внимание, что периферийные устройства имеют два альтернативных расположения для своих выводов ввода / вывода; см. таблицу 7-1. Приоритет может быть установлен между периферийными устройствами, если присутствуют противоречивые настройки, относящиеся к отображению ввода / вывода (используя биты P2SEL.PRIxP1 и P2DIR.PRIP0). Можно использовать все комбинации, не вызывающие конфликтов.
Также обратите внимание, что периферийные устройства, которые имеют входные контакты, получают вход от контакта независимо от настройки 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 | C | SS | |||||||||||||||||
MI | M0 | C | 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.
- 0: канал 0 захватывает или сравнивает вывод
- 1: канал 1 захватывает или сравнивает вывод
- 2: канал 2 захватывает или сравнивает вывод
- 3: Канал 3 захватывает или сравнивает вывод
- 4: канал 4 захватывает или сравнивает вывод
P2SEL.PRI1P1 и P2SEL.PRI0P1 выбирают порядок приоритета при назначении нескольких периферийных устройств для порта 1. Каналы таймера 1 имеют приоритет, когда первый установлен на низком уровне, а второй - на высоком.
7.6.2 Таймер 3
PERCFG.T3CFG выбирает, использовать ли альтернативу 1 или альтернативу 2.
- 0: канал 0 захватывает или сравнивает вывод
- 1: канал 1 захватывает или сравнивает вывод
7.6.3 Таймер 4
PERCFG.T4CFG выбирает, использовать ли альтернативу 1 или альтернативу 2.
- 0: канал 0 захватывает или сравнивает вывод
- 1: канал 1 захватывает или сравнивает вывод
7.6.4 USART 0
Регистр SFR бит PERCFG.U0CFG выбирает, использовать ли альтернативное 1 или альтернативное 2 местоположения.
UART:
- RX: RXDATA
- TX: TXDATA
- RT: RTS
- CT: CTS
- MI: MISO
- МО: МОСИ
- C: SCK
- SS: SSN
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 показаны следующим образом:
- RX: RXDATA
- TX: TXDATA
- RT: RTS
- CT: CTS
- MI: MISO
- МО: МОСИ
- C: SCK
- SS: SSN
P2SEL.PRI3P1 и P2SEL.PRI2P1 выбирают порядок приоритета при назначении нескольких периферийных устройств для порта 1. USART 1 имеет приоритет, когда первый установлен на 1, а последний на 0. Обратите внимание, что если выбран режим UART и аппаратное управление потоком отключено, USART 0 или Таймер 3 имеет приоритет для использования портов P1.4 и P1.5.
7.6.6 АЦП
- A0: вход АЦП 0
- A1: вход АЦП 1
- A2: вход АЦП 2
- A3: вход АЦП 3
- A4: АЦП вход 4
- A5: вход АЦП 5
- A6: вход АЦП 6
- A7: вход АЦП 7
- T: АЦП внешний пусковой контакт
Настройки в регистре APCFG переопределяют настройки в P0SEL.
7.6.7 Операционный усилитель и аналоговый компаратор
Настройки в регистре APCFG переопределяют настройки в P0SEL.
7.7 Интерфейс отладки
7.8 32-кГц вход XOSC
7.9 Тестовые выходные сигналы радио
7.10 Сигнал выключения питания MUX (PMUX)
Регистр PMUX может использоваться для вывода тактовой частоты 32 кГц и / или статуса цифрового регулятора напряжения.
Кроме того, статус цифрового регулятора напряжения может быть выведен на один из контактов 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 координирует все передачи DMA, гарантируя, что запросы DMA имеют соответствующий приоритет по отношению друг к другу и к доступу к памяти ЦП. Контроллер прямого доступа к памяти содержит ряд программируемых каналов прямого доступа к памяти для перемещения данных память-память.
Основные характеристики контроллера прямого доступа к памяти следующие:
- Пять независимых каналов DMA
- Три настраиваемых уровня приоритета канала DMA
- 32 настраиваемых триггерных события передачи
- Независимый контроль исходного и конечного адресов
- Одиночный, блочный и повторный режимы передачи
- Поддерживает поле длины в передаваемых данных, устанавливая переменную длину передачи
- Может работать в режиме размера слова или размера байта.
8.1 DMA Operation - Работа с прямым доступом к памяти
Чтобы использовать канал DMA, его необходимо сначала настроить, как описано в Разделе 8.2 и Разделе 8.3.
На рис. 8-1 показана диаграмма состояний DMA. После того, как канал DMA настроен, он должен быть активирован, прежде чем будет разрешена любая передача. Канал DMA активируется установкой соответствующего бита в регистре DMAARM канала DMA.
В дополнение к запуску передачи DMA через триггерные события DMA пользовательское программное обеспечение может принудительно начать передачу DMA, установив соответствующий бит DMAREQ.
Бит DMAREQ очищается только тогда, когда происходит соответствующая передача DMA. Бит DMAREQ не сбрасывается, когда канал снят с охраны.
Рисунок 8-1. Операция прямого доступа к памяти
8.2 DMA Configuration Parameters - Параметры конфигурации прямого доступа к памяти
Поведение каждого из пяти каналов прямого доступа к памяти настраивается со следующими параметрами:
Подробное описание всех параметров конфигурации дано в разделах с 8.2.1 по 8.2.11.
8.2.1 Адрес источника
8.2.2 Адрес назначения
8.2.3 Счетчик передач
Количество байтов/слов, которые должны быть переданы для завершения передачи DMA. Когда количество передач достигнуто, контроллер DMA перезаряжает или снимает с охраны канал DMA и предупреждает ЦП с запросом на прерывание. Счетчик передач может быть определен в конфигурации или может быть определен как переменная длина, как описано в Разделе 8.2.4.
8.2.4 Настройка VLEN
Обратите внимание, что бит M8 (раздел 8.2.11) используется только тогда, когда выбрана передача размером в байт.
- Передача количества байтов или слов, заданных первым байтом/словом + 1 (передается длина байта/слова, а затем столько байтов/слов, сколько диктуется длиной байта/слова)
- Передача количества байтов или слов, которыми управляет первый байт/слово
- Передача количества байтов или слов, заданных первым байтом/словом + 2 (передается длина байта/слова, а затем столько байтов/слов, сколько указано длиной байта/слова + 1)
- Передача количества байтов или слов, заданных первым байтом/словом + 3 (передается длина байта/слова, а затем столько байтов/слов, сколько указано длиной байта/слова + 2)
Рисунок 8-2 показывает опции VLEN.
Рисунок 8-2. Варианты передачи переменной длины (VLEN)
8.2.5 Триггерное событие
8.2.6 Приращение источника и назначения
- Увеличение на ноль. Указатель адреса остается фиксированным после каждой передачи.
- Увеличение на единицу. Указатель адреса увеличивается на один счетчик после каждой передачи.
- Увеличение на два. Указатель адреса увеличивается на два счетчика после каждой передачи.
- Уменьшить на единицу. Указатель адреса уменьшается на один счетчик после каждой передачи.
8.2.7 Режим передачи DMA
8.2.8 Приоритет прямого доступа к памяти
Схема используется для обеспечения доступа для всех. Существует три уровня приоритета прямого доступа к памяти:
8.2.9 Передача байтов или слов
8.2.10 Маска прерывания
8.2.11 Настройка режима 8
Это поле определяет, использовать ли 7 или 8 бит на байт для длины передачи. Применимо только при передаче байтов.
8.3 Настройка конфигурации прямого доступа к памяти
Важно отметить, что метод указания начального адреса для структуры данных конфигурации DMA отличается для канала DMA 0 и каналов DMA 1–4 следующим образом:
Таким образом, DMA-контроллер ожидает, что структуры данных конфигурации DMA для каналов DMA 1–4 будут лежать в непрерывной области памяти, начиная с адреса, хранящегося в DMA1CFGH:DMA1CFGL, и состоящего из 32 байт.
8.4 Остановка передачи DMA
8.5 Прерывания прямого доступа к памяти
8.6 Структура данных конфигурации DMA
8.7 DMA Memory Access - Доступ к памяти прямого доступа к памяти
Таблица 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.
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. Для неповторяющихся
режимах передачи бит автоматически сбрасывается по завершении.
|
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.
|
Bit | Name | Reset | R/W | Description |
7:0 | DMA0CFG[15:8] | 0x00 | R/W | Адрес конфигурации канала 0 DMA, старший байт |
Bit | Name | Reset | R/W | Description |
7:0 | DMA0CFG[15:8] | 0x00 | R/W | Адрес конфигурации канала 0 DMA, младший байт |
Bit | Name | Reset | R/W | Description |
7:0 | DMA1CFG[15:8] | 0x00 | R/W | Адрес конфигурации каналов DMA 1–4, старший байт |
Bit | Name | Reset | R/W | Description |
7:0 | DMA1CFG[7:0] | 0x00 | R/W | Адрес конфигурации каналов DMA 1–4, младший байт |
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 следующие:
- Пять каналов захвата или сравнения
- Захват нарастающего, спадающего или любого входного фронта
- Установить, очистить или переключить сравнение выходных данных
- Работа в свободном режиме, по модулю или по прямому и обратному счетчику.
- Тактовый пределитель для деления на 1, 8, 32 или 128.
- Запрос прерывания генерируется при каждом захвате или сравнении и подсчете терминалов.
- Функция триггера прямого доступа к памяти
9.1 16-битный счетчик
9.2 Таймер 1 Работа
9.3 Автономный режим
Рисунок 9-1. Автономный режим
9.4 Модульный режим
Рисунок 9-2. Модульный режим
9.5 Режим вверх-вниз
Рисунок 9-3. Режим вверх и вниз
9.6 Управление режимом канала
9.7 Режим захвата ввода
ПРИМЕЧАНИЕ. Прежде чем вывод ввода-вывода сможет использоваться таймером, требуемый вывод ввода-вывода должен быть сконфигурирован как периферийный вывод Таймера 1.
9.8 Режим сравнения выходных данных
Обратите внимание, что канал 0 имеет меньше режимов сравнения вывода, потому что T1CC0H:T1CC0L имеет специальную функцию в режимах 6 и 7, что означает, что эти режимы не будут полезны для канала 0.
С выравниванием по фронту: выходные сигналы ШИМ могут генерироваться с использованием режима таймера по модулю и каналов 1 и 2 в режиме сравнения выходов 6 или 7 (определяется битами T1CCTLn.CMP, где n равно 1 или 2), как показано на рис. 9-4. . Период сигнала ШИМ определяется настройкой в T1CC0, а рабочий цикл определяется в T1CCn, где n — канал ШИМ, 1 или 2.
Выравнивание по центру: выходы ШИМ могут генерироваться, когда выбран режим повышения и понижения таймера. В зависимости от требуемой полярности сигнала ШИМ. Период сигнала ШИМ определяется T1CC0, а рабочий цикл для выхода канала определяется T1CCn, где n — канал ШИМ, 1 или 2.
В некоторых типах приложений требуется определенная задержка или мертвое время между выходами. Как правило, это требуется для выходов, управляющих конфигурацией H-моста, чтобы избежать неконтролируемой перекрестной проводимости на одной стороне H-моста. Задержку или мертвое время можно получить на выходах ШИМ с помощью T1CCn, как показано ниже:
и мертвое время, то есть время, когда оба выхода имеют низкий уровень (в тактах Таймера 1), определяется как:
Выходной контакт сравнения инициализируется значением, указанным в таблице 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 Генерация ИК-сигнала и обучение
9.9.1 Введение
- Модулированные коды
- Немодулированные коды (C-коды, флэш-коды)
9.9.2 Модулированные коды
Таблица 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 не возникают помехи.
На рис. 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 Обнаружение несущей частоты
9.9.4.2 Обучение демодулированному коду
9.9.5 Другие соображения
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
- T1_CH0 – сравнение канала 0
- T1_CH1 – сравнение канала 1.
- T1_CH2 – сравнение канала 2.
9.12 Регистры Таймера 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-битных таймера. Каждый таймер имеет два независимых канала захвата или сравнения, каждый из которых использует по одному выводу ввода-вывода на канал.
- Два канала захвата или сравнения
- Установить, сбросить или переключить сравнение вывода
- Предварительный делитель тактовой частоты для деления на 1, 2, 4, 8, 16, 32, 64, 128
- Запрос на прерывание, генерируемый при каждом событии захвата или сравнения и терминального подсчета
- Функция триггера DMA
10.1 8-битный таймерный счетчик
Все функции таймера основаны на главном 8-битном счетчике таймера 3 и таймера 4. Счетчик увеличивается или уменьшается на каждом активном фронте тактового сигнала. Период активных фронтов тактового сигнала, как определено биты регистра CLKCONCMD.TICKSPD [2: 0] дополнительно умножаются (частота делится) на значение предварительного делителя, установленное TxCTL.DIV [2: 0] (где x относится к номеру таймера, 3 или 4). Счетчик работает как автономный счетчик, счетчик вниз, счетчик по модулю или как счетчик вверх и вниз.
10.2 Управление режимами таймера 3 и таймера 4
10.2.1 Free-Running Mode - Автономный режим
10.2.2 Down Mode - Вниз режим
10.2.3 Modulo Mode - Модульный режим
10.2.4 Up-and-Down Mode - Режим вверх и вниз
Очистка счетчика путем записи в TxCTL.CLR также сбрасывает направление счета в режим обратного отсчета-0x00.
10.3 Управление режимом канала
Режимы каналов для каждого канала, 0 и 1, устанавливаются регистрами управления и состояния TxCCTLn, где n - номер канала, 0 или 1. Настройки включают режимы захвата и сравнения.
10.4 Режим захвата ввода
ПРИМЕЧАНИЕ. Прежде чем вывод ввода / вывода может использоваться таймером, требуемый вывод ввода / вывода должен быть настроен как периферийный вывод таймера 3 или таймера 4.
Содержимое 8-битного регистра захвата для канала n считывается из регистра T3CCn или T4CCn.
10.5 Режим сравнения выходов
Для простого использования ШИМ предпочтительны режимы сравнения выходов 4 и 5.
Когда происходит захват, устанавливается флаг прерывания для канала, TIMIF.TxCHnIF (x равен 3 или 4, n - номер канала). Если разрешено, генерируется запрос прерывания; подробности см. в Разделе 10.6.
- 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
- Счетчик достигает конечного значения счетчика.
- Сравнить событие
- Захват события
Биты маски прерывания - это 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
- 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 - Таймер сна
Основными функциями таймера сна являются следующие:
- 24-битный таймер с тактовой частотой 32 кГц
- 24-битное сравнение с прерыванием и триггером DMA
- 24-битный захват
11.1 Общие положения
Текущее значение таймера может быть считано из регистров SFR ST2: ST1: ST0. Когда ST0 считывается, текущее значение 24-битного счетчика фиксируется. Таким образом, регистр ST0 должен считываться перед ST1 и ST2, чтобы считывать правильное значение счетчика таймера отключения.
Таймер сна работает при работе во всех режимах питания, кроме PM3. Значение таймера сна не сохраняется в PM3. При возврате из PM1 или PM2 (где системные часы выключены) значение таймера сна в ST2: ST1: ST0 не обновляется до тех пор, пока после системных часов не будет обнаружен положительный фронт на тактовой частоте 32 кГц. перезапущен. Чтобы обеспечить считывание обновленного значения, дождитесь положительного перехода на тактовой частоте 32 кГц, выполнив опрос бита SLEEPSTA.CLK32K, прежде чем читать значение таймера сна.
11.2 Сравнение таймеров
При установке нового значения сравнения значение должно быть как минимум на 5 больше текущего значения таймера отключения. В противном случае событие сравнения таймера может быть потеряно.
В PM1 и PM2 событие сравнения таймера сна может использоваться для пробуждения устройства и возврата к активной работе в активном режиме. По умолчанию значение сравнения после сброса составляет 0xFF FFFF.
Для всех устройств, кроме CC2540 и CC2541, событие сравнения таймера сна может также использоваться в качестве триггера DMA (триггер DMA 11 в таблице 8-1).
11.3 Захват таймера
Эта последовательность, использующая передний фронт на P0.0 в качестве примера, показана на рисунке 11-1. Невыполнение этой процедуры может привести к прекращению работы функции захвата до сброса микросхемы.
Рисунок 11-1. Захват таймера сна (пример использования Rising Edge на P0_0)
11.4 Регистры таймера сна
Регистры, используемые таймером сна:
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 - АЦП
Тема ................................................. ................................... страница
12.1 Введение АЦП
АЦП поддерживает до 14-битного аналого-цифрового преобразования с ENOB до 12 бит (эффективное количество бит). Это включает в себя аналоговый мультиплексор с до восьми индивидуально конфигурируемых каналов и генератором опорного напряжения. Результаты преобразования могут быть записаны в память через DMA. Доступны несколько режимов работы.
Основные характеристики АЦП следующие:
- Выбираемые скорости прореживания, которые также устанавливают эффективное разрешение (от 7 до 12 бит).
- Восемь отдельных входных каналов, односторонний или дифференциальный выбор напряжения
- Опорное напряжение выбирается в качестве внутреннего, внешнего однополярного, внешнего дифференциала, или AVDD5
- Генерация запроса прерывания
- DMA срабатывает в конце конверсии
- Вход датчика температуры
- Возможность измерения батареи
Рисунок 12-1. Блок-схема АЦП
12.2 Работа АЦП
12.2.1 Входы АЦП
Можно настроить входы как односторонние или дифференциальные. В случае выбора дифференциальных входов дифференциальные входы состоят из пар входов 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 не должно использоваться в качестве эталона.
Вход АЦП представляет собой ступень с переключаемой емкостью, которая потребляет ток во время преобразования. Например, эквивалентное входное сопротивление типичного устройства оказалось равным 176 кОм при использовании с входное напряжение 3 В, частота прореживания 512 × и внутреннее задание.
12.2.2 Последовательности преобразования АЦП
АЦП может выполнять последовательность преобразований и перемещать результаты в память (через DMA) без какого-либо взаимодействия с процессором.
На последовательность преобразования можно влиять с помощью регистра APCFG (см. Раздел 7.6.6), поскольку восемь аналоговых входов в АЦП поступают от выводов ввода вывода, которые не обязательно запрограммированы как аналоговые входы. Если канал обычно должен быть частью последовательности, но соответствующий аналоговый вход отключен в регистре APCFG, то этот канал пропускается. При использовании дифференциальных входов оба контакта в дифференциальной паре должны быть установлены как контакты аналогового входа в регистре APCFG.
12.2.3 Одиночное преобразование АЦП
12.2.4 Режимы работы АЦП
АЦП имеет три управляющих регистра: ADCCON1, ADCCON2 и ADCCON3. Эти регистры используются для настройки АЦП и для отчета о состоянии.
Бит ADCCON1.ST используется для запуска последовательности преобразований. Последовательность начинается, когда этот бит установлен на высокий уровень, ADCCON1.STSEL равен 11, и в настоящее время преобразование не выполняется. Когда последовательность завершена, этот бит автоматически очищается.
Регистр ADCCON2 контролирует, как выполняется последовательность преобразований.
Биты ADCCON2.SDIV выбирают скорость прореживания, тем самым также разрешение и время, необходимое для завершения преобразования, и, следовательно, частоту дискретизации. Скорость прореживания должна изменяться только тогда, когда не выполняется преобразование.
Последний канал последовательности выбирается с помощью битов ADCCON2.SCH, как описано ранее.
Регистр ADCCON3 управляет номером канала, опорным напряжением и скоростью прореживания для одного преобразования. Одиночное преобразование происходит сразу после записи в регистр ADCCON3 или, если последовательность преобразования продолжается, сразу после ее завершения. Кодирование битов регистров точно такое же, как и для ADCCON2.
12.2.5. Результаты преобразования АЦП
Например, при скорости прореживания 512 с использованием только 12 MSB регистра результатов цифрового преобразования максимальное значение 2047 достигается, когда аналоговый вход (Vconv) равен VREF, и минимальное значение –2048 достигается, когда аналоговый вход равен –VREF.
Результат цифрового преобразования доступен в ADCH и ADCL, если для ADCCON1.EOC установлено значение 1. Обратите внимание, что результат преобразования всегда находится в разделе MSB объединенных регистров ADCH и ADCL.
12.2.6 АЦП опорного напряжения
Точность результатов преобразования зависит от стабильности и шумовых свойств опорного напряжения. Смещение от полезного напряжения вносит ошибку усиления в АЦП, пропорциональную отношению полезного напряжения к фактическому напряжению. Шум на эталоне должен быть ниже шума квантования АЦП, чтобы обеспечить достижение заданного SNR.
12.2.7 Время преобразования АЦП
Tconv = (decimation rate + 16) × 0.25 μs.
12.2.8 Прерывания АЦП
12.2.9 Триггеры ADC DMA
Существует один триггер DMA для каждого из восьми каналов, определенных первыми восемью возможными настройками для ADCCON2.SCH. Триггер DMA активен, когда новый образец готов из преобразования для канала. Триггеры DMA названы ADC_CHsd в таблице 8-1, где s - это односторонний канал, а d - дифференциальный канал.
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 |
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 Режим сторожевого таймера
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], и нельзя изменить значение интервала таймера.
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 Регистр сторожевого таймера
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 интервал сторожевого таймера не зависит от скорости деления часов.
|
- Блог пользователя - admin
- 7662 просмотра