ADC control register 2 (ADC_CR2)

Второй регистр управления АЦП STM32F10x

Смещение (Address offset): 0x08

Reset value: 0x0000'0000

3130292827262524
Reserved
------------------------
00000000
2322212019181716
TSVREFE SWSTART JSWSTART EXTTRIG EXTSEL[2:0] Reserved
rwrwrwrwrwrwrw---
00000000


15141312111098
JEXTTRIG JEXTSEL[2:0] ALIGN Reserved DMA
rwrwrwrwrw------rw
00000000
76543210
Reserved RSTCAL CAL CONT ADON
------------rwrwrwrw
00000000


Bits 31:24
Reserved
Must be kept at reset value
Зарезервировано. Должно быть сохранено значение после сброса.
Bit 23
TSVREFE
Temperature sensor and VREFINT enable
Включает каналы температурного сенсора и опорного напряжения VREFINT.

Доступно только для ADC1.

 0 :  каналы температурного сенсора и опорного напряжения VREFINT отключены

 1 :  каналы температурного сенсора и опорного напряжения VREFINT включены

Bit 22
SWSTART
Start conversion of regular channels
Запускает преобразование группы регулярных каналов, если в качестве события запуска выбран программный запуск: SWSTART в битах EXTSEL[2:0]

Устанавливается программно. Сбрасывается аппаратно как только начинается преобразование.

 0 :  состояние после сброса

 1 :  запуск преобразования группы регулярных каналов

Bit 21
JSWSTART
Start conversion of injected channels
Запускает преобразование группы инжектированных каналов, если в качестве события запуска выбран программный запуск: SWSTART в битах EXTSEL[2:0]

Устанавливается программно. Сбрасывается аппаратно как только начинается преобразование.

 0 :  состояние после сброса

 1 :  запуск преобразования группы инжектированных каналов

Bit 20
EXTTRIG
External trigger conversion mode for regular channels
Разрешает запуск преобразования группы регулярных каналов при наступлении внешнего события (внешнего триггера).

 0 :  преобразование при внешнем событии запрещено

 1 :  преобразование при внешнем событии разрешено

Bits 19:17
EXTSEL[2:0]
External event select for regular group
Выбор события для запуска преобразования группы регулярных каналов.

 -  Для ADC1 и ADC2:

 000 :  Timer 1 CC1 event

 001 :  Timer 1 CC2 event

 010 :  Timer 1 CC3 event

 011 :  Timer 2 CC2 event

 100 :  Timer 3 TRGO event

 101 :  Timer 4 CC4 event

 110 :  EXTI line11 / TIM8_TRGO event

 111 :  SWSTART

 -  Для ADC3:

 000 :  Timer 3 CC1 event

 001 :  Timer 2 CC3 event

 010 :  Timer 1 CC3 event

 011 :  Timer 8 CC1 event

 100 :  Timer 8 TRGO event

 101 :  Timer 5 CC1 event

 110 :  Timer 5 CC3 event

 111 :  SWSTART

Bit 16
Reserved
Must be kept at reset value
Зарезервировано. Должно быть сохранено значение после сброса.
Bit 15
JEXTTRIG
External trigger conversion mode for injected channels
Разрешает запуск преобразования группы инжектированных каналов при наступлении внешнего события (внешнего триггера).

 0 :  преобразование при внешнем событии запрещено

 1 :  преобразование при внешнем событии разрешено

Bits 14:12
JEXTSEL[2:0]
External event select for injected group
Выбор события для запуска преобразования группы регулярных каналов.

 -  Для ADC1 и ADC2:

 000 :  Timer 1 TRGO event

 001 :  Timer 1 CC4 event

 010 :  Timer 2 TRGO event

 011 :  Timer 2 CC1 event

 100 :  Timer 3 CC4 event

 101 :  Timer 4 TRGO event

 110 :  EXTI line15 / TIM8_CC4 event

 111 :  JSWSTART

 -  Для ADC3:

 000 :  Timer 1 TRGO event

 001 :  Timer 1 CC4 event

 010 :  Timer 4 CC3 event

 011 :  Timer 8 CC2 event

 100 :  Timer 8 CC4 event

 101 :  Timer 5 TRGO event

 110 :  Timer 5 CC4 event

 111 :  JSWSTART

Bit 11
ALIGN
Data alignment
Выравнивание оцифрованных данных по левому или правому краю 16-битного полуслова:

 0 :  выравнивание по правому краю

 1 :  выравнивание по левому краю

Bits 10:9
Reserved
Must be kept at reset value
Зарезервировано. Должно быть сохранено значение после сброса.
Bit 8
DMA
Direct memory access mode
Включает режим DMA для АЦП

 0 :  режим DMA выключен

 1 :  режим DMA включен

Генерировать запрос на DMA могут только ADC1 и ADC3.

Bits 7:4
Reserved
Must be kept at reset value
Зарезервировано. Должно быть сохранено значение после сброса.
Bit 3
RSTCAL
Reset calibration
Сброс калибровочных регистров.

Устанавливается программно. Сбрасывается аппаратно после инициализации калибровочных регистров заводскими параметрами.

 0 :  калибровочные регистры инициализированы

 1 :  запуск инициализации калибровочных регистров

Если RTSCAL установлен во время преобразования, то для сброса калибровочных регистров требуются дополнительные такты.

Bit 2
CAL
A/D Calibration
Калибровка АЦП

Устанавливается программно для запуска калибровки. Сбрасывается аппаратно по окончании калибровки.

 0 :  калибровка АЦП завершена

 1 :  запущена калибровка АЦП

Bit 1
CONT
Continuous conversion
Переключает режимы однократного или непрерывного преобразования.

При установленном бите преобразование происходит непрерывно, пока этот бит не будет сброшен.

 0 :  Single conversion mode - режим однократного преобразования

 1 :  Continuous conversion mode - режим непрерывного (циклического) преобразования

Bit 0
ADON
A/D converter ON / OFF
Включение АЦП

Если бит имеет значение "0" и в него записывается "1", то происходит включение АЦП (выход из режима Power Down).

Если бит имеет значение "1" и в него записывается "1", то начинается аналого-цифровое преобразование.

 0 :  выключает питание АЦП, отключает преобразование и калибровку

 1 :  включает АЦП, запускает преобразование

Если при записи в регистр одновременно с битом ADON изменяется любой другой бит - преобразование не запускается. Это сделано для предотвращения ошибочного запуска преобразования.



/*******************  Bit definition for ADC_CR2 register  ********************/

#define  ADC_CR2_ADON           ((uint32_t)0x00000001)        /* A/D Converter ON / OFF */
#define  ADC_CR2_CONT           ((uint32_t)0x00000002)        /* Continuous Conversion */
#define  ADC_CR2_CAL            ((uint32_t)0x00000004)        /* A/D Calibration */
#define  ADC_CR2_RSTCAL         ((uint32_t)0x00000008)        /* Reset Calibration */
#define  ADC_CR2_DMA            ((uint32_t)0x00000100)        /* Direct Memory access mode */
#define  ADC_CR2_ALIGN          ((uint32_t)0x00000800)        /* Data Alignment */

#define  ADC_CR2_JEXTSEL        ((uint32_t)0x00007000)        /* JEXTSEL[2:0] bits (External event select for injected group) */
#define  ADC_CR2_JEXTSEL_0      ((uint32_t)0x00001000)        /* Bit 0 */
#define  ADC_CR2_JEXTSEL_1      ((uint32_t)0x00002000)        /* Bit 1 */
#define  ADC_CR2_JEXTSEL_2      ((uint32_t)0x00004000)        /* Bit 2 */

#define  ADC_CR2_JEXTTRIG       ((uint32_t)0x00008000)        /* External Trigger Conversion mode for injected channels */

#define  ADC_CR2_EXTSEL         ((uint32_t)0x000E0000)        /* EXTSEL[2:0] bits (External Event Select for regular group) */
#define  ADC_CR2_EXTSEL_0       ((uint32_t)0x00020000)        /* Bit 0 */
#define  ADC_CR2_EXTSEL_1       ((uint32_t)0x00040000)        /* Bit 1 */
#define  ADC_CR2_EXTSEL_2       ((uint32_t)0x00080000)        /* Bit 2 */

#define  ADC_CR2_EXTTRIG        ((uint32_t)0x00100000)        /* External Trigger Conversion mode for regular channels */
#define  ADC_CR2_JSWSTART       ((uint32_t)0x00200000)        /* Start Conversion of injected channels */
#define  ADC_CR2_SWSTART        ((uint32_t)0x00400000)        /* Start Conversion of regular channels */
#define  ADC_CR2_TSVREFE        ((uint32_t)0x00800000)        /* Temperature Sensor and VREFINT Enable */