ADC sample time register 1 (ADC_SMPR1)
Первый регистр временных выборок АЦП STM32F10x
Смещение (Address offset): 0x0C
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 |
SMP17[2:0] | SMP16[2:0] | SMP15[2:0] | |||||
rw | rw | rw | rw | rw | rw | rw | rw |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
SMP15[2:0] | SMP14[2:0] | SMP13[2:0] | SMP12[2:0] | ||||
rw | rw | rw | rw | rw | rw | rw | rw |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
SMP12[2:0] | SMP11[2:0] | SMP10[2:0] | |||||
rw | rw | rw | rw | rw | rw | rw | rw |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Bits 31:24
Reserved
Must be kept at reset value
Зарезервировано. Должно быть сохранено значение после сброса.
Bits 23:21
SMP17[2:0]
Channel 17 Sample time selection
Выбор времени выборки канала 17.
Устанавливаются программно для индивидуального выбора времени дискретизации для каждого канала. Во время преобразования время выборки должно оставаться неизменным.
Время дискретизации:
000 : 1.5 цикла
001 : 7.5 циклов
010 : 13.5 циклов
011 : 28.5 циклов
100 : 41.5 цикла
101 : 55.5 цикла
110 : 71.5 цикла
111 : 239.5 циклов
ADC1: аналоговые входы каналов 16 и 17 подключены соответственно к датчику температуры и входному опорному напряжению.
ADC2: аналоговые входы каналов 16 и 17 подключены к Vss ("земля").
ADC3: аналоговые входы каналов 9, 14, 15, 16, 17 подключены к Vss ("земля").
У остальных каналов время выборки выберается идентично каналу 17.
//- stm32f10x.h
/****************** Bit definition for ADC_SMPR1 register *******************/
#define ADC_SMPR1_SMP10 ((uint32_t)0x00000007) /* SMP10[2:0] bits (Channel 10 Sample time selection) */
#define ADC_SMPR1_SMP10_0 ((uint32_t)0x00000001) /* Bit 0 */
#define ADC_SMPR1_SMP10_1 ((uint32_t)0x00000002) /* Bit 1 */
#define ADC_SMPR1_SMP10_2 ((uint32_t)0x00000004) /* Bit 2 */
#define ADC_SMPR1_SMP11 ((uint32_t)0x00000038) /* SMP11[2:0] bits (Channel 11 Sample time selection) */
#define ADC_SMPR1_SMP11_0 ((uint32_t)0x00000008) /* Bit 0 */
#define ADC_SMPR1_SMP11_1 ((uint32_t)0x00000010) /* Bit 1 */
#define ADC_SMPR1_SMP11_2 ((uint32_t)0x00000020) /* Bit 2 */
#define ADC_SMPR1_SMP12 ((uint32_t)0x000001C0) /* SMP12[2:0] bits (Channel 12 Sample time selection) */
#define ADC_SMPR1_SMP12_0 ((uint32_t)0x00000040) /* Bit 0 */
#define ADC_SMPR1_SMP12_1 ((uint32_t)0x00000080) /* Bit 1 */
#define ADC_SMPR1_SMP12_2 ((uint32_t)0x00000100) /* Bit 2 */
#define ADC_SMPR1_SMP13 ((uint32_t)0x00000E00) /* SMP13[2:0] bits (Channel 13 Sample time selection) */
#define ADC_SMPR1_SMP13_0 ((uint32_t)0x00000200) /* Bit 0 */
#define ADC_SMPR1_SMP13_1 ((uint32_t)0x00000400) /* Bit 1 */
#define ADC_SMPR1_SMP13_2 ((uint32_t)0x00000800) /* Bit 2 */
#define ADC_SMPR1_SMP14 ((uint32_t)0x00007000) /* SMP14[2:0] bits (Channel 14 Sample time selection) */
#define ADC_SMPR1_SMP14_0 ((uint32_t)0x00001000) /* Bit 0 */
#define ADC_SMPR1_SMP14_1 ((uint32_t)0x00002000) /* Bit 1 */
#define ADC_SMPR1_SMP14_2 ((uint32_t)0x00004000) /* Bit 2 */
#define ADC_SMPR1_SMP15 ((uint32_t)0x00038000) /* SMP15[2:0] bits (Channel 15 Sample time selection) */
#define ADC_SMPR1_SMP15_0 ((uint32_t)0x00008000) /* Bit 0 */
#define ADC_SMPR1_SMP15_1 ((uint32_t)0x00010000) /* Bit 1 */
#define ADC_SMPR1_SMP15_2 ((uint32_t)0x00020000) /* Bit 2 */
#define ADC_SMPR1_SMP16 ((uint32_t)0x001C0000) /* SMP16[2:0] bits (Channel 16 Sample time selection) */
#define ADC_SMPR1_SMP16_0 ((uint32_t)0x00040000) /* Bit 0 */
#define ADC_SMPR1_SMP16_1 ((uint32_t)0x00080000) /* Bit 1 */
#define ADC_SMPR1_SMP16_2 ((uint32_t)0x00100000) /* Bit 2 */
#define ADC_SMPR1_SMP17 ((uint32_t)0x00E00000) /* SMP17[2:0] bits (Channel 17 Sample time selection) */
#define ADC_SMPR1_SMP17_0 ((uint32_t)0x00200000) /* Bit 0 */
#define ADC_SMPR1_SMP17_1 ((uint32_t)0x00400000) /* Bit 1 */
#define ADC_SMPR1_SMP17_2 ((uint32_t)0x00800000) /* Bit 2 */