ADC sample time register 1 (ADC_SMPR1)

Первый регистр временных выборок АЦП STM32F10x

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

Reset value: 0x0000'0000

3130292827262524
Reserved
------------------------
00000000
2322212019181716
SMP17[2:0] SMP16[2:0] SMP15[2:0]
rwrwrwrwrwrwrwrw
00000000


15141312111098
SMP15[2:0] SMP14[2:0] SMP13[2:0] SMP12[2:0]
rwrwrwrwrwrwrwrw
00000000
76543210
SMP12[2:0] SMP11[2:0] SMP10[2:0]
rwrwrwrwrwrwrwrw
00000000


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 */