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


Биты
Имя
Описание
31:24
Reserved
Must be kept at reset value
Зарезервировано. Должно быть сохранено значение после сброса
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 */