ADC control register 2 (ADC_CR2)
Второй регистр управления АЦП STM32F10x
Смещение (Address offset): 0x08
Reset value: 0x0000'0000
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
Reserved | |||||||
--- | --- | --- | --- | --- | --- | --- | --- |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
TSVREFE | SWSTART | JSWSTART | EXTTRIG | EXTSEL[2:0] | Reserved | ||
rw | rw | rw | rw | rw | rw | rw | --- |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
JEXTTRIG | JEXTSEL[2:0] | ALIGN | Reserved | DMA | |||
rw | rw | rw | rw | rw | --- | --- | rw |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Reserved | RSTCAL | CAL | CONT | ADON | |||
--- | --- | --- | --- | rw | rw | rw | rw |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Доступно только для ADC1.
0 : каналы температурного сенсора и опорного напряжения VREFINT отключены
1 : каналы температурного сенсора и опорного напряжения VREFINT включены
Устанавливается программно. Сбрасывается аппаратно как только начинается преобразование.
0 : состояние после сброса
1 : запуск преобразования группы регулярных каналов
Устанавливается программно. Сбрасывается аппаратно как только начинается преобразование.
0 : состояние после сброса
1 : запуск преобразования группы инжектированных каналов
0 : преобразование при внешнем событии запрещено
1 : преобразование при внешнем событии разрешено
- Для 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
0 : преобразование при внешнем событии запрещено
1 : преобразование при внешнем событии разрешено
- Для 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
0 : выравнивание по правому краю
1 : выравнивание по левому краю
0 : режим DMA выключен
1 : режим DMA включен
Генерировать запрос на DMA могут только ADC1 и ADC3.
Устанавливается программно. Сбрасывается аппаратно после инициализации калибровочных регистров заводскими параметрами.
0 : калибровочные регистры инициализированы
1 : запуск инициализации калибровочных регистров
Если RTSCAL установлен во время преобразования, то для сброса калибровочных регистров требуются дополнительные такты.
Устанавливается программно для запуска калибровки. Сбрасывается аппаратно по окончании калибровки.
0 : калибровка АЦП завершена
1 : запущена калибровка АЦП
При установленном бите преобразование происходит непрерывно, пока этот бит не будет сброшен.
0 : Single conversion mode - режим однократного преобразования
1 : Continuous conversion mode - режим непрерывного (циклического) преобразования
Если бит имеет значение "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 */