The official Mbed 2 C/C++ SDK provides the software platform and libraries to build your applications.

Dependents:   hello SerialTestv11 SerialTestv12 Sierpinski ... more

mbed 2

This is the mbed 2 library. If you'd like to learn about Mbed OS please see the mbed-os docs.

Committer:
AnnaBridge
Date:
Wed Feb 20 20:53:29 2019 +0000
Revision:
172:65be27845400
Parent:
171:3a7713b1edbc
mbed library release version 165

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AnnaBridge 171:3a7713b1edbc 1 /**
AnnaBridge 171:3a7713b1edbc 2 ******************************************************************************
AnnaBridge 171:3a7713b1edbc 3 * @file stm32l1xx_ll_adc.h
AnnaBridge 171:3a7713b1edbc 4 * @author MCD Application Team
AnnaBridge 171:3a7713b1edbc 5 * @brief Header file of ADC LL module.
AnnaBridge 171:3a7713b1edbc 6 ******************************************************************************
AnnaBridge 171:3a7713b1edbc 7 * @attention
AnnaBridge 171:3a7713b1edbc 8 *
AnnaBridge 171:3a7713b1edbc 9 * <h2><center>&copy; COPYRIGHT(c) 2017 STMicroelectronics</center></h2>
AnnaBridge 171:3a7713b1edbc 10 *
AnnaBridge 171:3a7713b1edbc 11 * Redistribution and use in source and binary forms, with or without modification,
AnnaBridge 171:3a7713b1edbc 12 * are permitted provided that the following conditions are met:
AnnaBridge 171:3a7713b1edbc 13 * 1. Redistributions of source code must retain the above copyright notice,
AnnaBridge 171:3a7713b1edbc 14 * this list of conditions and the following disclaimer.
AnnaBridge 171:3a7713b1edbc 15 * 2. Redistributions in binary form must reproduce the above copyright notice,
AnnaBridge 171:3a7713b1edbc 16 * this list of conditions and the following disclaimer in the documentation
AnnaBridge 171:3a7713b1edbc 17 * and/or other materials provided with the distribution.
AnnaBridge 171:3a7713b1edbc 18 * 3. Neither the name of STMicroelectronics nor the names of its contributors
AnnaBridge 171:3a7713b1edbc 19 * may be used to endorse or promote products derived from this software
AnnaBridge 171:3a7713b1edbc 20 * without specific prior written permission.
AnnaBridge 171:3a7713b1edbc 21 *
AnnaBridge 171:3a7713b1edbc 22 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AnnaBridge 171:3a7713b1edbc 23 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
AnnaBridge 171:3a7713b1edbc 24 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
AnnaBridge 171:3a7713b1edbc 25 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
AnnaBridge 171:3a7713b1edbc 26 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
AnnaBridge 171:3a7713b1edbc 27 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
AnnaBridge 171:3a7713b1edbc 28 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
AnnaBridge 171:3a7713b1edbc 29 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
AnnaBridge 171:3a7713b1edbc 30 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
AnnaBridge 171:3a7713b1edbc 31 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
AnnaBridge 171:3a7713b1edbc 32 *
AnnaBridge 171:3a7713b1edbc 33 ******************************************************************************
AnnaBridge 171:3a7713b1edbc 34 */
AnnaBridge 171:3a7713b1edbc 35
AnnaBridge 171:3a7713b1edbc 36 /* Define to prevent recursive inclusion -------------------------------------*/
AnnaBridge 171:3a7713b1edbc 37 #ifndef __STM32L1xx_LL_ADC_H
AnnaBridge 171:3a7713b1edbc 38 #define __STM32L1xx_LL_ADC_H
AnnaBridge 171:3a7713b1edbc 39
AnnaBridge 171:3a7713b1edbc 40 #ifdef __cplusplus
AnnaBridge 171:3a7713b1edbc 41 extern "C" {
AnnaBridge 171:3a7713b1edbc 42 #endif
AnnaBridge 171:3a7713b1edbc 43
AnnaBridge 171:3a7713b1edbc 44 /* Includes ------------------------------------------------------------------*/
AnnaBridge 171:3a7713b1edbc 45 #include "stm32l1xx.h"
AnnaBridge 171:3a7713b1edbc 46
AnnaBridge 171:3a7713b1edbc 47 /** @addtogroup STM32L1xx_LL_Driver
AnnaBridge 171:3a7713b1edbc 48 * @{
AnnaBridge 171:3a7713b1edbc 49 */
AnnaBridge 171:3a7713b1edbc 50
AnnaBridge 171:3a7713b1edbc 51 #if defined (ADC1)
AnnaBridge 171:3a7713b1edbc 52
AnnaBridge 171:3a7713b1edbc 53 /** @defgroup ADC_LL ADC
AnnaBridge 171:3a7713b1edbc 54 * @{
AnnaBridge 171:3a7713b1edbc 55 */
AnnaBridge 171:3a7713b1edbc 56
AnnaBridge 171:3a7713b1edbc 57 /* Private types -------------------------------------------------------------*/
AnnaBridge 171:3a7713b1edbc 58 /* Private variables ---------------------------------------------------------*/
AnnaBridge 171:3a7713b1edbc 59
AnnaBridge 171:3a7713b1edbc 60 /* Private constants ---------------------------------------------------------*/
AnnaBridge 171:3a7713b1edbc 61 /** @defgroup ADC_LL_Private_Constants ADC Private Constants
AnnaBridge 171:3a7713b1edbc 62 * @{
AnnaBridge 171:3a7713b1edbc 63 */
AnnaBridge 171:3a7713b1edbc 64
AnnaBridge 171:3a7713b1edbc 65 /* Internal mask for ADC group regular sequencer: */
AnnaBridge 171:3a7713b1edbc 66 /* To select into literal LL_ADC_REG_RANK_x the relevant bits for: */
AnnaBridge 171:3a7713b1edbc 67 /* - sequencer register offset */
AnnaBridge 171:3a7713b1edbc 68 /* - sequencer rank bits position into the selected register */
AnnaBridge 171:3a7713b1edbc 69
AnnaBridge 171:3a7713b1edbc 70 /* Internal register offset for ADC group regular sequencer configuration */
AnnaBridge 171:3a7713b1edbc 71 /* (offset placed into a spare area of literal definition) */
AnnaBridge 171:3a7713b1edbc 72 #define ADC_SQR1_REGOFFSET 0x00000000U
AnnaBridge 171:3a7713b1edbc 73 #define ADC_SQR2_REGOFFSET 0x00000100U
AnnaBridge 171:3a7713b1edbc 74 #define ADC_SQR3_REGOFFSET 0x00000200U
AnnaBridge 171:3a7713b1edbc 75 #define ADC_SQR4_REGOFFSET 0x00000300U
AnnaBridge 171:3a7713b1edbc 76 #define ADC_SQR5_REGOFFSET 0x00000400U
AnnaBridge 171:3a7713b1edbc 77
AnnaBridge 171:3a7713b1edbc 78 #define ADC_REG_SQRX_REGOFFSET_MASK (ADC_SQR1_REGOFFSET | ADC_SQR2_REGOFFSET | ADC_SQR3_REGOFFSET | ADC_SQR4_REGOFFSET | ADC_SQR5_REGOFFSET)
AnnaBridge 171:3a7713b1edbc 79 #define ADC_REG_RANK_ID_SQRX_MASK (ADC_CHANNEL_ID_NUMBER_MASK_POSBIT0)
AnnaBridge 171:3a7713b1edbc 80
AnnaBridge 171:3a7713b1edbc 81 /* Definition of ADC group regular sequencer bits information to be inserted */
AnnaBridge 171:3a7713b1edbc 82 /* into ADC group regular sequencer ranks literals definition. */
AnnaBridge 171:3a7713b1edbc 83 #define ADC_REG_RANK_1_SQRX_BITOFFSET_POS ( 0U) /* Value equivalent to POSITION_VAL(ADC_SQR5_SQ1) */
AnnaBridge 171:3a7713b1edbc 84 #define ADC_REG_RANK_2_SQRX_BITOFFSET_POS ( 5U) /* Value equivalent to POSITION_VAL(ADC_SQR5_SQ2) */
AnnaBridge 171:3a7713b1edbc 85 #define ADC_REG_RANK_3_SQRX_BITOFFSET_POS (10U) /* Value equivalent to POSITION_VAL(ADC_SQR5_SQ3) */
AnnaBridge 171:3a7713b1edbc 86 #define ADC_REG_RANK_4_SQRX_BITOFFSET_POS (15U) /* Value equivalent to POSITION_VAL(ADC_SQR5_SQ4) */
AnnaBridge 171:3a7713b1edbc 87 #define ADC_REG_RANK_5_SQRX_BITOFFSET_POS (20U) /* Value equivalent to POSITION_VAL(ADC_SQR5_SQ5) */
AnnaBridge 171:3a7713b1edbc 88 #define ADC_REG_RANK_6_SQRX_BITOFFSET_POS (25U) /* Value equivalent to POSITION_VAL(ADC_SQR5_SQ6) */
AnnaBridge 171:3a7713b1edbc 89 #define ADC_REG_RANK_7_SQRX_BITOFFSET_POS ( 0U) /* Value equivalent to POSITION_VAL(ADC_SQR4_SQ7) */
AnnaBridge 171:3a7713b1edbc 90 #define ADC_REG_RANK_8_SQRX_BITOFFSET_POS ( 5U) /* Value equivalent to POSITION_VAL(ADC_SQR4_SQ8) */
AnnaBridge 171:3a7713b1edbc 91 #define ADC_REG_RANK_9_SQRX_BITOFFSET_POS (10U) /* Value equivalent to POSITION_VAL(ADC_SQR4_SQ9) */
AnnaBridge 171:3a7713b1edbc 92 #define ADC_REG_RANK_10_SQRX_BITOFFSET_POS (15U) /* Value equivalent to POSITION_VAL(ADC_SQR4_SQ10) */
AnnaBridge 171:3a7713b1edbc 93 #define ADC_REG_RANK_11_SQRX_BITOFFSET_POS (20U) /* Value equivalent to POSITION_VAL(ADC_SQR4_SQ11) */
AnnaBridge 171:3a7713b1edbc 94 #define ADC_REG_RANK_12_SQRX_BITOFFSET_POS (25U) /* Value equivalent to POSITION_VAL(ADC_SQR4_SQ12) */
AnnaBridge 171:3a7713b1edbc 95 #define ADC_REG_RANK_13_SQRX_BITOFFSET_POS ( 0U) /* Value equivalent to POSITION_VAL(ADC_SQR3_SQ13) */
AnnaBridge 171:3a7713b1edbc 96 #define ADC_REG_RANK_14_SQRX_BITOFFSET_POS ( 5U) /* Value equivalent to POSITION_VAL(ADC_SQR3_SQ14) */
AnnaBridge 171:3a7713b1edbc 97 #define ADC_REG_RANK_15_SQRX_BITOFFSET_POS (10U) /* Value equivalent to POSITION_VAL(ADC_SQR3_SQ15) */
AnnaBridge 171:3a7713b1edbc 98 #define ADC_REG_RANK_16_SQRX_BITOFFSET_POS (15U) /* Value equivalent to POSITION_VAL(ADC_SQR3_SQ16) */
AnnaBridge 171:3a7713b1edbc 99 #define ADC_REG_RANK_17_SQRX_BITOFFSET_POS (20U) /* Value equivalent to POSITION_VAL(ADC_SQR3_SQ17) */
AnnaBridge 171:3a7713b1edbc 100 #define ADC_REG_RANK_18_SQRX_BITOFFSET_POS (25U) /* Value equivalent to POSITION_VAL(ADC_SQR3_SQ18) */
AnnaBridge 171:3a7713b1edbc 101 #define ADC_REG_RANK_19_SQRX_BITOFFSET_POS ( 0U) /* Value equivalent to POSITION_VAL(ADC_SQR2_SQ29) */
AnnaBridge 171:3a7713b1edbc 102 #define ADC_REG_RANK_20_SQRX_BITOFFSET_POS ( 5U) /* Value equivalent to POSITION_VAL(ADC_SQR2_SQ20) */
AnnaBridge 171:3a7713b1edbc 103 #define ADC_REG_RANK_21_SQRX_BITOFFSET_POS (10U) /* Value equivalent to POSITION_VAL(ADC_SQR2_SQ21) */
AnnaBridge 171:3a7713b1edbc 104 #define ADC_REG_RANK_22_SQRX_BITOFFSET_POS (15U) /* Value equivalent to POSITION_VAL(ADC_SQR2_SQ22) */
AnnaBridge 171:3a7713b1edbc 105 #define ADC_REG_RANK_23_SQRX_BITOFFSET_POS (20U) /* Value equivalent to POSITION_VAL(ADC_SQR2_SQ23) */
AnnaBridge 171:3a7713b1edbc 106 #define ADC_REG_RANK_24_SQRX_BITOFFSET_POS (25U) /* Value equivalent to POSITION_VAL(ADC_SQR2_SQ24) */
AnnaBridge 171:3a7713b1edbc 107 #define ADC_REG_RANK_25_SQRX_BITOFFSET_POS ( 0U) /* Value equivalent to POSITION_VAL(ADC_SQR1_SQ25) */
AnnaBridge 171:3a7713b1edbc 108 #define ADC_REG_RANK_26_SQRX_BITOFFSET_POS ( 5U) /* Value equivalent to POSITION_VAL(ADC_SQR1_SQ26) */
AnnaBridge 171:3a7713b1edbc 109 #define ADC_REG_RANK_27_SQRX_BITOFFSET_POS (10U) /* Value equivalent to POSITION_VAL(ADC_SQR1_SQ27) */
AnnaBridge 171:3a7713b1edbc 110 #if defined(ADC_SQR1_SQ28)
AnnaBridge 171:3a7713b1edbc 111 #define ADC_REG_RANK_28_SQRX_BITOFFSET_POS (15U) /* Value equivalent to POSITION_VAL(ADC_SQR1_SQ28) */
AnnaBridge 171:3a7713b1edbc 112 #endif
AnnaBridge 171:3a7713b1edbc 113
AnnaBridge 171:3a7713b1edbc 114
AnnaBridge 171:3a7713b1edbc 115
AnnaBridge 171:3a7713b1edbc 116 /* Internal mask for ADC group injected sequencer: */
AnnaBridge 171:3a7713b1edbc 117 /* To select into literal LL_ADC_INJ_RANK_x the relevant bits for: */
AnnaBridge 171:3a7713b1edbc 118 /* - data register offset */
AnnaBridge 171:3a7713b1edbc 119 /* - offset register offset */
AnnaBridge 171:3a7713b1edbc 120 /* - sequencer rank bits position into the selected register */
AnnaBridge 171:3a7713b1edbc 121
AnnaBridge 171:3a7713b1edbc 122 /* Internal register offset for ADC group injected data register */
AnnaBridge 171:3a7713b1edbc 123 /* (offset placed into a spare area of literal definition) */
AnnaBridge 171:3a7713b1edbc 124 #define ADC_JDR1_REGOFFSET 0x00000000U
AnnaBridge 171:3a7713b1edbc 125 #define ADC_JDR2_REGOFFSET 0x00000100U
AnnaBridge 171:3a7713b1edbc 126 #define ADC_JDR3_REGOFFSET 0x00000200U
AnnaBridge 171:3a7713b1edbc 127 #define ADC_JDR4_REGOFFSET 0x00000300U
AnnaBridge 171:3a7713b1edbc 128
AnnaBridge 171:3a7713b1edbc 129 /* Internal register offset for ADC group injected offset configuration */
AnnaBridge 171:3a7713b1edbc 130 /* (offset placed into a spare area of literal definition) */
AnnaBridge 171:3a7713b1edbc 131 #define ADC_JOFR1_REGOFFSET 0x00000000U
AnnaBridge 171:3a7713b1edbc 132 #define ADC_JOFR2_REGOFFSET 0x00001000U
AnnaBridge 171:3a7713b1edbc 133 #define ADC_JOFR3_REGOFFSET 0x00002000U
AnnaBridge 171:3a7713b1edbc 134 #define ADC_JOFR4_REGOFFSET 0x00003000U
AnnaBridge 171:3a7713b1edbc 135
AnnaBridge 171:3a7713b1edbc 136 #define ADC_INJ_JDRX_REGOFFSET_MASK (ADC_JDR1_REGOFFSET | ADC_JDR2_REGOFFSET | ADC_JDR3_REGOFFSET | ADC_JDR4_REGOFFSET)
AnnaBridge 171:3a7713b1edbc 137 #define ADC_INJ_JOFRX_REGOFFSET_MASK (ADC_JOFR1_REGOFFSET | ADC_JOFR2_REGOFFSET | ADC_JOFR3_REGOFFSET | ADC_JOFR4_REGOFFSET)
AnnaBridge 171:3a7713b1edbc 138 #define ADC_INJ_RANK_ID_JSQR_MASK (ADC_CHANNEL_ID_NUMBER_MASK_POSBIT0)
AnnaBridge 171:3a7713b1edbc 139
AnnaBridge 171:3a7713b1edbc 140 /* Definition of ADC group injected sequencer bits information to be inserted */
AnnaBridge 171:3a7713b1edbc 141 /* into ADC group injected sequencer ranks literals definition. */
AnnaBridge 171:3a7713b1edbc 142 #define ADC_INJ_RANK_1_JSQR_BITOFFSET_POS ( 0U) /* Value equivalent to POSITION_VAL(ADC_JSQR_JSQ1) */
AnnaBridge 171:3a7713b1edbc 143 #define ADC_INJ_RANK_2_JSQR_BITOFFSET_POS ( 5U) /* Value equivalent to POSITION_VAL(ADC_JSQR_JSQ2) */
AnnaBridge 171:3a7713b1edbc 144 #define ADC_INJ_RANK_3_JSQR_BITOFFSET_POS (10U) /* Value equivalent to POSITION_VAL(ADC_JSQR_JSQ3) */
AnnaBridge 171:3a7713b1edbc 145 #define ADC_INJ_RANK_4_JSQR_BITOFFSET_POS (15U) /* Value equivalent to POSITION_VAL(ADC_JSQR_JSQ4) */
AnnaBridge 171:3a7713b1edbc 146
AnnaBridge 171:3a7713b1edbc 147
AnnaBridge 171:3a7713b1edbc 148
AnnaBridge 171:3a7713b1edbc 149 /* Internal mask for ADC group regular trigger: */
AnnaBridge 171:3a7713b1edbc 150 /* To select into literal LL_ADC_REG_TRIG_x the relevant bits for: */
AnnaBridge 171:3a7713b1edbc 151 /* - regular trigger source */
AnnaBridge 171:3a7713b1edbc 152 /* - regular trigger edge */
AnnaBridge 171:3a7713b1edbc 153 #define ADC_REG_TRIG_EXT_EDGE_DEFAULT (ADC_CR2_EXTEN_0) /* Trigger edge set to rising edge (default setting for compatibility with some ADC on other STM32 families having this setting set by HW default value) */
AnnaBridge 171:3a7713b1edbc 154
AnnaBridge 171:3a7713b1edbc 155 /* Mask containing trigger source masks for each of possible */
AnnaBridge 171:3a7713b1edbc 156 /* trigger edge selection duplicated with shifts [0; 4; 8; 12] */
AnnaBridge 171:3a7713b1edbc 157 /* corresponding to {SW start; ext trigger; ext trigger; ext trigger}. */
AnnaBridge 171:3a7713b1edbc 158 #define ADC_REG_TRIG_SOURCE_MASK (((LL_ADC_REG_TRIG_SOFTWARE & ADC_CR2_EXTSEL) >> (4U * 0U)) | \
AnnaBridge 171:3a7713b1edbc 159 ((ADC_CR2_EXTSEL) >> (4U * 1U)) | \
AnnaBridge 171:3a7713b1edbc 160 ((ADC_CR2_EXTSEL) >> (4U * 2U)) | \
AnnaBridge 171:3a7713b1edbc 161 ((ADC_CR2_EXTSEL) >> (4U * 3U)))
AnnaBridge 171:3a7713b1edbc 162
AnnaBridge 171:3a7713b1edbc 163 /* Mask containing trigger edge masks for each of possible */
AnnaBridge 171:3a7713b1edbc 164 /* trigger edge selection duplicated with shifts [0; 4; 8; 12] */
AnnaBridge 171:3a7713b1edbc 165 /* corresponding to {SW start; ext trigger; ext trigger; ext trigger}. */
AnnaBridge 171:3a7713b1edbc 166 #define ADC_REG_TRIG_EDGE_MASK (((LL_ADC_REG_TRIG_SOFTWARE & ADC_CR2_EXTEN) >> (4U * 0U)) | \
AnnaBridge 171:3a7713b1edbc 167 ((ADC_REG_TRIG_EXT_EDGE_DEFAULT) >> (4U * 1U)) | \
AnnaBridge 171:3a7713b1edbc 168 ((ADC_REG_TRIG_EXT_EDGE_DEFAULT) >> (4U * 2U)) | \
AnnaBridge 171:3a7713b1edbc 169 ((ADC_REG_TRIG_EXT_EDGE_DEFAULT) >> (4U * 3U)))
AnnaBridge 171:3a7713b1edbc 170
AnnaBridge 171:3a7713b1edbc 171 /* Definition of ADC group regular trigger bits information. */
AnnaBridge 171:3a7713b1edbc 172 #define ADC_REG_TRIG_EXTSEL_BITOFFSET_POS (24U) /* Value equivalent to POSITION_VAL(ADC_CR2_EXTSEL) */
AnnaBridge 171:3a7713b1edbc 173 #define ADC_REG_TRIG_EXTEN_BITOFFSET_POS (28U) /* Value equivalent to POSITION_VAL(ADC_CR2_EXTEN) */
AnnaBridge 171:3a7713b1edbc 174
AnnaBridge 171:3a7713b1edbc 175
AnnaBridge 171:3a7713b1edbc 176
AnnaBridge 171:3a7713b1edbc 177 /* Internal mask for ADC group injected trigger: */
AnnaBridge 171:3a7713b1edbc 178 /* To select into literal LL_ADC_INJ_TRIG_x the relevant bits for: */
AnnaBridge 171:3a7713b1edbc 179 /* - injected trigger source */
AnnaBridge 171:3a7713b1edbc 180 /* - injected trigger edge */
AnnaBridge 171:3a7713b1edbc 181 #define ADC_INJ_TRIG_EXT_EDGE_DEFAULT (ADC_CR2_JEXTEN_0) /* Trigger edge set to rising edge (default setting for compatibility with some ADC on other STM32 families having this setting set by HW default value) */
AnnaBridge 171:3a7713b1edbc 182
AnnaBridge 171:3a7713b1edbc 183 /* Mask containing trigger source masks for each of possible */
AnnaBridge 171:3a7713b1edbc 184 /* trigger edge selection duplicated with shifts [0; 4; 8; 12] */
AnnaBridge 171:3a7713b1edbc 185 /* corresponding to {SW start; ext trigger; ext trigger; ext trigger}. */
AnnaBridge 171:3a7713b1edbc 186 #define ADC_INJ_TRIG_SOURCE_MASK (((LL_ADC_REG_TRIG_SOFTWARE & ADC_CR2_JEXTSEL) >> (4U * 0U)) | \
AnnaBridge 171:3a7713b1edbc 187 ((ADC_CR2_JEXTSEL) >> (4U * 1U)) | \
AnnaBridge 171:3a7713b1edbc 188 ((ADC_CR2_JEXTSEL) >> (4U * 2U)) | \
AnnaBridge 171:3a7713b1edbc 189 ((ADC_CR2_JEXTSEL) >> (4U * 3U)))
AnnaBridge 171:3a7713b1edbc 190
AnnaBridge 171:3a7713b1edbc 191 /* Mask containing trigger edge masks for each of possible */
AnnaBridge 171:3a7713b1edbc 192 /* trigger edge selection duplicated with shifts [0; 4; 8; 12] */
AnnaBridge 171:3a7713b1edbc 193 /* corresponding to {SW start; ext trigger; ext trigger; ext trigger}. */
AnnaBridge 171:3a7713b1edbc 194 #define ADC_INJ_TRIG_EDGE_MASK (((LL_ADC_INJ_TRIG_SOFTWARE & ADC_CR2_JEXTEN) >> (4U * 0U)) | \
AnnaBridge 171:3a7713b1edbc 195 ((ADC_INJ_TRIG_EXT_EDGE_DEFAULT) >> (4U * 1U)) | \
AnnaBridge 171:3a7713b1edbc 196 ((ADC_INJ_TRIG_EXT_EDGE_DEFAULT) >> (4U * 2U)) | \
AnnaBridge 171:3a7713b1edbc 197 ((ADC_INJ_TRIG_EXT_EDGE_DEFAULT) >> (4U * 3U)))
AnnaBridge 171:3a7713b1edbc 198
AnnaBridge 171:3a7713b1edbc 199 /* Definition of ADC group injected trigger bits information. */
AnnaBridge 171:3a7713b1edbc 200 #define ADC_INJ_TRIG_EXTSEL_BITOFFSET_POS (16U) /* Value equivalent to POSITION_VAL(ADC_CR2_JEXTSEL) */
AnnaBridge 171:3a7713b1edbc 201 #define ADC_INJ_TRIG_EXTEN_BITOFFSET_POS (20U) /* Value equivalent to POSITION_VAL(ADC_CR2_JEXTEN) */
AnnaBridge 171:3a7713b1edbc 202
AnnaBridge 171:3a7713b1edbc 203
AnnaBridge 171:3a7713b1edbc 204
AnnaBridge 171:3a7713b1edbc 205
AnnaBridge 171:3a7713b1edbc 206
AnnaBridge 171:3a7713b1edbc 207
AnnaBridge 171:3a7713b1edbc 208 /* Internal mask for ADC channel: */
AnnaBridge 171:3a7713b1edbc 209 /* To select into literal LL_ADC_CHANNEL_x the relevant bits for: */
AnnaBridge 171:3a7713b1edbc 210 /* - channel identifier defined by number */
AnnaBridge 171:3a7713b1edbc 211 /* - channel differentiation between external channels (connected to */
AnnaBridge 171:3a7713b1edbc 212 /* GPIO pins) and internal channels (connected to internal paths) */
AnnaBridge 171:3a7713b1edbc 213 /* - channel sampling time defined by SMPRx register offset */
AnnaBridge 171:3a7713b1edbc 214 /* and SMPx bits positions into SMPRx register */
AnnaBridge 171:3a7713b1edbc 215 #define ADC_CHANNEL_ID_NUMBER_MASK (ADC_CR1_AWDCH)
AnnaBridge 171:3a7713b1edbc 216 #define ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS ( 0U)/* Value equivalent to POSITION_VAL(ADC_CHANNEL_ID_NUMBER_MASK) */
AnnaBridge 171:3a7713b1edbc 217 #define ADC_CHANNEL_ID_MASK (ADC_CHANNEL_ID_NUMBER_MASK | ADC_CHANNEL_ID_INTERNAL_CH_MASK)
AnnaBridge 171:3a7713b1edbc 218 /* Equivalent mask of ADC_CHANNEL_NUMBER_MASK aligned on register LSB (bit 0) */
AnnaBridge 171:3a7713b1edbc 219 #define ADC_CHANNEL_ID_NUMBER_MASK_POSBIT0 0x0000001FU /* Equivalent to shift: (ADC_CHANNEL_NUMBER_MASK >> POSITION_VAL(ADC_CHANNEL_NUMBER_MASK)) */
AnnaBridge 171:3a7713b1edbc 220
AnnaBridge 171:3a7713b1edbc 221 /* Channel differentiation between external and internal channels */
AnnaBridge 171:3a7713b1edbc 222 #define ADC_CHANNEL_ID_INTERNAL_CH 0x80000000U /* Marker of internal channel */
AnnaBridge 171:3a7713b1edbc 223 #define ADC_CHANNEL_ID_INTERNAL_CH_MASK (ADC_CHANNEL_ID_INTERNAL_CH)
AnnaBridge 171:3a7713b1edbc 224
AnnaBridge 171:3a7713b1edbc 225 /* Internal register offset for ADC channel sampling time configuration */
AnnaBridge 171:3a7713b1edbc 226 /* (offset placed into a spare area of literal definition) */
AnnaBridge 171:3a7713b1edbc 227 #define ADC_SMPR1_REGOFFSET 0x00000000U
AnnaBridge 171:3a7713b1edbc 228 #define ADC_SMPR2_REGOFFSET 0x02000000U
AnnaBridge 171:3a7713b1edbc 229 #define ADC_SMPR3_REGOFFSET 0x04000000U
AnnaBridge 171:3a7713b1edbc 230 #if defined(ADC_SMPR0_SMP31)
AnnaBridge 171:3a7713b1edbc 231 #define ADC_SMPR0_REGOFFSET 0x28000000U /* SMPR0 register offset from SMPR1 is 20 registers. On STM32L1, parameter not available on all devices: only on STM32L1 Cat.4 and Cat.5. */
AnnaBridge 171:3a7713b1edbc 232 #define ADC_CHANNEL_SMPRX_REGOFFSET_MASK (ADC_SMPR1_REGOFFSET | ADC_SMPR2_REGOFFSET | ADC_SMPR3_REGOFFSET | ADC_SMPR0_REGOFFSET)
AnnaBridge 171:3a7713b1edbc 233 #else
AnnaBridge 171:3a7713b1edbc 234 #define ADC_CHANNEL_SMPRX_REGOFFSET_MASK (ADC_SMPR1_REGOFFSET | ADC_SMPR2_REGOFFSET | ADC_SMPR3_REGOFFSET)
AnnaBridge 171:3a7713b1edbc 235 #endif /* ADC_SMPR0_SMP31 */
AnnaBridge 171:3a7713b1edbc 236
AnnaBridge 171:3a7713b1edbc 237 #define ADC_CHANNEL_SMPx_BITOFFSET_MASK 0x01F00000U
AnnaBridge 171:3a7713b1edbc 238 #define ADC_CHANNEL_SMPx_BITOFFSET_POS (20U) /* Value equivalent to POSITION_VAL(ADC_CHANNEL_SMPx_BITOFFSET_MASK) */
AnnaBridge 171:3a7713b1edbc 239
AnnaBridge 171:3a7713b1edbc 240 /* Definition of channels ID number information to be inserted into */
AnnaBridge 171:3a7713b1edbc 241 /* channels literals definition. */
AnnaBridge 171:3a7713b1edbc 242 #define ADC_CHANNEL_0_NUMBER 0x00000000U
AnnaBridge 171:3a7713b1edbc 243 #define ADC_CHANNEL_1_NUMBER ( ADC_CR1_AWDCH_0)
AnnaBridge 171:3a7713b1edbc 244 #define ADC_CHANNEL_2_NUMBER ( ADC_CR1_AWDCH_1 )
AnnaBridge 171:3a7713b1edbc 245 #define ADC_CHANNEL_3_NUMBER ( ADC_CR1_AWDCH_1 | ADC_CR1_AWDCH_0)
AnnaBridge 171:3a7713b1edbc 246 #define ADC_CHANNEL_4_NUMBER ( ADC_CR1_AWDCH_2 )
AnnaBridge 171:3a7713b1edbc 247 #define ADC_CHANNEL_5_NUMBER ( ADC_CR1_AWDCH_2 | ADC_CR1_AWDCH_0)
AnnaBridge 171:3a7713b1edbc 248 #define ADC_CHANNEL_6_NUMBER ( ADC_CR1_AWDCH_2 | ADC_CR1_AWDCH_1 )
AnnaBridge 171:3a7713b1edbc 249 #define ADC_CHANNEL_7_NUMBER ( ADC_CR1_AWDCH_2 | ADC_CR1_AWDCH_1 | ADC_CR1_AWDCH_0)
AnnaBridge 171:3a7713b1edbc 250 #define ADC_CHANNEL_8_NUMBER ( ADC_CR1_AWDCH_3 )
AnnaBridge 171:3a7713b1edbc 251 #define ADC_CHANNEL_9_NUMBER ( ADC_CR1_AWDCH_3 | ADC_CR1_AWDCH_0)
AnnaBridge 171:3a7713b1edbc 252 #define ADC_CHANNEL_10_NUMBER ( ADC_CR1_AWDCH_3 | ADC_CR1_AWDCH_1 )
AnnaBridge 171:3a7713b1edbc 253 #define ADC_CHANNEL_11_NUMBER ( ADC_CR1_AWDCH_3 | ADC_CR1_AWDCH_1 | ADC_CR1_AWDCH_0)
AnnaBridge 171:3a7713b1edbc 254 #define ADC_CHANNEL_12_NUMBER ( ADC_CR1_AWDCH_3 | ADC_CR1_AWDCH_2 )
AnnaBridge 171:3a7713b1edbc 255 #define ADC_CHANNEL_13_NUMBER ( ADC_CR1_AWDCH_3 | ADC_CR1_AWDCH_2 | ADC_CR1_AWDCH_0)
AnnaBridge 171:3a7713b1edbc 256 #define ADC_CHANNEL_14_NUMBER ( ADC_CR1_AWDCH_3 | ADC_CR1_AWDCH_2 | ADC_CR1_AWDCH_1 )
AnnaBridge 171:3a7713b1edbc 257 #define ADC_CHANNEL_15_NUMBER ( ADC_CR1_AWDCH_3 | ADC_CR1_AWDCH_2 | ADC_CR1_AWDCH_1 | ADC_CR1_AWDCH_0)
AnnaBridge 171:3a7713b1edbc 258 #define ADC_CHANNEL_16_NUMBER (ADC_CR1_AWDCH_4 )
AnnaBridge 171:3a7713b1edbc 259 #define ADC_CHANNEL_17_NUMBER (ADC_CR1_AWDCH_4 | ADC_CR1_AWDCH_0)
AnnaBridge 171:3a7713b1edbc 260 #define ADC_CHANNEL_18_NUMBER (ADC_CR1_AWDCH_4 | ADC_CR1_AWDCH_1 )
AnnaBridge 171:3a7713b1edbc 261 #define ADC_CHANNEL_19_NUMBER (ADC_CR1_AWDCH_4 | ADC_CR1_AWDCH_1 | ADC_CR1_AWDCH_0)
AnnaBridge 171:3a7713b1edbc 262 #define ADC_CHANNEL_20_NUMBER (ADC_CR1_AWDCH_4 | ADC_CR1_AWDCH_2 )
AnnaBridge 171:3a7713b1edbc 263 #define ADC_CHANNEL_21_NUMBER (ADC_CR1_AWDCH_4 | ADC_CR1_AWDCH_2 | ADC_CR1_AWDCH_0)
AnnaBridge 171:3a7713b1edbc 264 #define ADC_CHANNEL_22_NUMBER (ADC_CR1_AWDCH_4 | ADC_CR1_AWDCH_2 | ADC_CR1_AWDCH_1 )
AnnaBridge 171:3a7713b1edbc 265 #define ADC_CHANNEL_23_NUMBER (ADC_CR1_AWDCH_4 | ADC_CR1_AWDCH_2 | ADC_CR1_AWDCH_1 | ADC_CR1_AWDCH_0)
AnnaBridge 171:3a7713b1edbc 266 #define ADC_CHANNEL_24_NUMBER (ADC_CR1_AWDCH_4 | ADC_CR1_AWDCH_3 )
AnnaBridge 171:3a7713b1edbc 267 #define ADC_CHANNEL_25_NUMBER (ADC_CR1_AWDCH_4 | ADC_CR1_AWDCH_3 | ADC_CR1_AWDCH_0)
AnnaBridge 171:3a7713b1edbc 268 #define ADC_CHANNEL_26_NUMBER (ADC_CR1_AWDCH_4 | ADC_CR1_AWDCH_3 | ADC_CR1_AWDCH_1 )
AnnaBridge 171:3a7713b1edbc 269 #if defined(ADC_SMPR0_SMP31)
AnnaBridge 171:3a7713b1edbc 270 #define ADC_CHANNEL_27_NUMBER (ADC_CR1_AWDCH_4 | ADC_CR1_AWDCH_3 | ADC_CR1_AWDCH_1 | ADC_CR1_AWDCH_0)
AnnaBridge 171:3a7713b1edbc 271 #define ADC_CHANNEL_28_NUMBER (ADC_CR1_AWDCH_4 | ADC_CR1_AWDCH_3 | ADC_CR1_AWDCH_2 )
AnnaBridge 171:3a7713b1edbc 272 #define ADC_CHANNEL_29_NUMBER (ADC_CR1_AWDCH_4 | ADC_CR1_AWDCH_3 | ADC_CR1_AWDCH_2 | ADC_CR1_AWDCH_0)
AnnaBridge 171:3a7713b1edbc 273 #define ADC_CHANNEL_30_NUMBER (ADC_CR1_AWDCH_4 | ADC_CR1_AWDCH_3 | ADC_CR1_AWDCH_2 | ADC_CR1_AWDCH_1 )
AnnaBridge 171:3a7713b1edbc 274 #define ADC_CHANNEL_31_NUMBER (ADC_CR1_AWDCH_4 | ADC_CR1_AWDCH_3 | ADC_CR1_AWDCH_2 | ADC_CR1_AWDCH_1 | ADC_CR1_AWDCH_0)
AnnaBridge 171:3a7713b1edbc 275 #endif /* ADC_SMPR0_SMP31 */
AnnaBridge 171:3a7713b1edbc 276
AnnaBridge 171:3a7713b1edbc 277 /* Definition of channels sampling time information to be inserted into */
AnnaBridge 171:3a7713b1edbc 278 /* channels literals definition. */
AnnaBridge 171:3a7713b1edbc 279 #define ADC_CHANNEL_0_SMP (ADC_SMPR3_REGOFFSET | (( 0U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR3_SMP0) */
AnnaBridge 171:3a7713b1edbc 280 #define ADC_CHANNEL_1_SMP (ADC_SMPR3_REGOFFSET | (( 3U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR3_SMP1) */
AnnaBridge 171:3a7713b1edbc 281 #define ADC_CHANNEL_2_SMP (ADC_SMPR3_REGOFFSET | (( 6U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR3_SMP2) */
AnnaBridge 171:3a7713b1edbc 282 #define ADC_CHANNEL_3_SMP (ADC_SMPR3_REGOFFSET | (( 9U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR3_SMP3) */
AnnaBridge 171:3a7713b1edbc 283 #define ADC_CHANNEL_4_SMP (ADC_SMPR3_REGOFFSET | ((12U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR3_SMP4) */
AnnaBridge 171:3a7713b1edbc 284 #define ADC_CHANNEL_5_SMP (ADC_SMPR3_REGOFFSET | ((15U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR3_SMP5) */
AnnaBridge 171:3a7713b1edbc 285 #define ADC_CHANNEL_6_SMP (ADC_SMPR3_REGOFFSET | ((18U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR3_SMP6) */
AnnaBridge 171:3a7713b1edbc 286 #define ADC_CHANNEL_7_SMP (ADC_SMPR3_REGOFFSET | ((21U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR3_SMP7) */
AnnaBridge 171:3a7713b1edbc 287 #define ADC_CHANNEL_8_SMP (ADC_SMPR3_REGOFFSET | ((24U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR3_SMP8) */
AnnaBridge 171:3a7713b1edbc 288 #define ADC_CHANNEL_9_SMP (ADC_SMPR3_REGOFFSET | ((27U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR3_SMP9) */
AnnaBridge 171:3a7713b1edbc 289 #define ADC_CHANNEL_10_SMP (ADC_SMPR2_REGOFFSET | (( 0U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR2_SMP10) */
AnnaBridge 171:3a7713b1edbc 290 #define ADC_CHANNEL_11_SMP (ADC_SMPR2_REGOFFSET | (( 3U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR2_SMP11) */
AnnaBridge 171:3a7713b1edbc 291 #define ADC_CHANNEL_12_SMP (ADC_SMPR2_REGOFFSET | (( 6U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR2_SMP12) */
AnnaBridge 171:3a7713b1edbc 292 #define ADC_CHANNEL_13_SMP (ADC_SMPR2_REGOFFSET | (( 9U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR2_SMP13) */
AnnaBridge 171:3a7713b1edbc 293 #define ADC_CHANNEL_14_SMP (ADC_SMPR2_REGOFFSET | ((12U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR2_SMP14) */
AnnaBridge 171:3a7713b1edbc 294 #define ADC_CHANNEL_15_SMP (ADC_SMPR2_REGOFFSET | ((15U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR2_SMP15) */
AnnaBridge 171:3a7713b1edbc 295 #define ADC_CHANNEL_16_SMP (ADC_SMPR2_REGOFFSET | ((18U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR2_SMP16) */
AnnaBridge 171:3a7713b1edbc 296 #define ADC_CHANNEL_17_SMP (ADC_SMPR2_REGOFFSET | ((21U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR2_SMP17) */
AnnaBridge 171:3a7713b1edbc 297 #define ADC_CHANNEL_18_SMP (ADC_SMPR2_REGOFFSET | ((24U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR2_SMP18) */
AnnaBridge 171:3a7713b1edbc 298 #define ADC_CHANNEL_19_SMP (ADC_SMPR2_REGOFFSET | ((27U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR2_SMP19) */
AnnaBridge 171:3a7713b1edbc 299 #define ADC_CHANNEL_20_SMP (ADC_SMPR1_REGOFFSET | (( 0U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR1_SMP20) */
AnnaBridge 171:3a7713b1edbc 300 #define ADC_CHANNEL_21_SMP (ADC_SMPR1_REGOFFSET | (( 3U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR1_SMP21) */
AnnaBridge 171:3a7713b1edbc 301 #define ADC_CHANNEL_22_SMP (ADC_SMPR1_REGOFFSET | (( 6U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR1_SMP22) */
AnnaBridge 171:3a7713b1edbc 302 #define ADC_CHANNEL_23_SMP (ADC_SMPR1_REGOFFSET | (( 9U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR1_SMP23) */
AnnaBridge 171:3a7713b1edbc 303 #define ADC_CHANNEL_24_SMP (ADC_SMPR1_REGOFFSET | ((12U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR1_SMP24) */
AnnaBridge 171:3a7713b1edbc 304 #define ADC_CHANNEL_25_SMP (ADC_SMPR1_REGOFFSET | ((15U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR1_SMP25) */
AnnaBridge 171:3a7713b1edbc 305 #define ADC_CHANNEL_26_SMP (ADC_SMPR1_REGOFFSET | ((18U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR1_SMP26) */
AnnaBridge 171:3a7713b1edbc 306 #if defined(ADC_SMPR0_SMP31)
AnnaBridge 171:3a7713b1edbc 307 #define ADC_CHANNEL_27_SMP (ADC_SMPR1_REGOFFSET | ((21U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR1_SMP27) */
AnnaBridge 171:3a7713b1edbc 308 #define ADC_CHANNEL_28_SMP (ADC_SMPR1_REGOFFSET | ((24U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR1_SMP28) */
AnnaBridge 171:3a7713b1edbc 309 #define ADC_CHANNEL_29_SMP (ADC_SMPR1_REGOFFSET | ((27U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR1_SMP19) */
AnnaBridge 171:3a7713b1edbc 310 #define ADC_CHANNEL_30_SMP (ADC_SMPR0_REGOFFSET | (( 0U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR0_SMP30) */
AnnaBridge 171:3a7713b1edbc 311 #define ADC_CHANNEL_31_SMP (ADC_SMPR0_REGOFFSET | (( 3U) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) /* Value shifted is equivalent to POSITION_VAL(ADC_SMPR0_SMP31) */
AnnaBridge 171:3a7713b1edbc 312 #endif /* ADC_SMPR0_SMP31 */
AnnaBridge 171:3a7713b1edbc 313
AnnaBridge 171:3a7713b1edbc 314
AnnaBridge 171:3a7713b1edbc 315 /* Internal mask for ADC analog watchdog: */
AnnaBridge 171:3a7713b1edbc 316 /* To select into literals LL_ADC_AWD_CHANNELx_xxx the relevant bits for: */
AnnaBridge 171:3a7713b1edbc 317 /* (concatenation of multiple bits used in different analog watchdogs, */
AnnaBridge 171:3a7713b1edbc 318 /* (feature of several watchdogs not available on all STM32 families)). */
AnnaBridge 171:3a7713b1edbc 319 /* - analog watchdog 1: monitored channel defined by number, */
AnnaBridge 171:3a7713b1edbc 320 /* selection of ADC group (ADC groups regular and-or injected). */
AnnaBridge 171:3a7713b1edbc 321
AnnaBridge 171:3a7713b1edbc 322 /* Internal register offset for ADC analog watchdog channel configuration */
AnnaBridge 171:3a7713b1edbc 323 #define ADC_AWD_CR1_REGOFFSET 0x00000000U
AnnaBridge 171:3a7713b1edbc 324
AnnaBridge 171:3a7713b1edbc 325 #define ADC_AWD_CRX_REGOFFSET_MASK (ADC_AWD_CR1_REGOFFSET)
AnnaBridge 171:3a7713b1edbc 326
AnnaBridge 171:3a7713b1edbc 327 #define ADC_AWD_CR1_CHANNEL_MASK (ADC_CR1_AWDCH | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL)
AnnaBridge 171:3a7713b1edbc 328 #define ADC_AWD_CR_ALL_CHANNEL_MASK (ADC_AWD_CR1_CHANNEL_MASK)
AnnaBridge 171:3a7713b1edbc 329
AnnaBridge 171:3a7713b1edbc 330 /* Internal register offset for ADC analog watchdog threshold configuration */
AnnaBridge 171:3a7713b1edbc 331 #define ADC_AWD_TR1_HIGH_REGOFFSET 0x00000000U
AnnaBridge 171:3a7713b1edbc 332 #define ADC_AWD_TR1_LOW_REGOFFSET 0x00000001U
AnnaBridge 171:3a7713b1edbc 333 #define ADC_AWD_TRX_REGOFFSET_MASK (ADC_AWD_TR1_HIGH_REGOFFSET | ADC_AWD_TR1_LOW_REGOFFSET)
AnnaBridge 171:3a7713b1edbc 334
AnnaBridge 171:3a7713b1edbc 335
AnnaBridge 171:3a7713b1edbc 336 /* ADC registers bits positions */
AnnaBridge 171:3a7713b1edbc 337 #define ADC_CR1_RES_BITOFFSET_POS (24U) /* Value equivalent to POSITION_VAL(ADC_CR1_RES) */
AnnaBridge 171:3a7713b1edbc 338 #define ADC_TR_HT_BITOFFSET_POS (16U) /* Value equivalent to POSITION_VAL(ADC_TR_HT) */
AnnaBridge 171:3a7713b1edbc 339
AnnaBridge 171:3a7713b1edbc 340
AnnaBridge 171:3a7713b1edbc 341 /* ADC internal channels related definitions */
AnnaBridge 171:3a7713b1edbc 342 /* Internal voltage reference VrefInt */
AnnaBridge 171:3a7713b1edbc 343 #define VREFINT_CAL_ADDR ((uint16_t*) (0x1FF800F8U)) /* Internal voltage reference, address of parameter VREFINT_CAL: VrefInt ADC raw data acquired at temperature 30 DegC (tolerance: +-5 DegC), Vref+ = 3.0 V (tolerance: +-10 mV). */
AnnaBridge 171:3a7713b1edbc 344 #define VREFINT_CAL_VREF ( 3000U) /* Analog voltage reference (Vref+) value with which temperature sensor has been calibrated in production (tolerance: +-10 mV) (unit: mV). */
AnnaBridge 171:3a7713b1edbc 345 /* Temperature sensor */
AnnaBridge 171:3a7713b1edbc 346 #define TEMPSENSOR_CAL1_ADDR ((uint16_t*) (0x1FF800FAU)) /* Internal temperature sensor, address of parameter TS_CAL1: On STM32L1, temperature sensor ADC raw data acquired at temperature 30 DegC (tolerance: +-5 DegC), Vref+ = 3.0 V (tolerance: +-10 mV). */
AnnaBridge 171:3a7713b1edbc 347 #define TEMPSENSOR_CAL2_ADDR ((uint16_t*) (0x1FF800FEU)) /* Internal temperature sensor, address of parameter TS_CAL2: On STM32L1, temperature sensor ADC raw data acquired at temperature 110 DegC (tolerance: +-5 DegC), Vref+ = 3.0 V (tolerance: +-10 mV). */
AnnaBridge 171:3a7713b1edbc 348 #define TEMPSENSOR_CAL1_TEMP (( int32_t) 30) /* Internal temperature sensor, temperature at which temperature sensor has been calibrated in production for data into TEMPSENSOR_CAL1_ADDR (tolerance: +-5 DegC) (unit: DegC). */
AnnaBridge 171:3a7713b1edbc 349 #define TEMPSENSOR_CAL2_TEMP (( int32_t) 110) /* Internal temperature sensor, temperature at which temperature sensor has been calibrated in production for data into TEMPSENSOR_CAL2_ADDR (tolerance: +-5 DegC) (unit: DegC). */
AnnaBridge 171:3a7713b1edbc 350 #define TEMPSENSOR_CAL_VREFANALOG ( 3000U) /* Analog voltage reference (Vref+) voltage with which temperature sensor has been calibrated in production (+-10 mV) (unit: mV). */
AnnaBridge 171:3a7713b1edbc 351
AnnaBridge 171:3a7713b1edbc 352
AnnaBridge 171:3a7713b1edbc 353 /**
AnnaBridge 171:3a7713b1edbc 354 * @}
AnnaBridge 171:3a7713b1edbc 355 */
AnnaBridge 171:3a7713b1edbc 356
AnnaBridge 171:3a7713b1edbc 357
AnnaBridge 171:3a7713b1edbc 358 /* Private macros ------------------------------------------------------------*/
AnnaBridge 171:3a7713b1edbc 359 /** @defgroup ADC_LL_Private_Macros ADC Private Macros
AnnaBridge 171:3a7713b1edbc 360 * @{
AnnaBridge 171:3a7713b1edbc 361 */
AnnaBridge 171:3a7713b1edbc 362
AnnaBridge 171:3a7713b1edbc 363 /**
AnnaBridge 171:3a7713b1edbc 364 * @brief Driver macro reserved for internal use: isolate bits with the
AnnaBridge 171:3a7713b1edbc 365 * selected mask and shift them to the register LSB
AnnaBridge 171:3a7713b1edbc 366 * (shift mask on register position bit 0).
AnnaBridge 171:3a7713b1edbc 367 * @param __BITS__ Bits in register 32 bits
AnnaBridge 171:3a7713b1edbc 368 * @param __MASK__ Mask in register 32 bits
AnnaBridge 171:3a7713b1edbc 369 * @retval Bits in register 32 bits
AnnaBridge 171:3a7713b1edbc 370 */
AnnaBridge 171:3a7713b1edbc 371 #define __ADC_MASK_SHIFT(__BITS__, __MASK__) \
AnnaBridge 171:3a7713b1edbc 372 (((__BITS__) & (__MASK__)) >> POSITION_VAL((__MASK__)))
AnnaBridge 171:3a7713b1edbc 373
AnnaBridge 171:3a7713b1edbc 374 /**
AnnaBridge 171:3a7713b1edbc 375 * @brief Driver macro reserved for internal use: set a pointer to
AnnaBridge 171:3a7713b1edbc 376 * a register from a register basis from which an offset
AnnaBridge 171:3a7713b1edbc 377 * is applied.
AnnaBridge 171:3a7713b1edbc 378 * @param __REG__ Register basis from which the offset is applied.
AnnaBridge 171:3a7713b1edbc 379 * @param __REG_OFFFSET__ Offset to be applied (unit: number of registers).
AnnaBridge 171:3a7713b1edbc 380 * @retval Pointer to register address
AnnaBridge 171:3a7713b1edbc 381 */
AnnaBridge 171:3a7713b1edbc 382 #define __ADC_PTR_REG_OFFSET(__REG__, __REG_OFFFSET__) \
AnnaBridge 171:3a7713b1edbc 383 ((uint32_t *)((uint32_t) ((uint32_t)(&(__REG__)) + ((__REG_OFFFSET__) << 2U))))
AnnaBridge 171:3a7713b1edbc 384
AnnaBridge 171:3a7713b1edbc 385 /**
AnnaBridge 171:3a7713b1edbc 386 * @}
AnnaBridge 171:3a7713b1edbc 387 */
AnnaBridge 171:3a7713b1edbc 388
AnnaBridge 171:3a7713b1edbc 389
AnnaBridge 171:3a7713b1edbc 390 /* Exported types ------------------------------------------------------------*/
AnnaBridge 171:3a7713b1edbc 391 #if defined(USE_FULL_LL_DRIVER)
AnnaBridge 171:3a7713b1edbc 392 /** @defgroup ADC_LL_ES_INIT ADC Exported Init structure
AnnaBridge 171:3a7713b1edbc 393 * @{
AnnaBridge 171:3a7713b1edbc 394 */
AnnaBridge 171:3a7713b1edbc 395
AnnaBridge 171:3a7713b1edbc 396 /**
AnnaBridge 171:3a7713b1edbc 397 * @brief Structure definition of some features of ADC common parameters
AnnaBridge 171:3a7713b1edbc 398 * and multimode
AnnaBridge 171:3a7713b1edbc 399 * (all ADC instances belonging to the same ADC common instance).
AnnaBridge 171:3a7713b1edbc 400 * @note The setting of these parameters by function @ref LL_ADC_CommonInit()
AnnaBridge 171:3a7713b1edbc 401 * is conditioned to ADC instances state (all ADC instances
AnnaBridge 171:3a7713b1edbc 402 * sharing the same ADC common instance):
AnnaBridge 171:3a7713b1edbc 403 * All ADC instances sharing the same ADC common instance must be
AnnaBridge 171:3a7713b1edbc 404 * disabled.
AnnaBridge 171:3a7713b1edbc 405 */
AnnaBridge 171:3a7713b1edbc 406 typedef struct
AnnaBridge 171:3a7713b1edbc 407 {
AnnaBridge 171:3a7713b1edbc 408 uint32_t CommonClock; /*!< Set parameter common to several ADC: Clock source and prescaler.
AnnaBridge 171:3a7713b1edbc 409 This parameter can be a value of @ref ADC_LL_EC_COMMON_CLOCK_SOURCE
AnnaBridge 171:3a7713b1edbc 410 @note On this STM32 serie, HSI RC oscillator is the only clock source for ADC.
AnnaBridge 171:3a7713b1edbc 411 Therefore, HSI RC oscillator must be preliminarily enabled at RCC top level.
AnnaBridge 171:3a7713b1edbc 412 @note On this STM32 serie, some clock ratio constraints between ADC clock and APB clock
AnnaBridge 171:3a7713b1edbc 413 must be respected:
AnnaBridge 171:3a7713b1edbc 414 - In all cases: if APB clock frequency is too low compared ADC clock frequency, a delay between conversions must be inserted.
AnnaBridge 171:3a7713b1edbc 415 - If ADC group injected is used: ADC clock frequency should be lower than APB clock frequency /4 for resolution 12 or 10 bits, APB clock frequency /3 for resolution 8 bits, APB clock frequency /2 for resolution 6 bits.
AnnaBridge 171:3a7713b1edbc 416 Refer to reference manual.
AnnaBridge 171:3a7713b1edbc 417
AnnaBridge 171:3a7713b1edbc 418 This feature can be modified afterwards using unitary function @ref LL_ADC_SetCommonClock(). */
AnnaBridge 171:3a7713b1edbc 419
AnnaBridge 171:3a7713b1edbc 420 } LL_ADC_CommonInitTypeDef;
AnnaBridge 171:3a7713b1edbc 421
AnnaBridge 171:3a7713b1edbc 422 /**
AnnaBridge 171:3a7713b1edbc 423 * @brief Structure definition of some features of ADC instance.
AnnaBridge 171:3a7713b1edbc 424 * @note These parameters have an impact on ADC scope: ADC instance.
AnnaBridge 171:3a7713b1edbc 425 * Affects both group regular and group injected (availability
AnnaBridge 171:3a7713b1edbc 426 * of ADC group injected depends on STM32 families).
AnnaBridge 171:3a7713b1edbc 427 * Refer to corresponding unitary functions into
AnnaBridge 171:3a7713b1edbc 428 * @ref ADC_LL_EF_Configuration_ADC_Instance .
AnnaBridge 171:3a7713b1edbc 429 * @note The setting of these parameters by function @ref LL_ADC_Init()
AnnaBridge 171:3a7713b1edbc 430 * is conditioned to ADC state:
AnnaBridge 171:3a7713b1edbc 431 * ADC instance must be disabled.
AnnaBridge 171:3a7713b1edbc 432 * This condition is applied to all ADC features, for efficiency
AnnaBridge 171:3a7713b1edbc 433 * and compatibility over all STM32 families. However, the different
AnnaBridge 171:3a7713b1edbc 434 * features can be set under different ADC state conditions
AnnaBridge 171:3a7713b1edbc 435 * (setting possible with ADC enabled without conversion on going,
AnnaBridge 171:3a7713b1edbc 436 * ADC enabled with conversion on going, ...)
AnnaBridge 171:3a7713b1edbc 437 * Each feature can be updated afterwards with a unitary function
AnnaBridge 171:3a7713b1edbc 438 * and potentially with ADC in a different state than disabled,
AnnaBridge 171:3a7713b1edbc 439 * refer to description of each function for setting
AnnaBridge 171:3a7713b1edbc 440 * conditioned to ADC state.
AnnaBridge 171:3a7713b1edbc 441 */
AnnaBridge 171:3a7713b1edbc 442 typedef struct
AnnaBridge 171:3a7713b1edbc 443 {
AnnaBridge 171:3a7713b1edbc 444 uint32_t Resolution; /*!< Set ADC resolution.
AnnaBridge 171:3a7713b1edbc 445 This parameter can be a value of @ref ADC_LL_EC_RESOLUTION
AnnaBridge 171:3a7713b1edbc 446
AnnaBridge 171:3a7713b1edbc 447 This feature can be modified afterwards using unitary function @ref LL_ADC_SetResolution(). */
AnnaBridge 171:3a7713b1edbc 448
AnnaBridge 171:3a7713b1edbc 449 uint32_t DataAlignment; /*!< Set ADC conversion data alignment.
AnnaBridge 171:3a7713b1edbc 450 This parameter can be a value of @ref ADC_LL_EC_DATA_ALIGN
AnnaBridge 171:3a7713b1edbc 451
AnnaBridge 171:3a7713b1edbc 452 This feature can be modified afterwards using unitary function @ref LL_ADC_SetDataAlignment(). */
AnnaBridge 171:3a7713b1edbc 453
AnnaBridge 171:3a7713b1edbc 454 uint32_t LowPowerMode; /*!< Set ADC low power mode.
AnnaBridge 171:3a7713b1edbc 455 This parameter can be a concatenation of a value of @ref ADC_LL_EC_LP_MODE_AUTOWAIT and a value of @ref ADC_LL_EC_LP_MODE_AUTOPOWEROFF
AnnaBridge 171:3a7713b1edbc 456
AnnaBridge 171:3a7713b1edbc 457 This feature can be modified afterwards using unitary function @ref LL_ADC_SetLowPowerModeAutoWait() and @ref LL_ADC_SetLowPowerModeAutoPowerOff(). */
AnnaBridge 171:3a7713b1edbc 458
AnnaBridge 171:3a7713b1edbc 459 uint32_t SequencersScanMode; /*!< Set ADC scan selection.
AnnaBridge 171:3a7713b1edbc 460 This parameter can be a value of @ref ADC_LL_EC_SCAN_SELECTION
AnnaBridge 171:3a7713b1edbc 461
AnnaBridge 171:3a7713b1edbc 462 This feature can be modified afterwards using unitary function @ref LL_ADC_SetSequencersScanMode(). */
AnnaBridge 171:3a7713b1edbc 463
AnnaBridge 171:3a7713b1edbc 464 } LL_ADC_InitTypeDef;
AnnaBridge 171:3a7713b1edbc 465
AnnaBridge 171:3a7713b1edbc 466 /**
AnnaBridge 171:3a7713b1edbc 467 * @brief Structure definition of some features of ADC group regular.
AnnaBridge 171:3a7713b1edbc 468 * @note These parameters have an impact on ADC scope: ADC group regular.
AnnaBridge 171:3a7713b1edbc 469 * Refer to corresponding unitary functions into
AnnaBridge 171:3a7713b1edbc 470 * @ref ADC_LL_EF_Configuration_ADC_Group_Regular
AnnaBridge 171:3a7713b1edbc 471 * (functions with prefix "REG").
AnnaBridge 171:3a7713b1edbc 472 * @note The setting of these parameters by function @ref LL_ADC_REG_Init()
AnnaBridge 171:3a7713b1edbc 473 * is conditioned to ADC state:
AnnaBridge 171:3a7713b1edbc 474 * ADC instance must be disabled.
AnnaBridge 171:3a7713b1edbc 475 * This condition is applied to all ADC features, for efficiency
AnnaBridge 171:3a7713b1edbc 476 * and compatibility over all STM32 families. However, the different
AnnaBridge 171:3a7713b1edbc 477 * features can be set under different ADC state conditions
AnnaBridge 171:3a7713b1edbc 478 * (setting possible with ADC enabled without conversion on going,
AnnaBridge 171:3a7713b1edbc 479 * ADC enabled with conversion on going, ...)
AnnaBridge 171:3a7713b1edbc 480 * Each feature can be updated afterwards with a unitary function
AnnaBridge 171:3a7713b1edbc 481 * and potentially with ADC in a different state than disabled,
AnnaBridge 171:3a7713b1edbc 482 * refer to description of each function for setting
AnnaBridge 171:3a7713b1edbc 483 * conditioned to ADC state.
AnnaBridge 171:3a7713b1edbc 484 */
AnnaBridge 171:3a7713b1edbc 485 typedef struct
AnnaBridge 171:3a7713b1edbc 486 {
AnnaBridge 171:3a7713b1edbc 487 uint32_t TriggerSource; /*!< Set ADC group regular conversion trigger source: internal (SW start) or from external IP (timer event, external interrupt line).
AnnaBridge 171:3a7713b1edbc 488 This parameter can be a value of @ref ADC_LL_EC_REG_TRIGGER_SOURCE
AnnaBridge 171:3a7713b1edbc 489 @note On this STM32 serie, setting of external trigger edge is performed
AnnaBridge 171:3a7713b1edbc 490 using function @ref LL_ADC_REG_StartConversionExtTrig().
AnnaBridge 171:3a7713b1edbc 491
AnnaBridge 171:3a7713b1edbc 492 This feature can be modified afterwards using unitary function @ref LL_ADC_REG_SetTriggerSource(). */
AnnaBridge 171:3a7713b1edbc 493
AnnaBridge 171:3a7713b1edbc 494 uint32_t SequencerLength; /*!< Set ADC group regular sequencer length.
AnnaBridge 171:3a7713b1edbc 495 This parameter can be a value of @ref ADC_LL_EC_REG_SEQ_SCAN_LENGTH
AnnaBridge 171:3a7713b1edbc 496 @note This parameter is discarded if scan mode is disabled (refer to parameter 'ADC_SequencersScanMode').
AnnaBridge 171:3a7713b1edbc 497
AnnaBridge 171:3a7713b1edbc 498 This feature can be modified afterwards using unitary function @ref LL_ADC_REG_SetSequencerLength(). */
AnnaBridge 171:3a7713b1edbc 499
AnnaBridge 171:3a7713b1edbc 500 uint32_t SequencerDiscont; /*!< Set ADC group regular sequencer discontinuous mode: sequence subdivided and scan conversions interrupted every selected number of ranks.
AnnaBridge 171:3a7713b1edbc 501 This parameter can be a value of @ref ADC_LL_EC_REG_SEQ_DISCONT_MODE
AnnaBridge 171:3a7713b1edbc 502 @note This parameter has an effect only if group regular sequencer is enabled
AnnaBridge 171:3a7713b1edbc 503 (scan length of 2 ranks or more).
AnnaBridge 171:3a7713b1edbc 504
AnnaBridge 171:3a7713b1edbc 505 This feature can be modified afterwards using unitary function @ref LL_ADC_REG_SetSequencerDiscont(). */
AnnaBridge 171:3a7713b1edbc 506
AnnaBridge 171:3a7713b1edbc 507 uint32_t ContinuousMode; /*!< Set ADC continuous conversion mode on ADC group regular, whether ADC conversions are performed in single mode (one conversion per trigger) or in continuous mode (after the first trigger, following conversions launched successively automatically).
AnnaBridge 171:3a7713b1edbc 508 This parameter can be a value of @ref ADC_LL_EC_REG_CONTINUOUS_MODE
AnnaBridge 171:3a7713b1edbc 509 Note: It is not possible to enable both ADC group regular continuous mode and discontinuous mode.
AnnaBridge 171:3a7713b1edbc 510
AnnaBridge 171:3a7713b1edbc 511 This feature can be modified afterwards using unitary function @ref LL_ADC_REG_SetContinuousMode(). */
AnnaBridge 171:3a7713b1edbc 512
AnnaBridge 171:3a7713b1edbc 513 uint32_t DMATransfer; /*!< Set ADC group regular conversion data transfer: no transfer or transfer by DMA, and DMA requests mode.
AnnaBridge 171:3a7713b1edbc 514 This parameter can be a value of @ref ADC_LL_EC_REG_DMA_TRANSFER
AnnaBridge 171:3a7713b1edbc 515
AnnaBridge 171:3a7713b1edbc 516 This feature can be modified afterwards using unitary function @ref LL_ADC_REG_SetDMATransfer(). */
AnnaBridge 171:3a7713b1edbc 517
AnnaBridge 171:3a7713b1edbc 518 } LL_ADC_REG_InitTypeDef;
AnnaBridge 171:3a7713b1edbc 519
AnnaBridge 171:3a7713b1edbc 520 /**
AnnaBridge 171:3a7713b1edbc 521 * @brief Structure definition of some features of ADC group injected.
AnnaBridge 171:3a7713b1edbc 522 * @note These parameters have an impact on ADC scope: ADC group injected.
AnnaBridge 171:3a7713b1edbc 523 * Refer to corresponding unitary functions into
AnnaBridge 171:3a7713b1edbc 524 * @ref ADC_LL_EF_Configuration_ADC_Group_Regular
AnnaBridge 171:3a7713b1edbc 525 * (functions with prefix "INJ").
AnnaBridge 171:3a7713b1edbc 526 * @note The setting of these parameters by function @ref LL_ADC_INJ_Init()
AnnaBridge 171:3a7713b1edbc 527 * is conditioned to ADC state:
AnnaBridge 171:3a7713b1edbc 528 * ADC instance must be disabled.
AnnaBridge 171:3a7713b1edbc 529 * This condition is applied to all ADC features, for efficiency
AnnaBridge 171:3a7713b1edbc 530 * and compatibility over all STM32 families. However, the different
AnnaBridge 171:3a7713b1edbc 531 * features can be set under different ADC state conditions
AnnaBridge 171:3a7713b1edbc 532 * (setting possible with ADC enabled without conversion on going,
AnnaBridge 171:3a7713b1edbc 533 * ADC enabled with conversion on going, ...)
AnnaBridge 171:3a7713b1edbc 534 * Each feature can be updated afterwards with a unitary function
AnnaBridge 171:3a7713b1edbc 535 * and potentially with ADC in a different state than disabled,
AnnaBridge 171:3a7713b1edbc 536 * refer to description of each function for setting
AnnaBridge 171:3a7713b1edbc 537 * conditioned to ADC state.
AnnaBridge 171:3a7713b1edbc 538 */
AnnaBridge 171:3a7713b1edbc 539 typedef struct
AnnaBridge 171:3a7713b1edbc 540 {
AnnaBridge 171:3a7713b1edbc 541 uint32_t TriggerSource; /*!< Set ADC group injected conversion trigger source: internal (SW start) or from external IP (timer event, external interrupt line).
AnnaBridge 171:3a7713b1edbc 542 This parameter can be a value of @ref ADC_LL_EC_INJ_TRIGGER_SOURCE
AnnaBridge 171:3a7713b1edbc 543 @note On this STM32 serie, setting of external trigger edge is performed
AnnaBridge 171:3a7713b1edbc 544 using function @ref LL_ADC_INJ_StartConversionExtTrig().
AnnaBridge 171:3a7713b1edbc 545
AnnaBridge 171:3a7713b1edbc 546 This feature can be modified afterwards using unitary function @ref LL_ADC_INJ_SetTriggerSource(). */
AnnaBridge 171:3a7713b1edbc 547
AnnaBridge 171:3a7713b1edbc 548 uint32_t SequencerLength; /*!< Set ADC group injected sequencer length.
AnnaBridge 171:3a7713b1edbc 549 This parameter can be a value of @ref ADC_LL_EC_INJ_SEQ_SCAN_LENGTH
AnnaBridge 171:3a7713b1edbc 550 @note This parameter is discarded if scan mode is disabled (refer to parameter 'ADC_SequencersScanMode').
AnnaBridge 171:3a7713b1edbc 551
AnnaBridge 171:3a7713b1edbc 552 This feature can be modified afterwards using unitary function @ref LL_ADC_INJ_SetSequencerLength(). */
AnnaBridge 171:3a7713b1edbc 553
AnnaBridge 171:3a7713b1edbc 554 uint32_t SequencerDiscont; /*!< Set ADC group injected sequencer discontinuous mode: sequence subdivided and scan conversions interrupted every selected number of ranks.
AnnaBridge 171:3a7713b1edbc 555 This parameter can be a value of @ref ADC_LL_EC_INJ_SEQ_DISCONT_MODE
AnnaBridge 171:3a7713b1edbc 556 @note This parameter has an effect only if group injected sequencer is enabled
AnnaBridge 171:3a7713b1edbc 557 (scan length of 2 ranks or more).
AnnaBridge 171:3a7713b1edbc 558
AnnaBridge 171:3a7713b1edbc 559 This feature can be modified afterwards using unitary function @ref LL_ADC_INJ_SetSequencerDiscont(). */
AnnaBridge 171:3a7713b1edbc 560
AnnaBridge 171:3a7713b1edbc 561 uint32_t TrigAuto; /*!< Set ADC group injected conversion trigger: independent or from ADC group regular.
AnnaBridge 171:3a7713b1edbc 562 This parameter can be a value of @ref ADC_LL_EC_INJ_TRIG_AUTO
AnnaBridge 171:3a7713b1edbc 563 Note: This parameter must be set to set to independent trigger if injected trigger source is set to an external trigger.
AnnaBridge 171:3a7713b1edbc 564
AnnaBridge 171:3a7713b1edbc 565 This feature can be modified afterwards using unitary function @ref LL_ADC_INJ_SetTrigAuto(). */
AnnaBridge 171:3a7713b1edbc 566
AnnaBridge 171:3a7713b1edbc 567 } LL_ADC_INJ_InitTypeDef;
AnnaBridge 171:3a7713b1edbc 568
AnnaBridge 171:3a7713b1edbc 569 /**
AnnaBridge 171:3a7713b1edbc 570 * @}
AnnaBridge 171:3a7713b1edbc 571 */
AnnaBridge 171:3a7713b1edbc 572 #endif /* USE_FULL_LL_DRIVER */
AnnaBridge 171:3a7713b1edbc 573
AnnaBridge 171:3a7713b1edbc 574 /* Exported constants --------------------------------------------------------*/
AnnaBridge 171:3a7713b1edbc 575 /** @defgroup ADC_LL_Exported_Constants ADC Exported Constants
AnnaBridge 171:3a7713b1edbc 576 * @{
AnnaBridge 171:3a7713b1edbc 577 */
AnnaBridge 171:3a7713b1edbc 578
AnnaBridge 171:3a7713b1edbc 579 /** @defgroup ADC_LL_EC_FLAG ADC flags
AnnaBridge 171:3a7713b1edbc 580 * @brief Flags defines which can be used with LL_ADC_ReadReg function
AnnaBridge 171:3a7713b1edbc 581 * @{
AnnaBridge 171:3a7713b1edbc 582 */
AnnaBridge 171:3a7713b1edbc 583 #define LL_ADC_FLAG_ADRDY ADC_SR_ADONS /*!< ADC flag ADC instance ready */
AnnaBridge 171:3a7713b1edbc 584 #define LL_ADC_FLAG_STRT ADC_SR_STRT /*!< ADC flag ADC group regular conversion start */
AnnaBridge 171:3a7713b1edbc 585 #define LL_ADC_FLAG_EOCS ADC_SR_EOC /*!< ADC flag ADC group regular end of unitary conversion or sequence conversions (to configure flag of end of conversion, use function @ref LL_ADC_REG_SetFlagEndOfConversion() ) */
AnnaBridge 171:3a7713b1edbc 586 #define LL_ADC_FLAG_OVR ADC_SR_OVR /*!< ADC flag ADC group regular overrun */
AnnaBridge 171:3a7713b1edbc 587 #define LL_ADC_FLAG_JSTRT ADC_SR_JSTRT /*!< ADC flag ADC group injected conversion start */
AnnaBridge 171:3a7713b1edbc 588 #define LL_ADC_FLAG_JEOS ADC_SR_JEOC /*!< ADC flag ADC group injected end of sequence conversions (Note: on this STM32 serie, there is no flag ADC group injected end of unitary conversion. Flag noted as "JEOC" is corresponding to flag "JEOS" in other STM32 families) */
AnnaBridge 171:3a7713b1edbc 589 #define LL_ADC_FLAG_AWD1 ADC_SR_AWD /*!< ADC flag ADC analog watchdog 1 */
AnnaBridge 171:3a7713b1edbc 590 /**
AnnaBridge 171:3a7713b1edbc 591 * @}
AnnaBridge 171:3a7713b1edbc 592 */
AnnaBridge 171:3a7713b1edbc 593
AnnaBridge 171:3a7713b1edbc 594 /** @defgroup ADC_LL_EC_IT ADC interruptions for configuration (interruption enable or disable)
AnnaBridge 171:3a7713b1edbc 595 * @brief IT defines which can be used with LL_ADC_ReadReg and LL_ADC_WriteReg functions
AnnaBridge 171:3a7713b1edbc 596 * @{
AnnaBridge 171:3a7713b1edbc 597 */
AnnaBridge 171:3a7713b1edbc 598 #define LL_ADC_IT_EOCS ADC_CR1_EOCIE /*!< ADC interruption ADC group regular end of unitary conversion or sequence conversions (to configure flag of end of conversion, use function @ref LL_ADC_REG_SetFlagEndOfConversion() ) */
AnnaBridge 171:3a7713b1edbc 599 #define LL_ADC_IT_OVR ADC_CR1_OVRIE /*!< ADC interruption ADC group regular overrun */
AnnaBridge 171:3a7713b1edbc 600 #define LL_ADC_IT_JEOS ADC_CR1_JEOCIE /*!< ADC interruption ADC group injected end of sequence conversions (Note: on this STM32 serie, there is no flag ADC group injected end of unitary conversion. Flag noted as "JEOC" is corresponding to flag "JEOS" in other STM32 families) */
AnnaBridge 171:3a7713b1edbc 601 #define LL_ADC_IT_AWD1 ADC_CR1_AWDIE /*!< ADC interruption ADC analog watchdog 1 */
AnnaBridge 171:3a7713b1edbc 602 /**
AnnaBridge 171:3a7713b1edbc 603 * @}
AnnaBridge 171:3a7713b1edbc 604 */
AnnaBridge 171:3a7713b1edbc 605
AnnaBridge 171:3a7713b1edbc 606 /** @defgroup ADC_LL_EC_REGISTERS ADC registers compliant with specific purpose
AnnaBridge 171:3a7713b1edbc 607 * @{
AnnaBridge 171:3a7713b1edbc 608 */
AnnaBridge 171:3a7713b1edbc 609 /* List of ADC registers intended to be used (most commonly) with */
AnnaBridge 171:3a7713b1edbc 610 /* DMA transfer. */
AnnaBridge 171:3a7713b1edbc 611 /* Refer to function @ref LL_ADC_DMA_GetRegAddr(). */
AnnaBridge 171:3a7713b1edbc 612 #define LL_ADC_DMA_REG_REGULAR_DATA 0x00000000U /* ADC group regular conversion data register (corresponding to register DR) to be used with ADC configured in independent mode. Without DMA transfer, register accessed by LL function @ref LL_ADC_REG_ReadConversionData32() and other functions @ref LL_ADC_REG_ReadConversionDatax() */
AnnaBridge 171:3a7713b1edbc 613 /**
AnnaBridge 171:3a7713b1edbc 614 * @}
AnnaBridge 171:3a7713b1edbc 615 */
AnnaBridge 171:3a7713b1edbc 616
AnnaBridge 171:3a7713b1edbc 617 /** @defgroup ADC_LL_EC_COMMON_CLOCK_SOURCE ADC common - Clock source
AnnaBridge 171:3a7713b1edbc 618 * @{
AnnaBridge 171:3a7713b1edbc 619 */
AnnaBridge 171:3a7713b1edbc 620 #define LL_ADC_CLOCK_ASYNC_DIV1 0x00000000U /*!< ADC asynchronous clock without prescaler */
AnnaBridge 171:3a7713b1edbc 621 #define LL_ADC_CLOCK_ASYNC_DIV2 (ADC_CCR_ADCPRE_0) /*!< ADC asynchronous clock with prescaler division by 2 */
AnnaBridge 171:3a7713b1edbc 622 #define LL_ADC_CLOCK_ASYNC_DIV4 (ADC_CCR_ADCPRE_1) /*!< ADC asynchronous clock with prescaler division by 4 */
AnnaBridge 171:3a7713b1edbc 623 /**
AnnaBridge 171:3a7713b1edbc 624 * @}
AnnaBridge 171:3a7713b1edbc 625 */
AnnaBridge 171:3a7713b1edbc 626
AnnaBridge 171:3a7713b1edbc 627 /** @defgroup ADC_LL_EC_COMMON_PATH_INTERNAL ADC common - Measurement path to internal channels
AnnaBridge 171:3a7713b1edbc 628 * @{
AnnaBridge 171:3a7713b1edbc 629 */
AnnaBridge 171:3a7713b1edbc 630 /* Note: Other measurement paths to internal channels may be available */
AnnaBridge 171:3a7713b1edbc 631 /* (connections to other peripherals). */
AnnaBridge 171:3a7713b1edbc 632 /* If they are not listed below, they do not require any specific */
AnnaBridge 171:3a7713b1edbc 633 /* path enable. In this case, Access to measurement path is done */
AnnaBridge 171:3a7713b1edbc 634 /* only by selecting the corresponding ADC internal channel. */
AnnaBridge 171:3a7713b1edbc 635 #define LL_ADC_PATH_INTERNAL_NONE 0x00000000U /*!< ADC measurement pathes all disabled */
AnnaBridge 171:3a7713b1edbc 636 #define LL_ADC_PATH_INTERNAL_VREFINT (ADC_CCR_TSVREFE) /*!< ADC measurement path to internal channel VrefInt */
AnnaBridge 171:3a7713b1edbc 637 #define LL_ADC_PATH_INTERNAL_TEMPSENSOR (ADC_CCR_TSVREFE) /*!< ADC measurement path to internal channel temperature sensor */
AnnaBridge 171:3a7713b1edbc 638 /**
AnnaBridge 171:3a7713b1edbc 639 * @}
AnnaBridge 171:3a7713b1edbc 640 */
AnnaBridge 171:3a7713b1edbc 641
AnnaBridge 171:3a7713b1edbc 642 /** @defgroup ADC_LL_EC_RESOLUTION ADC instance - Resolution
AnnaBridge 171:3a7713b1edbc 643 * @{
AnnaBridge 171:3a7713b1edbc 644 */
AnnaBridge 171:3a7713b1edbc 645 #define LL_ADC_RESOLUTION_12B 0x00000000U /*!< ADC resolution 12 bits */
AnnaBridge 171:3a7713b1edbc 646 #define LL_ADC_RESOLUTION_10B ( ADC_CR1_RES_0) /*!< ADC resolution 10 bits */
AnnaBridge 171:3a7713b1edbc 647 #define LL_ADC_RESOLUTION_8B (ADC_CR1_RES_1 ) /*!< ADC resolution 8 bits */
AnnaBridge 171:3a7713b1edbc 648 #define LL_ADC_RESOLUTION_6B (ADC_CR1_RES_1 | ADC_CR1_RES_0) /*!< ADC resolution 6 bits */
AnnaBridge 171:3a7713b1edbc 649 /**
AnnaBridge 171:3a7713b1edbc 650 * @}
AnnaBridge 171:3a7713b1edbc 651 */
AnnaBridge 171:3a7713b1edbc 652
AnnaBridge 171:3a7713b1edbc 653 /** @defgroup ADC_LL_EC_DATA_ALIGN ADC instance - Data alignment
AnnaBridge 171:3a7713b1edbc 654 * @{
AnnaBridge 171:3a7713b1edbc 655 */
AnnaBridge 171:3a7713b1edbc 656 #define LL_ADC_DATA_ALIGN_RIGHT 0x00000000U /*!< ADC conversion data alignment: right aligned (alignment on data register LSB bit 0)*/
AnnaBridge 171:3a7713b1edbc 657 #define LL_ADC_DATA_ALIGN_LEFT (ADC_CR2_ALIGN) /*!< ADC conversion data alignment: left aligned (aligment on data register MSB bit 15)*/
AnnaBridge 171:3a7713b1edbc 658 /**
AnnaBridge 171:3a7713b1edbc 659 * @}
AnnaBridge 171:3a7713b1edbc 660 */
AnnaBridge 171:3a7713b1edbc 661
AnnaBridge 171:3a7713b1edbc 662 /** @defgroup ADC_LL_EC_LP_MODE_AUTOWAIT ADC instance - Low power mode auto wait (auto delay)
AnnaBridge 171:3a7713b1edbc 663 * @{
AnnaBridge 171:3a7713b1edbc 664 */
AnnaBridge 171:3a7713b1edbc 665 #define LL_ADC_LP_AUTOWAIT_NONE 0x00000000U /*!< ADC low power mode auto wait not activated */
AnnaBridge 171:3a7713b1edbc 666 #define LL_ADC_LP_AUTOWAIT ( ADC_CR2_DELS_0) /*!< ADC low power mode auto wait: Dynamic low power mode, ADC conversions are performed only when necessary (when previous ADC conversion data is read). See description with function @ref LL_ADC_SetLowPowerModeAutoWait(). */
AnnaBridge 171:3a7713b1edbc 667 #define LL_ADC_LP_AUTOWAIT_7_APBCLOCKCYCLES ( ADC_CR2_DELS_1 ) /*!< ADC low power mode auto wait: Insert a delay between ADC conversions: 7 APB clock cycles */
AnnaBridge 171:3a7713b1edbc 668 #define LL_ADC_LP_AUTOWAIT_15_APBCLOCKCYCLES ( ADC_CR2_DELS_1 | ADC_CR2_DELS_0) /*!< ADC low power mode auto wait: Insert a delay between ADC conversions: 15 APB clock cycles */
AnnaBridge 171:3a7713b1edbc 669 #define LL_ADC_LP_AUTOWAIT_31_APBCLOCKCYCLES (ADC_CR2_DELS_2 ) /*!< ADC low power mode auto wait: Insert a delay between ADC conversions: 31 APB clock cycles */
AnnaBridge 171:3a7713b1edbc 670 #define LL_ADC_LP_AUTOWAIT_63_APBCLOCKCYCLES (ADC_CR2_DELS_2 | ADC_CR2_DELS_0) /*!< ADC low power mode auto wait: Insert a delay between ADC conversions: 63 APB clock cycles */
AnnaBridge 171:3a7713b1edbc 671 #define LL_ADC_LP_AUTOWAIT_127_APBCLOCKCYCLES (ADC_CR2_DELS_2 | ADC_CR2_DELS_1 ) /*!< ADC low power mode auto wait: Insert a delay between ADC conversions: 127 APB clock cycles */
AnnaBridge 171:3a7713b1edbc 672 #define LL_ADC_LP_AUTOWAIT_255_APBCLOCKCYCLES (ADC_CR2_DELS_2 | ADC_CR2_DELS_1 | ADC_CR2_DELS_0) /*!< ADC low power mode auto wait: Insert a delay between ADC conversions: 255 APB clock cycles */
AnnaBridge 171:3a7713b1edbc 673 /**
AnnaBridge 171:3a7713b1edbc 674 * @}
AnnaBridge 171:3a7713b1edbc 675 */
AnnaBridge 171:3a7713b1edbc 676
AnnaBridge 171:3a7713b1edbc 677 /** @defgroup ADC_LL_EC_LP_MODE_AUTOPOWEROFF ADC instance - Low power mode auto power-off
AnnaBridge 171:3a7713b1edbc 678 * @{
AnnaBridge 171:3a7713b1edbc 679 */
AnnaBridge 171:3a7713b1edbc 680 #define LL_ADC_LP_AUTOPOWEROFF_NONE 0x00000000U /*!< ADC low power mode auto power-off not activated */
AnnaBridge 171:3a7713b1edbc 681 #define LL_ADC_LP_AUTOPOWEROFF_IDLE_PHASE (ADC_CR1_PDI) /*!< ADC low power mode auto power-off: ADC power off when ADC is not converting (idle phase) */
AnnaBridge 171:3a7713b1edbc 682 #define LL_ADC_LP_AUTOPOWEROFF_AUTOWAIT_PHASE (ADC_CR1_PDD) /*!< ADC low power mode auto power-off: ADC power off when a delay is inserted between conversions (refer to function @ref LL_ADC_SetLowPowerModeAutoWait() ) */
AnnaBridge 171:3a7713b1edbc 683 #define LL_ADC_LP_AUTOPOWEROFF_IDLE_AUTOWAIT_PHASES (ADC_CR1_PDI | ADC_CR1_PDD) /*!< ADC low power mode auto power-off: ADC power off when ADC is not converting (idle phase) and when a delay is inserted between conversions (refer to function @ref LL_ADC_SetLowPowerModeAutoWait() ) */
AnnaBridge 171:3a7713b1edbc 684 /**
AnnaBridge 171:3a7713b1edbc 685 * @}
AnnaBridge 171:3a7713b1edbc 686 */
AnnaBridge 171:3a7713b1edbc 687
AnnaBridge 171:3a7713b1edbc 688 /** @defgroup ADC_LL_EC_SCAN_SELECTION ADC instance - Scan selection
AnnaBridge 171:3a7713b1edbc 689 * @{
AnnaBridge 171:3a7713b1edbc 690 */
AnnaBridge 171:3a7713b1edbc 691 #define LL_ADC_SEQ_SCAN_DISABLE 0x00000000U /*!< ADC conversion is performed in unitary conversion mode (one channel converted, that defined in rank 1). Configuration of both groups regular and injected sequencers (sequence length, ...) is discarded: equivalent to length of 1 rank.*/
AnnaBridge 171:3a7713b1edbc 692 #define LL_ADC_SEQ_SCAN_ENABLE (ADC_CR1_SCAN) /*!< ADC conversions are performed in sequence conversions mode, according to configuration of both groups regular and injected sequencers (sequence length, ...). */
AnnaBridge 171:3a7713b1edbc 693 /**
AnnaBridge 171:3a7713b1edbc 694 * @}
AnnaBridge 171:3a7713b1edbc 695 */
AnnaBridge 171:3a7713b1edbc 696
AnnaBridge 171:3a7713b1edbc 697 #if defined(ADC_CR2_CFG)
AnnaBridge 171:3a7713b1edbc 698 /** @defgroup ADC_LL_EC_CHANNELS_BANK ADC instance - Channels bank
AnnaBridge 171:3a7713b1edbc 699 * @{
AnnaBridge 171:3a7713b1edbc 700 */
AnnaBridge 171:3a7713b1edbc 701 #define LL_ADC_CHANNELS_BANK_A 0x00000000U /*!< ADC channels bank A */
AnnaBridge 171:3a7713b1edbc 702 #define LL_ADC_CHANNELS_BANK_B (ADC_CR2_CFG) /*!< ADC channels bank B, available in devices categories 3, 4, 5. */
AnnaBridge 171:3a7713b1edbc 703 /**
AnnaBridge 171:3a7713b1edbc 704 * @}
AnnaBridge 171:3a7713b1edbc 705 */
AnnaBridge 171:3a7713b1edbc 706 #endif
AnnaBridge 171:3a7713b1edbc 707
AnnaBridge 171:3a7713b1edbc 708 /** @defgroup ADC_LL_EC_GROUPS ADC instance - Groups
AnnaBridge 171:3a7713b1edbc 709 * @{
AnnaBridge 171:3a7713b1edbc 710 */
AnnaBridge 171:3a7713b1edbc 711 #define LL_ADC_GROUP_REGULAR 0x00000001U /*!< ADC group regular (available on all STM32 devices) */
AnnaBridge 171:3a7713b1edbc 712 #define LL_ADC_GROUP_INJECTED 0x00000002U /*!< ADC group injected (not available on all STM32 devices)*/
AnnaBridge 171:3a7713b1edbc 713 #define LL_ADC_GROUP_REGULAR_INJECTED 0x00000003U /*!< ADC both groups regular and injected */
AnnaBridge 171:3a7713b1edbc 714 /**
AnnaBridge 171:3a7713b1edbc 715 * @}
AnnaBridge 171:3a7713b1edbc 716 */
AnnaBridge 171:3a7713b1edbc 717
AnnaBridge 171:3a7713b1edbc 718 /** @defgroup ADC_LL_EC_CHANNEL ADC instance - Channel number
AnnaBridge 171:3a7713b1edbc 719 * @{
AnnaBridge 171:3a7713b1edbc 720 */
AnnaBridge 171:3a7713b1edbc 721 #define LL_ADC_CHANNEL_0 (ADC_CHANNEL_0_NUMBER | ADC_CHANNEL_0_SMP) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN0 . Channel different in bank A and bank B. */
AnnaBridge 171:3a7713b1edbc 722 #define LL_ADC_CHANNEL_1 (ADC_CHANNEL_1_NUMBER | ADC_CHANNEL_1_SMP) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN1 . Channel different in bank A and bank B. */
AnnaBridge 171:3a7713b1edbc 723 #define LL_ADC_CHANNEL_2 (ADC_CHANNEL_2_NUMBER | ADC_CHANNEL_2_SMP) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN2 . Channel different in bank A and bank B. */
AnnaBridge 171:3a7713b1edbc 724 #define LL_ADC_CHANNEL_3 (ADC_CHANNEL_3_NUMBER | ADC_CHANNEL_3_SMP) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN3 . Channel different in bank A and bank B. */
AnnaBridge 171:3a7713b1edbc 725 #define LL_ADC_CHANNEL_4 (ADC_CHANNEL_4_NUMBER | ADC_CHANNEL_4_SMP) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN4 . Direct (fast) channel. */
AnnaBridge 171:3a7713b1edbc 726 #define LL_ADC_CHANNEL_5 (ADC_CHANNEL_5_NUMBER | ADC_CHANNEL_5_SMP) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN5 . Direct (fast) channel. */
AnnaBridge 171:3a7713b1edbc 727 #define LL_ADC_CHANNEL_6 (ADC_CHANNEL_6_NUMBER | ADC_CHANNEL_6_SMP) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN6 . Channel different in bank A and bank B. */
AnnaBridge 171:3a7713b1edbc 728 #define LL_ADC_CHANNEL_7 (ADC_CHANNEL_7_NUMBER | ADC_CHANNEL_7_SMP) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN7 . Channel different in bank A and bank B. */
AnnaBridge 171:3a7713b1edbc 729 #define LL_ADC_CHANNEL_8 (ADC_CHANNEL_8_NUMBER | ADC_CHANNEL_8_SMP) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN8 . Channel different in bank A and bank B. */
AnnaBridge 171:3a7713b1edbc 730 #define LL_ADC_CHANNEL_9 (ADC_CHANNEL_9_NUMBER | ADC_CHANNEL_9_SMP) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN9 . Channel different in bank A and bank B. */
AnnaBridge 171:3a7713b1edbc 731 #define LL_ADC_CHANNEL_10 (ADC_CHANNEL_10_NUMBER | ADC_CHANNEL_10_SMP) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN10. Channel different in bank A and bank B. */
AnnaBridge 171:3a7713b1edbc 732 #define LL_ADC_CHANNEL_11 (ADC_CHANNEL_11_NUMBER | ADC_CHANNEL_11_SMP) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN11. Channel different in bank A and bank B. */
AnnaBridge 171:3a7713b1edbc 733 #define LL_ADC_CHANNEL_12 (ADC_CHANNEL_12_NUMBER | ADC_CHANNEL_12_SMP) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN12. Channel different in bank A and bank B. */
AnnaBridge 171:3a7713b1edbc 734 #define LL_ADC_CHANNEL_13 (ADC_CHANNEL_13_NUMBER | ADC_CHANNEL_13_SMP) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN13. Channel common to both bank A and bank B. */
AnnaBridge 171:3a7713b1edbc 735 #define LL_ADC_CHANNEL_14 (ADC_CHANNEL_14_NUMBER | ADC_CHANNEL_14_SMP) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN14. Channel common to both bank A and bank B. */
AnnaBridge 171:3a7713b1edbc 736 #define LL_ADC_CHANNEL_15 (ADC_CHANNEL_15_NUMBER | ADC_CHANNEL_15_SMP) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN15. Channel common to both bank A and bank B. */
AnnaBridge 171:3a7713b1edbc 737 #define LL_ADC_CHANNEL_16 (ADC_CHANNEL_16_NUMBER | ADC_CHANNEL_16_SMP) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN16. Channel common to both bank A and bank B. */
AnnaBridge 171:3a7713b1edbc 738 #define LL_ADC_CHANNEL_17 (ADC_CHANNEL_17_NUMBER | ADC_CHANNEL_17_SMP) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN17. Channel common to both bank A and bank B. */
AnnaBridge 171:3a7713b1edbc 739 #define LL_ADC_CHANNEL_18 (ADC_CHANNEL_18_NUMBER | ADC_CHANNEL_18_SMP) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN18. Channel common to both bank A and bank B. */
AnnaBridge 171:3a7713b1edbc 740 #define LL_ADC_CHANNEL_19 (ADC_CHANNEL_19_NUMBER | ADC_CHANNEL_19_SMP) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN19. Channel common to both bank A and bank B. */
AnnaBridge 171:3a7713b1edbc 741 #define LL_ADC_CHANNEL_20 (ADC_CHANNEL_20_NUMBER | ADC_CHANNEL_20_SMP) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN20. Channel common to both bank A and bank B. */
AnnaBridge 171:3a7713b1edbc 742 #define LL_ADC_CHANNEL_21 (ADC_CHANNEL_21_NUMBER | ADC_CHANNEL_21_SMP) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN21. Channel common to both bank A and bank B. */
AnnaBridge 171:3a7713b1edbc 743 #define LL_ADC_CHANNEL_22 (ADC_CHANNEL_22_NUMBER | ADC_CHANNEL_22_SMP) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN22. Direct (fast) channel. */
AnnaBridge 171:3a7713b1edbc 744 #define LL_ADC_CHANNEL_23 (ADC_CHANNEL_23_NUMBER | ADC_CHANNEL_23_SMP) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN23. Direct (fast) channel. */
AnnaBridge 171:3a7713b1edbc 745 #define LL_ADC_CHANNEL_24 (ADC_CHANNEL_24_NUMBER | ADC_CHANNEL_24_SMP) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN24. Direct (fast) channel. */
AnnaBridge 171:3a7713b1edbc 746 #define LL_ADC_CHANNEL_25 (ADC_CHANNEL_25_NUMBER | ADC_CHANNEL_25_SMP) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN25. Direct (fast) channel. */
AnnaBridge 171:3a7713b1edbc 747 #define LL_ADC_CHANNEL_26 (ADC_CHANNEL_26_NUMBER | ADC_CHANNEL_26_SMP) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN26. Direct (fast) channel. */
AnnaBridge 171:3a7713b1edbc 748 #if defined(ADC_SMPR0_SMP31)
AnnaBridge 171:3a7713b1edbc 749 #define LL_ADC_CHANNEL_27 (ADC_CHANNEL_27_NUMBER | ADC_CHANNEL_27_SMP) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN27. Channel common to both bank A and bank B. On STM32L1, parameter not available on all devices: only on STM32L1 Cat.4 and Cat.5. */
AnnaBridge 171:3a7713b1edbc 750 #define LL_ADC_CHANNEL_28 (ADC_CHANNEL_28_NUMBER | ADC_CHANNEL_28_SMP) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN28. Channel common to both bank A and bank B. On STM32L1, parameter not available on all devices: only on STM32L1 Cat.4 and Cat.5. */
AnnaBridge 171:3a7713b1edbc 751 #define LL_ADC_CHANNEL_29 (ADC_CHANNEL_29_NUMBER | ADC_CHANNEL_29_SMP) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN29. Channel common to both bank A and bank B. On STM32L1, parameter not available on all devices: only on STM32L1 Cat.4 and Cat.5. */
AnnaBridge 171:3a7713b1edbc 752 #define LL_ADC_CHANNEL_30 (ADC_CHANNEL_30_NUMBER | ADC_CHANNEL_30_SMP) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN30. Channel common to both bank A and bank B. On STM32L1, parameter not available on all devices: only on STM32L1 Cat.4 and Cat.5. */
AnnaBridge 171:3a7713b1edbc 753 #define LL_ADC_CHANNEL_31 (ADC_CHANNEL_31_NUMBER | ADC_CHANNEL_31_SMP) /*!< ADC external channel (channel connected to GPIO pin) ADCx_IN31. Channel common to both bank A and bank B. On STM32L1, parameter not available on all devices: only on STM32L1 Cat.4 and Cat.5. */
AnnaBridge 171:3a7713b1edbc 754 #endif /* ADC_SMPR0_SMP31 */
AnnaBridge 171:3a7713b1edbc 755 #define LL_ADC_CHANNEL_VREFINT (LL_ADC_CHANNEL_17 | ADC_CHANNEL_ID_INTERNAL_CH) /*!< ADC internal channel connected to VrefInt: Internal voltage reference. Channel common to both bank A and bank B. */
AnnaBridge 171:3a7713b1edbc 756 #define LL_ADC_CHANNEL_TEMPSENSOR (LL_ADC_CHANNEL_16 | ADC_CHANNEL_ID_INTERNAL_CH) /*!< ADC internal channel connected to Temperature sensor. Channel common to both bank A and bank B. */
AnnaBridge 171:3a7713b1edbc 757 #define LL_ADC_CHANNEL_VCOMP (LL_ADC_CHANNEL_26 | ADC_CHANNEL_ID_INTERNAL_CH) /*!< ADC internal channel connected to comparator COMP1 positive input via ADC switch matrix. Channel common to both bank A and bank B. */
AnnaBridge 171:3a7713b1edbc 758 #if defined(OPAMP_CSR_OPA1PD) || defined (OPAMP_CSR_OPA2PD) || defined (OPAMP_CSR_OPA3PD)
AnnaBridge 171:3a7713b1edbc 759 #define LL_ADC_CHANNEL_VOPAMP1 (LL_ADC_CHANNEL_3 | ADC_CHANNEL_ID_INTERNAL_CH) /*!< ADC internal channel connected to OPAMP1 output via ADC switch matrix. Channel common to both bank A and bank B. */
AnnaBridge 171:3a7713b1edbc 760 #define LL_ADC_CHANNEL_VOPAMP2 (LL_ADC_CHANNEL_8 | ADC_CHANNEL_ID_INTERNAL_CH) /*!< ADC internal channel connected to OPAMP2 output via ADC switch matrix. Channel common to both bank A and bank B. */
AnnaBridge 171:3a7713b1edbc 761 #if defined(OPAMP_CSR_OPA3PD)
AnnaBridge 171:3a7713b1edbc 762 #define LL_ADC_CHANNEL_VOPAMP3 (LL_ADC_CHANNEL_13 | ADC_CHANNEL_ID_INTERNAL_CH) /*!< ADC internal channel connected to OPAMP3 output via ADC switch matrix. Channel common to both bank A and bank B. */
AnnaBridge 171:3a7713b1edbc 763 #endif /* OPAMP_CSR_OPA3PD */
AnnaBridge 171:3a7713b1edbc 764 #endif /* OPAMP_CSR_OPA1PD || OPAMP_CSR_OPA2PD || OPAMP_CSR_OPA3PD */
AnnaBridge 171:3a7713b1edbc 765 /**
AnnaBridge 171:3a7713b1edbc 766 * @}
AnnaBridge 171:3a7713b1edbc 767 */
AnnaBridge 171:3a7713b1edbc 768
AnnaBridge 171:3a7713b1edbc 769 /** @defgroup ADC_LL_EC_REG_TRIGGER_SOURCE ADC group regular - Trigger source
AnnaBridge 171:3a7713b1edbc 770 * @{
AnnaBridge 171:3a7713b1edbc 771 */
AnnaBridge 171:3a7713b1edbc 772 #define LL_ADC_REG_TRIG_SOFTWARE 0x00000000U /*!< ADC group regular conversion trigger internal: SW start. */
AnnaBridge 171:3a7713b1edbc 773 #define LL_ADC_REG_TRIG_EXT_TIM2_TRGO (ADC_CR2_EXTSEL_2 | ADC_CR2_EXTSEL_1 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: TIM2 TRGO. Trigger edge set to rising edge (default setting). */
AnnaBridge 171:3a7713b1edbc 774 #define LL_ADC_REG_TRIG_EXT_TIM2_CH3 (ADC_CR2_EXTSEL_1 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: TIM2 channel 3 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
AnnaBridge 171:3a7713b1edbc 775 #define LL_ADC_REG_TRIG_EXT_TIM3_TRGO (ADC_CR2_EXTSEL_2 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: TIM3 TRGO. Trigger edge set to rising edge (default setting). */
AnnaBridge 171:3a7713b1edbc 776 #define LL_ADC_REG_TRIG_EXT_TIM2_CH2 (ADC_CR2_EXTSEL_1 | ADC_CR2_EXTSEL_0 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: TIM2 channel 2 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
AnnaBridge 171:3a7713b1edbc 777 #define LL_ADC_REG_TRIG_EXT_TIM3_CH1 (ADC_CR2_EXTSEL_2 | ADC_CR2_EXTSEL_1 | ADC_CR2_EXTSEL_0 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: TIM3 channel 1 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
AnnaBridge 171:3a7713b1edbc 778 #define LL_ADC_REG_TRIG_EXT_TIM3_CH3 (ADC_CR2_EXTSEL_3 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: TIM3 channel 3 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
AnnaBridge 171:3a7713b1edbc 779 #define LL_ADC_REG_TRIG_EXT_TIM4_TRGO (ADC_CR2_EXTSEL_3 | ADC_CR2_EXTSEL_0 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: TIM4 TRGO. Trigger edge set to rising edge (default setting). */
AnnaBridge 171:3a7713b1edbc 780 #define LL_ADC_REG_TRIG_EXT_TIM4_CH4 (ADC_CR2_EXTSEL_2 | ADC_CR2_EXTSEL_0 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: TIM4 channel 4 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
AnnaBridge 171:3a7713b1edbc 781 #define LL_ADC_REG_TRIG_EXT_TIM6_TRGO (ADC_CR2_EXTSEL_3 | ADC_CR2_EXTSEL_1 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: TIM6 TRGO. Trigger edge set to rising edge (default setting). */
AnnaBridge 171:3a7713b1edbc 782 #define LL_ADC_REG_TRIG_EXT_TIM9_CH2 (ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: TIM9 channel 2 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
AnnaBridge 171:3a7713b1edbc 783 #define LL_ADC_REG_TRIG_EXT_TIM9_TRGO (ADC_CR2_EXTSEL_0 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: TIM9 TRGO. Trigger edge set to rising edge (default setting). */
AnnaBridge 171:3a7713b1edbc 784 #define LL_ADC_REG_TRIG_EXT_EXTI_LINE11 (ADC_CR2_EXTSEL_3 | ADC_CR2_EXTSEL_2 | ADC_CR2_EXTSEL_1 | ADC_CR2_EXTSEL_0 | ADC_REG_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group regular conversion trigger from external IP: external interrupt line 11. Trigger edge set to rising edge (default setting). */
AnnaBridge 171:3a7713b1edbc 785 /**
AnnaBridge 171:3a7713b1edbc 786 * @}
AnnaBridge 171:3a7713b1edbc 787 */
AnnaBridge 171:3a7713b1edbc 788
AnnaBridge 171:3a7713b1edbc 789 /** @defgroup ADC_LL_EC_REG_TRIGGER_EDGE ADC group regular - Trigger edge
AnnaBridge 171:3a7713b1edbc 790 * @{
AnnaBridge 171:3a7713b1edbc 791 */
AnnaBridge 171:3a7713b1edbc 792 #define LL_ADC_REG_TRIG_EXT_RISING ( ADC_CR2_EXTEN_0) /*!< ADC group regular conversion trigger polarity set to rising edge */
AnnaBridge 171:3a7713b1edbc 793 #define LL_ADC_REG_TRIG_EXT_FALLING (ADC_CR2_EXTEN_1 ) /*!< ADC group regular conversion trigger polarity set to falling edge */
AnnaBridge 171:3a7713b1edbc 794 #define LL_ADC_REG_TRIG_EXT_RISINGFALLING (ADC_CR2_EXTEN_1 | ADC_CR2_EXTEN_0) /*!< ADC group regular conversion trigger polarity set to both rising and falling edges */
AnnaBridge 171:3a7713b1edbc 795 /**
AnnaBridge 171:3a7713b1edbc 796 * @}
AnnaBridge 171:3a7713b1edbc 797 */
AnnaBridge 171:3a7713b1edbc 798
AnnaBridge 171:3a7713b1edbc 799 /** @defgroup ADC_LL_EC_REG_CONTINUOUS_MODE ADC group regular - Continuous mode
AnnaBridge 171:3a7713b1edbc 800 * @{
AnnaBridge 171:3a7713b1edbc 801 */
AnnaBridge 171:3a7713b1edbc 802 #define LL_ADC_REG_CONV_SINGLE 0x00000000U /*!< ADC conversions are performed in single mode: one conversion per trigger */
AnnaBridge 171:3a7713b1edbc 803 #define LL_ADC_REG_CONV_CONTINUOUS (ADC_CR2_CONT) /*!< ADC conversions are performed in continuous mode: after the first trigger, following conversions launched successively automatically */
AnnaBridge 171:3a7713b1edbc 804 /**
AnnaBridge 171:3a7713b1edbc 805 * @}
AnnaBridge 171:3a7713b1edbc 806 */
AnnaBridge 171:3a7713b1edbc 807
AnnaBridge 171:3a7713b1edbc 808 /** @defgroup ADC_LL_EC_REG_DMA_TRANSFER ADC group regular - DMA transfer of ADC conversion data
AnnaBridge 171:3a7713b1edbc 809 * @{
AnnaBridge 171:3a7713b1edbc 810 */
AnnaBridge 171:3a7713b1edbc 811 #define LL_ADC_REG_DMA_TRANSFER_NONE 0x00000000U /*!< ADC conversions are not transferred by DMA */
AnnaBridge 171:3a7713b1edbc 812 #define LL_ADC_REG_DMA_TRANSFER_LIMITED ( ADC_CR2_DMA) /*!< ADC conversion data are transferred by DMA, in limited mode (one shot mode): DMA transfer requests are stopped when number of DMA data transfers (number of ADC conversions) is reached. This ADC mode is intended to be used with DMA mode non-circular. */
AnnaBridge 171:3a7713b1edbc 813 #define LL_ADC_REG_DMA_TRANSFER_UNLIMITED (ADC_CR2_DDS | ADC_CR2_DMA) /*!< ADC conversion data are transferred by DMA, in unlimited mode: DMA transfer requests are unlimited, whatever number of DMA data transferred (number of ADC conversions). This ADC mode is intended to be used with DMA mode circular. */
AnnaBridge 171:3a7713b1edbc 814 /**
AnnaBridge 171:3a7713b1edbc 815 * @}
AnnaBridge 171:3a7713b1edbc 816 */
AnnaBridge 171:3a7713b1edbc 817
AnnaBridge 171:3a7713b1edbc 818 /** @defgroup ADC_LL_EC_REG_FLAG_EOC_SELECTION ADC group regular - Flag EOC selection (unitary or sequence conversions)
AnnaBridge 171:3a7713b1edbc 819 * @{
AnnaBridge 171:3a7713b1edbc 820 */
AnnaBridge 171:3a7713b1edbc 821 #define LL_ADC_REG_FLAG_EOC_SEQUENCE_CONV 0x00000000U /*!< ADC flag EOC (end of unitary conversion) selected */
AnnaBridge 171:3a7713b1edbc 822 #define LL_ADC_REG_FLAG_EOC_UNITARY_CONV (ADC_CR2_EOCS) /*!< ADC flag EOS (end of sequence conversions) selected */
AnnaBridge 171:3a7713b1edbc 823 /**
AnnaBridge 171:3a7713b1edbc 824 * @}
AnnaBridge 171:3a7713b1edbc 825 */
AnnaBridge 171:3a7713b1edbc 826
AnnaBridge 171:3a7713b1edbc 827 /** @defgroup ADC_LL_EC_REG_SEQ_SCAN_LENGTH ADC group regular - Sequencer scan length
AnnaBridge 171:3a7713b1edbc 828 * @{
AnnaBridge 171:3a7713b1edbc 829 */
AnnaBridge 171:3a7713b1edbc 830 #define LL_ADC_REG_SEQ_SCAN_DISABLE 0x00000000U /*!< ADC group regular sequencer disable (equivalent to sequencer of 1 rank: ADC conversion on only 1 channel) */
AnnaBridge 171:3a7713b1edbc 831 #define LL_ADC_REG_SEQ_SCAN_ENABLE_2RANKS ( ADC_SQR1_L_0) /*!< ADC group regular sequencer enable with 2 ranks in the sequence */
AnnaBridge 171:3a7713b1edbc 832 #define LL_ADC_REG_SEQ_SCAN_ENABLE_3RANKS ( ADC_SQR1_L_1 ) /*!< ADC group regular sequencer enable with 3 ranks in the sequence */
AnnaBridge 171:3a7713b1edbc 833 #define LL_ADC_REG_SEQ_SCAN_ENABLE_4RANKS ( ADC_SQR1_L_1 | ADC_SQR1_L_0) /*!< ADC group regular sequencer enable with 4 ranks in the sequence */
AnnaBridge 171:3a7713b1edbc 834 #define LL_ADC_REG_SEQ_SCAN_ENABLE_5RANKS ( ADC_SQR1_L_2 ) /*!< ADC group regular sequencer enable with 5 ranks in the sequence */
AnnaBridge 171:3a7713b1edbc 835 #define LL_ADC_REG_SEQ_SCAN_ENABLE_6RANKS ( ADC_SQR1_L_2 | ADC_SQR1_L_0) /*!< ADC group regular sequencer enable with 6 ranks in the sequence */
AnnaBridge 171:3a7713b1edbc 836 #define LL_ADC_REG_SEQ_SCAN_ENABLE_7RANKS ( ADC_SQR1_L_2 | ADC_SQR1_L_1 ) /*!< ADC group regular sequencer enable with 7 ranks in the sequence */
AnnaBridge 171:3a7713b1edbc 837 #define LL_ADC_REG_SEQ_SCAN_ENABLE_8RANKS ( ADC_SQR1_L_2 | ADC_SQR1_L_1 | ADC_SQR1_L_0) /*!< ADC group regular sequencer enable with 8 ranks in the sequence */
AnnaBridge 171:3a7713b1edbc 838 #define LL_ADC_REG_SEQ_SCAN_ENABLE_9RANKS (ADC_SQR1_L_3 ) /*!< ADC group regular sequencer enable with 9 ranks in the sequence */
AnnaBridge 171:3a7713b1edbc 839 #define LL_ADC_REG_SEQ_SCAN_ENABLE_10RANKS (ADC_SQR1_L_3 | ADC_SQR1_L_0) /*!< ADC group regular sequencer enable with 10 ranks in the sequence */
AnnaBridge 171:3a7713b1edbc 840 #define LL_ADC_REG_SEQ_SCAN_ENABLE_11RANKS (ADC_SQR1_L_3 | ADC_SQR1_L_1 ) /*!< ADC group regular sequencer enable with 11 ranks in the sequence */
AnnaBridge 171:3a7713b1edbc 841 #define LL_ADC_REG_SEQ_SCAN_ENABLE_12RANKS (ADC_SQR1_L_3 | ADC_SQR1_L_1 | ADC_SQR1_L_0) /*!< ADC group regular sequencer enable with 12 ranks in the sequence */
AnnaBridge 171:3a7713b1edbc 842 #define LL_ADC_REG_SEQ_SCAN_ENABLE_13RANKS (ADC_SQR1_L_3 | ADC_SQR1_L_2 ) /*!< ADC group regular sequencer enable with 13 ranks in the sequence */
AnnaBridge 171:3a7713b1edbc 843 #define LL_ADC_REG_SEQ_SCAN_ENABLE_14RANKS (ADC_SQR1_L_3 | ADC_SQR1_L_2 | ADC_SQR1_L_0) /*!< ADC group regular sequencer enable with 14 ranks in the sequence */
AnnaBridge 171:3a7713b1edbc 844 #define LL_ADC_REG_SEQ_SCAN_ENABLE_15RANKS (ADC_SQR1_L_3 | ADC_SQR1_L_2 | ADC_SQR1_L_1 ) /*!< ADC group regular sequencer enable with 15 ranks in the sequence */
AnnaBridge 171:3a7713b1edbc 845 #define LL_ADC_REG_SEQ_SCAN_ENABLE_16RANKS (ADC_SQR1_L_3 | ADC_SQR1_L_2 | ADC_SQR1_L_1 | ADC_SQR1_L_0) /*!< ADC group regular sequencer enable with 16 ranks in the sequence */
AnnaBridge 171:3a7713b1edbc 846 /**
AnnaBridge 171:3a7713b1edbc 847 * @}
AnnaBridge 171:3a7713b1edbc 848 */
AnnaBridge 171:3a7713b1edbc 849
AnnaBridge 171:3a7713b1edbc 850 /** @defgroup ADC_LL_EC_REG_SEQ_DISCONT_MODE ADC group regular - Sequencer discontinuous mode
AnnaBridge 171:3a7713b1edbc 851 * @{
AnnaBridge 171:3a7713b1edbc 852 */
AnnaBridge 171:3a7713b1edbc 853 #define LL_ADC_REG_SEQ_DISCONT_DISABLE 0x00000000U /*!< ADC group regular sequencer discontinuous mode disable */
AnnaBridge 171:3a7713b1edbc 854 #define LL_ADC_REG_SEQ_DISCONT_1RANK ( ADC_CR1_DISCEN) /*!< ADC group regular sequencer discontinuous mode enable with sequence interruption every rank */
AnnaBridge 171:3a7713b1edbc 855 #define LL_ADC_REG_SEQ_DISCONT_2RANKS ( ADC_CR1_DISCNUM_0 | ADC_CR1_DISCEN) /*!< ADC group regular sequencer discontinuous mode enabled with sequence interruption every 2 ranks */
AnnaBridge 171:3a7713b1edbc 856 #define LL_ADC_REG_SEQ_DISCONT_3RANKS ( ADC_CR1_DISCNUM_1 | ADC_CR1_DISCEN) /*!< ADC group regular sequencer discontinuous mode enable with sequence interruption every 3 ranks */
AnnaBridge 171:3a7713b1edbc 857 #define LL_ADC_REG_SEQ_DISCONT_4RANKS ( ADC_CR1_DISCNUM_1 | ADC_CR1_DISCNUM_0 | ADC_CR1_DISCEN) /*!< ADC group regular sequencer discontinuous mode enable with sequence interruption every 4 ranks */
AnnaBridge 171:3a7713b1edbc 858 #define LL_ADC_REG_SEQ_DISCONT_5RANKS (ADC_CR1_DISCNUM_2 | ADC_CR1_DISCEN) /*!< ADC group regular sequencer discontinuous mode enable with sequence interruption every 5 ranks */
AnnaBridge 171:3a7713b1edbc 859 #define LL_ADC_REG_SEQ_DISCONT_6RANKS (ADC_CR1_DISCNUM_2 | ADC_CR1_DISCNUM_0 | ADC_CR1_DISCEN) /*!< ADC group regular sequencer discontinuous mode enable with sequence interruption every 6 ranks */
AnnaBridge 171:3a7713b1edbc 860 #define LL_ADC_REG_SEQ_DISCONT_7RANKS (ADC_CR1_DISCNUM_2 | ADC_CR1_DISCNUM_1 | ADC_CR1_DISCEN) /*!< ADC group regular sequencer discontinuous mode enable with sequence interruption every 7 ranks */
AnnaBridge 171:3a7713b1edbc 861 #define LL_ADC_REG_SEQ_DISCONT_8RANKS (ADC_CR1_DISCNUM_2 | ADC_CR1_DISCNUM_1 | ADC_CR1_DISCNUM_0 | ADC_CR1_DISCEN) /*!< ADC group regular sequencer discontinuous mode enable with sequence interruption every 8 ranks */
AnnaBridge 171:3a7713b1edbc 862 /**
AnnaBridge 171:3a7713b1edbc 863 * @}
AnnaBridge 171:3a7713b1edbc 864 */
AnnaBridge 171:3a7713b1edbc 865
AnnaBridge 171:3a7713b1edbc 866 /** @defgroup ADC_LL_EC_REG_SEQ_RANKS ADC group regular - Sequencer ranks
AnnaBridge 171:3a7713b1edbc 867 * @{
AnnaBridge 171:3a7713b1edbc 868 */
AnnaBridge 171:3a7713b1edbc 869 #define LL_ADC_REG_RANK_1 (ADC_SQR5_REGOFFSET | ADC_REG_RANK_1_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 1 */
AnnaBridge 171:3a7713b1edbc 870 #define LL_ADC_REG_RANK_2 (ADC_SQR5_REGOFFSET | ADC_REG_RANK_2_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 2 */
AnnaBridge 171:3a7713b1edbc 871 #define LL_ADC_REG_RANK_3 (ADC_SQR5_REGOFFSET | ADC_REG_RANK_3_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 3 */
AnnaBridge 171:3a7713b1edbc 872 #define LL_ADC_REG_RANK_4 (ADC_SQR5_REGOFFSET | ADC_REG_RANK_4_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 4 */
AnnaBridge 171:3a7713b1edbc 873 #define LL_ADC_REG_RANK_5 (ADC_SQR5_REGOFFSET | ADC_REG_RANK_5_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 5 */
AnnaBridge 171:3a7713b1edbc 874 #define LL_ADC_REG_RANK_6 (ADC_SQR5_REGOFFSET | ADC_REG_RANK_6_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 6 */
AnnaBridge 171:3a7713b1edbc 875 #define LL_ADC_REG_RANK_7 (ADC_SQR4_REGOFFSET | ADC_REG_RANK_7_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 7 */
AnnaBridge 171:3a7713b1edbc 876 #define LL_ADC_REG_RANK_8 (ADC_SQR4_REGOFFSET | ADC_REG_RANK_8_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 8 */
AnnaBridge 171:3a7713b1edbc 877 #define LL_ADC_REG_RANK_9 (ADC_SQR4_REGOFFSET | ADC_REG_RANK_9_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 9 */
AnnaBridge 171:3a7713b1edbc 878 #define LL_ADC_REG_RANK_10 (ADC_SQR4_REGOFFSET | ADC_REG_RANK_10_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 10 */
AnnaBridge 171:3a7713b1edbc 879 #define LL_ADC_REG_RANK_11 (ADC_SQR4_REGOFFSET | ADC_REG_RANK_11_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 11 */
AnnaBridge 171:3a7713b1edbc 880 #define LL_ADC_REG_RANK_12 (ADC_SQR4_REGOFFSET | ADC_REG_RANK_12_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 12 */
AnnaBridge 171:3a7713b1edbc 881 #define LL_ADC_REG_RANK_13 (ADC_SQR3_REGOFFSET | ADC_REG_RANK_13_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 13 */
AnnaBridge 171:3a7713b1edbc 882 #define LL_ADC_REG_RANK_14 (ADC_SQR3_REGOFFSET | ADC_REG_RANK_14_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 14 */
AnnaBridge 171:3a7713b1edbc 883 #define LL_ADC_REG_RANK_15 (ADC_SQR3_REGOFFSET | ADC_REG_RANK_15_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 15 */
AnnaBridge 171:3a7713b1edbc 884 #define LL_ADC_REG_RANK_16 (ADC_SQR3_REGOFFSET | ADC_REG_RANK_16_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 16 */
AnnaBridge 171:3a7713b1edbc 885 #define LL_ADC_REG_RANK_17 (ADC_SQR3_REGOFFSET | ADC_REG_RANK_17_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 17 */
AnnaBridge 171:3a7713b1edbc 886 #define LL_ADC_REG_RANK_18 (ADC_SQR3_REGOFFSET | ADC_REG_RANK_18_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 18 */
AnnaBridge 171:3a7713b1edbc 887 #define LL_ADC_REG_RANK_19 (ADC_SQR2_REGOFFSET | ADC_REG_RANK_19_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 19 */
AnnaBridge 171:3a7713b1edbc 888 #define LL_ADC_REG_RANK_20 (ADC_SQR2_REGOFFSET | ADC_REG_RANK_20_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 20 */
AnnaBridge 171:3a7713b1edbc 889 #define LL_ADC_REG_RANK_21 (ADC_SQR2_REGOFFSET | ADC_REG_RANK_21_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 21 */
AnnaBridge 171:3a7713b1edbc 890 #define LL_ADC_REG_RANK_22 (ADC_SQR2_REGOFFSET | ADC_REG_RANK_22_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 22 */
AnnaBridge 171:3a7713b1edbc 891 #define LL_ADC_REG_RANK_23 (ADC_SQR2_REGOFFSET | ADC_REG_RANK_23_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 23 */
AnnaBridge 171:3a7713b1edbc 892 #define LL_ADC_REG_RANK_24 (ADC_SQR2_REGOFFSET | ADC_REG_RANK_24_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 24 */
AnnaBridge 171:3a7713b1edbc 893 #define LL_ADC_REG_RANK_25 (ADC_SQR1_REGOFFSET | ADC_REG_RANK_25_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 25 */
AnnaBridge 171:3a7713b1edbc 894 #define LL_ADC_REG_RANK_26 (ADC_SQR1_REGOFFSET | ADC_REG_RANK_26_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 26 */
AnnaBridge 171:3a7713b1edbc 895 #define LL_ADC_REG_RANK_27 (ADC_SQR1_REGOFFSET | ADC_REG_RANK_27_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 27 */
AnnaBridge 171:3a7713b1edbc 896 #if defined(ADC_SQR1_SQ28)
AnnaBridge 171:3a7713b1edbc 897 #define LL_ADC_REG_RANK_28 (ADC_SQR1_REGOFFSET | ADC_REG_RANK_28_SQRX_BITOFFSET_POS) /*!< ADC group regular sequencer rank 28 */
AnnaBridge 171:3a7713b1edbc 898 #endif
AnnaBridge 171:3a7713b1edbc 899 /**
AnnaBridge 171:3a7713b1edbc 900 * @}
AnnaBridge 171:3a7713b1edbc 901 */
AnnaBridge 171:3a7713b1edbc 902
AnnaBridge 171:3a7713b1edbc 903 /** @defgroup ADC_LL_EC_INJ_TRIGGER_SOURCE ADC group injected - Trigger source
AnnaBridge 171:3a7713b1edbc 904 * @{
AnnaBridge 171:3a7713b1edbc 905 */
AnnaBridge 171:3a7713b1edbc 906 #define LL_ADC_INJ_TRIG_SOFTWARE 0x00000000U /*!< ADC group injected conversion trigger internal: SW start. */
AnnaBridge 171:3a7713b1edbc 907 #define LL_ADC_INJ_TRIG_EXT_TIM9_CH1 (ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: TIM9 channel 1 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
AnnaBridge 171:3a7713b1edbc 908 #define LL_ADC_INJ_TRIG_EXT_TIM9_TRGO (ADC_CR2_JEXTSEL_0 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: TIM9 TRGO. Trigger edge set to rising edge (default setting). */
AnnaBridge 171:3a7713b1edbc 909 #define LL_ADC_INJ_TRIG_EXT_TIM2_TRGO (ADC_CR2_JEXTSEL_1 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: TIM2 TRGO. Trigger edge set to rising edge (default setting). */
AnnaBridge 171:3a7713b1edbc 910 #define LL_ADC_INJ_TRIG_EXT_TIM2_CH1 (ADC_CR2_JEXTSEL_1 | ADC_CR2_JEXTSEL_0 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: TIM2 channel 1 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
AnnaBridge 171:3a7713b1edbc 911 #define LL_ADC_INJ_TRIG_EXT_TIM3_CH4 (ADC_CR2_JEXTSEL_2 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: TIM3 channel 4 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
AnnaBridge 171:3a7713b1edbc 912 #define LL_ADC_INJ_TRIG_EXT_TIM4_TRGO (ADC_CR2_JEXTSEL_2 | ADC_CR2_JEXTSEL_0 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: TIM4 TRGO. Trigger edge set to rising edge (default setting). */
AnnaBridge 171:3a7713b1edbc 913 #define LL_ADC_INJ_TRIG_EXT_TIM4_CH1 (ADC_CR2_JEXTSEL_2 | ADC_CR2_JEXTSEL_1 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: TIM4 channel 1 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
AnnaBridge 171:3a7713b1edbc 914 #define LL_ADC_INJ_TRIG_EXT_TIM4_CH2 (ADC_CR2_JEXTSEL_2 | ADC_CR2_JEXTSEL_1 | ADC_CR2_JEXTSEL_0 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: TIM4 channel 2 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
AnnaBridge 171:3a7713b1edbc 915 #define LL_ADC_INJ_TRIG_EXT_TIM4_CH3 (ADC_CR2_JEXTSEL_3 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: TIM4 channel 3 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
AnnaBridge 171:3a7713b1edbc 916 #define LL_ADC_INJ_TRIG_EXT_TIM10_CH1 (ADC_CR2_JEXTSEL_3 | ADC_CR2_JEXTSEL_0 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: TIM10 channel 1 event (capture compare: input capture or output capture). Trigger edge set to rising edge (default setting). */
AnnaBridge 171:3a7713b1edbc 917 #define LL_ADC_INJ_TRIG_EXT_TIM7_TRGO (ADC_CR2_JEXTSEL_3 | ADC_CR2_JEXTSEL_1 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: TIM7 TRGO. Trigger edge set to rising edge (default setting). */
AnnaBridge 171:3a7713b1edbc 918 #define LL_ADC_INJ_TRIG_EXT_EXTI_LINE15 (ADC_CR2_JEXTSEL_3 | ADC_CR2_JEXTSEL_2 | ADC_CR2_JEXTSEL_1 | ADC_CR2_JEXTSEL_0 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT) /*!< ADC group injected conversion trigger from external IP: external interrupt line 15. Trigger edge set to rising edge (default setting). */
AnnaBridge 171:3a7713b1edbc 919 /**
AnnaBridge 171:3a7713b1edbc 920 * @}
AnnaBridge 171:3a7713b1edbc 921 */
AnnaBridge 171:3a7713b1edbc 922
AnnaBridge 171:3a7713b1edbc 923 /** @defgroup ADC_LL_EC_INJ_TRIGGER_EDGE ADC group injected - Trigger edge
AnnaBridge 171:3a7713b1edbc 924 * @{
AnnaBridge 171:3a7713b1edbc 925 */
AnnaBridge 171:3a7713b1edbc 926 #define LL_ADC_INJ_TRIG_EXT_RISING ( ADC_CR2_JEXTEN_0) /*!< ADC group injected conversion trigger polarity set to rising edge */
AnnaBridge 171:3a7713b1edbc 927 #define LL_ADC_INJ_TRIG_EXT_FALLING (ADC_CR2_JEXTEN_1 ) /*!< ADC group injected conversion trigger polarity set to falling edge */
AnnaBridge 171:3a7713b1edbc 928 #define LL_ADC_INJ_TRIG_EXT_RISINGFALLING (ADC_CR2_JEXTEN_1 | ADC_CR2_JEXTEN_0) /*!< ADC group injected conversion trigger polarity set to both rising and falling edges */
AnnaBridge 171:3a7713b1edbc 929 /**
AnnaBridge 171:3a7713b1edbc 930 * @}
AnnaBridge 171:3a7713b1edbc 931 */
AnnaBridge 171:3a7713b1edbc 932
AnnaBridge 171:3a7713b1edbc 933 /** @defgroup ADC_LL_EC_INJ_TRIG_AUTO ADC group injected - Automatic trigger mode
AnnaBridge 171:3a7713b1edbc 934 * @{
AnnaBridge 171:3a7713b1edbc 935 */
AnnaBridge 171:3a7713b1edbc 936 #define LL_ADC_INJ_TRIG_INDEPENDENT 0x00000000U /*!< ADC group injected conversion trigger independent. Setting mandatory if ADC group injected injected trigger source is set to an external trigger. */
AnnaBridge 171:3a7713b1edbc 937 #define LL_ADC_INJ_TRIG_FROM_GRP_REGULAR (ADC_CR1_JAUTO) /*!< ADC group injected conversion trigger from ADC group regular. Setting compliant only with group injected trigger source set to SW start, without any further action on ADC group injected conversion start or stop: in this case, ADC group injected is controlled only from ADC group regular. */
AnnaBridge 171:3a7713b1edbc 938 /**
AnnaBridge 171:3a7713b1edbc 939 * @}
AnnaBridge 171:3a7713b1edbc 940 */
AnnaBridge 171:3a7713b1edbc 941
AnnaBridge 171:3a7713b1edbc 942
AnnaBridge 171:3a7713b1edbc 943 /** @defgroup ADC_LL_EC_INJ_SEQ_SCAN_LENGTH ADC group injected - Sequencer scan length
AnnaBridge 171:3a7713b1edbc 944 * @{
AnnaBridge 171:3a7713b1edbc 945 */
AnnaBridge 171:3a7713b1edbc 946 #define LL_ADC_INJ_SEQ_SCAN_DISABLE 0x00000000U /*!< ADC group injected sequencer disable (equivalent to sequencer of 1 rank: ADC conversion on only 1 channel) */
AnnaBridge 171:3a7713b1edbc 947 #define LL_ADC_INJ_SEQ_SCAN_ENABLE_2RANKS ( ADC_JSQR_JL_0) /*!< ADC group injected sequencer enable with 2 ranks in the sequence */
AnnaBridge 171:3a7713b1edbc 948 #define LL_ADC_INJ_SEQ_SCAN_ENABLE_3RANKS (ADC_JSQR_JL_1 ) /*!< ADC group injected sequencer enable with 3 ranks in the sequence */
AnnaBridge 171:3a7713b1edbc 949 #define LL_ADC_INJ_SEQ_SCAN_ENABLE_4RANKS (ADC_JSQR_JL_1 | ADC_JSQR_JL_0) /*!< ADC group injected sequencer enable with 4 ranks in the sequence */
AnnaBridge 171:3a7713b1edbc 950 /**
AnnaBridge 171:3a7713b1edbc 951 * @}
AnnaBridge 171:3a7713b1edbc 952 */
AnnaBridge 171:3a7713b1edbc 953
AnnaBridge 171:3a7713b1edbc 954 /** @defgroup ADC_LL_EC_INJ_SEQ_DISCONT_MODE ADC group injected - Sequencer discontinuous mode
AnnaBridge 171:3a7713b1edbc 955 * @{
AnnaBridge 171:3a7713b1edbc 956 */
AnnaBridge 171:3a7713b1edbc 957 #define LL_ADC_INJ_SEQ_DISCONT_DISABLE 0x00000000U /*!< ADC group injected sequencer discontinuous mode disable */
AnnaBridge 171:3a7713b1edbc 958 #define LL_ADC_INJ_SEQ_DISCONT_1RANK (ADC_CR1_JDISCEN) /*!< ADC group injected sequencer discontinuous mode enable with sequence interruption every rank */
AnnaBridge 171:3a7713b1edbc 959 /**
AnnaBridge 171:3a7713b1edbc 960 * @}
AnnaBridge 171:3a7713b1edbc 961 */
AnnaBridge 171:3a7713b1edbc 962
AnnaBridge 171:3a7713b1edbc 963 /** @defgroup ADC_LL_EC_INJ_SEQ_RANKS ADC group injected - Sequencer ranks
AnnaBridge 171:3a7713b1edbc 964 * @{
AnnaBridge 171:3a7713b1edbc 965 */
AnnaBridge 171:3a7713b1edbc 966 #define LL_ADC_INJ_RANK_1 (ADC_JDR1_REGOFFSET | ADC_JOFR1_REGOFFSET | ADC_INJ_RANK_1_JSQR_BITOFFSET_POS) /*!< ADC group injected sequencer rank 1 */
AnnaBridge 171:3a7713b1edbc 967 #define LL_ADC_INJ_RANK_2 (ADC_JDR2_REGOFFSET | ADC_JOFR2_REGOFFSET | ADC_INJ_RANK_2_JSQR_BITOFFSET_POS) /*!< ADC group injected sequencer rank 2 */
AnnaBridge 171:3a7713b1edbc 968 #define LL_ADC_INJ_RANK_3 (ADC_JDR3_REGOFFSET | ADC_JOFR3_REGOFFSET | ADC_INJ_RANK_3_JSQR_BITOFFSET_POS) /*!< ADC group injected sequencer rank 3 */
AnnaBridge 171:3a7713b1edbc 969 #define LL_ADC_INJ_RANK_4 (ADC_JDR4_REGOFFSET | ADC_JOFR4_REGOFFSET | ADC_INJ_RANK_4_JSQR_BITOFFSET_POS) /*!< ADC group injected sequencer rank 4 */
AnnaBridge 171:3a7713b1edbc 970 /**
AnnaBridge 171:3a7713b1edbc 971 * @}
AnnaBridge 171:3a7713b1edbc 972 */
AnnaBridge 171:3a7713b1edbc 973
AnnaBridge 171:3a7713b1edbc 974 /** @defgroup ADC_LL_EC_CHANNEL_SAMPLINGTIME Channel - Sampling time
AnnaBridge 171:3a7713b1edbc 975 * @{
AnnaBridge 171:3a7713b1edbc 976 */
AnnaBridge 171:3a7713b1edbc 977 #define LL_ADC_SAMPLINGTIME_4CYCLES 0x00000000U /*!< Sampling time 4 ADC clock cycles */
AnnaBridge 171:3a7713b1edbc 978 #define LL_ADC_SAMPLINGTIME_9CYCLES (ADC_SMPR3_SMP0_0) /*!< Sampling time 9 ADC clock cycles */
AnnaBridge 171:3a7713b1edbc 979 #define LL_ADC_SAMPLINGTIME_16CYCLES (ADC_SMPR3_SMP0_1) /*!< Sampling time 16 ADC clock cycles */
AnnaBridge 171:3a7713b1edbc 980 #define LL_ADC_SAMPLINGTIME_24CYCLES (ADC_SMPR3_SMP0_1 | ADC_SMPR3_SMP0_0) /*!< Sampling time 24 ADC clock cycles */
AnnaBridge 171:3a7713b1edbc 981 #define LL_ADC_SAMPLINGTIME_48CYCLES (ADC_SMPR3_SMP0_2) /*!< Sampling time 48 ADC clock cycles */
AnnaBridge 171:3a7713b1edbc 982 #define LL_ADC_SAMPLINGTIME_96CYCLES (ADC_SMPR3_SMP0_2 | ADC_SMPR3_SMP0_0) /*!< Sampling time 96 ADC clock cycles */
AnnaBridge 171:3a7713b1edbc 983 #define LL_ADC_SAMPLINGTIME_192CYCLES (ADC_SMPR3_SMP0_2 | ADC_SMPR3_SMP0_1) /*!< Sampling time 192 ADC clock cycles */
AnnaBridge 171:3a7713b1edbc 984 #define LL_ADC_SAMPLINGTIME_384CYCLES (ADC_SMPR3_SMP0_2 | ADC_SMPR3_SMP0_1 | ADC_SMPR3_SMP0_0) /*!< Sampling time 384 ADC clock cycles */
AnnaBridge 171:3a7713b1edbc 985 /**
AnnaBridge 171:3a7713b1edbc 986 * @}
AnnaBridge 171:3a7713b1edbc 987 */
AnnaBridge 171:3a7713b1edbc 988
AnnaBridge 171:3a7713b1edbc 989 #if defined(COMP_CSR_FCH3)
AnnaBridge 171:3a7713b1edbc 990 /** @defgroup ADC_LL_EC_CHANNEL_ROUTING_LIST Channel - Routing channels list
AnnaBridge 171:3a7713b1edbc 991 * @{
AnnaBridge 171:3a7713b1edbc 992 */
AnnaBridge 171:3a7713b1edbc 993 #define LL_ADC_CHANNEL_3_ROUTING (COMP_CSR_FCH3) /*!< ADC channel 3 routing. Used as ADC direct channel (fast channel) if OPAMP1 is in power down mode. */
AnnaBridge 171:3a7713b1edbc 994 #define LL_ADC_CHANNEL_8_ROUTING (COMP_CSR_FCH8) /*!< ADC channel 8 routing. Used as ADC direct channel (fast channel) if OPAMP2 is in power down mode. */
AnnaBridge 171:3a7713b1edbc 995 #define LL_ADC_CHANNEL_13_ROUTING (COMP_CSR_RCH13) /*!< ADC channel 13 routing. Used as ADC re-routed channel if OPAMP3 is in power down mode. Otherwise, channel 13 is connected to OPAMP3 output and routed through switches COMP1_SW1 and VCOMP to ADC switch matrix. (Note: OPAMP3 is available on STM32L1 Cat.4 only). */
AnnaBridge 171:3a7713b1edbc 996 /**
AnnaBridge 171:3a7713b1edbc 997 * @}
AnnaBridge 171:3a7713b1edbc 998 */
AnnaBridge 171:3a7713b1edbc 999
AnnaBridge 171:3a7713b1edbc 1000 /** @defgroup ADC_LL_EC_CHANNEL_ROUTING_SELECTION Channel - Routing selection
AnnaBridge 171:3a7713b1edbc 1001 * @{
AnnaBridge 171:3a7713b1edbc 1002 */
AnnaBridge 171:3a7713b1edbc 1003 #define LL_ADC_CHANNEL_ROUTING_DEFAULT 0x00000000U /*!< ADC channel routing default: slow channel */
AnnaBridge 171:3a7713b1edbc 1004 #define LL_ADC_CHANNEL_ROUTING_DIRECT 0x00000001U /*!< ADC channel routing direct: fast channel. */
AnnaBridge 171:3a7713b1edbc 1005 /**
AnnaBridge 171:3a7713b1edbc 1006 * @}
AnnaBridge 171:3a7713b1edbc 1007 */
AnnaBridge 171:3a7713b1edbc 1008 #endif
AnnaBridge 171:3a7713b1edbc 1009
AnnaBridge 171:3a7713b1edbc 1010 /** @defgroup ADC_LL_EC_AWD_NUMBER Analog watchdog - Analog watchdog number
AnnaBridge 171:3a7713b1edbc 1011 * @{
AnnaBridge 171:3a7713b1edbc 1012 */
AnnaBridge 171:3a7713b1edbc 1013 #define LL_ADC_AWD1 (ADC_AWD_CR1_CHANNEL_MASK | ADC_AWD_CR1_REGOFFSET) /*!< ADC analog watchdog number 1 */
AnnaBridge 171:3a7713b1edbc 1014 /**
AnnaBridge 171:3a7713b1edbc 1015 * @}
AnnaBridge 171:3a7713b1edbc 1016 */
AnnaBridge 171:3a7713b1edbc 1017
AnnaBridge 171:3a7713b1edbc 1018 /** @defgroup ADC_LL_EC_AWD_CHANNELS Analog watchdog - Monitored channels
AnnaBridge 171:3a7713b1edbc 1019 * @{
AnnaBridge 171:3a7713b1edbc 1020 */
AnnaBridge 171:3a7713b1edbc 1021 #define LL_ADC_AWD_DISABLE 0x00000000U /*!< ADC analog watchdog monitoring disabled */
AnnaBridge 171:3a7713b1edbc 1022 #define LL_ADC_AWD_ALL_CHANNELS_REG ( ADC_CR1_AWDEN ) /*!< ADC analog watchdog monitoring of all channels, converted by group regular only */
AnnaBridge 171:3a7713b1edbc 1023 #define LL_ADC_AWD_ALL_CHANNELS_INJ ( ADC_CR1_JAWDEN ) /*!< ADC analog watchdog monitoring of all channels, converted by group injected only */
AnnaBridge 171:3a7713b1edbc 1024 #define LL_ADC_AWD_ALL_CHANNELS_REG_INJ ( ADC_CR1_JAWDEN | ADC_CR1_AWDEN ) /*!< ADC analog watchdog monitoring of all channels, converted by either group regular or injected */
AnnaBridge 171:3a7713b1edbc 1025 #define LL_ADC_AWD_CHANNEL_0_REG ((LL_ADC_CHANNEL_0 & ADC_CHANNEL_ID_MASK) | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN0, converted by group regular only */
AnnaBridge 171:3a7713b1edbc 1026 #define LL_ADC_AWD_CHANNEL_0_INJ ((LL_ADC_CHANNEL_0 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN0, converted by group injected only */
AnnaBridge 171:3a7713b1edbc 1027 #define LL_ADC_AWD_CHANNEL_0_REG_INJ ((LL_ADC_CHANNEL_0 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN0, converted by either group regular or injected */
AnnaBridge 171:3a7713b1edbc 1028 #define LL_ADC_AWD_CHANNEL_1_REG ((LL_ADC_CHANNEL_1 & ADC_CHANNEL_ID_MASK) | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN1, converted by group regular only */
AnnaBridge 171:3a7713b1edbc 1029 #define LL_ADC_AWD_CHANNEL_1_INJ ((LL_ADC_CHANNEL_1 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN1, converted by group injected only */
AnnaBridge 171:3a7713b1edbc 1030 #define LL_ADC_AWD_CHANNEL_1_REG_INJ ((LL_ADC_CHANNEL_1 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN1, converted by either group regular or injected */
AnnaBridge 171:3a7713b1edbc 1031 #define LL_ADC_AWD_CHANNEL_2_REG ((LL_ADC_CHANNEL_2 & ADC_CHANNEL_ID_MASK) | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN2, converted by group regular only */
AnnaBridge 171:3a7713b1edbc 1032 #define LL_ADC_AWD_CHANNEL_2_INJ ((LL_ADC_CHANNEL_2 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN2, converted by group injected only */
AnnaBridge 171:3a7713b1edbc 1033 #define LL_ADC_AWD_CHANNEL_2_REG_INJ ((LL_ADC_CHANNEL_2 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN2, converted by either group regular or injected */
AnnaBridge 171:3a7713b1edbc 1034 #define LL_ADC_AWD_CHANNEL_3_REG ((LL_ADC_CHANNEL_3 & ADC_CHANNEL_ID_MASK) | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN3, converted by group regular only */
AnnaBridge 171:3a7713b1edbc 1035 #define LL_ADC_AWD_CHANNEL_3_INJ ((LL_ADC_CHANNEL_3 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN3, converted by group injected only */
AnnaBridge 171:3a7713b1edbc 1036 #define LL_ADC_AWD_CHANNEL_3_REG_INJ ((LL_ADC_CHANNEL_3 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN3, converted by either group regular or injected */
AnnaBridge 171:3a7713b1edbc 1037 #define LL_ADC_AWD_CHANNEL_4_REG ((LL_ADC_CHANNEL_4 & ADC_CHANNEL_ID_MASK) | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN4, converted by group regular only */
AnnaBridge 171:3a7713b1edbc 1038 #define LL_ADC_AWD_CHANNEL_4_INJ ((LL_ADC_CHANNEL_4 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN4, converted by group injected only */
AnnaBridge 171:3a7713b1edbc 1039 #define LL_ADC_AWD_CHANNEL_4_REG_INJ ((LL_ADC_CHANNEL_4 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN4, converted by either group regular or injected */
AnnaBridge 171:3a7713b1edbc 1040 #define LL_ADC_AWD_CHANNEL_5_REG ((LL_ADC_CHANNEL_5 & ADC_CHANNEL_ID_MASK) | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN5, converted by group regular only */
AnnaBridge 171:3a7713b1edbc 1041 #define LL_ADC_AWD_CHANNEL_5_INJ ((LL_ADC_CHANNEL_5 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN5, converted by group injected only */
AnnaBridge 171:3a7713b1edbc 1042 #define LL_ADC_AWD_CHANNEL_5_REG_INJ ((LL_ADC_CHANNEL_5 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN5, converted by either group regular or injected */
AnnaBridge 171:3a7713b1edbc 1043 #define LL_ADC_AWD_CHANNEL_6_REG ((LL_ADC_CHANNEL_6 & ADC_CHANNEL_ID_MASK) | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN6, converted by group regular only */
AnnaBridge 171:3a7713b1edbc 1044 #define LL_ADC_AWD_CHANNEL_6_INJ ((LL_ADC_CHANNEL_6 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN6, converted by group injected only */
AnnaBridge 171:3a7713b1edbc 1045 #define LL_ADC_AWD_CHANNEL_6_REG_INJ ((LL_ADC_CHANNEL_6 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN6, converted by either group regular or injected */
AnnaBridge 171:3a7713b1edbc 1046 #define LL_ADC_AWD_CHANNEL_7_REG ((LL_ADC_CHANNEL_7 & ADC_CHANNEL_ID_MASK) | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN7, converted by group regular only */
AnnaBridge 171:3a7713b1edbc 1047 #define LL_ADC_AWD_CHANNEL_7_INJ ((LL_ADC_CHANNEL_7 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN7, converted by group injected only */
AnnaBridge 171:3a7713b1edbc 1048 #define LL_ADC_AWD_CHANNEL_7_REG_INJ ((LL_ADC_CHANNEL_7 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN7, converted by either group regular or injected */
AnnaBridge 171:3a7713b1edbc 1049 #define LL_ADC_AWD_CHANNEL_8_REG ((LL_ADC_CHANNEL_8 & ADC_CHANNEL_ID_MASK) | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN8, converted by group regular only */
AnnaBridge 171:3a7713b1edbc 1050 #define LL_ADC_AWD_CHANNEL_8_INJ ((LL_ADC_CHANNEL_8 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN8, converted by group injected only */
AnnaBridge 171:3a7713b1edbc 1051 #define LL_ADC_AWD_CHANNEL_8_REG_INJ ((LL_ADC_CHANNEL_8 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN8, converted by either group regular or injected */
AnnaBridge 171:3a7713b1edbc 1052 #define LL_ADC_AWD_CHANNEL_9_REG ((LL_ADC_CHANNEL_9 & ADC_CHANNEL_ID_MASK) | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN9, converted by group regular only */
AnnaBridge 171:3a7713b1edbc 1053 #define LL_ADC_AWD_CHANNEL_9_INJ ((LL_ADC_CHANNEL_9 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN9, converted by group injected only */
AnnaBridge 171:3a7713b1edbc 1054 #define LL_ADC_AWD_CHANNEL_9_REG_INJ ((LL_ADC_CHANNEL_9 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN9, converted by either group regular or injected */
AnnaBridge 171:3a7713b1edbc 1055 #define LL_ADC_AWD_CHANNEL_10_REG ((LL_ADC_CHANNEL_10 & ADC_CHANNEL_ID_MASK) | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN10, converted by group regular only */
AnnaBridge 171:3a7713b1edbc 1056 #define LL_ADC_AWD_CHANNEL_10_INJ ((LL_ADC_CHANNEL_10 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN10, converted by group injected only */
AnnaBridge 171:3a7713b1edbc 1057 #define LL_ADC_AWD_CHANNEL_10_REG_INJ ((LL_ADC_CHANNEL_10 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN10, converted by either group regular or injected */
AnnaBridge 171:3a7713b1edbc 1058 #define LL_ADC_AWD_CHANNEL_11_REG ((LL_ADC_CHANNEL_11 & ADC_CHANNEL_ID_MASK) | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN11, converted by group regular only */
AnnaBridge 171:3a7713b1edbc 1059 #define LL_ADC_AWD_CHANNEL_11_INJ ((LL_ADC_CHANNEL_11 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN11, converted by group injected only */
AnnaBridge 171:3a7713b1edbc 1060 #define LL_ADC_AWD_CHANNEL_11_REG_INJ ((LL_ADC_CHANNEL_11 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN11, converted by either group regular or injected */
AnnaBridge 171:3a7713b1edbc 1061 #define LL_ADC_AWD_CHANNEL_12_REG ((LL_ADC_CHANNEL_12 & ADC_CHANNEL_ID_MASK) | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN12, converted by group regular only */
AnnaBridge 171:3a7713b1edbc 1062 #define LL_ADC_AWD_CHANNEL_12_INJ ((LL_ADC_CHANNEL_12 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN12, converted by group injected only */
AnnaBridge 171:3a7713b1edbc 1063 #define LL_ADC_AWD_CHANNEL_12_REG_INJ ((LL_ADC_CHANNEL_12 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN12, converted by either group regular or injected */
AnnaBridge 171:3a7713b1edbc 1064 #define LL_ADC_AWD_CHANNEL_13_REG ((LL_ADC_CHANNEL_13 & ADC_CHANNEL_ID_MASK) | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN13, converted by group regular only */
AnnaBridge 171:3a7713b1edbc 1065 #define LL_ADC_AWD_CHANNEL_13_INJ ((LL_ADC_CHANNEL_13 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN13, converted by group injected only */
AnnaBridge 171:3a7713b1edbc 1066 #define LL_ADC_AWD_CHANNEL_13_REG_INJ ((LL_ADC_CHANNEL_13 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN13, converted by either group regular or injected */
AnnaBridge 171:3a7713b1edbc 1067 #define LL_ADC_AWD_CHANNEL_14_REG ((LL_ADC_CHANNEL_14 & ADC_CHANNEL_ID_MASK) | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN14, converted by group regular only */
AnnaBridge 171:3a7713b1edbc 1068 #define LL_ADC_AWD_CHANNEL_14_INJ ((LL_ADC_CHANNEL_14 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN14, converted by group injected only */
AnnaBridge 171:3a7713b1edbc 1069 #define LL_ADC_AWD_CHANNEL_14_REG_INJ ((LL_ADC_CHANNEL_14 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN14, converted by either group regular or injected */
AnnaBridge 171:3a7713b1edbc 1070 #define LL_ADC_AWD_CHANNEL_15_REG ((LL_ADC_CHANNEL_15 & ADC_CHANNEL_ID_MASK) | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN15, converted by group regular only */
AnnaBridge 171:3a7713b1edbc 1071 #define LL_ADC_AWD_CHANNEL_15_INJ ((LL_ADC_CHANNEL_15 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN15, converted by group injected only */
AnnaBridge 171:3a7713b1edbc 1072 #define LL_ADC_AWD_CHANNEL_15_REG_INJ ((LL_ADC_CHANNEL_15 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN15, converted by either group regular or injected */
AnnaBridge 171:3a7713b1edbc 1073 #define LL_ADC_AWD_CHANNEL_16_REG ((LL_ADC_CHANNEL_16 & ADC_CHANNEL_ID_MASK) | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN16, converted by group regular only */
AnnaBridge 171:3a7713b1edbc 1074 #define LL_ADC_AWD_CHANNEL_16_INJ ((LL_ADC_CHANNEL_16 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN16, converted by group injected only */
AnnaBridge 171:3a7713b1edbc 1075 #define LL_ADC_AWD_CHANNEL_16_REG_INJ ((LL_ADC_CHANNEL_16 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN16, converted by either group regular or injected */
AnnaBridge 171:3a7713b1edbc 1076 #define LL_ADC_AWD_CHANNEL_17_REG ((LL_ADC_CHANNEL_17 & ADC_CHANNEL_ID_MASK) | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN17, converted by group regular only */
AnnaBridge 171:3a7713b1edbc 1077 #define LL_ADC_AWD_CHANNEL_17_INJ ((LL_ADC_CHANNEL_17 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN17, converted by group injected only */
AnnaBridge 171:3a7713b1edbc 1078 #define LL_ADC_AWD_CHANNEL_17_REG_INJ ((LL_ADC_CHANNEL_17 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN17, converted by either group regular or injected */
AnnaBridge 171:3a7713b1edbc 1079 #define LL_ADC_AWD_CHANNEL_18_REG ((LL_ADC_CHANNEL_18 & ADC_CHANNEL_ID_MASK) | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN18, converted by group regular only */
AnnaBridge 171:3a7713b1edbc 1080 #define LL_ADC_AWD_CHANNEL_18_INJ ((LL_ADC_CHANNEL_18 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN18, converted by group injected only */
AnnaBridge 171:3a7713b1edbc 1081 #define LL_ADC_AWD_CHANNEL_18_REG_INJ ((LL_ADC_CHANNEL_18 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN18, converted by either group regular or injected */
AnnaBridge 171:3a7713b1edbc 1082 #define LL_ADC_AWD_CHANNEL_19_REG ((LL_ADC_CHANNEL_19 & ADC_CHANNEL_ID_MASK) | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN19, converted by group regular only */
AnnaBridge 171:3a7713b1edbc 1083 #define LL_ADC_AWD_CHANNEL_19_INJ ((LL_ADC_CHANNEL_19 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN19, converted by group injected only */
AnnaBridge 171:3a7713b1edbc 1084 #define LL_ADC_AWD_CHANNEL_19_REG_INJ ((LL_ADC_CHANNEL_19 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN19, converted by either group regular or injected */
AnnaBridge 171:3a7713b1edbc 1085 #define LL_ADC_AWD_CHANNEL_20_REG ((LL_ADC_CHANNEL_20 & ADC_CHANNEL_ID_MASK) | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN20, converted by group regular only */
AnnaBridge 171:3a7713b1edbc 1086 #define LL_ADC_AWD_CHANNEL_20_INJ ((LL_ADC_CHANNEL_20 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN20, converted by group injected only */
AnnaBridge 171:3a7713b1edbc 1087 #define LL_ADC_AWD_CHANNEL_20_REG_INJ ((LL_ADC_CHANNEL_20 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN20, converted by either group regular or injected */
AnnaBridge 171:3a7713b1edbc 1088 #define LL_ADC_AWD_CHANNEL_21_REG ((LL_ADC_CHANNEL_21 & ADC_CHANNEL_ID_MASK) | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN21, converted by group regular only */
AnnaBridge 171:3a7713b1edbc 1089 #define LL_ADC_AWD_CHANNEL_21_INJ ((LL_ADC_CHANNEL_21 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN21, converted by group injected only */
AnnaBridge 171:3a7713b1edbc 1090 #define LL_ADC_AWD_CHANNEL_21_REG_INJ ((LL_ADC_CHANNEL_21 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN21, converted by either group regular or injected */
AnnaBridge 171:3a7713b1edbc 1091 #define LL_ADC_AWD_CHANNEL_22_REG ((LL_ADC_CHANNEL_22 & ADC_CHANNEL_ID_MASK) | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN22, converted by group regular only */
AnnaBridge 171:3a7713b1edbc 1092 #define LL_ADC_AWD_CHANNEL_22_INJ ((LL_ADC_CHANNEL_22 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN22, converted by group injected only */
AnnaBridge 171:3a7713b1edbc 1093 #define LL_ADC_AWD_CHANNEL_22_REG_INJ ((LL_ADC_CHANNEL_22 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN22, converted by either group regular or injected */
AnnaBridge 171:3a7713b1edbc 1094 #define LL_ADC_AWD_CHANNEL_23_REG ((LL_ADC_CHANNEL_23 & ADC_CHANNEL_ID_MASK) | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN23, converted by group regular only */
AnnaBridge 171:3a7713b1edbc 1095 #define LL_ADC_AWD_CHANNEL_23_INJ ((LL_ADC_CHANNEL_23 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN23, converted by group injected only */
AnnaBridge 171:3a7713b1edbc 1096 #define LL_ADC_AWD_CHANNEL_23_REG_INJ ((LL_ADC_CHANNEL_23 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN23, converted by either group regular or injected */
AnnaBridge 171:3a7713b1edbc 1097 #define LL_ADC_AWD_CHANNEL_24_REG ((LL_ADC_CHANNEL_24 & ADC_CHANNEL_ID_MASK) | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN24, converted by group regular only */
AnnaBridge 171:3a7713b1edbc 1098 #define LL_ADC_AWD_CHANNEL_24_INJ ((LL_ADC_CHANNEL_24 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN24, converted by group injected only */
AnnaBridge 171:3a7713b1edbc 1099 #define LL_ADC_AWD_CHANNEL_24_REG_INJ ((LL_ADC_CHANNEL_24 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN24, converted by either group regular or injected */
AnnaBridge 171:3a7713b1edbc 1100 #define LL_ADC_AWD_CHANNEL_25_REG ((LL_ADC_CHANNEL_25 & ADC_CHANNEL_ID_MASK) | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN25, converted by group regular only */
AnnaBridge 171:3a7713b1edbc 1101 #define LL_ADC_AWD_CHANNEL_25_INJ ((LL_ADC_CHANNEL_25 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN25, converted by group injected only */
AnnaBridge 171:3a7713b1edbc 1102 #define LL_ADC_AWD_CHANNEL_25_REG_INJ ((LL_ADC_CHANNEL_25 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN25, converted by either group regular or injected */
AnnaBridge 171:3a7713b1edbc 1103 #define LL_ADC_AWD_CHANNEL_26_REG ((LL_ADC_CHANNEL_26 & ADC_CHANNEL_ID_MASK) | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN26, converted by group regular only */
AnnaBridge 171:3a7713b1edbc 1104 #define LL_ADC_AWD_CHANNEL_26_INJ ((LL_ADC_CHANNEL_26 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN26, converted by group injected only */
AnnaBridge 171:3a7713b1edbc 1105 #define LL_ADC_AWD_CHANNEL_26_REG_INJ ((LL_ADC_CHANNEL_26 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN26, converted by either group regular or injected */
AnnaBridge 171:3a7713b1edbc 1106 #if defined(ADC_SMPR0_SMP31)
AnnaBridge 171:3a7713b1edbc 1107 #define LL_ADC_AWD_CHANNEL_27_REG ((LL_ADC_CHANNEL_27 & ADC_CHANNEL_ID_MASK) | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN27, converted by group regular only. On STM32L1, parameter not available on all devices: only on STM32L1 Cat.4 and Cat.5. */
AnnaBridge 171:3a7713b1edbc 1108 #define LL_ADC_AWD_CHANNEL_27_INJ ((LL_ADC_CHANNEL_27 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN27, converted by group injected only. On STM32L1, parameter not available on all devices: only on STM32L1 Cat.4 and Cat.5. */
AnnaBridge 171:3a7713b1edbc 1109 #define LL_ADC_AWD_CHANNEL_27_REG_INJ ((LL_ADC_CHANNEL_27 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN27, converted by either group regular or injected. On STM32L1, parameter not available on all devices: only on STM32L1 Cat.4 and Cat.5. */
AnnaBridge 171:3a7713b1edbc 1110 #define LL_ADC_AWD_CHANNEL_28_REG ((LL_ADC_CHANNEL_28 & ADC_CHANNEL_ID_MASK) | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN28, converted by group regular only. On STM32L1, parameter not available on all devices: only on STM32L1 Cat.4 and Cat.5. */
AnnaBridge 171:3a7713b1edbc 1111 #define LL_ADC_AWD_CHANNEL_28_INJ ((LL_ADC_CHANNEL_28 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN28, converted by group injected only. On STM32L1, parameter not available on all devices: only on STM32L1 Cat.4 and Cat.5. */
AnnaBridge 171:3a7713b1edbc 1112 #define LL_ADC_AWD_CHANNEL_28_REG_INJ ((LL_ADC_CHANNEL_28 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN28, converted by either group regular or injected. On STM32L1, parameter not available on all devices: only on STM32L1 Cat.4 and Cat.5. */
AnnaBridge 171:3a7713b1edbc 1113 #define LL_ADC_AWD_CHANNEL_29_REG ((LL_ADC_CHANNEL_29 & ADC_CHANNEL_ID_MASK) | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN29, converted by group regular only. On STM32L1, parameter not available on all devices: only on STM32L1 Cat.4 and Cat.5. */
AnnaBridge 171:3a7713b1edbc 1114 #define LL_ADC_AWD_CHANNEL_29_INJ ((LL_ADC_CHANNEL_29 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN29, converted by group injected only. On STM32L1, parameter not available on all devices: only on STM32L1 Cat.4 and Cat.5. */
AnnaBridge 171:3a7713b1edbc 1115 #define LL_ADC_AWD_CHANNEL_29_REG_INJ ((LL_ADC_CHANNEL_29 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN29, converted by either group regular or injected. On STM32L1, parameter not available on all devices: only on STM32L1 Cat.4 and Cat.5. */
AnnaBridge 171:3a7713b1edbc 1116 #define LL_ADC_AWD_CHANNEL_30_REG ((LL_ADC_CHANNEL_30 & ADC_CHANNEL_ID_MASK) | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN30, converted by group regular only. On STM32L1, parameter not available on all devices: only on STM32L1 Cat.4 and Cat.5. */
AnnaBridge 171:3a7713b1edbc 1117 #define LL_ADC_AWD_CHANNEL_30_INJ ((LL_ADC_CHANNEL_30 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN30, converted by group injected only. On STM32L1, parameter not available on all devices: only on STM32L1 Cat.4 and Cat.5. */
AnnaBridge 171:3a7713b1edbc 1118 #define LL_ADC_AWD_CHANNEL_30_REG_INJ ((LL_ADC_CHANNEL_30 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN30, converted by either group regular or injected. On STM32L1, parameter not available on all devices: only on STM32L1 Cat.4 and Cat.5. */
AnnaBridge 171:3a7713b1edbc 1119 #define LL_ADC_AWD_CHANNEL_31_REG ((LL_ADC_CHANNEL_31 & ADC_CHANNEL_ID_MASK) | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN31, converted by group regular only. On STM32L1, parameter not available on all devices: only on STM32L1 Cat.4 and Cat.5. */
AnnaBridge 171:3a7713b1edbc 1120 #define LL_ADC_AWD_CHANNEL_31_INJ ((LL_ADC_CHANNEL_31 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN31, converted by group injected only. On STM32L1, parameter not available on all devices: only on STM32L1 Cat.4 and Cat.5. */
AnnaBridge 171:3a7713b1edbc 1121 #define LL_ADC_AWD_CHANNEL_31_REG_INJ ((LL_ADC_CHANNEL_31 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC external channel (channel connected to GPIO pin) ADCx_IN31, converted by either group regular or injected. On STM32L1, parameter not available on all devices: only on STM32L1 Cat.4 and Cat.5. */
AnnaBridge 171:3a7713b1edbc 1122 #endif /* ADC_SMPR0_SMP31 */
AnnaBridge 171:3a7713b1edbc 1123 #define LL_ADC_AWD_CH_VREFINT_REG ((LL_ADC_CHANNEL_VREFINT & ADC_CHANNEL_ID_MASK) | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC internal channel connected to VrefInt: Internal voltage reference, converted by group regular only. Channel common to both bank A and bank B. */
AnnaBridge 171:3a7713b1edbc 1124 #define LL_ADC_AWD_CH_VREFINT_INJ ((LL_ADC_CHANNEL_VREFINT & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC internal channel connected to VrefInt: Internal voltage reference, converted by group injected only. Channel common to both bank A and bank B. */
AnnaBridge 171:3a7713b1edbc 1125 #define LL_ADC_AWD_CH_VREFINT_REG_INJ ((LL_ADC_CHANNEL_VREFINT & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC internal channel connected to VrefInt: Internal voltage reference, converted by either group regular or injected. Channel common to both bank A and bank B. */
AnnaBridge 171:3a7713b1edbc 1126 #define LL_ADC_AWD_CH_TEMPSENSOR_REG ((LL_ADC_CHANNEL_TEMPSENSOR & ADC_CHANNEL_ID_MASK) | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC internal channel connected to Temperature sensor, converted by group regular only. Channel common to both bank A and bank B. */
AnnaBridge 171:3a7713b1edbc 1127 #define LL_ADC_AWD_CH_TEMPSENSOR_INJ ((LL_ADC_CHANNEL_TEMPSENSOR & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC internal channel connected to Temperature sensor, converted by group injected only. Channel common to both bank A and bank B. */
AnnaBridge 171:3a7713b1edbc 1128 #define LL_ADC_AWD_CH_TEMPSENSOR_REG_INJ ((LL_ADC_CHANNEL_TEMPSENSOR & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC internal channel connected to Temperature sensor, converted by either group regular or injected. Channel common to both bank A and bank B. */
AnnaBridge 171:3a7713b1edbc 1129 #define LL_ADC_AWD_CH_VCOMP_REG ((LL_ADC_CHANNEL_VCOMP & ADC_CHANNEL_ID_MASK) | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC internal channel connected to comparator COMP1 positive input via ADC switch matrix. Channel common to both bank A and bank B. */
AnnaBridge 171:3a7713b1edbc 1130 #define LL_ADC_AWD_CH_VCOMP_INJ ((LL_ADC_CHANNEL_VCOMP & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC internal channel connected to comparator COMP1 positive input via ADC switch matrix. Channel common to both bank A and bank B. */
AnnaBridge 171:3a7713b1edbc 1131 #define LL_ADC_AWD_CH_VCOMP_REG_INJ ((LL_ADC_CHANNEL_VCOMP & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC internal channel connected to comparator COMP1 positive input via ADC switch matrix. Channel common to both bank A and bank B. */
AnnaBridge 171:3a7713b1edbc 1132 #if defined(OPAMP_CSR_OPA1PD) || defined (OPAMP_CSR_OPA2PD) || defined (OPAMP_CSR_OPA3PD)
AnnaBridge 171:3a7713b1edbc 1133 #define LL_ADC_AWD_CH_VOPAMP1_REG ((LL_ADC_CHANNEL_VOPAMP1 & ADC_CHANNEL_ID_MASK) | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC internal channel connected to OPAMP1 output via ADC switch matrix. Channel common to both bank A and bank B. */
AnnaBridge 171:3a7713b1edbc 1134 #define LL_ADC_AWD_CH_VOPAMP1_INJ ((LL_ADC_CHANNEL_VOPAMP1 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC internal channel connected to OPAMP1 output via ADC switch matrix. Channel common to both bank A and bank B. */
AnnaBridge 171:3a7713b1edbc 1135 #define LL_ADC_AWD_CH_VOPAMP1_REG_INJ ((LL_ADC_CHANNEL_VOPAMP1 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC internal channel connected to OPAMP1 output via ADC switch matrix. Channel common to both bank A and bank B. */
AnnaBridge 171:3a7713b1edbc 1136 #define LL_ADC_AWD_CH_VOPAMP2_REG ((LL_ADC_CHANNEL_VOPAMP2 & ADC_CHANNEL_ID_MASK) | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC internal channel connected to OPAMP2 output via ADC switch matrix. Channel common to both bank A and bank B. */
AnnaBridge 171:3a7713b1edbc 1137 #define LL_ADC_AWD_CH_VOPAMP2_INJ ((LL_ADC_CHANNEL_VOPAMP2 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC internal channel connected to OPAMP2 output via ADC switch matrix. Channel common to both bank A and bank B. */
AnnaBridge 171:3a7713b1edbc 1138 #define LL_ADC_AWD_CH_VOPAMP2_REG_INJ ((LL_ADC_CHANNEL_VOPAMP2 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC internal channel connected to OPAMP2 output via ADC switch matrix. Channel common to both bank A and bank B. */
AnnaBridge 171:3a7713b1edbc 1139 #if defined(OPAMP_CSR_OPA3PD)
AnnaBridge 171:3a7713b1edbc 1140 #define LL_ADC_AWD_CH_VOPAMP3_REG ((LL_ADC_CHANNEL_VOPAMP3 & ADC_CHANNEL_ID_MASK) | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC internal channel connected to OPAMP3 output via ADC switch matrix. Channel common to both bank A and bank B. */
AnnaBridge 171:3a7713b1edbc 1141 #define LL_ADC_AWD_CH_VOPAMP3_INJ ((LL_ADC_CHANNEL_VOPAMP3 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC internal channel connected to OPAMP3 output via ADC switch matrix. Channel common to both bank A and bank B. */
AnnaBridge 171:3a7713b1edbc 1142 #define LL_ADC_AWD_CH_VOPAMP3_REG_INJ ((LL_ADC_CHANNEL_VOPAMP3 & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) /*!< ADC analog watchdog monitoring of ADC internal channel connected to OPAMP3 output via ADC switch matrix. Channel common to both bank A and bank B. */
AnnaBridge 171:3a7713b1edbc 1143 #endif /* OPAMP_CSR_OPA3PD */
AnnaBridge 171:3a7713b1edbc 1144 #endif /* OPAMP_CSR_OPA1PD || OPAMP_CSR_OPA2PD || OPAMP_CSR_OPA3PD */
AnnaBridge 171:3a7713b1edbc 1145 /**
AnnaBridge 171:3a7713b1edbc 1146 * @}
AnnaBridge 171:3a7713b1edbc 1147 */
AnnaBridge 171:3a7713b1edbc 1148
AnnaBridge 171:3a7713b1edbc 1149 /** @defgroup ADC_LL_EC_AWD_THRESHOLDS Analog watchdog - Thresholds
AnnaBridge 171:3a7713b1edbc 1150 * @{
AnnaBridge 171:3a7713b1edbc 1151 */
AnnaBridge 171:3a7713b1edbc 1152 #define LL_ADC_AWD_THRESHOLD_HIGH (ADC_AWD_TR1_HIGH_REGOFFSET) /*!< ADC analog watchdog threshold high */
AnnaBridge 171:3a7713b1edbc 1153 #define LL_ADC_AWD_THRESHOLD_LOW (ADC_AWD_TR1_LOW_REGOFFSET) /*!< ADC analog watchdog threshold low */
AnnaBridge 171:3a7713b1edbc 1154 /**
AnnaBridge 171:3a7713b1edbc 1155 * @}
AnnaBridge 171:3a7713b1edbc 1156 */
AnnaBridge 171:3a7713b1edbc 1157
AnnaBridge 171:3a7713b1edbc 1158
AnnaBridge 171:3a7713b1edbc 1159 /** @defgroup ADC_LL_EC_HW_DELAYS Definitions of ADC hardware constraints delays
AnnaBridge 171:3a7713b1edbc 1160 * @note Only ADC IP HW delays are defined in ADC LL driver driver,
AnnaBridge 171:3a7713b1edbc 1161 * not timeout values.
AnnaBridge 171:3a7713b1edbc 1162 * For details on delays values, refer to descriptions in source code
AnnaBridge 171:3a7713b1edbc 1163 * above each literal definition.
AnnaBridge 171:3a7713b1edbc 1164 * @{
AnnaBridge 171:3a7713b1edbc 1165 */
AnnaBridge 171:3a7713b1edbc 1166
AnnaBridge 171:3a7713b1edbc 1167 /* Note: Only ADC IP HW delays are defined in ADC LL driver driver, */
AnnaBridge 171:3a7713b1edbc 1168 /* not timeout values. */
AnnaBridge 171:3a7713b1edbc 1169 /* Timeout values for ADC operations are dependent to device clock */
AnnaBridge 171:3a7713b1edbc 1170 /* configuration (system clock versus ADC clock), */
AnnaBridge 171:3a7713b1edbc 1171 /* and therefore must be defined in user application. */
AnnaBridge 171:3a7713b1edbc 1172 /* Indications for estimation of ADC timeout delays, for this */
AnnaBridge 171:3a7713b1edbc 1173 /* STM32 serie: */
AnnaBridge 171:3a7713b1edbc 1174 /* - ADC enable time: maximum delay is 3.5us */
AnnaBridge 171:3a7713b1edbc 1175 /* (refer to device datasheet, parameter "tSTAB") */
AnnaBridge 171:3a7713b1edbc 1176 /* - ADC conversion time: duration depending on ADC clock and ADC */
AnnaBridge 171:3a7713b1edbc 1177 /* configuration. */
AnnaBridge 171:3a7713b1edbc 1178 /* (refer to device reference manual, section "Timing") */
AnnaBridge 171:3a7713b1edbc 1179
AnnaBridge 171:3a7713b1edbc 1180 /* Delay for internal voltage reference stabilization time. */
AnnaBridge 171:3a7713b1edbc 1181 /* Delay set to maximum value (refer to device datasheet, */
AnnaBridge 171:3a7713b1edbc 1182 /* parameter "TADC_BUF"). */
AnnaBridge 171:3a7713b1edbc 1183 /* Unit: us */
AnnaBridge 171:3a7713b1edbc 1184 #define LL_ADC_DELAY_VREFINT_STAB_US ( 10U) /*!< Delay for internal voltage reference stabilization time */
AnnaBridge 171:3a7713b1edbc 1185
AnnaBridge 171:3a7713b1edbc 1186 /* Delay for temperature sensor stabilization time. */
AnnaBridge 171:3a7713b1edbc 1187 /* Literal set to maximum value (refer to device datasheet, */
AnnaBridge 171:3a7713b1edbc 1188 /* parameter "tSTART"). */
AnnaBridge 171:3a7713b1edbc 1189 /* Unit: us */
AnnaBridge 171:3a7713b1edbc 1190 #define LL_ADC_DELAY_TEMPSENSOR_STAB_US ( 10U) /*!< Delay for internal voltage reference stabilization time */
AnnaBridge 171:3a7713b1edbc 1191
AnnaBridge 171:3a7713b1edbc 1192 /**
AnnaBridge 171:3a7713b1edbc 1193 * @}
AnnaBridge 171:3a7713b1edbc 1194 */
AnnaBridge 171:3a7713b1edbc 1195
AnnaBridge 171:3a7713b1edbc 1196 /**
AnnaBridge 171:3a7713b1edbc 1197 * @}
AnnaBridge 171:3a7713b1edbc 1198 */
AnnaBridge 171:3a7713b1edbc 1199
AnnaBridge 171:3a7713b1edbc 1200
AnnaBridge 171:3a7713b1edbc 1201 /* Exported macro ------------------------------------------------------------*/
AnnaBridge 171:3a7713b1edbc 1202 /** @defgroup ADC_LL_Exported_Macros ADC Exported Macros
AnnaBridge 171:3a7713b1edbc 1203 * @{
AnnaBridge 171:3a7713b1edbc 1204 */
AnnaBridge 171:3a7713b1edbc 1205
AnnaBridge 171:3a7713b1edbc 1206 /** @defgroup ADC_LL_EM_WRITE_READ Common write and read registers Macros
AnnaBridge 171:3a7713b1edbc 1207 * @{
AnnaBridge 171:3a7713b1edbc 1208 */
AnnaBridge 171:3a7713b1edbc 1209
AnnaBridge 171:3a7713b1edbc 1210 /**
AnnaBridge 171:3a7713b1edbc 1211 * @brief Write a value in ADC register
AnnaBridge 171:3a7713b1edbc 1212 * @param __INSTANCE__ ADC Instance
AnnaBridge 171:3a7713b1edbc 1213 * @param __REG__ Register to be written
AnnaBridge 171:3a7713b1edbc 1214 * @param __VALUE__ Value to be written in the register
AnnaBridge 171:3a7713b1edbc 1215 * @retval None
AnnaBridge 171:3a7713b1edbc 1216 */
AnnaBridge 171:3a7713b1edbc 1217 #define LL_ADC_WriteReg(__INSTANCE__, __REG__, __VALUE__) WRITE_REG(__INSTANCE__->__REG__, (__VALUE__))
AnnaBridge 171:3a7713b1edbc 1218
AnnaBridge 171:3a7713b1edbc 1219 /**
AnnaBridge 171:3a7713b1edbc 1220 * @brief Read a value in ADC register
AnnaBridge 171:3a7713b1edbc 1221 * @param __INSTANCE__ ADC Instance
AnnaBridge 171:3a7713b1edbc 1222 * @param __REG__ Register to be read
AnnaBridge 171:3a7713b1edbc 1223 * @retval Register value
AnnaBridge 171:3a7713b1edbc 1224 */
AnnaBridge 171:3a7713b1edbc 1225 #define LL_ADC_ReadReg(__INSTANCE__, __REG__) READ_REG(__INSTANCE__->__REG__)
AnnaBridge 171:3a7713b1edbc 1226 /**
AnnaBridge 171:3a7713b1edbc 1227 * @}
AnnaBridge 171:3a7713b1edbc 1228 */
AnnaBridge 171:3a7713b1edbc 1229
AnnaBridge 171:3a7713b1edbc 1230 /** @defgroup ADC_LL_EM_HELPER_MACRO ADC helper macro
AnnaBridge 171:3a7713b1edbc 1231 * @{
AnnaBridge 171:3a7713b1edbc 1232 */
AnnaBridge 171:3a7713b1edbc 1233
AnnaBridge 171:3a7713b1edbc 1234 /**
AnnaBridge 171:3a7713b1edbc 1235 * @brief Helper macro to get ADC channel number in decimal format
AnnaBridge 171:3a7713b1edbc 1236 * from literals LL_ADC_CHANNEL_x.
AnnaBridge 171:3a7713b1edbc 1237 * @note Example:
AnnaBridge 171:3a7713b1edbc 1238 * __LL_ADC_CHANNEL_TO_DECIMAL_NB(LL_ADC_CHANNEL_4)
AnnaBridge 171:3a7713b1edbc 1239 * will return decimal number "4".
AnnaBridge 171:3a7713b1edbc 1240 * @note The input can be a value from functions where a channel
AnnaBridge 171:3a7713b1edbc 1241 * number is returned, either defined with number
AnnaBridge 171:3a7713b1edbc 1242 * or with bitfield (only one bit must be set).
AnnaBridge 171:3a7713b1edbc 1243 * @param __CHANNEL__ This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 1244 * @arg @ref LL_ADC_CHANNEL_0 (2)
AnnaBridge 171:3a7713b1edbc 1245 * @arg @ref LL_ADC_CHANNEL_1 (2)
AnnaBridge 171:3a7713b1edbc 1246 * @arg @ref LL_ADC_CHANNEL_2 (2)
AnnaBridge 171:3a7713b1edbc 1247 * @arg @ref LL_ADC_CHANNEL_3 (2)
AnnaBridge 171:3a7713b1edbc 1248 * @arg @ref LL_ADC_CHANNEL_4 (1)
AnnaBridge 171:3a7713b1edbc 1249 * @arg @ref LL_ADC_CHANNEL_5 (1)
AnnaBridge 171:3a7713b1edbc 1250 * @arg @ref LL_ADC_CHANNEL_6 (2)
AnnaBridge 171:3a7713b1edbc 1251 * @arg @ref LL_ADC_CHANNEL_7 (2)
AnnaBridge 171:3a7713b1edbc 1252 * @arg @ref LL_ADC_CHANNEL_8 (2)
AnnaBridge 171:3a7713b1edbc 1253 * @arg @ref LL_ADC_CHANNEL_9 (2)
AnnaBridge 171:3a7713b1edbc 1254 * @arg @ref LL_ADC_CHANNEL_10 (2)
AnnaBridge 171:3a7713b1edbc 1255 * @arg @ref LL_ADC_CHANNEL_11 (2)
AnnaBridge 171:3a7713b1edbc 1256 * @arg @ref LL_ADC_CHANNEL_12 (2)
AnnaBridge 171:3a7713b1edbc 1257 * @arg @ref LL_ADC_CHANNEL_13 (3)
AnnaBridge 171:3a7713b1edbc 1258 * @arg @ref LL_ADC_CHANNEL_14 (3)
AnnaBridge 171:3a7713b1edbc 1259 * @arg @ref LL_ADC_CHANNEL_15 (3)
AnnaBridge 171:3a7713b1edbc 1260 * @arg @ref LL_ADC_CHANNEL_16 (3)
AnnaBridge 171:3a7713b1edbc 1261 * @arg @ref LL_ADC_CHANNEL_17 (3)
AnnaBridge 171:3a7713b1edbc 1262 * @arg @ref LL_ADC_CHANNEL_18 (3)
AnnaBridge 171:3a7713b1edbc 1263 * @arg @ref LL_ADC_CHANNEL_19 (3)
AnnaBridge 171:3a7713b1edbc 1264 * @arg @ref LL_ADC_CHANNEL_20 (3)
AnnaBridge 171:3a7713b1edbc 1265 * @arg @ref LL_ADC_CHANNEL_21 (3)
AnnaBridge 171:3a7713b1edbc 1266 * @arg @ref LL_ADC_CHANNEL_22 (1)
AnnaBridge 171:3a7713b1edbc 1267 * @arg @ref LL_ADC_CHANNEL_23 (1)
AnnaBridge 171:3a7713b1edbc 1268 * @arg @ref LL_ADC_CHANNEL_24 (1)
AnnaBridge 171:3a7713b1edbc 1269 * @arg @ref LL_ADC_CHANNEL_25 (1)
AnnaBridge 171:3a7713b1edbc 1270 * @arg @ref LL_ADC_CHANNEL_26 (3)
AnnaBridge 171:3a7713b1edbc 1271 * @arg @ref LL_ADC_CHANNEL_27 (3)(4)
AnnaBridge 171:3a7713b1edbc 1272 * @arg @ref LL_ADC_CHANNEL_28 (3)(4)
AnnaBridge 171:3a7713b1edbc 1273 * @arg @ref LL_ADC_CHANNEL_29 (3)(4)
AnnaBridge 171:3a7713b1edbc 1274 * @arg @ref LL_ADC_CHANNEL_30 (3)(4)
AnnaBridge 171:3a7713b1edbc 1275 * @arg @ref LL_ADC_CHANNEL_31 (3)(4)
AnnaBridge 171:3a7713b1edbc 1276 * @arg @ref LL_ADC_CHANNEL_VREFINT (3)
AnnaBridge 171:3a7713b1edbc 1277 * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR (3)
AnnaBridge 171:3a7713b1edbc 1278 * @arg @ref LL_ADC_CHANNEL_VCOMP (3)
AnnaBridge 171:3a7713b1edbc 1279 * @arg @ref LL_ADC_CHANNEL_VOPAMP1 (3)(5)
AnnaBridge 171:3a7713b1edbc 1280 * @arg @ref LL_ADC_CHANNEL_VOPAMP2 (3)(5)
AnnaBridge 171:3a7713b1edbc 1281 * @arg @ref LL_ADC_CHANNEL_VOPAMP3 (3)(5)
AnnaBridge 171:3a7713b1edbc 1282 *
AnnaBridge 171:3a7713b1edbc 1283 * (1) On STM32L1, connection via routing interface (RI) specificity: fast channel (channel routed directly to ADC switch matrix).\n
AnnaBridge 171:3a7713b1edbc 1284 * (2) On STM32L1, for devices with feature 'channels banks' available: Channel different in bank A and bank B.\n
AnnaBridge 171:3a7713b1edbc 1285 * (3) On STM32L1, for devices with feature 'channels banks' available: Channel common to both bank A and bank B.\n
AnnaBridge 171:3a7713b1edbc 1286 * (4) On STM32L1, parameter not available on all devices: only on STM32L1 Cat.4 and Cat.5.\n
AnnaBridge 171:3a7713b1edbc 1287 * (5) On STM32L1, parameter not available on all devices: OPAMP1 and OPAMP2 available only on STM32L1 Cat.3, Cat.4 and Cat.5, OPAMP3 available only on STM32L1 Cat.4 and Cat.5
AnnaBridge 171:3a7713b1edbc 1288 * @retval Value between Min_Data=0 and Max_Data=18
AnnaBridge 171:3a7713b1edbc 1289 */
AnnaBridge 171:3a7713b1edbc 1290 #define __LL_ADC_CHANNEL_TO_DECIMAL_NB(__CHANNEL__) \
AnnaBridge 171:3a7713b1edbc 1291 (((__CHANNEL__) & ADC_CHANNEL_ID_NUMBER_MASK) >> ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS)
AnnaBridge 171:3a7713b1edbc 1292
AnnaBridge 171:3a7713b1edbc 1293 /**
AnnaBridge 171:3a7713b1edbc 1294 * @brief Helper macro to get ADC channel in literal format LL_ADC_CHANNEL_x
AnnaBridge 171:3a7713b1edbc 1295 * from number in decimal format.
AnnaBridge 171:3a7713b1edbc 1296 * @note Example:
AnnaBridge 171:3a7713b1edbc 1297 * __LL_ADC_DECIMAL_NB_TO_CHANNEL(4)
AnnaBridge 171:3a7713b1edbc 1298 * will return a data equivalent to "LL_ADC_CHANNEL_4".
AnnaBridge 171:3a7713b1edbc 1299 * @param __DECIMAL_NB__: Value between Min_Data=0 and Max_Data=18
AnnaBridge 171:3a7713b1edbc 1300 * @retval Returned value can be one of the following values:
AnnaBridge 171:3a7713b1edbc 1301 * @arg @ref LL_ADC_CHANNEL_0 (2)
AnnaBridge 171:3a7713b1edbc 1302 * @arg @ref LL_ADC_CHANNEL_1 (2)
AnnaBridge 171:3a7713b1edbc 1303 * @arg @ref LL_ADC_CHANNEL_2 (2)
AnnaBridge 171:3a7713b1edbc 1304 * @arg @ref LL_ADC_CHANNEL_3 (2)
AnnaBridge 171:3a7713b1edbc 1305 * @arg @ref LL_ADC_CHANNEL_4 (1)
AnnaBridge 171:3a7713b1edbc 1306 * @arg @ref LL_ADC_CHANNEL_5 (1)
AnnaBridge 171:3a7713b1edbc 1307 * @arg @ref LL_ADC_CHANNEL_6 (2)
AnnaBridge 171:3a7713b1edbc 1308 * @arg @ref LL_ADC_CHANNEL_7 (2)
AnnaBridge 171:3a7713b1edbc 1309 * @arg @ref LL_ADC_CHANNEL_8 (2)
AnnaBridge 171:3a7713b1edbc 1310 * @arg @ref LL_ADC_CHANNEL_9 (2)
AnnaBridge 171:3a7713b1edbc 1311 * @arg @ref LL_ADC_CHANNEL_10 (2)
AnnaBridge 171:3a7713b1edbc 1312 * @arg @ref LL_ADC_CHANNEL_11 (2)
AnnaBridge 171:3a7713b1edbc 1313 * @arg @ref LL_ADC_CHANNEL_12 (2)
AnnaBridge 171:3a7713b1edbc 1314 * @arg @ref LL_ADC_CHANNEL_13 (3)
AnnaBridge 171:3a7713b1edbc 1315 * @arg @ref LL_ADC_CHANNEL_14 (3)
AnnaBridge 171:3a7713b1edbc 1316 * @arg @ref LL_ADC_CHANNEL_15 (3)
AnnaBridge 171:3a7713b1edbc 1317 * @arg @ref LL_ADC_CHANNEL_16 (3)
AnnaBridge 171:3a7713b1edbc 1318 * @arg @ref LL_ADC_CHANNEL_17 (3)
AnnaBridge 171:3a7713b1edbc 1319 * @arg @ref LL_ADC_CHANNEL_18 (3)
AnnaBridge 171:3a7713b1edbc 1320 * @arg @ref LL_ADC_CHANNEL_19 (3)
AnnaBridge 171:3a7713b1edbc 1321 * @arg @ref LL_ADC_CHANNEL_20 (3)
AnnaBridge 171:3a7713b1edbc 1322 * @arg @ref LL_ADC_CHANNEL_21 (3)
AnnaBridge 171:3a7713b1edbc 1323 * @arg @ref LL_ADC_CHANNEL_22 (1)
AnnaBridge 171:3a7713b1edbc 1324 * @arg @ref LL_ADC_CHANNEL_23 (1)
AnnaBridge 171:3a7713b1edbc 1325 * @arg @ref LL_ADC_CHANNEL_24 (1)
AnnaBridge 171:3a7713b1edbc 1326 * @arg @ref LL_ADC_CHANNEL_25 (1)
AnnaBridge 171:3a7713b1edbc 1327 * @arg @ref LL_ADC_CHANNEL_26 (3)
AnnaBridge 171:3a7713b1edbc 1328 * @arg @ref LL_ADC_CHANNEL_27 (3)(4)
AnnaBridge 171:3a7713b1edbc 1329 * @arg @ref LL_ADC_CHANNEL_28 (3)(4)
AnnaBridge 171:3a7713b1edbc 1330 * @arg @ref LL_ADC_CHANNEL_29 (3)(4)
AnnaBridge 171:3a7713b1edbc 1331 * @arg @ref LL_ADC_CHANNEL_30 (3)(4)
AnnaBridge 171:3a7713b1edbc 1332 * @arg @ref LL_ADC_CHANNEL_31 (3)(4)
AnnaBridge 171:3a7713b1edbc 1333 * @arg @ref LL_ADC_CHANNEL_VREFINT (3)(6)
AnnaBridge 171:3a7713b1edbc 1334 * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR (3)(6)
AnnaBridge 171:3a7713b1edbc 1335 * @arg @ref LL_ADC_CHANNEL_VCOMP (3)(6)
AnnaBridge 171:3a7713b1edbc 1336 * @arg @ref LL_ADC_CHANNEL_VOPAMP1 (3)(5)
AnnaBridge 171:3a7713b1edbc 1337 * @arg @ref LL_ADC_CHANNEL_VOPAMP2 (3)(5)
AnnaBridge 171:3a7713b1edbc 1338 * @arg @ref LL_ADC_CHANNEL_VOPAMP3 (3)(5)
AnnaBridge 171:3a7713b1edbc 1339 *
AnnaBridge 171:3a7713b1edbc 1340 * (1) On STM32L1, connection via routing interface (RI) specificity: fast channel (channel routed directly to ADC switch matrix).\n
AnnaBridge 171:3a7713b1edbc 1341 * (2) On STM32L1, for devices with feature 'channels banks' available: Channel different in bank A and bank B.\n
AnnaBridge 171:3a7713b1edbc 1342 * (3) On STM32L1, for devices with feature 'channels banks' available: Channel common to both bank A and bank B.\n
AnnaBridge 171:3a7713b1edbc 1343 * (4) On STM32L1, parameter not available on all devices: only on STM32L1 Cat.4 and Cat.5.\n
AnnaBridge 171:3a7713b1edbc 1344 * (5) On STM32L1, parameter not available on all devices: OPAMP1 and OPAMP2 available only on STM32L1 Cat.3, Cat.4 and Cat.5, OPAMP3 available only on STM32L1 Cat.4 and Cat.5.\n
AnnaBridge 171:3a7713b1edbc 1345 * (6) For ADC channel read back from ADC register,
AnnaBridge 171:3a7713b1edbc 1346 * comparison with internal channel parameter to be done
AnnaBridge 171:3a7713b1edbc 1347 * using helper macro @ref __LL_ADC_CHANNEL_INTERNAL_TO_EXTERNAL().
AnnaBridge 171:3a7713b1edbc 1348 */
AnnaBridge 171:3a7713b1edbc 1349 #if defined(ADC_SMPR0_SMP31)
AnnaBridge 171:3a7713b1edbc 1350 #define __LL_ADC_DECIMAL_NB_TO_CHANNEL(__DECIMAL_NB__) \
AnnaBridge 171:3a7713b1edbc 1351 (((__DECIMAL_NB__) <= 9U) \
AnnaBridge 171:3a7713b1edbc 1352 ? ( \
AnnaBridge 171:3a7713b1edbc 1353 ((__DECIMAL_NB__) << ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS) | \
AnnaBridge 171:3a7713b1edbc 1354 (ADC_SMPR3_REGOFFSET | (((uint32_t) (3U * (__DECIMAL_NB__))) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) \
AnnaBridge 171:3a7713b1edbc 1355 ) \
AnnaBridge 171:3a7713b1edbc 1356 : \
AnnaBridge 171:3a7713b1edbc 1357 (((__DECIMAL_NB__) <= 19U) \
AnnaBridge 171:3a7713b1edbc 1358 ? ( \
AnnaBridge 171:3a7713b1edbc 1359 ((__DECIMAL_NB__) << ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS) | \
AnnaBridge 171:3a7713b1edbc 1360 (ADC_SMPR2_REGOFFSET | (((uint32_t) (3U * ((__DECIMAL_NB__) -10U))) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) \
AnnaBridge 171:3a7713b1edbc 1361 ) \
AnnaBridge 171:3a7713b1edbc 1362 : \
AnnaBridge 171:3a7713b1edbc 1363 (((__DECIMAL_NB__) <= 28U) \
AnnaBridge 171:3a7713b1edbc 1364 ? ( \
AnnaBridge 171:3a7713b1edbc 1365 ((__DECIMAL_NB__) << ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS) | \
AnnaBridge 171:3a7713b1edbc 1366 (ADC_SMPR1_REGOFFSET | (((uint32_t) (3U * ((__DECIMAL_NB__) -20U))) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) \
AnnaBridge 171:3a7713b1edbc 1367 ) \
AnnaBridge 171:3a7713b1edbc 1368 : \
AnnaBridge 171:3a7713b1edbc 1369 ( \
AnnaBridge 171:3a7713b1edbc 1370 ((__DECIMAL_NB__) << ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS) | \
AnnaBridge 171:3a7713b1edbc 1371 (ADC_SMPR0_REGOFFSET | (((uint32_t) (3U * ((__DECIMAL_NB__) - 30U))) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) \
AnnaBridge 171:3a7713b1edbc 1372 ) \
AnnaBridge 171:3a7713b1edbc 1373 ) \
AnnaBridge 171:3a7713b1edbc 1374 ) \
AnnaBridge 171:3a7713b1edbc 1375 )
AnnaBridge 171:3a7713b1edbc 1376 #else
AnnaBridge 171:3a7713b1edbc 1377 #define __LL_ADC_DECIMAL_NB_TO_CHANNEL(__DECIMAL_NB__) \
AnnaBridge 171:3a7713b1edbc 1378 (((__DECIMAL_NB__) <= 9U) \
AnnaBridge 171:3a7713b1edbc 1379 ? ( \
AnnaBridge 171:3a7713b1edbc 1380 ((__DECIMAL_NB__) << ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS) | \
AnnaBridge 171:3a7713b1edbc 1381 (ADC_SMPR3_REGOFFSET | (((uint32_t) (3U * (__DECIMAL_NB__))) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) \
AnnaBridge 171:3a7713b1edbc 1382 ) \
AnnaBridge 171:3a7713b1edbc 1383 : \
AnnaBridge 171:3a7713b1edbc 1384 (((__DECIMAL_NB__) <= 19U) \
AnnaBridge 171:3a7713b1edbc 1385 ? ( \
AnnaBridge 171:3a7713b1edbc 1386 ((__DECIMAL_NB__) << ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS) | \
AnnaBridge 171:3a7713b1edbc 1387 (ADC_SMPR2_REGOFFSET | (((uint32_t) (3U * ((__DECIMAL_NB__) -10U))) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) \
AnnaBridge 171:3a7713b1edbc 1388 ) \
AnnaBridge 171:3a7713b1edbc 1389 : \
AnnaBridge 171:3a7713b1edbc 1390 ( \
AnnaBridge 171:3a7713b1edbc 1391 ((__DECIMAL_NB__) << ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS) | \
AnnaBridge 171:3a7713b1edbc 1392 (ADC_SMPR1_REGOFFSET | (((uint32_t) (3U * ((__DECIMAL_NB__) -20U))) << ADC_CHANNEL_SMPx_BITOFFSET_POS)) \
AnnaBridge 171:3a7713b1edbc 1393 ) \
AnnaBridge 171:3a7713b1edbc 1394 ) \
AnnaBridge 171:3a7713b1edbc 1395 )
AnnaBridge 171:3a7713b1edbc 1396 #endif /* ADC_SMPR0_SMP31 */
AnnaBridge 171:3a7713b1edbc 1397
AnnaBridge 171:3a7713b1edbc 1398 /**
AnnaBridge 171:3a7713b1edbc 1399 * @brief Helper macro to determine whether the selected channel
AnnaBridge 171:3a7713b1edbc 1400 * corresponds to literal definitions of driver.
AnnaBridge 171:3a7713b1edbc 1401 * @note The different literal definitions of ADC channels are:
AnnaBridge 171:3a7713b1edbc 1402 * - ADC internal channel:
AnnaBridge 171:3a7713b1edbc 1403 * LL_ADC_CHANNEL_VREFINT, LL_ADC_CHANNEL_TEMPSENSOR, ...
AnnaBridge 171:3a7713b1edbc 1404 * - ADC external channel (channel connected to a GPIO pin):
AnnaBridge 171:3a7713b1edbc 1405 * LL_ADC_CHANNEL_1, LL_ADC_CHANNEL_2, ...
AnnaBridge 171:3a7713b1edbc 1406 * @note The channel parameter must be a value defined from literal
AnnaBridge 171:3a7713b1edbc 1407 * definition of a ADC internal channel (LL_ADC_CHANNEL_VREFINT,
AnnaBridge 171:3a7713b1edbc 1408 * LL_ADC_CHANNEL_TEMPSENSOR, ...),
AnnaBridge 171:3a7713b1edbc 1409 * ADC external channel (LL_ADC_CHANNEL_1, LL_ADC_CHANNEL_2, ...),
AnnaBridge 171:3a7713b1edbc 1410 * must not be a value from functions where a channel number is
AnnaBridge 171:3a7713b1edbc 1411 * returned from ADC registers,
AnnaBridge 171:3a7713b1edbc 1412 * because internal and external channels share the same channel
AnnaBridge 171:3a7713b1edbc 1413 * number in ADC registers. The differentiation is made only with
AnnaBridge 171:3a7713b1edbc 1414 * parameters definitions of driver.
AnnaBridge 171:3a7713b1edbc 1415 * @param __CHANNEL__ This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 1416 * @arg @ref LL_ADC_CHANNEL_0 (2)
AnnaBridge 171:3a7713b1edbc 1417 * @arg @ref LL_ADC_CHANNEL_1 (2)
AnnaBridge 171:3a7713b1edbc 1418 * @arg @ref LL_ADC_CHANNEL_2 (2)
AnnaBridge 171:3a7713b1edbc 1419 * @arg @ref LL_ADC_CHANNEL_3 (2)
AnnaBridge 171:3a7713b1edbc 1420 * @arg @ref LL_ADC_CHANNEL_4 (1)
AnnaBridge 171:3a7713b1edbc 1421 * @arg @ref LL_ADC_CHANNEL_5 (1)
AnnaBridge 171:3a7713b1edbc 1422 * @arg @ref LL_ADC_CHANNEL_6 (2)
AnnaBridge 171:3a7713b1edbc 1423 * @arg @ref LL_ADC_CHANNEL_7 (2)
AnnaBridge 171:3a7713b1edbc 1424 * @arg @ref LL_ADC_CHANNEL_8 (2)
AnnaBridge 171:3a7713b1edbc 1425 * @arg @ref LL_ADC_CHANNEL_9 (2)
AnnaBridge 171:3a7713b1edbc 1426 * @arg @ref LL_ADC_CHANNEL_10 (2)
AnnaBridge 171:3a7713b1edbc 1427 * @arg @ref LL_ADC_CHANNEL_11 (2)
AnnaBridge 171:3a7713b1edbc 1428 * @arg @ref LL_ADC_CHANNEL_12 (2)
AnnaBridge 171:3a7713b1edbc 1429 * @arg @ref LL_ADC_CHANNEL_13 (3)
AnnaBridge 171:3a7713b1edbc 1430 * @arg @ref LL_ADC_CHANNEL_14 (3)
AnnaBridge 171:3a7713b1edbc 1431 * @arg @ref LL_ADC_CHANNEL_15 (3)
AnnaBridge 171:3a7713b1edbc 1432 * @arg @ref LL_ADC_CHANNEL_16 (3)
AnnaBridge 171:3a7713b1edbc 1433 * @arg @ref LL_ADC_CHANNEL_17 (3)
AnnaBridge 171:3a7713b1edbc 1434 * @arg @ref LL_ADC_CHANNEL_18 (3)
AnnaBridge 171:3a7713b1edbc 1435 * @arg @ref LL_ADC_CHANNEL_19 (3)
AnnaBridge 171:3a7713b1edbc 1436 * @arg @ref LL_ADC_CHANNEL_20 (3)
AnnaBridge 171:3a7713b1edbc 1437 * @arg @ref LL_ADC_CHANNEL_21 (3)
AnnaBridge 171:3a7713b1edbc 1438 * @arg @ref LL_ADC_CHANNEL_22 (1)
AnnaBridge 171:3a7713b1edbc 1439 * @arg @ref LL_ADC_CHANNEL_23 (1)
AnnaBridge 171:3a7713b1edbc 1440 * @arg @ref LL_ADC_CHANNEL_24 (1)
AnnaBridge 171:3a7713b1edbc 1441 * @arg @ref LL_ADC_CHANNEL_25 (1)
AnnaBridge 171:3a7713b1edbc 1442 * @arg @ref LL_ADC_CHANNEL_26 (3)
AnnaBridge 171:3a7713b1edbc 1443 * @arg @ref LL_ADC_CHANNEL_27 (3)(4)
AnnaBridge 171:3a7713b1edbc 1444 * @arg @ref LL_ADC_CHANNEL_28 (3)(4)
AnnaBridge 171:3a7713b1edbc 1445 * @arg @ref LL_ADC_CHANNEL_29 (3)(4)
AnnaBridge 171:3a7713b1edbc 1446 * @arg @ref LL_ADC_CHANNEL_30 (3)(4)
AnnaBridge 171:3a7713b1edbc 1447 * @arg @ref LL_ADC_CHANNEL_31 (3)(4)
AnnaBridge 171:3a7713b1edbc 1448 * @arg @ref LL_ADC_CHANNEL_VREFINT (3)
AnnaBridge 171:3a7713b1edbc 1449 * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR (3)
AnnaBridge 171:3a7713b1edbc 1450 * @arg @ref LL_ADC_CHANNEL_VCOMP (3)
AnnaBridge 171:3a7713b1edbc 1451 * @arg @ref LL_ADC_CHANNEL_VOPAMP1 (3)(5)
AnnaBridge 171:3a7713b1edbc 1452 * @arg @ref LL_ADC_CHANNEL_VOPAMP2 (3)(5)
AnnaBridge 171:3a7713b1edbc 1453 * @arg @ref LL_ADC_CHANNEL_VOPAMP3 (3)(5)
AnnaBridge 171:3a7713b1edbc 1454 *
AnnaBridge 171:3a7713b1edbc 1455 * (1) On STM32L1, connection via routing interface (RI) specificity: fast channel (channel routed directly to ADC switch matrix).\n
AnnaBridge 171:3a7713b1edbc 1456 * (2) On STM32L1, for devices with feature 'channels banks' available: Channel different in bank A and bank B.\n
AnnaBridge 171:3a7713b1edbc 1457 * (3) On STM32L1, for devices with feature 'channels banks' available: Channel common to both bank A and bank B.\n
AnnaBridge 171:3a7713b1edbc 1458 * (4) On STM32L1, parameter not available on all devices: only on STM32L1 Cat.4 and Cat.5.\n
AnnaBridge 171:3a7713b1edbc 1459 * (5) On STM32L1, parameter not available on all devices: OPAMP1 and OPAMP2 available only on STM32L1 Cat.3, Cat.4 and Cat.5, OPAMP3 available only on STM32L1 Cat.4 and Cat.5
AnnaBridge 171:3a7713b1edbc 1460 * @retval Value "0" if the channel corresponds to a parameter definition of a ADC external channel (channel connected to a GPIO pin).
AnnaBridge 171:3a7713b1edbc 1461 * Value "1" if the channel corresponds to a parameter definition of a ADC internal channel.
AnnaBridge 171:3a7713b1edbc 1462 */
AnnaBridge 171:3a7713b1edbc 1463 #define __LL_ADC_IS_CHANNEL_INTERNAL(__CHANNEL__) \
AnnaBridge 171:3a7713b1edbc 1464 (((__CHANNEL__) & ADC_CHANNEL_ID_INTERNAL_CH_MASK) != 0U)
AnnaBridge 171:3a7713b1edbc 1465
AnnaBridge 171:3a7713b1edbc 1466 /**
AnnaBridge 171:3a7713b1edbc 1467 * @brief Helper macro to convert a channel defined from parameter
AnnaBridge 171:3a7713b1edbc 1468 * definition of a ADC internal channel (LL_ADC_CHANNEL_VREFINT,
AnnaBridge 171:3a7713b1edbc 1469 * LL_ADC_CHANNEL_TEMPSENSOR, ...),
AnnaBridge 171:3a7713b1edbc 1470 * to its equivalent parameter definition of a ADC external channel
AnnaBridge 171:3a7713b1edbc 1471 * (LL_ADC_CHANNEL_1, LL_ADC_CHANNEL_2, ...).
AnnaBridge 171:3a7713b1edbc 1472 * @note The channel parameter can be, additionally to a value
AnnaBridge 171:3a7713b1edbc 1473 * defined from parameter definition of a ADC internal channel
AnnaBridge 171:3a7713b1edbc 1474 * (LL_ADC_CHANNEL_VREFINT, LL_ADC_CHANNEL_TEMPSENSOR, ...),
AnnaBridge 171:3a7713b1edbc 1475 * a value defined from parameter definition of
AnnaBridge 171:3a7713b1edbc 1476 * ADC external channel (LL_ADC_CHANNEL_1, LL_ADC_CHANNEL_2, ...)
AnnaBridge 171:3a7713b1edbc 1477 * or a value from functions where a channel number is returned
AnnaBridge 171:3a7713b1edbc 1478 * from ADC registers.
AnnaBridge 171:3a7713b1edbc 1479 * @param __CHANNEL__ This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 1480 * @arg @ref LL_ADC_CHANNEL_0 (2)
AnnaBridge 171:3a7713b1edbc 1481 * @arg @ref LL_ADC_CHANNEL_1 (2)
AnnaBridge 171:3a7713b1edbc 1482 * @arg @ref LL_ADC_CHANNEL_2 (2)
AnnaBridge 171:3a7713b1edbc 1483 * @arg @ref LL_ADC_CHANNEL_3 (2)
AnnaBridge 171:3a7713b1edbc 1484 * @arg @ref LL_ADC_CHANNEL_4 (1)
AnnaBridge 171:3a7713b1edbc 1485 * @arg @ref LL_ADC_CHANNEL_5 (1)
AnnaBridge 171:3a7713b1edbc 1486 * @arg @ref LL_ADC_CHANNEL_6 (2)
AnnaBridge 171:3a7713b1edbc 1487 * @arg @ref LL_ADC_CHANNEL_7 (2)
AnnaBridge 171:3a7713b1edbc 1488 * @arg @ref LL_ADC_CHANNEL_8 (2)
AnnaBridge 171:3a7713b1edbc 1489 * @arg @ref LL_ADC_CHANNEL_9 (2)
AnnaBridge 171:3a7713b1edbc 1490 * @arg @ref LL_ADC_CHANNEL_10 (2)
AnnaBridge 171:3a7713b1edbc 1491 * @arg @ref LL_ADC_CHANNEL_11 (2)
AnnaBridge 171:3a7713b1edbc 1492 * @arg @ref LL_ADC_CHANNEL_12 (2)
AnnaBridge 171:3a7713b1edbc 1493 * @arg @ref LL_ADC_CHANNEL_13 (3)
AnnaBridge 171:3a7713b1edbc 1494 * @arg @ref LL_ADC_CHANNEL_14 (3)
AnnaBridge 171:3a7713b1edbc 1495 * @arg @ref LL_ADC_CHANNEL_15 (3)
AnnaBridge 171:3a7713b1edbc 1496 * @arg @ref LL_ADC_CHANNEL_16 (3)
AnnaBridge 171:3a7713b1edbc 1497 * @arg @ref LL_ADC_CHANNEL_17 (3)
AnnaBridge 171:3a7713b1edbc 1498 * @arg @ref LL_ADC_CHANNEL_18 (3)
AnnaBridge 171:3a7713b1edbc 1499 * @arg @ref LL_ADC_CHANNEL_19 (3)
AnnaBridge 171:3a7713b1edbc 1500 * @arg @ref LL_ADC_CHANNEL_20 (3)
AnnaBridge 171:3a7713b1edbc 1501 * @arg @ref LL_ADC_CHANNEL_21 (3)
AnnaBridge 171:3a7713b1edbc 1502 * @arg @ref LL_ADC_CHANNEL_22 (1)
AnnaBridge 171:3a7713b1edbc 1503 * @arg @ref LL_ADC_CHANNEL_23 (1)
AnnaBridge 171:3a7713b1edbc 1504 * @arg @ref LL_ADC_CHANNEL_24 (1)
AnnaBridge 171:3a7713b1edbc 1505 * @arg @ref LL_ADC_CHANNEL_25 (1)
AnnaBridge 171:3a7713b1edbc 1506 * @arg @ref LL_ADC_CHANNEL_26 (3)
AnnaBridge 171:3a7713b1edbc 1507 * @arg @ref LL_ADC_CHANNEL_27 (3)(4)
AnnaBridge 171:3a7713b1edbc 1508 * @arg @ref LL_ADC_CHANNEL_28 (3)(4)
AnnaBridge 171:3a7713b1edbc 1509 * @arg @ref LL_ADC_CHANNEL_29 (3)(4)
AnnaBridge 171:3a7713b1edbc 1510 * @arg @ref LL_ADC_CHANNEL_30 (3)(4)
AnnaBridge 171:3a7713b1edbc 1511 * @arg @ref LL_ADC_CHANNEL_31 (3)(4)
AnnaBridge 171:3a7713b1edbc 1512 * @arg @ref LL_ADC_CHANNEL_VREFINT (3)
AnnaBridge 171:3a7713b1edbc 1513 * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR (3)
AnnaBridge 171:3a7713b1edbc 1514 * @arg @ref LL_ADC_CHANNEL_VCOMP (3)
AnnaBridge 171:3a7713b1edbc 1515 * @arg @ref LL_ADC_CHANNEL_VOPAMP1 (3)(5)
AnnaBridge 171:3a7713b1edbc 1516 * @arg @ref LL_ADC_CHANNEL_VOPAMP2 (3)(5)
AnnaBridge 171:3a7713b1edbc 1517 * @arg @ref LL_ADC_CHANNEL_VOPAMP3 (3)(5)
AnnaBridge 171:3a7713b1edbc 1518 *
AnnaBridge 171:3a7713b1edbc 1519 * (1) On STM32L1, connection via routing interface (RI) specificity: fast channel (channel routed directly to ADC switch matrix).\n
AnnaBridge 171:3a7713b1edbc 1520 * (2) On STM32L1, for devices with feature 'channels banks' available: Channel different in bank A and bank B.\n
AnnaBridge 171:3a7713b1edbc 1521 * (3) On STM32L1, for devices with feature 'channels banks' available: Channel common to both bank A and bank B.\n
AnnaBridge 171:3a7713b1edbc 1522 * (4) On STM32L1, parameter not available on all devices: only on STM32L1 Cat.4 and Cat.5.\n
AnnaBridge 171:3a7713b1edbc 1523 * (5) On STM32L1, parameter not available on all devices: OPAMP1 and OPAMP2 available only on STM32L1 Cat.3, Cat.4 and Cat.5, OPAMP3 available only on STM32L1 Cat.4 and Cat.5
AnnaBridge 171:3a7713b1edbc 1524 * @retval Returned value can be one of the following values:
AnnaBridge 171:3a7713b1edbc 1525 * @arg @ref LL_ADC_CHANNEL_0
AnnaBridge 171:3a7713b1edbc 1526 * @arg @ref LL_ADC_CHANNEL_1
AnnaBridge 171:3a7713b1edbc 1527 * @arg @ref LL_ADC_CHANNEL_2
AnnaBridge 171:3a7713b1edbc 1528 * @arg @ref LL_ADC_CHANNEL_3
AnnaBridge 171:3a7713b1edbc 1529 * @arg @ref LL_ADC_CHANNEL_4
AnnaBridge 171:3a7713b1edbc 1530 * @arg @ref LL_ADC_CHANNEL_5
AnnaBridge 171:3a7713b1edbc 1531 * @arg @ref LL_ADC_CHANNEL_6
AnnaBridge 171:3a7713b1edbc 1532 * @arg @ref LL_ADC_CHANNEL_7
AnnaBridge 171:3a7713b1edbc 1533 * @arg @ref LL_ADC_CHANNEL_8
AnnaBridge 171:3a7713b1edbc 1534 * @arg @ref LL_ADC_CHANNEL_9
AnnaBridge 171:3a7713b1edbc 1535 * @arg @ref LL_ADC_CHANNEL_10
AnnaBridge 171:3a7713b1edbc 1536 * @arg @ref LL_ADC_CHANNEL_11
AnnaBridge 171:3a7713b1edbc 1537 * @arg @ref LL_ADC_CHANNEL_12
AnnaBridge 171:3a7713b1edbc 1538 * @arg @ref LL_ADC_CHANNEL_13
AnnaBridge 171:3a7713b1edbc 1539 * @arg @ref LL_ADC_CHANNEL_14
AnnaBridge 171:3a7713b1edbc 1540 * @arg @ref LL_ADC_CHANNEL_15
AnnaBridge 171:3a7713b1edbc 1541 * @arg @ref LL_ADC_CHANNEL_16
AnnaBridge 171:3a7713b1edbc 1542 * @arg @ref LL_ADC_CHANNEL_17
AnnaBridge 171:3a7713b1edbc 1543 * @arg @ref LL_ADC_CHANNEL_18
AnnaBridge 171:3a7713b1edbc 1544 */
AnnaBridge 171:3a7713b1edbc 1545 #define __LL_ADC_CHANNEL_INTERNAL_TO_EXTERNAL(__CHANNEL__) \
AnnaBridge 171:3a7713b1edbc 1546 ((__CHANNEL__) & ~ADC_CHANNEL_ID_INTERNAL_CH_MASK)
AnnaBridge 171:3a7713b1edbc 1547
AnnaBridge 171:3a7713b1edbc 1548 /**
AnnaBridge 171:3a7713b1edbc 1549 * @brief Helper macro to determine whether the internal channel
AnnaBridge 171:3a7713b1edbc 1550 * selected is available on the ADC instance selected.
AnnaBridge 171:3a7713b1edbc 1551 * @note The channel parameter must be a value defined from parameter
AnnaBridge 171:3a7713b1edbc 1552 * definition of a ADC internal channel (LL_ADC_CHANNEL_VREFINT,
AnnaBridge 171:3a7713b1edbc 1553 * LL_ADC_CHANNEL_TEMPSENSOR, ...),
AnnaBridge 171:3a7713b1edbc 1554 * must not be a value defined from parameter definition of
AnnaBridge 171:3a7713b1edbc 1555 * ADC external channel (LL_ADC_CHANNEL_1, LL_ADC_CHANNEL_2, ...)
AnnaBridge 171:3a7713b1edbc 1556 * or a value from functions where a channel number is
AnnaBridge 171:3a7713b1edbc 1557 * returned from ADC registers,
AnnaBridge 171:3a7713b1edbc 1558 * because internal and external channels share the same channel
AnnaBridge 171:3a7713b1edbc 1559 * number in ADC registers. The differentiation is made only with
AnnaBridge 171:3a7713b1edbc 1560 * parameters definitions of driver.
AnnaBridge 171:3a7713b1edbc 1561 * @param __ADC_INSTANCE__ ADC instance
AnnaBridge 171:3a7713b1edbc 1562 * @param __CHANNEL__ This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 1563 * @arg @ref LL_ADC_CHANNEL_VREFINT (3)
AnnaBridge 171:3a7713b1edbc 1564 * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR (3)
AnnaBridge 171:3a7713b1edbc 1565 * @arg @ref LL_ADC_CHANNEL_VCOMP (3)
AnnaBridge 171:3a7713b1edbc 1566 * @arg @ref LL_ADC_CHANNEL_VOPAMP1 (3)(5)
AnnaBridge 171:3a7713b1edbc 1567 * @arg @ref LL_ADC_CHANNEL_VOPAMP2 (3)(5)
AnnaBridge 171:3a7713b1edbc 1568 * @arg @ref LL_ADC_CHANNEL_VOPAMP3 (3)(5)
AnnaBridge 171:3a7713b1edbc 1569 *
AnnaBridge 171:3a7713b1edbc 1570 * (1) On STM32L1, connection via routing interface (RI) specificity: fast channel (channel routed directly to ADC switch matrix).\n
AnnaBridge 171:3a7713b1edbc 1571 * (2) On STM32L1, for devices with feature 'channels banks' available: Channel different in bank A and bank B.\n
AnnaBridge 171:3a7713b1edbc 1572 * (3) On STM32L1, for devices with feature 'channels banks' available: Channel common to both bank A and bank B.\n
AnnaBridge 171:3a7713b1edbc 1573 * (4) On STM32L1, parameter not available on all devices: only on STM32L1 Cat.4 and Cat.5.\n
AnnaBridge 171:3a7713b1edbc 1574 * (5) On STM32L1, parameter not available on all devices: OPAMP1 and OPAMP2 available only on STM32L1 Cat.3, Cat.4 and Cat.5, OPAMP3 available only on STM32L1 Cat.4 and Cat.5
AnnaBridge 171:3a7713b1edbc 1575 * @retval Value "0" if the internal channel selected is not available on the ADC instance selected.
AnnaBridge 171:3a7713b1edbc 1576 * Value "1" if the internal channel selected is available on the ADC instance selected.
AnnaBridge 171:3a7713b1edbc 1577 */
AnnaBridge 171:3a7713b1edbc 1578 #if defined (OPAMP_CSR_OPA3PD)
AnnaBridge 171:3a7713b1edbc 1579 #define __LL_ADC_IS_CHANNEL_INTERNAL_AVAILABLE(__ADC_INSTANCE__, __CHANNEL__) \
AnnaBridge 171:3a7713b1edbc 1580 ( \
AnnaBridge 171:3a7713b1edbc 1581 ((__CHANNEL__) == LL_ADC_CHANNEL_VREFINT) || \
AnnaBridge 171:3a7713b1edbc 1582 ((__CHANNEL__) == LL_ADC_CHANNEL_TEMPSENSOR) || \
AnnaBridge 171:3a7713b1edbc 1583 ((__CHANNEL__) == LL_ADC_CHANNEL_VCOMP) || \
AnnaBridge 171:3a7713b1edbc 1584 ((__CHANNEL__) == LL_ADC_CHANNEL_VOPAMP1) || \
AnnaBridge 171:3a7713b1edbc 1585 ((__CHANNEL__) == LL_ADC_CHANNEL_VOPAMP2) || \
AnnaBridge 171:3a7713b1edbc 1586 ((__CHANNEL__) == LL_ADC_CHANNEL_VOPAMP3) \
AnnaBridge 171:3a7713b1edbc 1587 )
AnnaBridge 171:3a7713b1edbc 1588 #elif defined(OPAMP_CSR_OPA1PD) || defined (OPAMP_CSR_OPA2PD)
AnnaBridge 171:3a7713b1edbc 1589 #define __LL_ADC_IS_CHANNEL_INTERNAL_AVAILABLE(__ADC_INSTANCE__, __CHANNEL__) \
AnnaBridge 171:3a7713b1edbc 1590 ( \
AnnaBridge 171:3a7713b1edbc 1591 ((__CHANNEL__) == LL_ADC_CHANNEL_VREFINT) || \
AnnaBridge 171:3a7713b1edbc 1592 ((__CHANNEL__) == LL_ADC_CHANNEL_TEMPSENSOR) || \
AnnaBridge 171:3a7713b1edbc 1593 ((__CHANNEL__) == LL_ADC_CHANNEL_VCOMP) || \
AnnaBridge 171:3a7713b1edbc 1594 ((__CHANNEL__) == LL_ADC_CHANNEL_VOPAMP1) || \
AnnaBridge 171:3a7713b1edbc 1595 ((__CHANNEL__) == LL_ADC_CHANNEL_VOPAMP2) \
AnnaBridge 171:3a7713b1edbc 1596 )
AnnaBridge 171:3a7713b1edbc 1597 #else
AnnaBridge 171:3a7713b1edbc 1598 #define __LL_ADC_IS_CHANNEL_INTERNAL_AVAILABLE(__ADC_INSTANCE__, __CHANNEL__) \
AnnaBridge 171:3a7713b1edbc 1599 ( \
AnnaBridge 171:3a7713b1edbc 1600 ((__CHANNEL__) == LL_ADC_CHANNEL_VREFINT) || \
AnnaBridge 171:3a7713b1edbc 1601 ((__CHANNEL__) == LL_ADC_CHANNEL_TEMPSENSOR) || \
AnnaBridge 171:3a7713b1edbc 1602 ((__CHANNEL__) == LL_ADC_CHANNEL_VCOMP) \
AnnaBridge 171:3a7713b1edbc 1603 )
AnnaBridge 171:3a7713b1edbc 1604 #endif
AnnaBridge 171:3a7713b1edbc 1605
AnnaBridge 171:3a7713b1edbc 1606 /**
AnnaBridge 171:3a7713b1edbc 1607 * @brief Helper macro to define ADC analog watchdog parameter:
AnnaBridge 171:3a7713b1edbc 1608 * define a single channel to monitor with analog watchdog
AnnaBridge 171:3a7713b1edbc 1609 * from sequencer channel and groups definition.
AnnaBridge 171:3a7713b1edbc 1610 * @note To be used with function @ref LL_ADC_SetAnalogWDMonitChannels().
AnnaBridge 171:3a7713b1edbc 1611 * Example:
AnnaBridge 171:3a7713b1edbc 1612 * LL_ADC_SetAnalogWDMonitChannels(
AnnaBridge 171:3a7713b1edbc 1613 * ADC1, LL_ADC_AWD1,
AnnaBridge 171:3a7713b1edbc 1614 * __LL_ADC_ANALOGWD_CHANNEL_GROUP(LL_ADC_CHANNEL4, LL_ADC_GROUP_REGULAR))
AnnaBridge 171:3a7713b1edbc 1615 * @param __CHANNEL__ This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 1616 * @arg @ref LL_ADC_CHANNEL_0 (2)
AnnaBridge 171:3a7713b1edbc 1617 * @arg @ref LL_ADC_CHANNEL_1 (2)
AnnaBridge 171:3a7713b1edbc 1618 * @arg @ref LL_ADC_CHANNEL_2 (2)
AnnaBridge 171:3a7713b1edbc 1619 * @arg @ref LL_ADC_CHANNEL_3 (2)
AnnaBridge 171:3a7713b1edbc 1620 * @arg @ref LL_ADC_CHANNEL_4 (1)
AnnaBridge 171:3a7713b1edbc 1621 * @arg @ref LL_ADC_CHANNEL_5 (1)
AnnaBridge 171:3a7713b1edbc 1622 * @arg @ref LL_ADC_CHANNEL_6 (2)
AnnaBridge 171:3a7713b1edbc 1623 * @arg @ref LL_ADC_CHANNEL_7 (2)
AnnaBridge 171:3a7713b1edbc 1624 * @arg @ref LL_ADC_CHANNEL_8 (2)
AnnaBridge 171:3a7713b1edbc 1625 * @arg @ref LL_ADC_CHANNEL_9 (2)
AnnaBridge 171:3a7713b1edbc 1626 * @arg @ref LL_ADC_CHANNEL_10 (2)
AnnaBridge 171:3a7713b1edbc 1627 * @arg @ref LL_ADC_CHANNEL_11 (2)
AnnaBridge 171:3a7713b1edbc 1628 * @arg @ref LL_ADC_CHANNEL_12 (2)
AnnaBridge 171:3a7713b1edbc 1629 * @arg @ref LL_ADC_CHANNEL_13 (3)
AnnaBridge 171:3a7713b1edbc 1630 * @arg @ref LL_ADC_CHANNEL_14 (3)
AnnaBridge 171:3a7713b1edbc 1631 * @arg @ref LL_ADC_CHANNEL_15 (3)
AnnaBridge 171:3a7713b1edbc 1632 * @arg @ref LL_ADC_CHANNEL_16 (3)
AnnaBridge 171:3a7713b1edbc 1633 * @arg @ref LL_ADC_CHANNEL_17 (3)
AnnaBridge 171:3a7713b1edbc 1634 * @arg @ref LL_ADC_CHANNEL_18 (3)
AnnaBridge 171:3a7713b1edbc 1635 * @arg @ref LL_ADC_CHANNEL_19 (3)
AnnaBridge 171:3a7713b1edbc 1636 * @arg @ref LL_ADC_CHANNEL_20 (3)
AnnaBridge 171:3a7713b1edbc 1637 * @arg @ref LL_ADC_CHANNEL_21 (3)
AnnaBridge 171:3a7713b1edbc 1638 * @arg @ref LL_ADC_CHANNEL_22 (1)
AnnaBridge 171:3a7713b1edbc 1639 * @arg @ref LL_ADC_CHANNEL_23 (1)
AnnaBridge 171:3a7713b1edbc 1640 * @arg @ref LL_ADC_CHANNEL_24 (1)
AnnaBridge 171:3a7713b1edbc 1641 * @arg @ref LL_ADC_CHANNEL_25 (1)
AnnaBridge 171:3a7713b1edbc 1642 * @arg @ref LL_ADC_CHANNEL_26 (3)
AnnaBridge 171:3a7713b1edbc 1643 * @arg @ref LL_ADC_CHANNEL_27 (3)(4)
AnnaBridge 171:3a7713b1edbc 1644 * @arg @ref LL_ADC_CHANNEL_28 (3)(4)
AnnaBridge 171:3a7713b1edbc 1645 * @arg @ref LL_ADC_CHANNEL_29 (3)(4)
AnnaBridge 171:3a7713b1edbc 1646 * @arg @ref LL_ADC_CHANNEL_30 (3)(4)
AnnaBridge 171:3a7713b1edbc 1647 * @arg @ref LL_ADC_CHANNEL_31 (3)(4)
AnnaBridge 171:3a7713b1edbc 1648 * @arg @ref LL_ADC_CHANNEL_VREFINT (3)(6)
AnnaBridge 171:3a7713b1edbc 1649 * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR (3)(6)
AnnaBridge 171:3a7713b1edbc 1650 * @arg @ref LL_ADC_CHANNEL_VCOMP (3)(6)
AnnaBridge 171:3a7713b1edbc 1651 * @arg @ref LL_ADC_CHANNEL_VOPAMP1 (3)(5)
AnnaBridge 171:3a7713b1edbc 1652 * @arg @ref LL_ADC_CHANNEL_VOPAMP2 (3)(5)
AnnaBridge 171:3a7713b1edbc 1653 * @arg @ref LL_ADC_CHANNEL_VOPAMP3 (3)(5)
AnnaBridge 171:3a7713b1edbc 1654 *
AnnaBridge 171:3a7713b1edbc 1655 * (1) On STM32L1, connection via routing interface (RI) specificity: fast channel (channel routed directly to ADC switch matrix).\n
AnnaBridge 171:3a7713b1edbc 1656 * (2) On STM32L1, for devices with feature 'channels banks' available: Channel different in bank A and bank B.\n
AnnaBridge 171:3a7713b1edbc 1657 * (3) On STM32L1, for devices with feature 'channels banks' available: Channel common to both bank A and bank B.\n
AnnaBridge 171:3a7713b1edbc 1658 * (4) On STM32L1, parameter not available on all devices: only on STM32L1 Cat.4 and Cat.5.\n
AnnaBridge 171:3a7713b1edbc 1659 * (5) On STM32L1, parameter not available on all devices: OPAMP1 and OPAMP2 available only on STM32L1 Cat.3, Cat.4 and Cat.5, OPAMP3 available only on STM32L1 Cat.4 and Cat.5.\n
AnnaBridge 171:3a7713b1edbc 1660 * (6) For ADC channel read back from ADC register,
AnnaBridge 171:3a7713b1edbc 1661 * comparison with internal channel parameter to be done
AnnaBridge 171:3a7713b1edbc 1662 * using helper macro @ref __LL_ADC_CHANNEL_INTERNAL_TO_EXTERNAL().
AnnaBridge 171:3a7713b1edbc 1663 * @param __GROUP__ This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 1664 * @arg @ref LL_ADC_GROUP_REGULAR
AnnaBridge 171:3a7713b1edbc 1665 * @arg @ref LL_ADC_GROUP_INJECTED
AnnaBridge 171:3a7713b1edbc 1666 * @arg @ref LL_ADC_GROUP_REGULAR_INJECTED
AnnaBridge 171:3a7713b1edbc 1667 * @retval Returned value can be one of the following values:
AnnaBridge 171:3a7713b1edbc 1668 * @arg @ref LL_ADC_AWD_DISABLE
AnnaBridge 171:3a7713b1edbc 1669 * @arg @ref LL_ADC_AWD_ALL_CHANNELS_REG
AnnaBridge 171:3a7713b1edbc 1670 * @arg @ref LL_ADC_AWD_ALL_CHANNELS_INJ
AnnaBridge 171:3a7713b1edbc 1671 * @arg @ref LL_ADC_AWD_ALL_CHANNELS_REG_INJ
AnnaBridge 171:3a7713b1edbc 1672 * @arg @ref LL_ADC_AWD_CHANNEL_0_REG (2)
AnnaBridge 171:3a7713b1edbc 1673 * @arg @ref LL_ADC_AWD_CHANNEL_0_INJ (2)
AnnaBridge 171:3a7713b1edbc 1674 * @arg @ref LL_ADC_AWD_CHANNEL_0_REG_INJ (2)
AnnaBridge 171:3a7713b1edbc 1675 * @arg @ref LL_ADC_AWD_CHANNEL_1_REG (2)
AnnaBridge 171:3a7713b1edbc 1676 * @arg @ref LL_ADC_AWD_CHANNEL_1_INJ (2)
AnnaBridge 171:3a7713b1edbc 1677 * @arg @ref LL_ADC_AWD_CHANNEL_1_REG_INJ (2)
AnnaBridge 171:3a7713b1edbc 1678 * @arg @ref LL_ADC_AWD_CHANNEL_2_REG (2)
AnnaBridge 171:3a7713b1edbc 1679 * @arg @ref LL_ADC_AWD_CHANNEL_2_INJ (2)
AnnaBridge 171:3a7713b1edbc 1680 * @arg @ref LL_ADC_AWD_CHANNEL_2_REG_INJ (2)
AnnaBridge 171:3a7713b1edbc 1681 * @arg @ref LL_ADC_AWD_CHANNEL_3_REG (2)
AnnaBridge 171:3a7713b1edbc 1682 * @arg @ref LL_ADC_AWD_CHANNEL_3_INJ (2)
AnnaBridge 171:3a7713b1edbc 1683 * @arg @ref LL_ADC_AWD_CHANNEL_3_REG_INJ (2)
AnnaBridge 171:3a7713b1edbc 1684 * @arg @ref LL_ADC_AWD_CHANNEL_4_REG (1)
AnnaBridge 171:3a7713b1edbc 1685 * @arg @ref LL_ADC_AWD_CHANNEL_4_INJ (1)
AnnaBridge 171:3a7713b1edbc 1686 * @arg @ref LL_ADC_AWD_CHANNEL_4_REG_INJ (1)
AnnaBridge 171:3a7713b1edbc 1687 * @arg @ref LL_ADC_AWD_CHANNEL_5_REG (1)
AnnaBridge 171:3a7713b1edbc 1688 * @arg @ref LL_ADC_AWD_CHANNEL_5_INJ (1)
AnnaBridge 171:3a7713b1edbc 1689 * @arg @ref LL_ADC_AWD_CHANNEL_5_REG_INJ (1)
AnnaBridge 171:3a7713b1edbc 1690 * @arg @ref LL_ADC_AWD_CHANNEL_6_REG (2)
AnnaBridge 171:3a7713b1edbc 1691 * @arg @ref LL_ADC_AWD_CHANNEL_6_INJ (2)
AnnaBridge 171:3a7713b1edbc 1692 * @arg @ref LL_ADC_AWD_CHANNEL_6_REG_INJ (2)
AnnaBridge 171:3a7713b1edbc 1693 * @arg @ref LL_ADC_AWD_CHANNEL_7_REG (2)
AnnaBridge 171:3a7713b1edbc 1694 * @arg @ref LL_ADC_AWD_CHANNEL_7_INJ (2)
AnnaBridge 171:3a7713b1edbc 1695 * @arg @ref LL_ADC_AWD_CHANNEL_7_REG_INJ (2)
AnnaBridge 171:3a7713b1edbc 1696 * @arg @ref LL_ADC_AWD_CHANNEL_8_REG (2)
AnnaBridge 171:3a7713b1edbc 1697 * @arg @ref LL_ADC_AWD_CHANNEL_8_INJ (2)
AnnaBridge 171:3a7713b1edbc 1698 * @arg @ref LL_ADC_AWD_CHANNEL_8_REG_INJ (2)
AnnaBridge 171:3a7713b1edbc 1699 * @arg @ref LL_ADC_AWD_CHANNEL_9_REG (2)
AnnaBridge 171:3a7713b1edbc 1700 * @arg @ref LL_ADC_AWD_CHANNEL_9_INJ (2)
AnnaBridge 171:3a7713b1edbc 1701 * @arg @ref LL_ADC_AWD_CHANNEL_9_REG_INJ (2)
AnnaBridge 171:3a7713b1edbc 1702 * @arg @ref LL_ADC_AWD_CHANNEL_10_REG (2)
AnnaBridge 171:3a7713b1edbc 1703 * @arg @ref LL_ADC_AWD_CHANNEL_10_INJ (2)
AnnaBridge 171:3a7713b1edbc 1704 * @arg @ref LL_ADC_AWD_CHANNEL_10_REG_INJ (2)
AnnaBridge 171:3a7713b1edbc 1705 * @arg @ref LL_ADC_AWD_CHANNEL_11_REG (2)
AnnaBridge 171:3a7713b1edbc 1706 * @arg @ref LL_ADC_AWD_CHANNEL_11_INJ (2)
AnnaBridge 171:3a7713b1edbc 1707 * @arg @ref LL_ADC_AWD_CHANNEL_11_REG_INJ (2)
AnnaBridge 171:3a7713b1edbc 1708 * @arg @ref LL_ADC_AWD_CHANNEL_12_REG (2)
AnnaBridge 171:3a7713b1edbc 1709 * @arg @ref LL_ADC_AWD_CHANNEL_12_INJ (2)
AnnaBridge 171:3a7713b1edbc 1710 * @arg @ref LL_ADC_AWD_CHANNEL_12_REG_INJ (2)
AnnaBridge 171:3a7713b1edbc 1711 * @arg @ref LL_ADC_AWD_CHANNEL_13_REG (3)
AnnaBridge 171:3a7713b1edbc 1712 * @arg @ref LL_ADC_AWD_CHANNEL_13_INJ (3)
AnnaBridge 171:3a7713b1edbc 1713 * @arg @ref LL_ADC_AWD_CHANNEL_13_REG_INJ (3)
AnnaBridge 171:3a7713b1edbc 1714 * @arg @ref LL_ADC_AWD_CHANNEL_14_REG (3)
AnnaBridge 171:3a7713b1edbc 1715 * @arg @ref LL_ADC_AWD_CHANNEL_14_INJ (3)
AnnaBridge 171:3a7713b1edbc 1716 * @arg @ref LL_ADC_AWD_CHANNEL_14_REG_INJ (3)
AnnaBridge 171:3a7713b1edbc 1717 * @arg @ref LL_ADC_AWD_CHANNEL_15_REG (3)
AnnaBridge 171:3a7713b1edbc 1718 * @arg @ref LL_ADC_AWD_CHANNEL_15_INJ (3)
AnnaBridge 171:3a7713b1edbc 1719 * @arg @ref LL_ADC_AWD_CHANNEL_15_REG_INJ (3)
AnnaBridge 171:3a7713b1edbc 1720 * @arg @ref LL_ADC_AWD_CHANNEL_16_REG (3)
AnnaBridge 171:3a7713b1edbc 1721 * @arg @ref LL_ADC_AWD_CHANNEL_16_INJ (3)
AnnaBridge 171:3a7713b1edbc 1722 * @arg @ref LL_ADC_AWD_CHANNEL_16_REG_INJ (3)
AnnaBridge 171:3a7713b1edbc 1723 * @arg @ref LL_ADC_AWD_CHANNEL_17_REG (3)
AnnaBridge 171:3a7713b1edbc 1724 * @arg @ref LL_ADC_AWD_CHANNEL_17_INJ (3)
AnnaBridge 171:3a7713b1edbc 1725 * @arg @ref LL_ADC_AWD_CHANNEL_17_REG_INJ (3)
AnnaBridge 171:3a7713b1edbc 1726 * @arg @ref LL_ADC_AWD_CHANNEL_18_REG (3)
AnnaBridge 171:3a7713b1edbc 1727 * @arg @ref LL_ADC_AWD_CHANNEL_18_INJ (3)
AnnaBridge 171:3a7713b1edbc 1728 * @arg @ref LL_ADC_AWD_CHANNEL_18_REG_INJ (3)
AnnaBridge 171:3a7713b1edbc 1729 * @arg @ref LL_ADC_AWD_CHANNEL_19_REG (3)
AnnaBridge 171:3a7713b1edbc 1730 * @arg @ref LL_ADC_AWD_CHANNEL_19_INJ (3)
AnnaBridge 171:3a7713b1edbc 1731 * @arg @ref LL_ADC_AWD_CHANNEL_19_REG_INJ (3)
AnnaBridge 171:3a7713b1edbc 1732 * @arg @ref LL_ADC_AWD_CHANNEL_20_REG (3)
AnnaBridge 171:3a7713b1edbc 1733 * @arg @ref LL_ADC_AWD_CHANNEL_20_INJ (3)
AnnaBridge 171:3a7713b1edbc 1734 * @arg @ref LL_ADC_AWD_CHANNEL_20_REG_INJ (3)
AnnaBridge 171:3a7713b1edbc 1735 * @arg @ref LL_ADC_AWD_CHANNEL_21_REG (3)
AnnaBridge 171:3a7713b1edbc 1736 * @arg @ref LL_ADC_AWD_CHANNEL_21_INJ (3)
AnnaBridge 171:3a7713b1edbc 1737 * @arg @ref LL_ADC_AWD_CHANNEL_21_REG_INJ (3)
AnnaBridge 171:3a7713b1edbc 1738 * @arg @ref LL_ADC_AWD_CHANNEL_22_REG (1)
AnnaBridge 171:3a7713b1edbc 1739 * @arg @ref LL_ADC_AWD_CHANNEL_22_INJ (1)
AnnaBridge 171:3a7713b1edbc 1740 * @arg @ref LL_ADC_AWD_CHANNEL_22_REG_INJ (1)
AnnaBridge 171:3a7713b1edbc 1741 * @arg @ref LL_ADC_AWD_CHANNEL_23_REG (1)
AnnaBridge 171:3a7713b1edbc 1742 * @arg @ref LL_ADC_AWD_CHANNEL_23_INJ (1)
AnnaBridge 171:3a7713b1edbc 1743 * @arg @ref LL_ADC_AWD_CHANNEL_23_REG_INJ (1)
AnnaBridge 171:3a7713b1edbc 1744 * @arg @ref LL_ADC_AWD_CHANNEL_24_REG (1)
AnnaBridge 171:3a7713b1edbc 1745 * @arg @ref LL_ADC_AWD_CHANNEL_24_INJ (1)
AnnaBridge 171:3a7713b1edbc 1746 * @arg @ref LL_ADC_AWD_CHANNEL_24_REG_INJ (1)
AnnaBridge 171:3a7713b1edbc 1747 * @arg @ref LL_ADC_AWD_CHANNEL_25_REG (1)
AnnaBridge 171:3a7713b1edbc 1748 * @arg @ref LL_ADC_AWD_CHANNEL_25_INJ (1)
AnnaBridge 171:3a7713b1edbc 1749 * @arg @ref LL_ADC_AWD_CHANNEL_25_REG_INJ (1)
AnnaBridge 171:3a7713b1edbc 1750 * @arg @ref LL_ADC_AWD_CHANNEL_26_REG (3)
AnnaBridge 171:3a7713b1edbc 1751 * @arg @ref LL_ADC_AWD_CHANNEL_26_INJ (3)
AnnaBridge 171:3a7713b1edbc 1752 * @arg @ref LL_ADC_AWD_CHANNEL_26_REG_INJ (3)
AnnaBridge 171:3a7713b1edbc 1753 * @arg @ref LL_ADC_AWD_CHANNEL_27_REG (3)(4)
AnnaBridge 171:3a7713b1edbc 1754 * @arg @ref LL_ADC_AWD_CHANNEL_27_INJ (3)(4)
AnnaBridge 171:3a7713b1edbc 1755 * @arg @ref LL_ADC_AWD_CHANNEL_27_REG_INJ (3)(4)
AnnaBridge 171:3a7713b1edbc 1756 * @arg @ref LL_ADC_AWD_CHANNEL_28_REG (3)(4)
AnnaBridge 171:3a7713b1edbc 1757 * @arg @ref LL_ADC_AWD_CHANNEL_28_INJ (3)(4)
AnnaBridge 171:3a7713b1edbc 1758 * @arg @ref LL_ADC_AWD_CHANNEL_28_REG_INJ (3)(4)
AnnaBridge 171:3a7713b1edbc 1759 * @arg @ref LL_ADC_AWD_CHANNEL_29_REG (3)(4)
AnnaBridge 171:3a7713b1edbc 1760 * @arg @ref LL_ADC_AWD_CHANNEL_29_INJ (3)(4)
AnnaBridge 171:3a7713b1edbc 1761 * @arg @ref LL_ADC_AWD_CHANNEL_29_REG_INJ (3)(4)
AnnaBridge 171:3a7713b1edbc 1762 * @arg @ref LL_ADC_AWD_CHANNEL_30_REG (3)(4)
AnnaBridge 171:3a7713b1edbc 1763 * @arg @ref LL_ADC_AWD_CHANNEL_30_INJ (3)(4)
AnnaBridge 171:3a7713b1edbc 1764 * @arg @ref LL_ADC_AWD_CHANNEL_30_REG_INJ (3)(4)
AnnaBridge 171:3a7713b1edbc 1765 * @arg @ref LL_ADC_AWD_CHANNEL_31_REG (3)(4)
AnnaBridge 171:3a7713b1edbc 1766 * @arg @ref LL_ADC_AWD_CHANNEL_31_INJ (3)(4)
AnnaBridge 171:3a7713b1edbc 1767 * @arg @ref LL_ADC_AWD_CHANNEL_31_REG_INJ (3)(4)
AnnaBridge 171:3a7713b1edbc 1768 * @arg @ref LL_ADC_AWD_CH_VREFINT_REG (3)
AnnaBridge 171:3a7713b1edbc 1769 * @arg @ref LL_ADC_AWD_CH_VREFINT_INJ (3)
AnnaBridge 171:3a7713b1edbc 1770 * @arg @ref LL_ADC_AWD_CH_VREFINT_REG_INJ (3)
AnnaBridge 171:3a7713b1edbc 1771 * @arg @ref LL_ADC_AWD_CH_TEMPSENSOR_REG (3)
AnnaBridge 171:3a7713b1edbc 1772 * @arg @ref LL_ADC_AWD_CH_TEMPSENSOR_INJ (3)
AnnaBridge 171:3a7713b1edbc 1773 * @arg @ref LL_ADC_AWD_CH_TEMPSENSOR_REG_INJ (3)
AnnaBridge 171:3a7713b1edbc 1774 * @arg @ref LL_ADC_AWD_CH_VCOMP_REG (3)
AnnaBridge 171:3a7713b1edbc 1775 * @arg @ref LL_ADC_AWD_CH_VCOMP_INJ (3)
AnnaBridge 171:3a7713b1edbc 1776 * @arg @ref LL_ADC_AWD_CH_VCOMP_REG_INJ (3)
AnnaBridge 171:3a7713b1edbc 1777 * @arg @ref LL_ADC_AWD_CH_VOPAMP1_REG (3)(5)
AnnaBridge 171:3a7713b1edbc 1778 * @arg @ref LL_ADC_AWD_CH_VOPAMP1_INJ (3)(5)
AnnaBridge 171:3a7713b1edbc 1779 * @arg @ref LL_ADC_AWD_CH_VOPAMP1_REG_INJ (3)(5)
AnnaBridge 171:3a7713b1edbc 1780 * @arg @ref LL_ADC_AWD_CH_VOPAMP2_REG (3)(5)
AnnaBridge 171:3a7713b1edbc 1781 * @arg @ref LL_ADC_AWD_CH_VOPAMP2_INJ (3)(5)
AnnaBridge 171:3a7713b1edbc 1782 * @arg @ref LL_ADC_AWD_CH_VOPAMP2_REG_INJ (3)(5)
AnnaBridge 171:3a7713b1edbc 1783 * @arg @ref LL_ADC_AWD_CH_VOPAMP3_REG (3)(5)
AnnaBridge 171:3a7713b1edbc 1784 * @arg @ref LL_ADC_AWD_CH_VOPAMP3_INJ (3)(5)
AnnaBridge 171:3a7713b1edbc 1785 * @arg @ref LL_ADC_AWD_CH_VOPAMP3_REG_INJ (3)(5)
AnnaBridge 171:3a7713b1edbc 1786 *
AnnaBridge 171:3a7713b1edbc 1787 * (1) On STM32L1, connection via routing interface (RI) specificity: fast channel (channel routed directly to ADC switch matrix).\n
AnnaBridge 171:3a7713b1edbc 1788 * (2) On STM32L1, for devices with feature 'channels banks' available: Channel different in bank A and bank B.\n
AnnaBridge 171:3a7713b1edbc 1789 * (3) On STM32L1, for devices with feature 'channels banks' available: Channel common to both bank A and bank B.\n
AnnaBridge 171:3a7713b1edbc 1790 * (4) On STM32L1, parameter not available on all devices: only on STM32L1 Cat.4 and Cat.5.\n
AnnaBridge 171:3a7713b1edbc 1791 * (5) On STM32L1, parameter not available on all devices: OPAMP1 and OPAMP2 available only on STM32L1 Cat.3, Cat.4 and Cat.5, OPAMP3 available only on STM32L1 Cat.4 and Cat.5
AnnaBridge 171:3a7713b1edbc 1792 */
AnnaBridge 171:3a7713b1edbc 1793 #define __LL_ADC_ANALOGWD_CHANNEL_GROUP(__CHANNEL__, __GROUP__) \
AnnaBridge 171:3a7713b1edbc 1794 (((__GROUP__) == LL_ADC_GROUP_REGULAR) \
AnnaBridge 171:3a7713b1edbc 1795 ? (((__CHANNEL__) & ADC_CHANNEL_ID_MASK) | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) \
AnnaBridge 171:3a7713b1edbc 1796 : \
AnnaBridge 171:3a7713b1edbc 1797 ((__GROUP__) == LL_ADC_GROUP_INJECTED) \
AnnaBridge 171:3a7713b1edbc 1798 ? (((__CHANNEL__) & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDSGL) \
AnnaBridge 171:3a7713b1edbc 1799 : \
AnnaBridge 171:3a7713b1edbc 1800 (((__CHANNEL__) & ADC_CHANNEL_ID_MASK) | ADC_CR1_JAWDEN | ADC_CR1_AWDEN | ADC_CR1_AWDSGL) \
AnnaBridge 171:3a7713b1edbc 1801 )
AnnaBridge 171:3a7713b1edbc 1802
AnnaBridge 171:3a7713b1edbc 1803 /**
AnnaBridge 171:3a7713b1edbc 1804 * @brief Helper macro to set the value of ADC analog watchdog threshold high
AnnaBridge 171:3a7713b1edbc 1805 * or low in function of ADC resolution, when ADC resolution is
AnnaBridge 171:3a7713b1edbc 1806 * different of 12 bits.
AnnaBridge 171:3a7713b1edbc 1807 * @note To be used with function @ref LL_ADC_SetAnalogWDThresholds().
AnnaBridge 171:3a7713b1edbc 1808 * Example, with a ADC resolution of 8 bits, to set the value of
AnnaBridge 171:3a7713b1edbc 1809 * analog watchdog threshold high (on 8 bits):
AnnaBridge 171:3a7713b1edbc 1810 * LL_ADC_SetAnalogWDThresholds
AnnaBridge 171:3a7713b1edbc 1811 * (< ADCx param >,
AnnaBridge 171:3a7713b1edbc 1812 * __LL_ADC_ANALOGWD_SET_THRESHOLD_RESOLUTION(LL_ADC_RESOLUTION_8B, <threshold_value_8_bits>)
AnnaBridge 171:3a7713b1edbc 1813 * );
AnnaBridge 171:3a7713b1edbc 1814 * @param __ADC_RESOLUTION__ This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 1815 * @arg @ref LL_ADC_RESOLUTION_12B
AnnaBridge 171:3a7713b1edbc 1816 * @arg @ref LL_ADC_RESOLUTION_10B
AnnaBridge 171:3a7713b1edbc 1817 * @arg @ref LL_ADC_RESOLUTION_8B
AnnaBridge 171:3a7713b1edbc 1818 * @arg @ref LL_ADC_RESOLUTION_6B
AnnaBridge 171:3a7713b1edbc 1819 * @param __AWD_THRESHOLD__ Value between Min_Data=0x000 and Max_Data=0xFFF
AnnaBridge 171:3a7713b1edbc 1820 * @retval Value between Min_Data=0x000 and Max_Data=0xFFF
AnnaBridge 171:3a7713b1edbc 1821 */
AnnaBridge 171:3a7713b1edbc 1822 #define __LL_ADC_ANALOGWD_SET_THRESHOLD_RESOLUTION(__ADC_RESOLUTION__, __AWD_THRESHOLD__) \
AnnaBridge 171:3a7713b1edbc 1823 ((__AWD_THRESHOLD__) << ((__ADC_RESOLUTION__) >> (ADC_CR1_RES_BITOFFSET_POS - 1U )))
AnnaBridge 171:3a7713b1edbc 1824
AnnaBridge 171:3a7713b1edbc 1825 /**
AnnaBridge 171:3a7713b1edbc 1826 * @brief Helper macro to get the value of ADC analog watchdog threshold high
AnnaBridge 171:3a7713b1edbc 1827 * or low in function of ADC resolution, when ADC resolution is
AnnaBridge 171:3a7713b1edbc 1828 * different of 12 bits.
AnnaBridge 171:3a7713b1edbc 1829 * @note To be used with function @ref LL_ADC_GetAnalogWDThresholds().
AnnaBridge 171:3a7713b1edbc 1830 * Example, with a ADC resolution of 8 bits, to get the value of
AnnaBridge 171:3a7713b1edbc 1831 * analog watchdog threshold high (on 8 bits):
AnnaBridge 171:3a7713b1edbc 1832 * < threshold_value_6_bits > = __LL_ADC_ANALOGWD_GET_THRESHOLD_RESOLUTION
AnnaBridge 171:3a7713b1edbc 1833 * (LL_ADC_RESOLUTION_8B,
AnnaBridge 171:3a7713b1edbc 1834 * LL_ADC_GetAnalogWDThresholds(<ADCx param>, LL_ADC_AWD_THRESHOLD_HIGH)
AnnaBridge 171:3a7713b1edbc 1835 * );
AnnaBridge 171:3a7713b1edbc 1836 * @param __ADC_RESOLUTION__ This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 1837 * @arg @ref LL_ADC_RESOLUTION_12B
AnnaBridge 171:3a7713b1edbc 1838 * @arg @ref LL_ADC_RESOLUTION_10B
AnnaBridge 171:3a7713b1edbc 1839 * @arg @ref LL_ADC_RESOLUTION_8B
AnnaBridge 171:3a7713b1edbc 1840 * @arg @ref LL_ADC_RESOLUTION_6B
AnnaBridge 171:3a7713b1edbc 1841 * @param __AWD_THRESHOLD_12_BITS__ Value between Min_Data=0x000 and Max_Data=0xFFF
AnnaBridge 171:3a7713b1edbc 1842 * @retval Value between Min_Data=0x000 and Max_Data=0xFFF
AnnaBridge 171:3a7713b1edbc 1843 */
AnnaBridge 171:3a7713b1edbc 1844 #define __LL_ADC_ANALOGWD_GET_THRESHOLD_RESOLUTION(__ADC_RESOLUTION__, __AWD_THRESHOLD_12_BITS__) \
AnnaBridge 171:3a7713b1edbc 1845 ((__AWD_THRESHOLD_12_BITS__) >> ((__ADC_RESOLUTION__) >> (ADC_CR1_RES_BITOFFSET_POS - 1U )))
AnnaBridge 171:3a7713b1edbc 1846
AnnaBridge 171:3a7713b1edbc 1847 /**
AnnaBridge 171:3a7713b1edbc 1848 * @brief Helper macro to select the ADC common instance
AnnaBridge 171:3a7713b1edbc 1849 * to which is belonging the selected ADC instance.
AnnaBridge 171:3a7713b1edbc 1850 * @note ADC common register instance can be used for:
AnnaBridge 171:3a7713b1edbc 1851 * - Set parameters common to several ADC instances
AnnaBridge 171:3a7713b1edbc 1852 * - Multimode (for devices with several ADC instances)
AnnaBridge 171:3a7713b1edbc 1853 * Refer to functions having argument "ADCxy_COMMON" as parameter.
AnnaBridge 171:3a7713b1edbc 1854 * @param __ADCx__ ADC instance
AnnaBridge 171:3a7713b1edbc 1855 * @retval ADC common register instance
AnnaBridge 171:3a7713b1edbc 1856 */
AnnaBridge 171:3a7713b1edbc 1857 #define __LL_ADC_COMMON_INSTANCE(__ADCx__) \
AnnaBridge 171:3a7713b1edbc 1858 (ADC1_COMMON)
AnnaBridge 171:3a7713b1edbc 1859
AnnaBridge 171:3a7713b1edbc 1860 /**
AnnaBridge 171:3a7713b1edbc 1861 * @brief Helper macro to check if all ADC instances sharing the same
AnnaBridge 171:3a7713b1edbc 1862 * ADC common instance are disabled.
AnnaBridge 171:3a7713b1edbc 1863 * @note This check is required by functions with setting conditioned to
AnnaBridge 171:3a7713b1edbc 1864 * ADC state:
AnnaBridge 171:3a7713b1edbc 1865 * All ADC instances of the ADC common group must be disabled.
AnnaBridge 171:3a7713b1edbc 1866 * Refer to functions having argument "ADCxy_COMMON" as parameter.
AnnaBridge 171:3a7713b1edbc 1867 * @note On devices with only 1 ADC common instance, parameter of this macro
AnnaBridge 171:3a7713b1edbc 1868 * is useless and can be ignored (parameter kept for compatibility
AnnaBridge 171:3a7713b1edbc 1869 * with devices featuring several ADC common instances).
AnnaBridge 171:3a7713b1edbc 1870 * @param __ADCXY_COMMON__ ADC common instance
AnnaBridge 171:3a7713b1edbc 1871 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
AnnaBridge 171:3a7713b1edbc 1872 * @retval Value "0" if all ADC instances sharing the same ADC common instance
AnnaBridge 171:3a7713b1edbc 1873 * are disabled.
AnnaBridge 171:3a7713b1edbc 1874 * Value "1" if at least one ADC instance sharing the same ADC common instance
AnnaBridge 171:3a7713b1edbc 1875 * is enabled.
AnnaBridge 171:3a7713b1edbc 1876 */
AnnaBridge 171:3a7713b1edbc 1877 #define __LL_ADC_IS_ENABLED_ALL_COMMON_INSTANCE(__ADCXY_COMMON__) \
AnnaBridge 171:3a7713b1edbc 1878 LL_ADC_IsEnabled(ADC1)
AnnaBridge 171:3a7713b1edbc 1879
AnnaBridge 171:3a7713b1edbc 1880 /**
AnnaBridge 171:3a7713b1edbc 1881 * @brief Helper macro to define the ADC conversion data full-scale digital
AnnaBridge 171:3a7713b1edbc 1882 * value corresponding to the selected ADC resolution.
AnnaBridge 171:3a7713b1edbc 1883 * @note ADC conversion data full-scale corresponds to voltage range
AnnaBridge 171:3a7713b1edbc 1884 * determined by analog voltage references Vref+ and Vref-
AnnaBridge 171:3a7713b1edbc 1885 * (refer to reference manual).
AnnaBridge 171:3a7713b1edbc 1886 * @param __ADC_RESOLUTION__ This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 1887 * @arg @ref LL_ADC_RESOLUTION_12B
AnnaBridge 171:3a7713b1edbc 1888 * @arg @ref LL_ADC_RESOLUTION_10B
AnnaBridge 171:3a7713b1edbc 1889 * @arg @ref LL_ADC_RESOLUTION_8B
AnnaBridge 171:3a7713b1edbc 1890 * @arg @ref LL_ADC_RESOLUTION_6B
AnnaBridge 171:3a7713b1edbc 1891 * @retval ADC conversion data equivalent voltage value (unit: mVolt)
AnnaBridge 171:3a7713b1edbc 1892 */
AnnaBridge 171:3a7713b1edbc 1893 #define __LL_ADC_DIGITAL_SCALE(__ADC_RESOLUTION__) \
AnnaBridge 171:3a7713b1edbc 1894 (0xFFFU >> ((__ADC_RESOLUTION__) >> (ADC_CR1_RES_BITOFFSET_POS - 1U)))
AnnaBridge 171:3a7713b1edbc 1895
AnnaBridge 171:3a7713b1edbc 1896 /**
AnnaBridge 171:3a7713b1edbc 1897 * @brief Helper macro to convert the ADC conversion data from
AnnaBridge 171:3a7713b1edbc 1898 * a resolution to another resolution.
AnnaBridge 171:3a7713b1edbc 1899 * @param __DATA__ ADC conversion data to be converted
AnnaBridge 171:3a7713b1edbc 1900 * @param __ADC_RESOLUTION_CURRENT__ Resolution of to the data to be converted
AnnaBridge 171:3a7713b1edbc 1901 * This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 1902 * @arg @ref LL_ADC_RESOLUTION_12B
AnnaBridge 171:3a7713b1edbc 1903 * @arg @ref LL_ADC_RESOLUTION_10B
AnnaBridge 171:3a7713b1edbc 1904 * @arg @ref LL_ADC_RESOLUTION_8B
AnnaBridge 171:3a7713b1edbc 1905 * @arg @ref LL_ADC_RESOLUTION_6B
AnnaBridge 171:3a7713b1edbc 1906 * @param __ADC_RESOLUTION_TARGET__ Resolution of the data after conversion
AnnaBridge 171:3a7713b1edbc 1907 * This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 1908 * @arg @ref LL_ADC_RESOLUTION_12B
AnnaBridge 171:3a7713b1edbc 1909 * @arg @ref LL_ADC_RESOLUTION_10B
AnnaBridge 171:3a7713b1edbc 1910 * @arg @ref LL_ADC_RESOLUTION_8B
AnnaBridge 171:3a7713b1edbc 1911 * @arg @ref LL_ADC_RESOLUTION_6B
AnnaBridge 171:3a7713b1edbc 1912 * @retval ADC conversion data to the requested resolution
AnnaBridge 171:3a7713b1edbc 1913 */
AnnaBridge 171:3a7713b1edbc 1914 #define __LL_ADC_CONVERT_DATA_RESOLUTION(__DATA__, __ADC_RESOLUTION_CURRENT__, __ADC_RESOLUTION_TARGET__) \
AnnaBridge 171:3a7713b1edbc 1915 (((__DATA__) \
AnnaBridge 171:3a7713b1edbc 1916 << ((__ADC_RESOLUTION_CURRENT__) >> (ADC_CR1_RES_BITOFFSET_POS - 1U))) \
AnnaBridge 171:3a7713b1edbc 1917 >> ((__ADC_RESOLUTION_TARGET__) >> (ADC_CR1_RES_BITOFFSET_POS - 1U)) \
AnnaBridge 171:3a7713b1edbc 1918 )
AnnaBridge 171:3a7713b1edbc 1919
AnnaBridge 171:3a7713b1edbc 1920 /**
AnnaBridge 171:3a7713b1edbc 1921 * @brief Helper macro to calculate the voltage (unit: mVolt)
AnnaBridge 171:3a7713b1edbc 1922 * corresponding to a ADC conversion data (unit: digital value).
AnnaBridge 171:3a7713b1edbc 1923 * @note Analog reference voltage (Vref+) must be either known from
AnnaBridge 171:3a7713b1edbc 1924 * user board environment or can be calculated using ADC measurement
AnnaBridge 171:3a7713b1edbc 1925 * and ADC helper macro @ref __LL_ADC_CALC_VREFANALOG_VOLTAGE().
AnnaBridge 171:3a7713b1edbc 1926 * @param __VREFANALOG_VOLTAGE__ Analog reference voltage (unit: mV)
AnnaBridge 171:3a7713b1edbc 1927 * @param __ADC_DATA__ ADC conversion data (resolution 12 bits)
AnnaBridge 171:3a7713b1edbc 1928 * (unit: digital value).
AnnaBridge 171:3a7713b1edbc 1929 * @param __ADC_RESOLUTION__ This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 1930 * @arg @ref LL_ADC_RESOLUTION_12B
AnnaBridge 171:3a7713b1edbc 1931 * @arg @ref LL_ADC_RESOLUTION_10B
AnnaBridge 171:3a7713b1edbc 1932 * @arg @ref LL_ADC_RESOLUTION_8B
AnnaBridge 171:3a7713b1edbc 1933 * @arg @ref LL_ADC_RESOLUTION_6B
AnnaBridge 171:3a7713b1edbc 1934 * @retval ADC conversion data equivalent voltage value (unit: mVolt)
AnnaBridge 171:3a7713b1edbc 1935 */
AnnaBridge 171:3a7713b1edbc 1936 #define __LL_ADC_CALC_DATA_TO_VOLTAGE(__VREFANALOG_VOLTAGE__,\
AnnaBridge 171:3a7713b1edbc 1937 __ADC_DATA__,\
AnnaBridge 171:3a7713b1edbc 1938 __ADC_RESOLUTION__) \
AnnaBridge 171:3a7713b1edbc 1939 ((__ADC_DATA__) * (__VREFANALOG_VOLTAGE__) \
AnnaBridge 171:3a7713b1edbc 1940 / __LL_ADC_DIGITAL_SCALE(__ADC_RESOLUTION__) \
AnnaBridge 171:3a7713b1edbc 1941 )
AnnaBridge 171:3a7713b1edbc 1942
AnnaBridge 171:3a7713b1edbc 1943 /**
AnnaBridge 171:3a7713b1edbc 1944 * @brief Helper macro to calculate analog reference voltage (Vref+)
AnnaBridge 171:3a7713b1edbc 1945 * (unit: mVolt) from ADC conversion data of internal voltage
AnnaBridge 171:3a7713b1edbc 1946 * reference VrefInt.
AnnaBridge 171:3a7713b1edbc 1947 * @note Computation is using VrefInt calibration value
AnnaBridge 171:3a7713b1edbc 1948 * stored in system memory for each device during production.
AnnaBridge 171:3a7713b1edbc 1949 * @note This voltage depends on user board environment: voltage level
AnnaBridge 171:3a7713b1edbc 1950 * connected to pin Vref+.
AnnaBridge 171:3a7713b1edbc 1951 * On devices with small package, the pin Vref+ is not present
AnnaBridge 171:3a7713b1edbc 1952 * and internally bonded to pin Vdda.
AnnaBridge 171:3a7713b1edbc 1953 * @note On this STM32 serie, calibration data of internal voltage reference
AnnaBridge 171:3a7713b1edbc 1954 * VrefInt corresponds to a resolution of 12 bits,
AnnaBridge 171:3a7713b1edbc 1955 * this is the recommended ADC resolution to convert voltage of
AnnaBridge 171:3a7713b1edbc 1956 * internal voltage reference VrefInt.
AnnaBridge 171:3a7713b1edbc 1957 * Otherwise, this macro performs the processing to scale
AnnaBridge 171:3a7713b1edbc 1958 * ADC conversion data to 12 bits.
AnnaBridge 171:3a7713b1edbc 1959 * @param __VREFINT_ADC_DATA__: ADC conversion data (resolution 12 bits)
AnnaBridge 171:3a7713b1edbc 1960 * of internal voltage reference VrefInt (unit: digital value).
AnnaBridge 171:3a7713b1edbc 1961 * @param __ADC_RESOLUTION__ This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 1962 * @arg @ref LL_ADC_RESOLUTION_12B
AnnaBridge 171:3a7713b1edbc 1963 * @arg @ref LL_ADC_RESOLUTION_10B
AnnaBridge 171:3a7713b1edbc 1964 * @arg @ref LL_ADC_RESOLUTION_8B
AnnaBridge 171:3a7713b1edbc 1965 * @arg @ref LL_ADC_RESOLUTION_6B
AnnaBridge 171:3a7713b1edbc 1966 * @retval Analog reference voltage (unit: mV)
AnnaBridge 171:3a7713b1edbc 1967 */
AnnaBridge 171:3a7713b1edbc 1968 #define __LL_ADC_CALC_VREFANALOG_VOLTAGE(__VREFINT_ADC_DATA__,\
AnnaBridge 171:3a7713b1edbc 1969 __ADC_RESOLUTION__) \
AnnaBridge 171:3a7713b1edbc 1970 (((uint32_t)(*VREFINT_CAL_ADDR) * VREFINT_CAL_VREF) \
AnnaBridge 171:3a7713b1edbc 1971 / __LL_ADC_CONVERT_DATA_RESOLUTION((__VREFINT_ADC_DATA__), \
AnnaBridge 171:3a7713b1edbc 1972 (__ADC_RESOLUTION__), \
AnnaBridge 171:3a7713b1edbc 1973 LL_ADC_RESOLUTION_12B) \
AnnaBridge 171:3a7713b1edbc 1974 )
AnnaBridge 171:3a7713b1edbc 1975
AnnaBridge 171:3a7713b1edbc 1976 /**
AnnaBridge 171:3a7713b1edbc 1977 * @brief Helper macro to calculate the temperature (unit: degree Celsius)
AnnaBridge 171:3a7713b1edbc 1978 * from ADC conversion data of internal temperature sensor.
AnnaBridge 171:3a7713b1edbc 1979 * @note Computation is using temperature sensor calibration values
AnnaBridge 171:3a7713b1edbc 1980 * stored in system memory for each device during production.
AnnaBridge 171:3a7713b1edbc 1981 * @note Calculation formula:
AnnaBridge 171:3a7713b1edbc 1982 * Temperature = ((TS_ADC_DATA - TS_CAL1)
AnnaBridge 171:3a7713b1edbc 1983 * * (TS_CAL2_TEMP - TS_CAL1_TEMP))
AnnaBridge 171:3a7713b1edbc 1984 * / (TS_CAL2 - TS_CAL1) + TS_CAL1_TEMP
AnnaBridge 171:3a7713b1edbc 1985 * with TS_ADC_DATA = temperature sensor raw data measured by ADC
AnnaBridge 171:3a7713b1edbc 1986 * Avg_Slope = (TS_CAL2 - TS_CAL1)
AnnaBridge 171:3a7713b1edbc 1987 * / (TS_CAL2_TEMP - TS_CAL1_TEMP)
AnnaBridge 171:3a7713b1edbc 1988 * TS_CAL1 = equivalent TS_ADC_DATA at temperature
AnnaBridge 171:3a7713b1edbc 1989 * TEMP_DEGC_CAL1 (calibrated in factory)
AnnaBridge 171:3a7713b1edbc 1990 * TS_CAL2 = equivalent TS_ADC_DATA at temperature
AnnaBridge 171:3a7713b1edbc 1991 * TEMP_DEGC_CAL2 (calibrated in factory)
AnnaBridge 171:3a7713b1edbc 1992 * Caution: Calculation relevancy under reserve that calibration
AnnaBridge 171:3a7713b1edbc 1993 * parameters are correct (address and data).
AnnaBridge 171:3a7713b1edbc 1994 * To calculate temperature using temperature sensor
AnnaBridge 171:3a7713b1edbc 1995 * datasheet typical values (generic values less, therefore
AnnaBridge 171:3a7713b1edbc 1996 * less accurate than calibrated values),
AnnaBridge 171:3a7713b1edbc 1997 * use helper macro @ref __LL_ADC_CALC_TEMPERATURE_TYP_PARAMS().
AnnaBridge 171:3a7713b1edbc 1998 * @note As calculation input, the analog reference voltage (Vref+) must be
AnnaBridge 171:3a7713b1edbc 1999 * defined as it impacts the ADC LSB equivalent voltage.
AnnaBridge 171:3a7713b1edbc 2000 * @note Analog reference voltage (Vref+) must be either known from
AnnaBridge 171:3a7713b1edbc 2001 * user board environment or can be calculated using ADC measurement
AnnaBridge 171:3a7713b1edbc 2002 * and ADC helper macro @ref __LL_ADC_CALC_VREFANALOG_VOLTAGE().
AnnaBridge 171:3a7713b1edbc 2003 * @note On this STM32 serie, calibration data of temperature sensor
AnnaBridge 171:3a7713b1edbc 2004 * corresponds to a resolution of 12 bits,
AnnaBridge 171:3a7713b1edbc 2005 * this is the recommended ADC resolution to convert voltage of
AnnaBridge 171:3a7713b1edbc 2006 * temperature sensor.
AnnaBridge 171:3a7713b1edbc 2007 * Otherwise, this macro performs the processing to scale
AnnaBridge 171:3a7713b1edbc 2008 * ADC conversion data to 12 bits.
AnnaBridge 171:3a7713b1edbc 2009 * @param __VREFANALOG_VOLTAGE__ Analog reference voltage (unit: mV)
AnnaBridge 171:3a7713b1edbc 2010 * @param __TEMPSENSOR_ADC_DATA__ ADC conversion data of internal
AnnaBridge 171:3a7713b1edbc 2011 * temperature sensor (unit: digital value).
AnnaBridge 171:3a7713b1edbc 2012 * @param __ADC_RESOLUTION__ ADC resolution at which internal temperature
AnnaBridge 171:3a7713b1edbc 2013 * sensor voltage has been measured.
AnnaBridge 171:3a7713b1edbc 2014 * This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 2015 * @arg @ref LL_ADC_RESOLUTION_12B
AnnaBridge 171:3a7713b1edbc 2016 * @arg @ref LL_ADC_RESOLUTION_10B
AnnaBridge 171:3a7713b1edbc 2017 * @arg @ref LL_ADC_RESOLUTION_8B
AnnaBridge 171:3a7713b1edbc 2018 * @arg @ref LL_ADC_RESOLUTION_6B
AnnaBridge 171:3a7713b1edbc 2019 * @retval Temperature (unit: degree Celsius)
AnnaBridge 171:3a7713b1edbc 2020 */
AnnaBridge 171:3a7713b1edbc 2021 #define __LL_ADC_CALC_TEMPERATURE(__VREFANALOG_VOLTAGE__,\
AnnaBridge 171:3a7713b1edbc 2022 __TEMPSENSOR_ADC_DATA__,\
AnnaBridge 171:3a7713b1edbc 2023 __ADC_RESOLUTION__) \
AnnaBridge 171:3a7713b1edbc 2024 (((( ((int32_t)((__LL_ADC_CONVERT_DATA_RESOLUTION((__TEMPSENSOR_ADC_DATA__), \
AnnaBridge 171:3a7713b1edbc 2025 (__ADC_RESOLUTION__), \
AnnaBridge 171:3a7713b1edbc 2026 LL_ADC_RESOLUTION_12B) \
AnnaBridge 171:3a7713b1edbc 2027 * (__VREFANALOG_VOLTAGE__)) \
AnnaBridge 171:3a7713b1edbc 2028 / TEMPSENSOR_CAL_VREFANALOG) \
AnnaBridge 171:3a7713b1edbc 2029 - (int32_t) *TEMPSENSOR_CAL1_ADDR) \
AnnaBridge 171:3a7713b1edbc 2030 ) * (int32_t)(TEMPSENSOR_CAL2_TEMP - TEMPSENSOR_CAL1_TEMP) \
AnnaBridge 171:3a7713b1edbc 2031 ) / (int32_t)((int32_t)*TEMPSENSOR_CAL2_ADDR - (int32_t)*TEMPSENSOR_CAL1_ADDR) \
AnnaBridge 171:3a7713b1edbc 2032 ) + TEMPSENSOR_CAL1_TEMP \
AnnaBridge 171:3a7713b1edbc 2033 )
AnnaBridge 171:3a7713b1edbc 2034
AnnaBridge 171:3a7713b1edbc 2035 /**
AnnaBridge 171:3a7713b1edbc 2036 * @brief Helper macro to calculate the temperature (unit: degree Celsius)
AnnaBridge 171:3a7713b1edbc 2037 * from ADC conversion data of internal temperature sensor.
AnnaBridge 171:3a7713b1edbc 2038 * @note Computation is using temperature sensor typical values
AnnaBridge 171:3a7713b1edbc 2039 * (refer to device datasheet).
AnnaBridge 171:3a7713b1edbc 2040 * @note Calculation formula:
AnnaBridge 171:3a7713b1edbc 2041 * Temperature = (TS_TYP_CALx_VOLT(uV) - TS_ADC_DATA * Conversion_uV)
AnnaBridge 171:3a7713b1edbc 2042 * / Avg_Slope + CALx_TEMP
AnnaBridge 171:3a7713b1edbc 2043 * with TS_ADC_DATA = temperature sensor raw data measured by ADC
AnnaBridge 171:3a7713b1edbc 2044 * (unit: digital value)
AnnaBridge 171:3a7713b1edbc 2045 * Avg_Slope = temperature sensor slope
AnnaBridge 171:3a7713b1edbc 2046 * (unit: uV/Degree Celsius)
AnnaBridge 171:3a7713b1edbc 2047 * TS_TYP_CALx_VOLT = temperature sensor digital value at
AnnaBridge 171:3a7713b1edbc 2048 * temperature CALx_TEMP (unit: mV)
AnnaBridge 171:3a7713b1edbc 2049 * Caution: Calculation relevancy under reserve the temperature sensor
AnnaBridge 171:3a7713b1edbc 2050 * of the current device has characteristics in line with
AnnaBridge 171:3a7713b1edbc 2051 * datasheet typical values.
AnnaBridge 171:3a7713b1edbc 2052 * If temperature sensor calibration values are available on
AnnaBridge 171:3a7713b1edbc 2053 * on this device (presence of macro __LL_ADC_CALC_TEMPERATURE()),
AnnaBridge 171:3a7713b1edbc 2054 * temperature calculation will be more accurate using
AnnaBridge 171:3a7713b1edbc 2055 * helper macro @ref __LL_ADC_CALC_TEMPERATURE().
AnnaBridge 171:3a7713b1edbc 2056 * @note As calculation input, the analog reference voltage (Vref+) must be
AnnaBridge 171:3a7713b1edbc 2057 * defined as it impacts the ADC LSB equivalent voltage.
AnnaBridge 171:3a7713b1edbc 2058 * @note Analog reference voltage (Vref+) must be either known from
AnnaBridge 171:3a7713b1edbc 2059 * user board environment or can be calculated using ADC measurement
AnnaBridge 171:3a7713b1edbc 2060 * and ADC helper macro @ref __LL_ADC_CALC_VREFANALOG_VOLTAGE().
AnnaBridge 171:3a7713b1edbc 2061 * @note ADC measurement data must correspond to a resolution of 12bits
AnnaBridge 171:3a7713b1edbc 2062 * (full scale digital value 4095). If not the case, the data must be
AnnaBridge 171:3a7713b1edbc 2063 * preliminarily rescaled to an equivalent resolution of 12 bits.
AnnaBridge 171:3a7713b1edbc 2064 * @param __TEMPSENSOR_TYP_AVGSLOPE__ Device datasheet data: Temperature sensor slope typical value (unit: uV/DegCelsius).
AnnaBridge 171:3a7713b1edbc 2065 * On STM32L1, refer to device datasheet parameter "Avg_Slope".
AnnaBridge 171:3a7713b1edbc 2066 * @param __TEMPSENSOR_TYP_CALX_V__ Device datasheet data: Temperature sensor voltage typical value (at temperature and Vref+ defined in parameters below) (unit: mV).
AnnaBridge 171:3a7713b1edbc 2067 * On STM32L1, refer to device datasheet parameter "V110" (corresponding to TS_CAL2).
AnnaBridge 171:3a7713b1edbc 2068 * @param __TEMPSENSOR_CALX_TEMP__ Device datasheet data: Temperature at which temperature sensor voltage (see parameter above) is corresponding (unit: mV)
AnnaBridge 171:3a7713b1edbc 2069 * @param __VREFANALOG_VOLTAGE__ Analog voltage reference (Vref+) voltage (unit: mV)
AnnaBridge 171:3a7713b1edbc 2070 * @param __TEMPSENSOR_ADC_DATA__ ADC conversion data of internal temperature sensor (unit: digital value).
AnnaBridge 171:3a7713b1edbc 2071 * @param __ADC_RESOLUTION__ ADC resolution at which internal temperature sensor voltage has been measured.
AnnaBridge 171:3a7713b1edbc 2072 * This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 2073 * @arg @ref LL_ADC_RESOLUTION_12B
AnnaBridge 171:3a7713b1edbc 2074 * @arg @ref LL_ADC_RESOLUTION_10B
AnnaBridge 171:3a7713b1edbc 2075 * @arg @ref LL_ADC_RESOLUTION_8B
AnnaBridge 171:3a7713b1edbc 2076 * @arg @ref LL_ADC_RESOLUTION_6B
AnnaBridge 171:3a7713b1edbc 2077 * @retval Temperature (unit: degree Celsius)
AnnaBridge 171:3a7713b1edbc 2078 */
AnnaBridge 171:3a7713b1edbc 2079 #define __LL_ADC_CALC_TEMPERATURE_TYP_PARAMS(__TEMPSENSOR_TYP_AVGSLOPE__,\
AnnaBridge 171:3a7713b1edbc 2080 __TEMPSENSOR_TYP_CALX_V__,\
AnnaBridge 171:3a7713b1edbc 2081 __TEMPSENSOR_CALX_TEMP__,\
AnnaBridge 171:3a7713b1edbc 2082 __VREFANALOG_VOLTAGE__,\
AnnaBridge 171:3a7713b1edbc 2083 __TEMPSENSOR_ADC_DATA__,\
AnnaBridge 171:3a7713b1edbc 2084 __ADC_RESOLUTION__) \
AnnaBridge 171:3a7713b1edbc 2085 ((( ( \
AnnaBridge 171:3a7713b1edbc 2086 (int32_t)((((__TEMPSENSOR_ADC_DATA__) * (__VREFANALOG_VOLTAGE__)) \
AnnaBridge 171:3a7713b1edbc 2087 / __LL_ADC_DIGITAL_SCALE(__ADC_RESOLUTION__)) \
AnnaBridge 171:3a7713b1edbc 2088 * 1000) \
AnnaBridge 171:3a7713b1edbc 2089 - \
AnnaBridge 171:3a7713b1edbc 2090 (int32_t)(((__TEMPSENSOR_TYP_CALX_V__)) \
AnnaBridge 171:3a7713b1edbc 2091 * 1000) \
AnnaBridge 171:3a7713b1edbc 2092 ) \
AnnaBridge 171:3a7713b1edbc 2093 ) / (__TEMPSENSOR_TYP_AVGSLOPE__) \
AnnaBridge 171:3a7713b1edbc 2094 ) + (__TEMPSENSOR_CALX_TEMP__) \
AnnaBridge 171:3a7713b1edbc 2095 )
AnnaBridge 171:3a7713b1edbc 2096
AnnaBridge 171:3a7713b1edbc 2097 /**
AnnaBridge 171:3a7713b1edbc 2098 * @}
AnnaBridge 171:3a7713b1edbc 2099 */
AnnaBridge 171:3a7713b1edbc 2100
AnnaBridge 171:3a7713b1edbc 2101 /**
AnnaBridge 171:3a7713b1edbc 2102 * @}
AnnaBridge 171:3a7713b1edbc 2103 */
AnnaBridge 171:3a7713b1edbc 2104
AnnaBridge 171:3a7713b1edbc 2105
AnnaBridge 171:3a7713b1edbc 2106 /* Exported functions --------------------------------------------------------*/
AnnaBridge 171:3a7713b1edbc 2107 /** @defgroup ADC_LL_Exported_Functions ADC Exported Functions
AnnaBridge 171:3a7713b1edbc 2108 * @{
AnnaBridge 171:3a7713b1edbc 2109 */
AnnaBridge 171:3a7713b1edbc 2110
AnnaBridge 171:3a7713b1edbc 2111 /** @defgroup ADC_LL_EF_DMA_Management ADC DMA management
AnnaBridge 171:3a7713b1edbc 2112 * @{
AnnaBridge 171:3a7713b1edbc 2113 */
AnnaBridge 171:3a7713b1edbc 2114 /* Note: LL ADC functions to set DMA transfer are located into sections of */
AnnaBridge 171:3a7713b1edbc 2115 /* configuration of ADC instance, groups and multimode (if available): */
AnnaBridge 171:3a7713b1edbc 2116 /* @ref LL_ADC_REG_SetDMATransfer(), ... */
AnnaBridge 171:3a7713b1edbc 2117
AnnaBridge 171:3a7713b1edbc 2118 /**
AnnaBridge 171:3a7713b1edbc 2119 * @brief Function to help to configure DMA transfer from ADC: retrieve the
AnnaBridge 171:3a7713b1edbc 2120 * ADC register address from ADC instance and a list of ADC registers
AnnaBridge 171:3a7713b1edbc 2121 * intended to be used (most commonly) with DMA transfer.
AnnaBridge 171:3a7713b1edbc 2122 * @note These ADC registers are data registers:
AnnaBridge 171:3a7713b1edbc 2123 * when ADC conversion data is available in ADC data registers,
AnnaBridge 171:3a7713b1edbc 2124 * ADC generates a DMA transfer request.
AnnaBridge 171:3a7713b1edbc 2125 * @note This macro is intended to be used with LL DMA driver, refer to
AnnaBridge 171:3a7713b1edbc 2126 * function "LL_DMA_ConfigAddresses()".
AnnaBridge 171:3a7713b1edbc 2127 * Example:
AnnaBridge 171:3a7713b1edbc 2128 * LL_DMA_ConfigAddresses(DMA1,
AnnaBridge 171:3a7713b1edbc 2129 * LL_DMA_CHANNEL_1,
AnnaBridge 171:3a7713b1edbc 2130 * LL_ADC_DMA_GetRegAddr(ADC1, LL_ADC_DMA_REG_REGULAR_DATA),
AnnaBridge 171:3a7713b1edbc 2131 * (uint32_t)&< array or variable >,
AnnaBridge 171:3a7713b1edbc 2132 * LL_DMA_DIRECTION_PERIPH_TO_MEMORY);
AnnaBridge 171:3a7713b1edbc 2133 * @note For devices with several ADC: in multimode, some devices
AnnaBridge 171:3a7713b1edbc 2134 * use a different data register outside of ADC instance scope
AnnaBridge 171:3a7713b1edbc 2135 * (common data register). This macro manages this register difference,
AnnaBridge 171:3a7713b1edbc 2136 * only ADC instance has to be set as parameter.
AnnaBridge 171:3a7713b1edbc 2137 * @rmtoll DR DATA LL_ADC_DMA_GetRegAddr
AnnaBridge 171:3a7713b1edbc 2138 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 2139 * @param Register This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 2140 * @arg @ref LL_ADC_DMA_REG_REGULAR_DATA
AnnaBridge 171:3a7713b1edbc 2141 * @retval ADC register address
AnnaBridge 171:3a7713b1edbc 2142 */
AnnaBridge 171:3a7713b1edbc 2143 __STATIC_INLINE uint32_t LL_ADC_DMA_GetRegAddr(ADC_TypeDef *ADCx, uint32_t Register)
AnnaBridge 171:3a7713b1edbc 2144 {
AnnaBridge 171:3a7713b1edbc 2145 /* Retrieve address of register DR */
AnnaBridge 171:3a7713b1edbc 2146 return (uint32_t)&(ADCx->DR);
AnnaBridge 171:3a7713b1edbc 2147 }
AnnaBridge 171:3a7713b1edbc 2148
AnnaBridge 171:3a7713b1edbc 2149 /**
AnnaBridge 171:3a7713b1edbc 2150 * @}
AnnaBridge 171:3a7713b1edbc 2151 */
AnnaBridge 171:3a7713b1edbc 2152
AnnaBridge 171:3a7713b1edbc 2153 /** @defgroup ADC_LL_EF_Configuration_ADC_Common Configuration of ADC hierarchical scope: common to several ADC instances
AnnaBridge 171:3a7713b1edbc 2154 * @{
AnnaBridge 171:3a7713b1edbc 2155 */
AnnaBridge 171:3a7713b1edbc 2156
AnnaBridge 171:3a7713b1edbc 2157 /**
AnnaBridge 171:3a7713b1edbc 2158 * @brief Set parameter common to several ADC: Clock source and prescaler.
AnnaBridge 171:3a7713b1edbc 2159 * @note On this STM32 serie, HSI RC oscillator is the only clock source for ADC.
AnnaBridge 171:3a7713b1edbc 2160 * Therefore, HSI RC oscillator must be preliminarily enabled at RCC top level.
AnnaBridge 171:3a7713b1edbc 2161 * @note On this STM32 serie, some clock ratio constraints between ADC clock and APB clock
AnnaBridge 171:3a7713b1edbc 2162 * must be respected:
AnnaBridge 171:3a7713b1edbc 2163 * - In all cases: if APB clock frequency is too low compared ADC clock frequency, a delay between conversions must be inserted.
AnnaBridge 171:3a7713b1edbc 2164 * - If ADC group injected is used: ADC clock frequency should be lower than APB clock frequency /4 for resolution 12 or 10 bits, APB clock frequency /3 for resolution 8 bits, APB clock frequency /2 for resolution 6 bits.
AnnaBridge 171:3a7713b1edbc 2165 * Refer to reference manual.
AnnaBridge 171:3a7713b1edbc 2166 * @rmtoll CCR ADCPRE LL_ADC_SetCommonClock
AnnaBridge 171:3a7713b1edbc 2167 * @param ADCxy_COMMON ADC common instance
AnnaBridge 171:3a7713b1edbc 2168 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
AnnaBridge 171:3a7713b1edbc 2169 * @param CommonClock This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 2170 * @arg @ref LL_ADC_CLOCK_ASYNC_DIV1
AnnaBridge 171:3a7713b1edbc 2171 * @arg @ref LL_ADC_CLOCK_ASYNC_DIV2
AnnaBridge 171:3a7713b1edbc 2172 * @arg @ref LL_ADC_CLOCK_ASYNC_DIV4
AnnaBridge 171:3a7713b1edbc 2173 * @retval None
AnnaBridge 171:3a7713b1edbc 2174 */
AnnaBridge 171:3a7713b1edbc 2175 __STATIC_INLINE void LL_ADC_SetCommonClock(ADC_Common_TypeDef *ADCxy_COMMON, uint32_t CommonClock)
AnnaBridge 171:3a7713b1edbc 2176 {
AnnaBridge 171:3a7713b1edbc 2177 MODIFY_REG(ADCxy_COMMON->CCR, ADC_CCR_ADCPRE, CommonClock);
AnnaBridge 171:3a7713b1edbc 2178 }
AnnaBridge 171:3a7713b1edbc 2179
AnnaBridge 171:3a7713b1edbc 2180 /**
AnnaBridge 171:3a7713b1edbc 2181 * @brief Get parameter common to several ADC: Clock source and prescaler.
AnnaBridge 171:3a7713b1edbc 2182 * @rmtoll CCR ADCPRE LL_ADC_GetCommonClock
AnnaBridge 171:3a7713b1edbc 2183 * @param ADCxy_COMMON ADC common instance
AnnaBridge 171:3a7713b1edbc 2184 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
AnnaBridge 171:3a7713b1edbc 2185 * @retval Returned value can be one of the following values:
AnnaBridge 171:3a7713b1edbc 2186 * @arg @ref LL_ADC_CLOCK_ASYNC_DIV1
AnnaBridge 171:3a7713b1edbc 2187 * @arg @ref LL_ADC_CLOCK_ASYNC_DIV2
AnnaBridge 171:3a7713b1edbc 2188 * @arg @ref LL_ADC_CLOCK_ASYNC_DIV4
AnnaBridge 171:3a7713b1edbc 2189 */
AnnaBridge 171:3a7713b1edbc 2190 __STATIC_INLINE uint32_t LL_ADC_GetCommonClock(ADC_Common_TypeDef *ADCxy_COMMON)
AnnaBridge 171:3a7713b1edbc 2191 {
AnnaBridge 171:3a7713b1edbc 2192 return (uint32_t)(READ_BIT(ADCxy_COMMON->CCR, ADC_CCR_ADCPRE));
AnnaBridge 171:3a7713b1edbc 2193 }
AnnaBridge 171:3a7713b1edbc 2194
AnnaBridge 171:3a7713b1edbc 2195 /**
AnnaBridge 171:3a7713b1edbc 2196 * @brief Set parameter common to several ADC: measurement path to internal
AnnaBridge 171:3a7713b1edbc 2197 * channels (VrefInt, temperature sensor, ...).
AnnaBridge 171:3a7713b1edbc 2198 * @note One or several values can be selected.
AnnaBridge 171:3a7713b1edbc 2199 * Example: (LL_ADC_PATH_INTERNAL_VREFINT |
AnnaBridge 171:3a7713b1edbc 2200 * LL_ADC_PATH_INTERNAL_TEMPSENSOR)
AnnaBridge 171:3a7713b1edbc 2201 * @note Stabilization time of measurement path to internal channel:
AnnaBridge 171:3a7713b1edbc 2202 * After enabling internal paths, before starting ADC conversion,
AnnaBridge 171:3a7713b1edbc 2203 * a delay is required for internal voltage reference and
AnnaBridge 171:3a7713b1edbc 2204 * temperature sensor stabilization time.
AnnaBridge 171:3a7713b1edbc 2205 * Refer to device datasheet.
AnnaBridge 171:3a7713b1edbc 2206 * Refer to literal @ref LL_ADC_DELAY_VREFINT_STAB_US.
AnnaBridge 171:3a7713b1edbc 2207 * Refer to literal @ref LL_ADC_DELAY_TEMPSENSOR_STAB_US.
AnnaBridge 171:3a7713b1edbc 2208 * @note ADC internal channel sampling time constraint:
AnnaBridge 171:3a7713b1edbc 2209 * For ADC conversion of internal channels,
AnnaBridge 171:3a7713b1edbc 2210 * a sampling time minimum value is required.
AnnaBridge 171:3a7713b1edbc 2211 * Refer to device datasheet.
AnnaBridge 171:3a7713b1edbc 2212 * @rmtoll CCR TSVREFE LL_ADC_SetCommonPathInternalCh
AnnaBridge 171:3a7713b1edbc 2213 * @param ADCxy_COMMON ADC common instance
AnnaBridge 171:3a7713b1edbc 2214 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
AnnaBridge 171:3a7713b1edbc 2215 * @param PathInternal This parameter can be a combination of the following values:
AnnaBridge 171:3a7713b1edbc 2216 * @arg @ref LL_ADC_PATH_INTERNAL_NONE
AnnaBridge 171:3a7713b1edbc 2217 * @arg @ref LL_ADC_PATH_INTERNAL_VREFINT
AnnaBridge 171:3a7713b1edbc 2218 * @arg @ref LL_ADC_PATH_INTERNAL_TEMPSENSOR
AnnaBridge 171:3a7713b1edbc 2219 * @retval None
AnnaBridge 171:3a7713b1edbc 2220 */
AnnaBridge 171:3a7713b1edbc 2221 __STATIC_INLINE void LL_ADC_SetCommonPathInternalCh(ADC_Common_TypeDef *ADCxy_COMMON, uint32_t PathInternal)
AnnaBridge 171:3a7713b1edbc 2222 {
AnnaBridge 171:3a7713b1edbc 2223 MODIFY_REG(ADCxy_COMMON->CCR, ADC_CCR_TSVREFE, PathInternal);
AnnaBridge 171:3a7713b1edbc 2224 }
AnnaBridge 171:3a7713b1edbc 2225
AnnaBridge 171:3a7713b1edbc 2226 /**
AnnaBridge 171:3a7713b1edbc 2227 * @brief Get parameter common to several ADC: measurement path to internal
AnnaBridge 171:3a7713b1edbc 2228 * channels (VrefInt, temperature sensor, ...).
AnnaBridge 171:3a7713b1edbc 2229 * @note One or several values can be selected.
AnnaBridge 171:3a7713b1edbc 2230 * Example: (LL_ADC_PATH_INTERNAL_VREFINT |
AnnaBridge 171:3a7713b1edbc 2231 * LL_ADC_PATH_INTERNAL_TEMPSENSOR)
AnnaBridge 171:3a7713b1edbc 2232 * @rmtoll CCR TSVREFE LL_ADC_GetCommonPathInternalCh
AnnaBridge 171:3a7713b1edbc 2233 * @param ADCxy_COMMON ADC common instance
AnnaBridge 171:3a7713b1edbc 2234 * (can be set directly from CMSIS definition or by using helper macro @ref __LL_ADC_COMMON_INSTANCE() )
AnnaBridge 171:3a7713b1edbc 2235 * @retval Returned value can be a combination of the following values:
AnnaBridge 171:3a7713b1edbc 2236 * @arg @ref LL_ADC_PATH_INTERNAL_NONE
AnnaBridge 171:3a7713b1edbc 2237 * @arg @ref LL_ADC_PATH_INTERNAL_VREFINT
AnnaBridge 171:3a7713b1edbc 2238 * @arg @ref LL_ADC_PATH_INTERNAL_TEMPSENSOR
AnnaBridge 171:3a7713b1edbc 2239 */
AnnaBridge 171:3a7713b1edbc 2240 __STATIC_INLINE uint32_t LL_ADC_GetCommonPathInternalCh(ADC_Common_TypeDef *ADCxy_COMMON)
AnnaBridge 171:3a7713b1edbc 2241 {
AnnaBridge 171:3a7713b1edbc 2242 return (uint32_t)(READ_BIT(ADCxy_COMMON->CCR, ADC_CCR_TSVREFE));
AnnaBridge 171:3a7713b1edbc 2243 }
AnnaBridge 171:3a7713b1edbc 2244
AnnaBridge 171:3a7713b1edbc 2245 /**
AnnaBridge 171:3a7713b1edbc 2246 * @}
AnnaBridge 171:3a7713b1edbc 2247 */
AnnaBridge 171:3a7713b1edbc 2248
AnnaBridge 171:3a7713b1edbc 2249 /** @defgroup ADC_LL_EF_Configuration_ADC_Instance Configuration of ADC hierarchical scope: ADC instance
AnnaBridge 171:3a7713b1edbc 2250 * @{
AnnaBridge 171:3a7713b1edbc 2251 */
AnnaBridge 171:3a7713b1edbc 2252
AnnaBridge 171:3a7713b1edbc 2253 /**
AnnaBridge 171:3a7713b1edbc 2254 * @brief Set ADC resolution.
AnnaBridge 171:3a7713b1edbc 2255 * Refer to reference manual for alignments formats
AnnaBridge 171:3a7713b1edbc 2256 * dependencies to ADC resolutions.
AnnaBridge 171:3a7713b1edbc 2257 * @rmtoll CR1 RES LL_ADC_SetResolution
AnnaBridge 171:3a7713b1edbc 2258 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 2259 * @param Resolution This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 2260 * @arg @ref LL_ADC_RESOLUTION_12B
AnnaBridge 171:3a7713b1edbc 2261 * @arg @ref LL_ADC_RESOLUTION_10B
AnnaBridge 171:3a7713b1edbc 2262 * @arg @ref LL_ADC_RESOLUTION_8B
AnnaBridge 171:3a7713b1edbc 2263 * @arg @ref LL_ADC_RESOLUTION_6B
AnnaBridge 171:3a7713b1edbc 2264 * @retval None
AnnaBridge 171:3a7713b1edbc 2265 */
AnnaBridge 171:3a7713b1edbc 2266 __STATIC_INLINE void LL_ADC_SetResolution(ADC_TypeDef *ADCx, uint32_t Resolution)
AnnaBridge 171:3a7713b1edbc 2267 {
AnnaBridge 171:3a7713b1edbc 2268 MODIFY_REG(ADCx->CR1, ADC_CR1_RES, Resolution);
AnnaBridge 171:3a7713b1edbc 2269 }
AnnaBridge 171:3a7713b1edbc 2270
AnnaBridge 171:3a7713b1edbc 2271 /**
AnnaBridge 171:3a7713b1edbc 2272 * @brief Get ADC resolution.
AnnaBridge 171:3a7713b1edbc 2273 * Refer to reference manual for alignments formats
AnnaBridge 171:3a7713b1edbc 2274 * dependencies to ADC resolutions.
AnnaBridge 171:3a7713b1edbc 2275 * @rmtoll CR1 RES LL_ADC_GetResolution
AnnaBridge 171:3a7713b1edbc 2276 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 2277 * @retval Returned value can be one of the following values:
AnnaBridge 171:3a7713b1edbc 2278 * @arg @ref LL_ADC_RESOLUTION_12B
AnnaBridge 171:3a7713b1edbc 2279 * @arg @ref LL_ADC_RESOLUTION_10B
AnnaBridge 171:3a7713b1edbc 2280 * @arg @ref LL_ADC_RESOLUTION_8B
AnnaBridge 171:3a7713b1edbc 2281 * @arg @ref LL_ADC_RESOLUTION_6B
AnnaBridge 171:3a7713b1edbc 2282 */
AnnaBridge 171:3a7713b1edbc 2283 __STATIC_INLINE uint32_t LL_ADC_GetResolution(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 2284 {
AnnaBridge 171:3a7713b1edbc 2285 return (uint32_t)(READ_BIT(ADCx->CR1, ADC_CR1_RES));
AnnaBridge 171:3a7713b1edbc 2286 }
AnnaBridge 171:3a7713b1edbc 2287
AnnaBridge 171:3a7713b1edbc 2288 /**
AnnaBridge 171:3a7713b1edbc 2289 * @brief Set ADC conversion data alignment.
AnnaBridge 171:3a7713b1edbc 2290 * @note Refer to reference manual for alignments formats
AnnaBridge 171:3a7713b1edbc 2291 * dependencies to ADC resolutions.
AnnaBridge 171:3a7713b1edbc 2292 * @rmtoll CR2 ALIGN LL_ADC_SetDataAlignment
AnnaBridge 171:3a7713b1edbc 2293 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 2294 * @param DataAlignment This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 2295 * @arg @ref LL_ADC_DATA_ALIGN_RIGHT
AnnaBridge 171:3a7713b1edbc 2296 * @arg @ref LL_ADC_DATA_ALIGN_LEFT
AnnaBridge 171:3a7713b1edbc 2297 * @retval None
AnnaBridge 171:3a7713b1edbc 2298 */
AnnaBridge 171:3a7713b1edbc 2299 __STATIC_INLINE void LL_ADC_SetDataAlignment(ADC_TypeDef *ADCx, uint32_t DataAlignment)
AnnaBridge 171:3a7713b1edbc 2300 {
AnnaBridge 171:3a7713b1edbc 2301 MODIFY_REG(ADCx->CR2, ADC_CR2_ALIGN, DataAlignment);
AnnaBridge 171:3a7713b1edbc 2302 }
AnnaBridge 171:3a7713b1edbc 2303
AnnaBridge 171:3a7713b1edbc 2304 /**
AnnaBridge 171:3a7713b1edbc 2305 * @brief Get ADC conversion data alignment.
AnnaBridge 171:3a7713b1edbc 2306 * @note Refer to reference manual for alignments formats
AnnaBridge 171:3a7713b1edbc 2307 * dependencies to ADC resolutions.
AnnaBridge 171:3a7713b1edbc 2308 * @rmtoll CR2 ALIGN LL_ADC_SetDataAlignment
AnnaBridge 171:3a7713b1edbc 2309 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 2310 * @retval Returned value can be one of the following values:
AnnaBridge 171:3a7713b1edbc 2311 * @arg @ref LL_ADC_DATA_ALIGN_RIGHT
AnnaBridge 171:3a7713b1edbc 2312 * @arg @ref LL_ADC_DATA_ALIGN_LEFT
AnnaBridge 171:3a7713b1edbc 2313 */
AnnaBridge 171:3a7713b1edbc 2314 __STATIC_INLINE uint32_t LL_ADC_GetDataAlignment(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 2315 {
AnnaBridge 171:3a7713b1edbc 2316 return (uint32_t)(READ_BIT(ADCx->CR2, ADC_CR2_ALIGN));
AnnaBridge 171:3a7713b1edbc 2317 }
AnnaBridge 171:3a7713b1edbc 2318
AnnaBridge 171:3a7713b1edbc 2319 /**
AnnaBridge 171:3a7713b1edbc 2320 * @brief Set ADC low power mode auto wait.
AnnaBridge 171:3a7713b1edbc 2321 * @note Description of ADC low power modes:
AnnaBridge 171:3a7713b1edbc 2322 * - ADC low power mode "auto wait": Dynamic low power mode,
AnnaBridge 171:3a7713b1edbc 2323 * ADC conversions occurrences are limited to the minimum necessary
AnnaBridge 171:3a7713b1edbc 2324 * in order to reduce power consumption.
AnnaBridge 171:3a7713b1edbc 2325 * New ADC conversion starts only when the previous
AnnaBridge 171:3a7713b1edbc 2326 * unitary conversion data (for ADC group regular)
AnnaBridge 171:3a7713b1edbc 2327 * or previous sequence conversions data (for ADC group injected)
AnnaBridge 171:3a7713b1edbc 2328 * has been retrieved by user software.
AnnaBridge 171:3a7713b1edbc 2329 * In the meantime, ADC remains idle: does not performs any
AnnaBridge 171:3a7713b1edbc 2330 * other conversion.
AnnaBridge 171:3a7713b1edbc 2331 * This mode allows to automatically adapt the ADC conversions
AnnaBridge 171:3a7713b1edbc 2332 * triggers to the speed of the software that reads the data.
AnnaBridge 171:3a7713b1edbc 2333 * Moreover, this avoids risk of overrun for low frequency
AnnaBridge 171:3a7713b1edbc 2334 * applications.
AnnaBridge 171:3a7713b1edbc 2335 * How to use this low power mode:
AnnaBridge 171:3a7713b1edbc 2336 * - Do not use with interruption or DMA since these modes
AnnaBridge 171:3a7713b1edbc 2337 * have to clear immediately the EOC flag to free the
AnnaBridge 171:3a7713b1edbc 2338 * IRQ vector sequencer.
AnnaBridge 171:3a7713b1edbc 2339 * - Do use with polling: 1. Start conversion,
AnnaBridge 171:3a7713b1edbc 2340 * 2. Later on, when conversion data is needed: poll for end of
AnnaBridge 171:3a7713b1edbc 2341 * conversion to ensure that conversion is completed and
AnnaBridge 171:3a7713b1edbc 2342 * retrieve ADC conversion data. This will trig another
AnnaBridge 171:3a7713b1edbc 2343 * ADC conversion start.
AnnaBridge 171:3a7713b1edbc 2344 * - ADC low power mode "auto power-off":
AnnaBridge 171:3a7713b1edbc 2345 * refer to function @ref LL_ADC_SetLowPowerModeAutoPowerOff().
AnnaBridge 171:3a7713b1edbc 2346 * @note With ADC low power mode "auto wait", the ADC conversion data read
AnnaBridge 171:3a7713b1edbc 2347 * is corresponding to previous ADC conversion start, independently
AnnaBridge 171:3a7713b1edbc 2348 * of delay during which ADC was idle.
AnnaBridge 171:3a7713b1edbc 2349 * Therefore, the ADC conversion data may be outdated: does not
AnnaBridge 171:3a7713b1edbc 2350 * correspond to the current voltage level on the selected
AnnaBridge 171:3a7713b1edbc 2351 * ADC channel.
AnnaBridge 171:3a7713b1edbc 2352 * @rmtoll CR2 DELS LL_ADC_SetLowPowerModeAutoWait
AnnaBridge 171:3a7713b1edbc 2353 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 2354 * @param LowPowerModeAutoWait This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 2355 * @arg @ref LL_ADC_LP_AUTOWAIT_NONE
AnnaBridge 171:3a7713b1edbc 2356 * @arg @ref LL_ADC_LP_AUTOWAIT
AnnaBridge 171:3a7713b1edbc 2357 * @arg @ref LL_ADC_LP_AUTOWAIT_7_APBCLOCKCYCLES
AnnaBridge 171:3a7713b1edbc 2358 * @arg @ref LL_ADC_LP_AUTOWAIT_15_APBCLOCKCYCLES
AnnaBridge 171:3a7713b1edbc 2359 * @arg @ref LL_ADC_LP_AUTOWAIT_31_APBCLOCKCYCLES
AnnaBridge 171:3a7713b1edbc 2360 * @arg @ref LL_ADC_LP_AUTOWAIT_63_APBCLOCKCYCLES
AnnaBridge 171:3a7713b1edbc 2361 * @arg @ref LL_ADC_LP_AUTOWAIT_127_APBCLOCKCYCLES
AnnaBridge 171:3a7713b1edbc 2362 * @arg @ref LL_ADC_LP_AUTOWAIT_255_APBCLOCKCYCLES
AnnaBridge 171:3a7713b1edbc 2363 * @retval None
AnnaBridge 171:3a7713b1edbc 2364 */
AnnaBridge 171:3a7713b1edbc 2365 __STATIC_INLINE void LL_ADC_SetLowPowerModeAutoWait(ADC_TypeDef *ADCx, uint32_t LowPowerModeAutoWait)
AnnaBridge 171:3a7713b1edbc 2366 {
AnnaBridge 171:3a7713b1edbc 2367 MODIFY_REG(ADCx->CR2, ADC_CR2_DELS, LowPowerModeAutoWait);
AnnaBridge 171:3a7713b1edbc 2368 }
AnnaBridge 171:3a7713b1edbc 2369
AnnaBridge 171:3a7713b1edbc 2370 /**
AnnaBridge 171:3a7713b1edbc 2371 * @brief Get ADC low power mode auto wait.
AnnaBridge 171:3a7713b1edbc 2372 * @note Description of ADC low power modes:
AnnaBridge 171:3a7713b1edbc 2373 * - ADC low power mode "auto wait": Dynamic low power mode,
AnnaBridge 171:3a7713b1edbc 2374 * ADC conversions occurrences are limited to the minimum necessary
AnnaBridge 171:3a7713b1edbc 2375 * in order to reduce power consumption.
AnnaBridge 171:3a7713b1edbc 2376 * New ADC conversion starts only when the previous
AnnaBridge 171:3a7713b1edbc 2377 * unitary conversion data (for ADC group regular)
AnnaBridge 171:3a7713b1edbc 2378 * or previous sequence conversions data (for ADC group injected)
AnnaBridge 171:3a7713b1edbc 2379 * has been retrieved by user software.
AnnaBridge 171:3a7713b1edbc 2380 * In the meantime, ADC remains idle: does not performs any
AnnaBridge 171:3a7713b1edbc 2381 * other conversion.
AnnaBridge 171:3a7713b1edbc 2382 * This mode allows to automatically adapt the ADC conversions
AnnaBridge 171:3a7713b1edbc 2383 * triggers to the speed of the software that reads the data.
AnnaBridge 171:3a7713b1edbc 2384 * Moreover, this avoids risk of overrun for low frequency
AnnaBridge 171:3a7713b1edbc 2385 * applications.
AnnaBridge 171:3a7713b1edbc 2386 * How to use this low power mode:
AnnaBridge 171:3a7713b1edbc 2387 * - Do not use with interruption or DMA since these modes
AnnaBridge 171:3a7713b1edbc 2388 * have to clear immediately the EOC flag to free the
AnnaBridge 171:3a7713b1edbc 2389 * IRQ vector sequencer.
AnnaBridge 171:3a7713b1edbc 2390 * - Do use with polling: 1. Start conversion,
AnnaBridge 171:3a7713b1edbc 2391 * 2. Later on, when conversion data is needed: poll for end of
AnnaBridge 171:3a7713b1edbc 2392 * conversion to ensure that conversion is completed and
AnnaBridge 171:3a7713b1edbc 2393 * retrieve ADC conversion data. This will trig another
AnnaBridge 171:3a7713b1edbc 2394 * ADC conversion start.
AnnaBridge 171:3a7713b1edbc 2395 * - ADC low power mode "auto power-off":
AnnaBridge 171:3a7713b1edbc 2396 * refer to function @ref LL_ADC_SetLowPowerModeAutoPowerOff().
AnnaBridge 171:3a7713b1edbc 2397 * @note With ADC low power mode "auto wait", the ADC conversion data read
AnnaBridge 171:3a7713b1edbc 2398 * is corresponding to previous ADC conversion start, independently
AnnaBridge 171:3a7713b1edbc 2399 * of delay during which ADC was idle.
AnnaBridge 171:3a7713b1edbc 2400 * Therefore, the ADC conversion data may be outdated: does not
AnnaBridge 171:3a7713b1edbc 2401 * correspond to the current voltage level on the selected
AnnaBridge 171:3a7713b1edbc 2402 * ADC channel.
AnnaBridge 171:3a7713b1edbc 2403 * @rmtoll CR2 DELS LL_ADC_GetLowPowerModeAutoWait
AnnaBridge 171:3a7713b1edbc 2404 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 2405 * @retval Returned value can be one of the following values:
AnnaBridge 171:3a7713b1edbc 2406 * @arg @ref LL_ADC_LP_AUTOWAIT_NONE
AnnaBridge 171:3a7713b1edbc 2407 * @arg @ref LL_ADC_LP_AUTOWAIT
AnnaBridge 171:3a7713b1edbc 2408 * @arg @ref LL_ADC_LP_AUTOWAIT_7_APBCLOCKCYCLES
AnnaBridge 171:3a7713b1edbc 2409 * @arg @ref LL_ADC_LP_AUTOWAIT_15_APBCLOCKCYCLES
AnnaBridge 171:3a7713b1edbc 2410 * @arg @ref LL_ADC_LP_AUTOWAIT_31_APBCLOCKCYCLES
AnnaBridge 171:3a7713b1edbc 2411 * @arg @ref LL_ADC_LP_AUTOWAIT_63_APBCLOCKCYCLES
AnnaBridge 171:3a7713b1edbc 2412 * @arg @ref LL_ADC_LP_AUTOWAIT_127_APBCLOCKCYCLES
AnnaBridge 171:3a7713b1edbc 2413 * @arg @ref LL_ADC_LP_AUTOWAIT_255_APBCLOCKCYCLES
AnnaBridge 171:3a7713b1edbc 2414 */
AnnaBridge 171:3a7713b1edbc 2415 __STATIC_INLINE uint32_t LL_ADC_GetLowPowerModeAutoWait(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 2416 {
AnnaBridge 171:3a7713b1edbc 2417 return (uint32_t)(READ_BIT(ADCx->CR2, ADC_CR2_DELS));
AnnaBridge 171:3a7713b1edbc 2418 }
AnnaBridge 171:3a7713b1edbc 2419
AnnaBridge 171:3a7713b1edbc 2420 /**
AnnaBridge 171:3a7713b1edbc 2421 * @brief Set ADC low power mode auto power-off.
AnnaBridge 171:3a7713b1edbc 2422 * @note Description of ADC low power modes:
AnnaBridge 171:3a7713b1edbc 2423 * - ADC low power mode "auto wait":
AnnaBridge 171:3a7713b1edbc 2424 * refer to function @ref LL_ADC_SetLowPowerModeAutoWait().
AnnaBridge 171:3a7713b1edbc 2425 * - ADC low power mode "auto power-off":
AnnaBridge 171:3a7713b1edbc 2426 * the ADC automatically powers-off after a conversion and
AnnaBridge 171:3a7713b1edbc 2427 * automatically wakes up when a new conversion is triggered
AnnaBridge 171:3a7713b1edbc 2428 * (with startup time between trigger and start of sampling).
AnnaBridge 171:3a7713b1edbc 2429 * This feature can be combined with low power mode "auto wait".
AnnaBridge 171:3a7713b1edbc 2430 * @rmtoll CR1 PDI LL_ADC_GetLowPowerModeAutoPowerOff\n
AnnaBridge 171:3a7713b1edbc 2431 * CR1 PDD LL_ADC_GetLowPowerModeAutoPowerOff
AnnaBridge 171:3a7713b1edbc 2432 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 2433 * @param LowPowerModeAutoPowerOff This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 2434 * @arg @ref LL_ADC_LP_AUTOPOWEROFF_NONE
AnnaBridge 171:3a7713b1edbc 2435 * @arg @ref LL_ADC_LP_AUTOPOWEROFF_IDLE_PHASE
AnnaBridge 171:3a7713b1edbc 2436 * @arg @ref LL_ADC_LP_AUTOPOWEROFF_AUTOWAIT_PHASE
AnnaBridge 171:3a7713b1edbc 2437 * @arg @ref LL_ADC_LP_AUTOPOWEROFF_IDLE_AUTOWAIT_PHASES
AnnaBridge 171:3a7713b1edbc 2438 * @retval None
AnnaBridge 171:3a7713b1edbc 2439 */
AnnaBridge 171:3a7713b1edbc 2440 __STATIC_INLINE void LL_ADC_SetLowPowerModeAutoPowerOff(ADC_TypeDef *ADCx, uint32_t LowPowerModeAutoPowerOff)
AnnaBridge 171:3a7713b1edbc 2441 {
AnnaBridge 171:3a7713b1edbc 2442 MODIFY_REG(ADCx->CR1, (ADC_CR1_PDI | ADC_CR1_PDD), LowPowerModeAutoPowerOff);
AnnaBridge 171:3a7713b1edbc 2443 }
AnnaBridge 171:3a7713b1edbc 2444
AnnaBridge 171:3a7713b1edbc 2445 /**
AnnaBridge 171:3a7713b1edbc 2446 * @brief Get ADC low power mode auto power-off.
AnnaBridge 171:3a7713b1edbc 2447 * @note Description of ADC low power modes:
AnnaBridge 171:3a7713b1edbc 2448 * - ADC low power mode "auto wait":
AnnaBridge 171:3a7713b1edbc 2449 * refer to function @ref LL_ADC_SetLowPowerModeAutoWait().
AnnaBridge 171:3a7713b1edbc 2450 * - ADC low power mode "auto power-off":
AnnaBridge 171:3a7713b1edbc 2451 * the ADC automatically powers-off after a conversion and
AnnaBridge 171:3a7713b1edbc 2452 * automatically wakes up when a new conversion is triggered
AnnaBridge 171:3a7713b1edbc 2453 * (with startup time between trigger and start of sampling).
AnnaBridge 171:3a7713b1edbc 2454 * This feature can be combined with low power mode "auto wait".
AnnaBridge 171:3a7713b1edbc 2455 * @rmtoll CR1 PDI LL_ADC_GetLowPowerModeAutoPowerOff\n
AnnaBridge 171:3a7713b1edbc 2456 * CR1 PDD LL_ADC_GetLowPowerModeAutoPowerOff
AnnaBridge 171:3a7713b1edbc 2457 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 2458 * @retval Returned value can be one of the following values:
AnnaBridge 171:3a7713b1edbc 2459 * @arg @ref LL_ADC_LP_AUTOPOWEROFF_NONE
AnnaBridge 171:3a7713b1edbc 2460 * @arg @ref LL_ADC_LP_AUTOPOWEROFF_IDLE_PHASE
AnnaBridge 171:3a7713b1edbc 2461 * @arg @ref LL_ADC_LP_AUTOPOWEROFF_AUTOWAIT_PHASE
AnnaBridge 171:3a7713b1edbc 2462 * @arg @ref LL_ADC_LP_AUTOPOWEROFF_IDLE_AUTOWAIT_PHASES
AnnaBridge 171:3a7713b1edbc 2463 */
AnnaBridge 171:3a7713b1edbc 2464 __STATIC_INLINE uint32_t LL_ADC_GetLowPowerModeAutoPowerOff(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 2465 {
AnnaBridge 171:3a7713b1edbc 2466 return (uint32_t)(READ_BIT(ADCx->CR1, (ADC_CR1_PDI | ADC_CR1_PDD)));
AnnaBridge 171:3a7713b1edbc 2467 }
AnnaBridge 171:3a7713b1edbc 2468
AnnaBridge 171:3a7713b1edbc 2469 /**
AnnaBridge 171:3a7713b1edbc 2470 * @brief Set ADC sequencers scan mode, for all ADC groups
AnnaBridge 171:3a7713b1edbc 2471 * (group regular, group injected).
AnnaBridge 171:3a7713b1edbc 2472 * @note According to sequencers scan mode :
AnnaBridge 171:3a7713b1edbc 2473 * - If disabled: ADC conversion is performed in unitary conversion
AnnaBridge 171:3a7713b1edbc 2474 * mode (one channel converted, that defined in rank 1).
AnnaBridge 171:3a7713b1edbc 2475 * Configuration of sequencers of all ADC groups
AnnaBridge 171:3a7713b1edbc 2476 * (sequencer scan length, ...) is discarded: equivalent to
AnnaBridge 171:3a7713b1edbc 2477 * scan length of 1 rank.
AnnaBridge 171:3a7713b1edbc 2478 * - If enabled: ADC conversions are performed in sequence conversions
AnnaBridge 171:3a7713b1edbc 2479 * mode, according to configuration of sequencers of
AnnaBridge 171:3a7713b1edbc 2480 * each ADC group (sequencer scan length, ...).
AnnaBridge 171:3a7713b1edbc 2481 * Refer to function @ref LL_ADC_REG_SetSequencerLength()
AnnaBridge 171:3a7713b1edbc 2482 * and to function @ref LL_ADC_INJ_SetSequencerLength().
AnnaBridge 171:3a7713b1edbc 2483 * @note On this STM32 serie, setting of this feature is conditioned to
AnnaBridge 171:3a7713b1edbc 2484 * ADC state:
AnnaBridge 171:3a7713b1edbc 2485 * ADC must be disabled or enabled without conversion on going
AnnaBridge 171:3a7713b1edbc 2486 * on either groups regular or injected.
AnnaBridge 171:3a7713b1edbc 2487 * @rmtoll CR1 SCAN LL_ADC_SetSequencersScanMode
AnnaBridge 171:3a7713b1edbc 2488 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 2489 * @param ScanMode This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 2490 * @arg @ref LL_ADC_SEQ_SCAN_DISABLE
AnnaBridge 171:3a7713b1edbc 2491 * @arg @ref LL_ADC_SEQ_SCAN_ENABLE
AnnaBridge 171:3a7713b1edbc 2492 * @retval None
AnnaBridge 171:3a7713b1edbc 2493 */
AnnaBridge 171:3a7713b1edbc 2494 __STATIC_INLINE void LL_ADC_SetSequencersScanMode(ADC_TypeDef *ADCx, uint32_t ScanMode)
AnnaBridge 171:3a7713b1edbc 2495 {
AnnaBridge 171:3a7713b1edbc 2496 MODIFY_REG(ADCx->CR1, ADC_CR1_SCAN, ScanMode);
AnnaBridge 171:3a7713b1edbc 2497 }
AnnaBridge 171:3a7713b1edbc 2498
AnnaBridge 171:3a7713b1edbc 2499 /**
AnnaBridge 171:3a7713b1edbc 2500 * @brief Get ADC sequencers scan mode, for all ADC groups
AnnaBridge 171:3a7713b1edbc 2501 * (group regular, group injected).
AnnaBridge 171:3a7713b1edbc 2502 * @note According to sequencers scan mode :
AnnaBridge 171:3a7713b1edbc 2503 * - If disabled: ADC conversion is performed in unitary conversion
AnnaBridge 171:3a7713b1edbc 2504 * mode (one channel converted, that defined in rank 1).
AnnaBridge 171:3a7713b1edbc 2505 * Configuration of sequencers of all ADC groups
AnnaBridge 171:3a7713b1edbc 2506 * (sequencer scan length, ...) is discarded: equivalent to
AnnaBridge 171:3a7713b1edbc 2507 * scan length of 1 rank.
AnnaBridge 171:3a7713b1edbc 2508 * - If enabled: ADC conversions are performed in sequence conversions
AnnaBridge 171:3a7713b1edbc 2509 * mode, according to configuration of sequencers of
AnnaBridge 171:3a7713b1edbc 2510 * each ADC group (sequencer scan length, ...).
AnnaBridge 171:3a7713b1edbc 2511 * Refer to function @ref LL_ADC_REG_SetSequencerLength()
AnnaBridge 171:3a7713b1edbc 2512 * and to function @ref LL_ADC_INJ_SetSequencerLength().
AnnaBridge 171:3a7713b1edbc 2513 * @rmtoll CR1 SCAN LL_ADC_GetSequencersScanMode
AnnaBridge 171:3a7713b1edbc 2514 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 2515 * @retval Returned value can be one of the following values:
AnnaBridge 171:3a7713b1edbc 2516 * @arg @ref LL_ADC_SEQ_SCAN_DISABLE
AnnaBridge 171:3a7713b1edbc 2517 * @arg @ref LL_ADC_SEQ_SCAN_ENABLE
AnnaBridge 171:3a7713b1edbc 2518 */
AnnaBridge 171:3a7713b1edbc 2519 __STATIC_INLINE uint32_t LL_ADC_GetSequencersScanMode(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 2520 {
AnnaBridge 171:3a7713b1edbc 2521 return (uint32_t)(READ_BIT(ADCx->CR1, ADC_CR1_SCAN));
AnnaBridge 171:3a7713b1edbc 2522 }
AnnaBridge 171:3a7713b1edbc 2523
AnnaBridge 171:3a7713b1edbc 2524 #if defined(ADC_CR2_CFG)
AnnaBridge 171:3a7713b1edbc 2525 /**
AnnaBridge 171:3a7713b1edbc 2526 * @brief Set ADC channels bank.
AnnaBridge 171:3a7713b1edbc 2527 * @note Bank selected applies to ADC scope, on all channels
AnnaBridge 171:3a7713b1edbc 2528 * (independently of channel mapped on ADC group regular
AnnaBridge 171:3a7713b1edbc 2529 * or group injected).
AnnaBridge 171:3a7713b1edbc 2530 * @note Banks availability depends on devices categories.
AnnaBridge 171:3a7713b1edbc 2531 * @note On this STM32 serie, setting of this feature is conditioned to
AnnaBridge 171:3a7713b1edbc 2532 * ADC state:
AnnaBridge 171:3a7713b1edbc 2533 * ADC must be disabled or enabled without conversion on going
AnnaBridge 171:3a7713b1edbc 2534 * on either groups regular or injected.
AnnaBridge 171:3a7713b1edbc 2535 * @rmtoll CR2 ADC_CFG LL_ADC_SetChannelsBank
AnnaBridge 171:3a7713b1edbc 2536 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 2537 * @param ChannelsBank This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 2538 * @arg @ref LL_ADC_CHANNELS_BANK_A
AnnaBridge 171:3a7713b1edbc 2539 * @arg @ref LL_ADC_CHANNELS_BANK_B
AnnaBridge 171:3a7713b1edbc 2540 * @retval None
AnnaBridge 171:3a7713b1edbc 2541 */
AnnaBridge 171:3a7713b1edbc 2542 __STATIC_INLINE void LL_ADC_SetChannelsBank(ADC_TypeDef *ADCx, uint32_t ChannelsBank)
AnnaBridge 171:3a7713b1edbc 2543 {
AnnaBridge 171:3a7713b1edbc 2544 MODIFY_REG(ADCx->CR2, ADC_CR2_CFG, ChannelsBank);
AnnaBridge 171:3a7713b1edbc 2545 }
AnnaBridge 171:3a7713b1edbc 2546
AnnaBridge 171:3a7713b1edbc 2547 /**
AnnaBridge 171:3a7713b1edbc 2548 * @brief Get ADC channels bank.
AnnaBridge 171:3a7713b1edbc 2549 * @note Bank selected applies to ADC scope, on all channels
AnnaBridge 171:3a7713b1edbc 2550 * (independently of channel mapped on ADC group regular
AnnaBridge 171:3a7713b1edbc 2551 * or group injected).
AnnaBridge 171:3a7713b1edbc 2552 * @note Banks availability depends on devices categories.
AnnaBridge 171:3a7713b1edbc 2553 * @rmtoll CR2 ADC_CFG LL_ADC_GetChannelsBank
AnnaBridge 171:3a7713b1edbc 2554 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 2555 * @retval Returned value can be one of the following values:
AnnaBridge 171:3a7713b1edbc 2556 * @arg @ref LL_ADC_CHANNELS_BANK_A
AnnaBridge 171:3a7713b1edbc 2557 * @arg @ref LL_ADC_CHANNELS_BANK_B
AnnaBridge 171:3a7713b1edbc 2558 */
AnnaBridge 171:3a7713b1edbc 2559 __STATIC_INLINE uint32_t LL_ADC_GetChannelsBank(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 2560 {
AnnaBridge 171:3a7713b1edbc 2561 return (uint32_t)(READ_BIT(ADCx->CR2, ADC_CR2_CFG));
AnnaBridge 171:3a7713b1edbc 2562 }
AnnaBridge 171:3a7713b1edbc 2563 #endif
AnnaBridge 171:3a7713b1edbc 2564
AnnaBridge 171:3a7713b1edbc 2565 /**
AnnaBridge 171:3a7713b1edbc 2566 * @}
AnnaBridge 171:3a7713b1edbc 2567 */
AnnaBridge 171:3a7713b1edbc 2568
AnnaBridge 171:3a7713b1edbc 2569 /** @defgroup ADC_LL_EF_Configuration_ADC_Group_Regular Configuration of ADC hierarchical scope: group regular
AnnaBridge 171:3a7713b1edbc 2570 * @{
AnnaBridge 171:3a7713b1edbc 2571 */
AnnaBridge 171:3a7713b1edbc 2572
AnnaBridge 171:3a7713b1edbc 2573 /**
AnnaBridge 171:3a7713b1edbc 2574 * @brief Set ADC group regular conversion trigger source:
AnnaBridge 171:3a7713b1edbc 2575 * internal (SW start) or from external IP (timer event,
AnnaBridge 171:3a7713b1edbc 2576 * external interrupt line).
AnnaBridge 171:3a7713b1edbc 2577 * @note On this STM32 serie, setting of external trigger edge is performed
AnnaBridge 171:3a7713b1edbc 2578 * using function @ref LL_ADC_REG_StartConversionExtTrig().
AnnaBridge 171:3a7713b1edbc 2579 * @note Availability of parameters of trigger sources from timer
AnnaBridge 171:3a7713b1edbc 2580 * depends on timers availability on the selected device.
AnnaBridge 171:3a7713b1edbc 2581 * @rmtoll CR2 EXTSEL LL_ADC_REG_SetTriggerSource\n
AnnaBridge 171:3a7713b1edbc 2582 * CR2 EXTEN LL_ADC_REG_SetTriggerSource
AnnaBridge 171:3a7713b1edbc 2583 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 2584 * @param TriggerSource This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 2585 * @arg @ref LL_ADC_REG_TRIG_SOFTWARE
AnnaBridge 171:3a7713b1edbc 2586 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM2_TRGO
AnnaBridge 171:3a7713b1edbc 2587 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM2_CH3
AnnaBridge 171:3a7713b1edbc 2588 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM3_TRGO
AnnaBridge 171:3a7713b1edbc 2589 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM2_CH2
AnnaBridge 171:3a7713b1edbc 2590 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM3_CH1
AnnaBridge 171:3a7713b1edbc 2591 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM3_CH3
AnnaBridge 171:3a7713b1edbc 2592 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM4_TRGO
AnnaBridge 171:3a7713b1edbc 2593 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM4_CH4
AnnaBridge 171:3a7713b1edbc 2594 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM6_TRGO
AnnaBridge 171:3a7713b1edbc 2595 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM9_CH2
AnnaBridge 171:3a7713b1edbc 2596 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM9_TRGO
AnnaBridge 171:3a7713b1edbc 2597 * @arg @ref LL_ADC_REG_TRIG_EXT_EXTI_LINE11
AnnaBridge 171:3a7713b1edbc 2598 * @retval None
AnnaBridge 171:3a7713b1edbc 2599 */
AnnaBridge 171:3a7713b1edbc 2600 __STATIC_INLINE void LL_ADC_REG_SetTriggerSource(ADC_TypeDef *ADCx, uint32_t TriggerSource)
AnnaBridge 171:3a7713b1edbc 2601 {
AnnaBridge 171:3a7713b1edbc 2602 /* Note: On this STM32 serie, ADC group regular external trigger edge */
AnnaBridge 171:3a7713b1edbc 2603 /* is used to perform a ADC conversion start. */
AnnaBridge 171:3a7713b1edbc 2604 /* This function does not set external trigger edge. */
AnnaBridge 171:3a7713b1edbc 2605 /* This feature is set using function */
AnnaBridge 171:3a7713b1edbc 2606 /* @ref LL_ADC_REG_StartConversionExtTrig(). */
AnnaBridge 171:3a7713b1edbc 2607 MODIFY_REG(ADCx->CR2, ADC_CR2_EXTSEL, (TriggerSource & ADC_CR2_EXTSEL));
AnnaBridge 171:3a7713b1edbc 2608 }
AnnaBridge 171:3a7713b1edbc 2609
AnnaBridge 171:3a7713b1edbc 2610 /**
AnnaBridge 171:3a7713b1edbc 2611 * @brief Get ADC group regular conversion trigger source:
AnnaBridge 171:3a7713b1edbc 2612 * internal (SW start) or from external IP (timer event,
AnnaBridge 171:3a7713b1edbc 2613 * external interrupt line).
AnnaBridge 171:3a7713b1edbc 2614 * @note To determine whether group regular trigger source is
AnnaBridge 171:3a7713b1edbc 2615 * internal (SW start) or external, without detail
AnnaBridge 171:3a7713b1edbc 2616 * of which peripheral is selected as external trigger,
AnnaBridge 171:3a7713b1edbc 2617 * (equivalent to
AnnaBridge 171:3a7713b1edbc 2618 * "if(LL_ADC_REG_GetTriggerSource(ADC1) == LL_ADC_REG_TRIG_SOFTWARE)")
AnnaBridge 171:3a7713b1edbc 2619 * use function @ref LL_ADC_REG_IsTriggerSourceSWStart.
AnnaBridge 171:3a7713b1edbc 2620 * @note Availability of parameters of trigger sources from timer
AnnaBridge 171:3a7713b1edbc 2621 * depends on timers availability on the selected device.
AnnaBridge 171:3a7713b1edbc 2622 * @rmtoll CR2 EXTSEL LL_ADC_REG_GetTriggerSource\n
AnnaBridge 171:3a7713b1edbc 2623 * CR2 EXTEN LL_ADC_REG_GetTriggerSource
AnnaBridge 171:3a7713b1edbc 2624 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 2625 * @retval Returned value can be one of the following values:
AnnaBridge 171:3a7713b1edbc 2626 * @arg @ref LL_ADC_REG_TRIG_SOFTWARE
AnnaBridge 171:3a7713b1edbc 2627 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM2_TRGO
AnnaBridge 171:3a7713b1edbc 2628 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM2_CH3
AnnaBridge 171:3a7713b1edbc 2629 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM3_TRGO
AnnaBridge 171:3a7713b1edbc 2630 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM2_CH2
AnnaBridge 171:3a7713b1edbc 2631 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM3_CH1
AnnaBridge 171:3a7713b1edbc 2632 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM3_CH3
AnnaBridge 171:3a7713b1edbc 2633 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM4_TRGO
AnnaBridge 171:3a7713b1edbc 2634 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM4_CH4
AnnaBridge 171:3a7713b1edbc 2635 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM6_TRGO
AnnaBridge 171:3a7713b1edbc 2636 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM9_CH2
AnnaBridge 171:3a7713b1edbc 2637 * @arg @ref LL_ADC_REG_TRIG_EXT_TIM9_TRGO
AnnaBridge 171:3a7713b1edbc 2638 * @arg @ref LL_ADC_REG_TRIG_EXT_EXTI_LINE11
AnnaBridge 171:3a7713b1edbc 2639 */
AnnaBridge 171:3a7713b1edbc 2640 __STATIC_INLINE uint32_t LL_ADC_REG_GetTriggerSource(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 2641 {
AnnaBridge 171:3a7713b1edbc 2642 register uint32_t TriggerSource = READ_BIT(ADCx->CR2, ADC_CR2_EXTSEL | ADC_CR2_EXTEN);
AnnaBridge 171:3a7713b1edbc 2643
AnnaBridge 171:3a7713b1edbc 2644 /* Value for shift of {0; 4; 8; 12} depending on value of bitfield */
AnnaBridge 171:3a7713b1edbc 2645 /* corresponding to ADC_CR2_EXTEN {0; 1; 2; 3}. */
AnnaBridge 171:3a7713b1edbc 2646 register uint32_t ShiftExten = ((TriggerSource & ADC_CR2_EXTEN) >> (ADC_REG_TRIG_EXTEN_BITOFFSET_POS - 2U));
AnnaBridge 171:3a7713b1edbc 2647
AnnaBridge 171:3a7713b1edbc 2648 /* Set bitfield corresponding to ADC_CR2_EXTEN and ADC_CR2_EXTSEL */
AnnaBridge 171:3a7713b1edbc 2649 /* to match with triggers literals definition. */
AnnaBridge 171:3a7713b1edbc 2650 return ((TriggerSource
AnnaBridge 171:3a7713b1edbc 2651 & (ADC_REG_TRIG_SOURCE_MASK << ShiftExten) & ADC_CR2_EXTSEL)
AnnaBridge 171:3a7713b1edbc 2652 | ((ADC_REG_TRIG_EDGE_MASK << ShiftExten) & ADC_CR2_EXTEN)
AnnaBridge 171:3a7713b1edbc 2653 );
AnnaBridge 171:3a7713b1edbc 2654 }
AnnaBridge 171:3a7713b1edbc 2655
AnnaBridge 171:3a7713b1edbc 2656 /**
AnnaBridge 171:3a7713b1edbc 2657 * @brief Get ADC group regular conversion trigger source internal (SW start)
AnnaBridge 171:3a7713b1edbc 2658 or external.
AnnaBridge 171:3a7713b1edbc 2659 * @note In case of group regular trigger source set to external trigger,
AnnaBridge 171:3a7713b1edbc 2660 * to determine which peripheral is selected as external trigger,
AnnaBridge 171:3a7713b1edbc 2661 * use function @ref LL_ADC_REG_GetTriggerSource().
AnnaBridge 171:3a7713b1edbc 2662 * @rmtoll CR2 EXTEN LL_ADC_REG_IsTriggerSourceSWStart
AnnaBridge 171:3a7713b1edbc 2663 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 2664 * @retval Value "0" if trigger source external trigger
AnnaBridge 171:3a7713b1edbc 2665 * Value "1" if trigger source SW start.
AnnaBridge 171:3a7713b1edbc 2666 */
AnnaBridge 171:3a7713b1edbc 2667 __STATIC_INLINE uint32_t LL_ADC_REG_IsTriggerSourceSWStart(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 2668 {
AnnaBridge 171:3a7713b1edbc 2669 return (READ_BIT(ADCx->CR2, ADC_CR2_EXTEN) == (LL_ADC_REG_TRIG_SOFTWARE & ADC_CR2_EXTEN));
AnnaBridge 171:3a7713b1edbc 2670 }
AnnaBridge 171:3a7713b1edbc 2671
AnnaBridge 171:3a7713b1edbc 2672 /**
AnnaBridge 171:3a7713b1edbc 2673 * @brief Get ADC group regular conversion trigger polarity.
AnnaBridge 171:3a7713b1edbc 2674 * @note Applicable only for trigger source set to external trigger.
AnnaBridge 171:3a7713b1edbc 2675 * @note On this STM32 serie, setting of external trigger edge is performed
AnnaBridge 171:3a7713b1edbc 2676 * using function @ref LL_ADC_REG_StartConversionExtTrig().
AnnaBridge 171:3a7713b1edbc 2677 * @rmtoll CR2 EXTEN LL_ADC_REG_GetTriggerEdge
AnnaBridge 171:3a7713b1edbc 2678 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 2679 * @retval Returned value can be one of the following values:
AnnaBridge 171:3a7713b1edbc 2680 * @arg @ref LL_ADC_REG_TRIG_EXT_RISING
AnnaBridge 171:3a7713b1edbc 2681 * @arg @ref LL_ADC_REG_TRIG_EXT_FALLING
AnnaBridge 171:3a7713b1edbc 2682 * @arg @ref LL_ADC_REG_TRIG_EXT_RISINGFALLING
AnnaBridge 171:3a7713b1edbc 2683 */
AnnaBridge 171:3a7713b1edbc 2684 __STATIC_INLINE uint32_t LL_ADC_REG_GetTriggerEdge(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 2685 {
AnnaBridge 171:3a7713b1edbc 2686 return (uint32_t)(READ_BIT(ADCx->CR2, ADC_CR2_EXTEN));
AnnaBridge 171:3a7713b1edbc 2687 }
AnnaBridge 171:3a7713b1edbc 2688
AnnaBridge 171:3a7713b1edbc 2689
AnnaBridge 171:3a7713b1edbc 2690 /**
AnnaBridge 171:3a7713b1edbc 2691 * @brief Set ADC group regular sequencer length and scan direction.
AnnaBridge 171:3a7713b1edbc 2692 * @note Description of ADC group regular sequencer features:
AnnaBridge 171:3a7713b1edbc 2693 * - For devices with sequencer fully configurable
AnnaBridge 171:3a7713b1edbc 2694 * (function "LL_ADC_REG_SetSequencerRanks()" available):
AnnaBridge 171:3a7713b1edbc 2695 * sequencer length and each rank affectation to a channel
AnnaBridge 171:3a7713b1edbc 2696 * are configurable.
AnnaBridge 171:3a7713b1edbc 2697 * This function performs configuration of:
AnnaBridge 171:3a7713b1edbc 2698 * - Sequence length: Number of ranks in the scan sequence.
AnnaBridge 171:3a7713b1edbc 2699 * - Sequence direction: Unless specified in parameters, sequencer
AnnaBridge 171:3a7713b1edbc 2700 * scan direction is forward (from rank 1 to rank n).
AnnaBridge 171:3a7713b1edbc 2701 * Sequencer ranks are selected using
AnnaBridge 171:3a7713b1edbc 2702 * function "LL_ADC_REG_SetSequencerRanks()".
AnnaBridge 171:3a7713b1edbc 2703 * - For devices with sequencer not fully configurable
AnnaBridge 171:3a7713b1edbc 2704 * (function "LL_ADC_REG_SetSequencerChannels()" available):
AnnaBridge 171:3a7713b1edbc 2705 * sequencer length and each rank affectation to a channel
AnnaBridge 171:3a7713b1edbc 2706 * are defined by channel number.
AnnaBridge 171:3a7713b1edbc 2707 * This function performs configuration of:
AnnaBridge 171:3a7713b1edbc 2708 * - Sequence length: Number of ranks in the scan sequence is
AnnaBridge 171:3a7713b1edbc 2709 * defined by number of channels set in the sequence,
AnnaBridge 171:3a7713b1edbc 2710 * rank of each channel is fixed by channel HW number.
AnnaBridge 171:3a7713b1edbc 2711 * (channel 0 fixed on rank 0, channel 1 fixed on rank1, ...).
AnnaBridge 171:3a7713b1edbc 2712 * - Sequence direction: Unless specified in parameters, sequencer
AnnaBridge 171:3a7713b1edbc 2713 * scan direction is forward (from lowest channel number to
AnnaBridge 171:3a7713b1edbc 2714 * highest channel number).
AnnaBridge 171:3a7713b1edbc 2715 * Sequencer ranks are selected using
AnnaBridge 171:3a7713b1edbc 2716 * function "LL_ADC_REG_SetSequencerChannels()".
AnnaBridge 171:3a7713b1edbc 2717 * @note On this STM32 serie, group regular sequencer configuration
AnnaBridge 171:3a7713b1edbc 2718 * is conditioned to ADC instance sequencer mode.
AnnaBridge 171:3a7713b1edbc 2719 * If ADC instance sequencer mode is disabled, sequencers of
AnnaBridge 171:3a7713b1edbc 2720 * all groups (group regular, group injected) can be configured
AnnaBridge 171:3a7713b1edbc 2721 * but their execution is disabled (limited to rank 1).
AnnaBridge 171:3a7713b1edbc 2722 * Refer to function @ref LL_ADC_SetSequencersScanMode().
AnnaBridge 171:3a7713b1edbc 2723 * @note Sequencer disabled is equivalent to sequencer of 1 rank:
AnnaBridge 171:3a7713b1edbc 2724 * ADC conversion on only 1 channel.
AnnaBridge 171:3a7713b1edbc 2725 * @rmtoll SQR1 L LL_ADC_REG_SetSequencerLength
AnnaBridge 171:3a7713b1edbc 2726 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 2727 * @param SequencerNbRanks This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 2728 * @arg @ref LL_ADC_REG_SEQ_SCAN_DISABLE
AnnaBridge 171:3a7713b1edbc 2729 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_2RANKS
AnnaBridge 171:3a7713b1edbc 2730 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_3RANKS
AnnaBridge 171:3a7713b1edbc 2731 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_4RANKS
AnnaBridge 171:3a7713b1edbc 2732 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_5RANKS
AnnaBridge 171:3a7713b1edbc 2733 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_6RANKS
AnnaBridge 171:3a7713b1edbc 2734 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_7RANKS
AnnaBridge 171:3a7713b1edbc 2735 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_8RANKS
AnnaBridge 171:3a7713b1edbc 2736 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_9RANKS
AnnaBridge 171:3a7713b1edbc 2737 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_10RANKS
AnnaBridge 171:3a7713b1edbc 2738 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_11RANKS
AnnaBridge 171:3a7713b1edbc 2739 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_12RANKS
AnnaBridge 171:3a7713b1edbc 2740 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_13RANKS
AnnaBridge 171:3a7713b1edbc 2741 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_14RANKS
AnnaBridge 171:3a7713b1edbc 2742 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_15RANKS
AnnaBridge 171:3a7713b1edbc 2743 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_16RANKS
AnnaBridge 171:3a7713b1edbc 2744 * @retval None
AnnaBridge 171:3a7713b1edbc 2745 */
AnnaBridge 171:3a7713b1edbc 2746 __STATIC_INLINE void LL_ADC_REG_SetSequencerLength(ADC_TypeDef *ADCx, uint32_t SequencerNbRanks)
AnnaBridge 171:3a7713b1edbc 2747 {
AnnaBridge 171:3a7713b1edbc 2748 MODIFY_REG(ADCx->SQR1, ADC_SQR1_L, SequencerNbRanks);
AnnaBridge 171:3a7713b1edbc 2749 }
AnnaBridge 171:3a7713b1edbc 2750
AnnaBridge 171:3a7713b1edbc 2751 /**
AnnaBridge 171:3a7713b1edbc 2752 * @brief Get ADC group regular sequencer length and scan direction.
AnnaBridge 171:3a7713b1edbc 2753 * @note Description of ADC group regular sequencer features:
AnnaBridge 171:3a7713b1edbc 2754 * - For devices with sequencer fully configurable
AnnaBridge 171:3a7713b1edbc 2755 * (function "LL_ADC_REG_SetSequencerRanks()" available):
AnnaBridge 171:3a7713b1edbc 2756 * sequencer length and each rank affectation to a channel
AnnaBridge 171:3a7713b1edbc 2757 * are configurable.
AnnaBridge 171:3a7713b1edbc 2758 * This function retrieves:
AnnaBridge 171:3a7713b1edbc 2759 * - Sequence length: Number of ranks in the scan sequence.
AnnaBridge 171:3a7713b1edbc 2760 * - Sequence direction: Unless specified in parameters, sequencer
AnnaBridge 171:3a7713b1edbc 2761 * scan direction is forward (from rank 1 to rank n).
AnnaBridge 171:3a7713b1edbc 2762 * Sequencer ranks are selected using
AnnaBridge 171:3a7713b1edbc 2763 * function "LL_ADC_REG_SetSequencerRanks()".
AnnaBridge 171:3a7713b1edbc 2764 * - For devices with sequencer not fully configurable
AnnaBridge 171:3a7713b1edbc 2765 * (function "LL_ADC_REG_SetSequencerChannels()" available):
AnnaBridge 171:3a7713b1edbc 2766 * sequencer length and each rank affectation to a channel
AnnaBridge 171:3a7713b1edbc 2767 * are defined by channel number.
AnnaBridge 171:3a7713b1edbc 2768 * This function retrieves:
AnnaBridge 171:3a7713b1edbc 2769 * - Sequence length: Number of ranks in the scan sequence is
AnnaBridge 171:3a7713b1edbc 2770 * defined by number of channels set in the sequence,
AnnaBridge 171:3a7713b1edbc 2771 * rank of each channel is fixed by channel HW number.
AnnaBridge 171:3a7713b1edbc 2772 * (channel 0 fixed on rank 0, channel 1 fixed on rank1, ...).
AnnaBridge 171:3a7713b1edbc 2773 * - Sequence direction: Unless specified in parameters, sequencer
AnnaBridge 171:3a7713b1edbc 2774 * scan direction is forward (from lowest channel number to
AnnaBridge 171:3a7713b1edbc 2775 * highest channel number).
AnnaBridge 171:3a7713b1edbc 2776 * Sequencer ranks are selected using
AnnaBridge 171:3a7713b1edbc 2777 * function "LL_ADC_REG_SetSequencerChannels()".
AnnaBridge 171:3a7713b1edbc 2778 * @note On this STM32 serie, group regular sequencer configuration
AnnaBridge 171:3a7713b1edbc 2779 * is conditioned to ADC instance sequencer mode.
AnnaBridge 171:3a7713b1edbc 2780 * If ADC instance sequencer mode is disabled, sequencers of
AnnaBridge 171:3a7713b1edbc 2781 * all groups (group regular, group injected) can be configured
AnnaBridge 171:3a7713b1edbc 2782 * but their execution is disabled (limited to rank 1).
AnnaBridge 171:3a7713b1edbc 2783 * Refer to function @ref LL_ADC_SetSequencersScanMode().
AnnaBridge 171:3a7713b1edbc 2784 * @note Sequencer disabled is equivalent to sequencer of 1 rank:
AnnaBridge 171:3a7713b1edbc 2785 * ADC conversion on only 1 channel.
AnnaBridge 171:3a7713b1edbc 2786 * @rmtoll SQR1 L LL_ADC_REG_SetSequencerLength
AnnaBridge 171:3a7713b1edbc 2787 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 2788 * @retval Returned value can be one of the following values:
AnnaBridge 171:3a7713b1edbc 2789 * @arg @ref LL_ADC_REG_SEQ_SCAN_DISABLE
AnnaBridge 171:3a7713b1edbc 2790 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_2RANKS
AnnaBridge 171:3a7713b1edbc 2791 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_3RANKS
AnnaBridge 171:3a7713b1edbc 2792 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_4RANKS
AnnaBridge 171:3a7713b1edbc 2793 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_5RANKS
AnnaBridge 171:3a7713b1edbc 2794 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_6RANKS
AnnaBridge 171:3a7713b1edbc 2795 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_7RANKS
AnnaBridge 171:3a7713b1edbc 2796 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_8RANKS
AnnaBridge 171:3a7713b1edbc 2797 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_9RANKS
AnnaBridge 171:3a7713b1edbc 2798 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_10RANKS
AnnaBridge 171:3a7713b1edbc 2799 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_11RANKS
AnnaBridge 171:3a7713b1edbc 2800 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_12RANKS
AnnaBridge 171:3a7713b1edbc 2801 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_13RANKS
AnnaBridge 171:3a7713b1edbc 2802 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_14RANKS
AnnaBridge 171:3a7713b1edbc 2803 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_15RANKS
AnnaBridge 171:3a7713b1edbc 2804 * @arg @ref LL_ADC_REG_SEQ_SCAN_ENABLE_16RANKS
AnnaBridge 171:3a7713b1edbc 2805 */
AnnaBridge 171:3a7713b1edbc 2806 __STATIC_INLINE uint32_t LL_ADC_REG_GetSequencerLength(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 2807 {
AnnaBridge 171:3a7713b1edbc 2808 return (uint32_t)(READ_BIT(ADCx->SQR1, ADC_SQR1_L));
AnnaBridge 171:3a7713b1edbc 2809 }
AnnaBridge 171:3a7713b1edbc 2810
AnnaBridge 171:3a7713b1edbc 2811 /**
AnnaBridge 171:3a7713b1edbc 2812 * @brief Set ADC group regular sequencer discontinuous mode:
AnnaBridge 171:3a7713b1edbc 2813 * sequence subdivided and scan conversions interrupted every selected
AnnaBridge 171:3a7713b1edbc 2814 * number of ranks.
AnnaBridge 171:3a7713b1edbc 2815 * @note It is not possible to enable both ADC group regular
AnnaBridge 171:3a7713b1edbc 2816 * continuous mode and sequencer discontinuous mode.
AnnaBridge 171:3a7713b1edbc 2817 * @note It is not possible to enable both ADC auto-injected mode
AnnaBridge 171:3a7713b1edbc 2818 * and ADC group regular sequencer discontinuous mode.
AnnaBridge 171:3a7713b1edbc 2819 * @rmtoll CR1 DISCEN LL_ADC_REG_SetSequencerDiscont\n
AnnaBridge 171:3a7713b1edbc 2820 * CR1 DISCNUM LL_ADC_REG_SetSequencerDiscont
AnnaBridge 171:3a7713b1edbc 2821 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 2822 * @param SeqDiscont This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 2823 * @arg @ref LL_ADC_REG_SEQ_DISCONT_DISABLE
AnnaBridge 171:3a7713b1edbc 2824 * @arg @ref LL_ADC_REG_SEQ_DISCONT_1RANK
AnnaBridge 171:3a7713b1edbc 2825 * @arg @ref LL_ADC_REG_SEQ_DISCONT_2RANKS
AnnaBridge 171:3a7713b1edbc 2826 * @arg @ref LL_ADC_REG_SEQ_DISCONT_3RANKS
AnnaBridge 171:3a7713b1edbc 2827 * @arg @ref LL_ADC_REG_SEQ_DISCONT_4RANKS
AnnaBridge 171:3a7713b1edbc 2828 * @arg @ref LL_ADC_REG_SEQ_DISCONT_5RANKS
AnnaBridge 171:3a7713b1edbc 2829 * @arg @ref LL_ADC_REG_SEQ_DISCONT_6RANKS
AnnaBridge 171:3a7713b1edbc 2830 * @arg @ref LL_ADC_REG_SEQ_DISCONT_7RANKS
AnnaBridge 171:3a7713b1edbc 2831 * @arg @ref LL_ADC_REG_SEQ_DISCONT_8RANKS
AnnaBridge 171:3a7713b1edbc 2832 * @retval None
AnnaBridge 171:3a7713b1edbc 2833 */
AnnaBridge 171:3a7713b1edbc 2834 __STATIC_INLINE void LL_ADC_REG_SetSequencerDiscont(ADC_TypeDef *ADCx, uint32_t SeqDiscont)
AnnaBridge 171:3a7713b1edbc 2835 {
AnnaBridge 171:3a7713b1edbc 2836 MODIFY_REG(ADCx->CR1, ADC_CR1_DISCEN | ADC_CR1_DISCNUM, SeqDiscont);
AnnaBridge 171:3a7713b1edbc 2837 }
AnnaBridge 171:3a7713b1edbc 2838
AnnaBridge 171:3a7713b1edbc 2839 /**
AnnaBridge 171:3a7713b1edbc 2840 * @brief Get ADC group regular sequencer discontinuous mode:
AnnaBridge 171:3a7713b1edbc 2841 * sequence subdivided and scan conversions interrupted every selected
AnnaBridge 171:3a7713b1edbc 2842 * number of ranks.
AnnaBridge 171:3a7713b1edbc 2843 * @rmtoll CR1 DISCEN LL_ADC_REG_GetSequencerDiscont\n
AnnaBridge 171:3a7713b1edbc 2844 * CR1 DISCNUM LL_ADC_REG_GetSequencerDiscont
AnnaBridge 171:3a7713b1edbc 2845 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 2846 * @retval Returned value can be one of the following values:
AnnaBridge 171:3a7713b1edbc 2847 * @arg @ref LL_ADC_REG_SEQ_DISCONT_DISABLE
AnnaBridge 171:3a7713b1edbc 2848 * @arg @ref LL_ADC_REG_SEQ_DISCONT_1RANK
AnnaBridge 171:3a7713b1edbc 2849 * @arg @ref LL_ADC_REG_SEQ_DISCONT_2RANKS
AnnaBridge 171:3a7713b1edbc 2850 * @arg @ref LL_ADC_REG_SEQ_DISCONT_3RANKS
AnnaBridge 171:3a7713b1edbc 2851 * @arg @ref LL_ADC_REG_SEQ_DISCONT_4RANKS
AnnaBridge 171:3a7713b1edbc 2852 * @arg @ref LL_ADC_REG_SEQ_DISCONT_5RANKS
AnnaBridge 171:3a7713b1edbc 2853 * @arg @ref LL_ADC_REG_SEQ_DISCONT_6RANKS
AnnaBridge 171:3a7713b1edbc 2854 * @arg @ref LL_ADC_REG_SEQ_DISCONT_7RANKS
AnnaBridge 171:3a7713b1edbc 2855 * @arg @ref LL_ADC_REG_SEQ_DISCONT_8RANKS
AnnaBridge 171:3a7713b1edbc 2856 */
AnnaBridge 171:3a7713b1edbc 2857 __STATIC_INLINE uint32_t LL_ADC_REG_GetSequencerDiscont(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 2858 {
AnnaBridge 171:3a7713b1edbc 2859 return (uint32_t)(READ_BIT(ADCx->CR1, ADC_CR1_DISCEN | ADC_CR1_DISCNUM));
AnnaBridge 171:3a7713b1edbc 2860 }
AnnaBridge 171:3a7713b1edbc 2861
AnnaBridge 171:3a7713b1edbc 2862 /**
AnnaBridge 171:3a7713b1edbc 2863 * @brief Set ADC group regular sequence: channel on the selected
AnnaBridge 171:3a7713b1edbc 2864 * scan sequence rank.
AnnaBridge 171:3a7713b1edbc 2865 * @note This function performs configuration of:
AnnaBridge 171:3a7713b1edbc 2866 * - Channels ordering into each rank of scan sequence:
AnnaBridge 171:3a7713b1edbc 2867 * whatever channel can be placed into whatever rank.
AnnaBridge 171:3a7713b1edbc 2868 * @note On this STM32 serie, ADC group regular sequencer is
AnnaBridge 171:3a7713b1edbc 2869 * fully configurable: sequencer length and each rank
AnnaBridge 171:3a7713b1edbc 2870 * affectation to a channel are configurable.
AnnaBridge 171:3a7713b1edbc 2871 * Refer to description of function @ref LL_ADC_REG_SetSequencerLength().
AnnaBridge 171:3a7713b1edbc 2872 * @note Depending on devices and packages, some channels may not be available.
AnnaBridge 171:3a7713b1edbc 2873 * Refer to device datasheet for channels availability.
AnnaBridge 171:3a7713b1edbc 2874 * @note On this STM32 serie, to measure internal channels (VrefInt,
AnnaBridge 171:3a7713b1edbc 2875 * TempSensor, ...), measurement paths to internal channels must be
AnnaBridge 171:3a7713b1edbc 2876 * enabled separately.
AnnaBridge 171:3a7713b1edbc 2877 * This can be done using function @ref LL_ADC_SetCommonPathInternalCh().
AnnaBridge 171:3a7713b1edbc 2878 * @rmtoll SQR5 SQ1 LL_ADC_REG_SetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 2879 * SQR5 SQ2 LL_ADC_REG_SetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 2880 * SQR5 SQ3 LL_ADC_REG_SetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 2881 * SQR5 SQ4 LL_ADC_REG_SetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 2882 * SQR5 SQ5 LL_ADC_REG_SetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 2883 * SQR5 SQ6 LL_ADC_REG_SetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 2884 * SQR4 SQ7 LL_ADC_REG_SetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 2885 * SQR4 SQ8 LL_ADC_REG_SetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 2886 * SQR4 SQ9 LL_ADC_REG_SetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 2887 * SQR4 SQ10 LL_ADC_REG_SetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 2888 * SQR4 SQ11 LL_ADC_REG_SetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 2889 * SQR4 SQ12 LL_ADC_REG_SetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 2890 * SQR3 SQ13 LL_ADC_REG_SetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 2891 * SQR3 SQ14 LL_ADC_REG_SetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 2892 * SQR3 SQ15 LL_ADC_REG_SetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 2893 * SQR3 SQ16 LL_ADC_REG_SetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 2894 * SQR3 SQ17 LL_ADC_REG_SetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 2895 * SQR3 SQ18 LL_ADC_REG_SetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 2896 * SQR2 SQ19 LL_ADC_REG_SetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 2897 * SQR2 SQ20 LL_ADC_REG_SetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 2898 * SQR2 SQ21 LL_ADC_REG_SetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 2899 * SQR2 SQ22 LL_ADC_REG_SetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 2900 * SQR2 SQ23 LL_ADC_REG_SetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 2901 * SQR2 SQ24 LL_ADC_REG_SetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 2902 * SQR1 SQ25 LL_ADC_REG_SetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 2903 * SQR1 SQ26 LL_ADC_REG_SetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 2904 * SQR1 SQ27 LL_ADC_REG_SetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 2905 * SQR1 SQ28 LL_ADC_REG_SetSequencerRanks
AnnaBridge 171:3a7713b1edbc 2906 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 2907 * @param Rank This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 2908 * @arg @ref LL_ADC_REG_RANK_1
AnnaBridge 171:3a7713b1edbc 2909 * @arg @ref LL_ADC_REG_RANK_2
AnnaBridge 171:3a7713b1edbc 2910 * @arg @ref LL_ADC_REG_RANK_3
AnnaBridge 171:3a7713b1edbc 2911 * @arg @ref LL_ADC_REG_RANK_4
AnnaBridge 171:3a7713b1edbc 2912 * @arg @ref LL_ADC_REG_RANK_5
AnnaBridge 171:3a7713b1edbc 2913 * @arg @ref LL_ADC_REG_RANK_6
AnnaBridge 171:3a7713b1edbc 2914 * @arg @ref LL_ADC_REG_RANK_7
AnnaBridge 171:3a7713b1edbc 2915 * @arg @ref LL_ADC_REG_RANK_8
AnnaBridge 171:3a7713b1edbc 2916 * @arg @ref LL_ADC_REG_RANK_9
AnnaBridge 171:3a7713b1edbc 2917 * @arg @ref LL_ADC_REG_RANK_10
AnnaBridge 171:3a7713b1edbc 2918 * @arg @ref LL_ADC_REG_RANK_11
AnnaBridge 171:3a7713b1edbc 2919 * @arg @ref LL_ADC_REG_RANK_12
AnnaBridge 171:3a7713b1edbc 2920 * @arg @ref LL_ADC_REG_RANK_13
AnnaBridge 171:3a7713b1edbc 2921 * @arg @ref LL_ADC_REG_RANK_14
AnnaBridge 171:3a7713b1edbc 2922 * @arg @ref LL_ADC_REG_RANK_15
AnnaBridge 171:3a7713b1edbc 2923 * @arg @ref LL_ADC_REG_RANK_16
AnnaBridge 171:3a7713b1edbc 2924 * @arg @ref LL_ADC_REG_RANK_17
AnnaBridge 171:3a7713b1edbc 2925 * @arg @ref LL_ADC_REG_RANK_18
AnnaBridge 171:3a7713b1edbc 2926 * @arg @ref LL_ADC_REG_RANK_19
AnnaBridge 171:3a7713b1edbc 2927 * @arg @ref LL_ADC_REG_RANK_20
AnnaBridge 171:3a7713b1edbc 2928 * @arg @ref LL_ADC_REG_RANK_21
AnnaBridge 171:3a7713b1edbc 2929 * @arg @ref LL_ADC_REG_RANK_22
AnnaBridge 171:3a7713b1edbc 2930 * @arg @ref LL_ADC_REG_RANK_23
AnnaBridge 171:3a7713b1edbc 2931 * @arg @ref LL_ADC_REG_RANK_24
AnnaBridge 171:3a7713b1edbc 2932 * @arg @ref LL_ADC_REG_RANK_25
AnnaBridge 171:3a7713b1edbc 2933 * @arg @ref LL_ADC_REG_RANK_26
AnnaBridge 171:3a7713b1edbc 2934 * @arg @ref LL_ADC_REG_RANK_27
AnnaBridge 171:3a7713b1edbc 2935 * @arg @ref LL_ADC_REG_RANK_28 (1)
AnnaBridge 171:3a7713b1edbc 2936 *
AnnaBridge 171:3a7713b1edbc 2937 * (1) On STM32L1, parameter not available on all devices: only on STM32L1 Cat.3, Cat.4 and Cat.5.
AnnaBridge 171:3a7713b1edbc 2938 * @param Channel This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 2939 * @arg @ref LL_ADC_CHANNEL_0 (2)
AnnaBridge 171:3a7713b1edbc 2940 * @arg @ref LL_ADC_CHANNEL_1 (2)
AnnaBridge 171:3a7713b1edbc 2941 * @arg @ref LL_ADC_CHANNEL_2 (2)
AnnaBridge 171:3a7713b1edbc 2942 * @arg @ref LL_ADC_CHANNEL_3 (2)
AnnaBridge 171:3a7713b1edbc 2943 * @arg @ref LL_ADC_CHANNEL_4 (1)
AnnaBridge 171:3a7713b1edbc 2944 * @arg @ref LL_ADC_CHANNEL_5 (1)
AnnaBridge 171:3a7713b1edbc 2945 * @arg @ref LL_ADC_CHANNEL_6 (2)
AnnaBridge 171:3a7713b1edbc 2946 * @arg @ref LL_ADC_CHANNEL_7 (2)
AnnaBridge 171:3a7713b1edbc 2947 * @arg @ref LL_ADC_CHANNEL_8 (2)
AnnaBridge 171:3a7713b1edbc 2948 * @arg @ref LL_ADC_CHANNEL_9 (2)
AnnaBridge 171:3a7713b1edbc 2949 * @arg @ref LL_ADC_CHANNEL_10 (2)
AnnaBridge 171:3a7713b1edbc 2950 * @arg @ref LL_ADC_CHANNEL_11 (2)
AnnaBridge 171:3a7713b1edbc 2951 * @arg @ref LL_ADC_CHANNEL_12 (2)
AnnaBridge 171:3a7713b1edbc 2952 * @arg @ref LL_ADC_CHANNEL_13 (3)
AnnaBridge 171:3a7713b1edbc 2953 * @arg @ref LL_ADC_CHANNEL_14 (3)
AnnaBridge 171:3a7713b1edbc 2954 * @arg @ref LL_ADC_CHANNEL_15 (3)
AnnaBridge 171:3a7713b1edbc 2955 * @arg @ref LL_ADC_CHANNEL_16 (3)
AnnaBridge 171:3a7713b1edbc 2956 * @arg @ref LL_ADC_CHANNEL_17 (3)
AnnaBridge 171:3a7713b1edbc 2957 * @arg @ref LL_ADC_CHANNEL_18 (3)
AnnaBridge 171:3a7713b1edbc 2958 * @arg @ref LL_ADC_CHANNEL_19 (3)
AnnaBridge 171:3a7713b1edbc 2959 * @arg @ref LL_ADC_CHANNEL_20 (3)
AnnaBridge 171:3a7713b1edbc 2960 * @arg @ref LL_ADC_CHANNEL_21 (3)
AnnaBridge 171:3a7713b1edbc 2961 * @arg @ref LL_ADC_CHANNEL_22 (1)
AnnaBridge 171:3a7713b1edbc 2962 * @arg @ref LL_ADC_CHANNEL_23 (1)
AnnaBridge 171:3a7713b1edbc 2963 * @arg @ref LL_ADC_CHANNEL_24 (1)
AnnaBridge 171:3a7713b1edbc 2964 * @arg @ref LL_ADC_CHANNEL_25 (1)
AnnaBridge 171:3a7713b1edbc 2965 * @arg @ref LL_ADC_CHANNEL_26 (3)
AnnaBridge 171:3a7713b1edbc 2966 * @arg @ref LL_ADC_CHANNEL_27 (3)(4)
AnnaBridge 171:3a7713b1edbc 2967 * @arg @ref LL_ADC_CHANNEL_28 (3)(4)
AnnaBridge 171:3a7713b1edbc 2968 * @arg @ref LL_ADC_CHANNEL_29 (3)(4)
AnnaBridge 171:3a7713b1edbc 2969 * @arg @ref LL_ADC_CHANNEL_30 (3)(4)
AnnaBridge 171:3a7713b1edbc 2970 * @arg @ref LL_ADC_CHANNEL_31 (3)(4)
AnnaBridge 171:3a7713b1edbc 2971 * @arg @ref LL_ADC_CHANNEL_VREFINT (3)
AnnaBridge 171:3a7713b1edbc 2972 * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR (3)
AnnaBridge 171:3a7713b1edbc 2973 * @arg @ref LL_ADC_CHANNEL_VCOMP (3)
AnnaBridge 171:3a7713b1edbc 2974 * @arg @ref LL_ADC_CHANNEL_VOPAMP1 (3)(5)
AnnaBridge 171:3a7713b1edbc 2975 * @arg @ref LL_ADC_CHANNEL_VOPAMP2 (3)(5)
AnnaBridge 171:3a7713b1edbc 2976 * @arg @ref LL_ADC_CHANNEL_VOPAMP3 (3)(5)
AnnaBridge 171:3a7713b1edbc 2977 *
AnnaBridge 171:3a7713b1edbc 2978 * (1) On STM32L1, connection via routing interface (RI) specificity: fast channel (channel routed directly to ADC switch matrix).\n
AnnaBridge 171:3a7713b1edbc 2979 * (2) On STM32L1, for devices with feature 'channels banks' available: Channel different in bank A and bank B.\n
AnnaBridge 171:3a7713b1edbc 2980 * (3) On STM32L1, for devices with feature 'channels banks' available: Channel common to both bank A and bank B.\n
AnnaBridge 171:3a7713b1edbc 2981 * (4) On STM32L1, parameter not available on all devices: only on STM32L1 Cat.4 and Cat.5.\n
AnnaBridge 171:3a7713b1edbc 2982 * (5) On STM32L1, parameter not available on all devices: OPAMP1 and OPAMP2 available only on STM32L1 Cat.3, Cat.4 and Cat.5, OPAMP3 available only on STM32L1 Cat.4 and Cat.5
AnnaBridge 171:3a7713b1edbc 2983 * @retval None
AnnaBridge 171:3a7713b1edbc 2984 */
AnnaBridge 171:3a7713b1edbc 2985 __STATIC_INLINE void LL_ADC_REG_SetSequencerRanks(ADC_TypeDef *ADCx, uint32_t Rank, uint32_t Channel)
AnnaBridge 171:3a7713b1edbc 2986 {
AnnaBridge 171:3a7713b1edbc 2987 /* Set bits with content of parameter "Channel" with bits position */
AnnaBridge 171:3a7713b1edbc 2988 /* in register and register position depending on parameter "Rank". */
AnnaBridge 171:3a7713b1edbc 2989 /* Parameters "Rank" and "Channel" are used with masks because containing */
AnnaBridge 171:3a7713b1edbc 2990 /* other bits reserved for other purpose. */
AnnaBridge 171:3a7713b1edbc 2991 register uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->SQR1, __ADC_MASK_SHIFT(Rank, ADC_REG_SQRX_REGOFFSET_MASK));
AnnaBridge 171:3a7713b1edbc 2992
AnnaBridge 171:3a7713b1edbc 2993 MODIFY_REG(*preg,
AnnaBridge 171:3a7713b1edbc 2994 ADC_CHANNEL_ID_NUMBER_MASK << (Rank & ADC_REG_RANK_ID_SQRX_MASK),
AnnaBridge 171:3a7713b1edbc 2995 (Channel & ADC_CHANNEL_ID_NUMBER_MASK) << (Rank & ADC_REG_RANK_ID_SQRX_MASK));
AnnaBridge 171:3a7713b1edbc 2996 }
AnnaBridge 171:3a7713b1edbc 2997
AnnaBridge 171:3a7713b1edbc 2998 /**
AnnaBridge 171:3a7713b1edbc 2999 * @brief Get ADC group regular sequence: channel on the selected
AnnaBridge 171:3a7713b1edbc 3000 * scan sequence rank.
AnnaBridge 171:3a7713b1edbc 3001 * @note On this STM32 serie, ADC group regular sequencer is
AnnaBridge 171:3a7713b1edbc 3002 * fully configurable: sequencer length and each rank
AnnaBridge 171:3a7713b1edbc 3003 * affectation to a channel are configurable.
AnnaBridge 171:3a7713b1edbc 3004 * Refer to description of function @ref LL_ADC_REG_SetSequencerLength().
AnnaBridge 171:3a7713b1edbc 3005 * @note Depending on devices and packages, some channels may not be available.
AnnaBridge 171:3a7713b1edbc 3006 * Refer to device datasheet for channels availability.
AnnaBridge 171:3a7713b1edbc 3007 * @note Usage of the returned channel number:
AnnaBridge 171:3a7713b1edbc 3008 * - To reinject this channel into another function LL_ADC_xxx:
AnnaBridge 171:3a7713b1edbc 3009 * the returned channel number is only partly formatted on definition
AnnaBridge 171:3a7713b1edbc 3010 * of literals LL_ADC_CHANNEL_x. Therefore, it has to be compared
AnnaBridge 171:3a7713b1edbc 3011 * with parts of literals LL_ADC_CHANNEL_x or using
AnnaBridge 171:3a7713b1edbc 3012 * helper macro @ref __LL_ADC_CHANNEL_TO_DECIMAL_NB().
AnnaBridge 171:3a7713b1edbc 3013 * Then the selected literal LL_ADC_CHANNEL_x can be used
AnnaBridge 171:3a7713b1edbc 3014 * as parameter for another function.
AnnaBridge 171:3a7713b1edbc 3015 * - To get the channel number in decimal format:
AnnaBridge 171:3a7713b1edbc 3016 * process the returned value with the helper macro
AnnaBridge 171:3a7713b1edbc 3017 * @ref __LL_ADC_CHANNEL_TO_DECIMAL_NB().
AnnaBridge 171:3a7713b1edbc 3018 * @rmtoll SQR5 SQ1 LL_ADC_REG_GetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 3019 * SQR5 SQ2 LL_ADC_REG_GetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 3020 * SQR5 SQ3 LL_ADC_REG_GetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 3021 * SQR5 SQ4 LL_ADC_REG_GetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 3022 * SQR5 SQ5 LL_ADC_REG_GetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 3023 * SQR5 SQ6 LL_ADC_REG_GetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 3024 * SQR4 SQ7 LL_ADC_REG_GetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 3025 * SQR4 SQ8 LL_ADC_REG_GetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 3026 * SQR4 SQ9 LL_ADC_REG_GetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 3027 * SQR4 SQ10 LL_ADC_REG_GetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 3028 * SQR4 SQ11 LL_ADC_REG_GetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 3029 * SQR4 SQ12 LL_ADC_REG_GetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 3030 * SQR3 SQ13 LL_ADC_REG_GetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 3031 * SQR3 SQ14 LL_ADC_REG_GetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 3032 * SQR3 SQ15 LL_ADC_REG_GetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 3033 * SQR3 SQ16 LL_ADC_REG_GetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 3034 * SQR3 SQ17 LL_ADC_REG_GetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 3035 * SQR3 SQ18 LL_ADC_REG_GetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 3036 * SQR2 SQ19 LL_ADC_REG_GetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 3037 * SQR2 SQ20 LL_ADC_REG_GetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 3038 * SQR2 SQ21 LL_ADC_REG_GetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 3039 * SQR2 SQ22 LL_ADC_REG_GetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 3040 * SQR2 SQ23 LL_ADC_REG_GetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 3041 * SQR2 SQ24 LL_ADC_REG_GetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 3042 * SQR1 SQ25 LL_ADC_REG_GetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 3043 * SQR1 SQ26 LL_ADC_REG_GetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 3044 * SQR1 SQ27 LL_ADC_REG_GetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 3045 * SQR1 SQ28 LL_ADC_REG_GetSequencerRanks
AnnaBridge 171:3a7713b1edbc 3046 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 3047 * @param Rank This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 3048 * @arg @ref LL_ADC_REG_RANK_1
AnnaBridge 171:3a7713b1edbc 3049 * @arg @ref LL_ADC_REG_RANK_2
AnnaBridge 171:3a7713b1edbc 3050 * @arg @ref LL_ADC_REG_RANK_3
AnnaBridge 171:3a7713b1edbc 3051 * @arg @ref LL_ADC_REG_RANK_4
AnnaBridge 171:3a7713b1edbc 3052 * @arg @ref LL_ADC_REG_RANK_5
AnnaBridge 171:3a7713b1edbc 3053 * @arg @ref LL_ADC_REG_RANK_6
AnnaBridge 171:3a7713b1edbc 3054 * @arg @ref LL_ADC_REG_RANK_7
AnnaBridge 171:3a7713b1edbc 3055 * @arg @ref LL_ADC_REG_RANK_8
AnnaBridge 171:3a7713b1edbc 3056 * @arg @ref LL_ADC_REG_RANK_9
AnnaBridge 171:3a7713b1edbc 3057 * @arg @ref LL_ADC_REG_RANK_10
AnnaBridge 171:3a7713b1edbc 3058 * @arg @ref LL_ADC_REG_RANK_11
AnnaBridge 171:3a7713b1edbc 3059 * @arg @ref LL_ADC_REG_RANK_12
AnnaBridge 171:3a7713b1edbc 3060 * @arg @ref LL_ADC_REG_RANK_13
AnnaBridge 171:3a7713b1edbc 3061 * @arg @ref LL_ADC_REG_RANK_14
AnnaBridge 171:3a7713b1edbc 3062 * @arg @ref LL_ADC_REG_RANK_15
AnnaBridge 171:3a7713b1edbc 3063 * @arg @ref LL_ADC_REG_RANK_16
AnnaBridge 171:3a7713b1edbc 3064 * @arg @ref LL_ADC_REG_RANK_17
AnnaBridge 171:3a7713b1edbc 3065 * @arg @ref LL_ADC_REG_RANK_18
AnnaBridge 171:3a7713b1edbc 3066 * @arg @ref LL_ADC_REG_RANK_19
AnnaBridge 171:3a7713b1edbc 3067 * @arg @ref LL_ADC_REG_RANK_20
AnnaBridge 171:3a7713b1edbc 3068 * @arg @ref LL_ADC_REG_RANK_21
AnnaBridge 171:3a7713b1edbc 3069 * @arg @ref LL_ADC_REG_RANK_22
AnnaBridge 171:3a7713b1edbc 3070 * @arg @ref LL_ADC_REG_RANK_23
AnnaBridge 171:3a7713b1edbc 3071 * @arg @ref LL_ADC_REG_RANK_24
AnnaBridge 171:3a7713b1edbc 3072 * @arg @ref LL_ADC_REG_RANK_25
AnnaBridge 171:3a7713b1edbc 3073 * @arg @ref LL_ADC_REG_RANK_26
AnnaBridge 171:3a7713b1edbc 3074 * @arg @ref LL_ADC_REG_RANK_27
AnnaBridge 171:3a7713b1edbc 3075 * @arg @ref LL_ADC_REG_RANK_28 (1)
AnnaBridge 171:3a7713b1edbc 3076 *
AnnaBridge 171:3a7713b1edbc 3077 * (1) On STM32L1, parameter not available on all devices: only on STM32L1 Cat.3, Cat.4 and Cat.5.
AnnaBridge 171:3a7713b1edbc 3078 * @retval Returned value can be one of the following values:
AnnaBridge 171:3a7713b1edbc 3079 * @arg @ref LL_ADC_CHANNEL_0 (2)
AnnaBridge 171:3a7713b1edbc 3080 * @arg @ref LL_ADC_CHANNEL_1 (2)
AnnaBridge 171:3a7713b1edbc 3081 * @arg @ref LL_ADC_CHANNEL_2 (2)
AnnaBridge 171:3a7713b1edbc 3082 * @arg @ref LL_ADC_CHANNEL_3 (2)
AnnaBridge 171:3a7713b1edbc 3083 * @arg @ref LL_ADC_CHANNEL_4 (1)
AnnaBridge 171:3a7713b1edbc 3084 * @arg @ref LL_ADC_CHANNEL_5 (1)
AnnaBridge 171:3a7713b1edbc 3085 * @arg @ref LL_ADC_CHANNEL_6 (2)
AnnaBridge 171:3a7713b1edbc 3086 * @arg @ref LL_ADC_CHANNEL_7 (2)
AnnaBridge 171:3a7713b1edbc 3087 * @arg @ref LL_ADC_CHANNEL_8 (2)
AnnaBridge 171:3a7713b1edbc 3088 * @arg @ref LL_ADC_CHANNEL_9 (2)
AnnaBridge 171:3a7713b1edbc 3089 * @arg @ref LL_ADC_CHANNEL_10 (2)
AnnaBridge 171:3a7713b1edbc 3090 * @arg @ref LL_ADC_CHANNEL_11 (2)
AnnaBridge 171:3a7713b1edbc 3091 * @arg @ref LL_ADC_CHANNEL_12 (2)
AnnaBridge 171:3a7713b1edbc 3092 * @arg @ref LL_ADC_CHANNEL_13 (3)
AnnaBridge 171:3a7713b1edbc 3093 * @arg @ref LL_ADC_CHANNEL_14 (3)
AnnaBridge 171:3a7713b1edbc 3094 * @arg @ref LL_ADC_CHANNEL_15 (3)
AnnaBridge 171:3a7713b1edbc 3095 * @arg @ref LL_ADC_CHANNEL_16 (3)
AnnaBridge 171:3a7713b1edbc 3096 * @arg @ref LL_ADC_CHANNEL_17 (3)
AnnaBridge 171:3a7713b1edbc 3097 * @arg @ref LL_ADC_CHANNEL_18 (3)
AnnaBridge 171:3a7713b1edbc 3098 * @arg @ref LL_ADC_CHANNEL_19 (3)
AnnaBridge 171:3a7713b1edbc 3099 * @arg @ref LL_ADC_CHANNEL_20 (3)
AnnaBridge 171:3a7713b1edbc 3100 * @arg @ref LL_ADC_CHANNEL_21 (3)
AnnaBridge 171:3a7713b1edbc 3101 * @arg @ref LL_ADC_CHANNEL_22 (1)
AnnaBridge 171:3a7713b1edbc 3102 * @arg @ref LL_ADC_CHANNEL_23 (1)
AnnaBridge 171:3a7713b1edbc 3103 * @arg @ref LL_ADC_CHANNEL_24 (1)
AnnaBridge 171:3a7713b1edbc 3104 * @arg @ref LL_ADC_CHANNEL_25 (1)
AnnaBridge 171:3a7713b1edbc 3105 * @arg @ref LL_ADC_CHANNEL_26 (3)
AnnaBridge 171:3a7713b1edbc 3106 * @arg @ref LL_ADC_CHANNEL_27 (3)(4)
AnnaBridge 171:3a7713b1edbc 3107 * @arg @ref LL_ADC_CHANNEL_28 (3)(4)
AnnaBridge 171:3a7713b1edbc 3108 * @arg @ref LL_ADC_CHANNEL_29 (3)(4)
AnnaBridge 171:3a7713b1edbc 3109 * @arg @ref LL_ADC_CHANNEL_30 (3)(4)
AnnaBridge 171:3a7713b1edbc 3110 * @arg @ref LL_ADC_CHANNEL_31 (3)(4)
AnnaBridge 171:3a7713b1edbc 3111 * @arg @ref LL_ADC_CHANNEL_VREFINT (3)(6)
AnnaBridge 171:3a7713b1edbc 3112 * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR (3)(6)
AnnaBridge 171:3a7713b1edbc 3113 * @arg @ref LL_ADC_CHANNEL_VCOMP (3)(6)
AnnaBridge 171:3a7713b1edbc 3114 * @arg @ref LL_ADC_CHANNEL_VOPAMP1 (3)(5)
AnnaBridge 171:3a7713b1edbc 3115 * @arg @ref LL_ADC_CHANNEL_VOPAMP2 (3)(5)
AnnaBridge 171:3a7713b1edbc 3116 * @arg @ref LL_ADC_CHANNEL_VOPAMP3 (3)(5)
AnnaBridge 171:3a7713b1edbc 3117 *
AnnaBridge 171:3a7713b1edbc 3118 * (1) On STM32L1, connection via routing interface (RI) specificity: fast channel (channel routed directly to ADC switch matrix).\n
AnnaBridge 171:3a7713b1edbc 3119 * (2) On STM32L1, for devices with feature 'channels banks' available: Channel different in bank A and bank B.\n
AnnaBridge 171:3a7713b1edbc 3120 * (3) On STM32L1, for devices with feature 'channels banks' available: Channel common to both bank A and bank B.\n
AnnaBridge 171:3a7713b1edbc 3121 * (4) On STM32L1, parameter not available on all devices: only on STM32L1 Cat.4 and Cat.5.\n
AnnaBridge 171:3a7713b1edbc 3122 * (5) On STM32L1, parameter not available on all devices: OPAMP1 and OPAMP2 available only on STM32L1 Cat.3, Cat.4 and Cat.5, OPAMP3 available only on STM32L1 Cat.4 and Cat.5.\n
AnnaBridge 171:3a7713b1edbc 3123 * (6) For ADC channel read back from ADC register,
AnnaBridge 171:3a7713b1edbc 3124 * comparison with internal channel parameter to be done
AnnaBridge 171:3a7713b1edbc 3125 * using helper macro @ref __LL_ADC_CHANNEL_INTERNAL_TO_EXTERNAL().
AnnaBridge 171:3a7713b1edbc 3126 */
AnnaBridge 171:3a7713b1edbc 3127 __STATIC_INLINE uint32_t LL_ADC_REG_GetSequencerRanks(ADC_TypeDef *ADCx, uint32_t Rank)
AnnaBridge 171:3a7713b1edbc 3128 {
AnnaBridge 171:3a7713b1edbc 3129 register uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->SQR1, __ADC_MASK_SHIFT(Rank, ADC_REG_SQRX_REGOFFSET_MASK));
AnnaBridge 171:3a7713b1edbc 3130
AnnaBridge 171:3a7713b1edbc 3131 return (uint32_t) (READ_BIT(*preg,
AnnaBridge 171:3a7713b1edbc 3132 ADC_CHANNEL_ID_NUMBER_MASK << (Rank & ADC_REG_RANK_ID_SQRX_MASK))
AnnaBridge 171:3a7713b1edbc 3133 >> (Rank & ADC_REG_RANK_ID_SQRX_MASK)
AnnaBridge 171:3a7713b1edbc 3134 );
AnnaBridge 171:3a7713b1edbc 3135 }
AnnaBridge 171:3a7713b1edbc 3136
AnnaBridge 171:3a7713b1edbc 3137 /**
AnnaBridge 171:3a7713b1edbc 3138 * @brief Set ADC continuous conversion mode on ADC group regular.
AnnaBridge 171:3a7713b1edbc 3139 * @note Description of ADC continuous conversion mode:
AnnaBridge 171:3a7713b1edbc 3140 * - single mode: one conversion per trigger
AnnaBridge 171:3a7713b1edbc 3141 * - continuous mode: after the first trigger, following
AnnaBridge 171:3a7713b1edbc 3142 * conversions launched successively automatically.
AnnaBridge 171:3a7713b1edbc 3143 * @note It is not possible to enable both ADC group regular
AnnaBridge 171:3a7713b1edbc 3144 * continuous mode and sequencer discontinuous mode.
AnnaBridge 171:3a7713b1edbc 3145 * @rmtoll CR2 CONT LL_ADC_REG_SetContinuousMode
AnnaBridge 171:3a7713b1edbc 3146 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 3147 * @param Continuous This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 3148 * @arg @ref LL_ADC_REG_CONV_SINGLE
AnnaBridge 171:3a7713b1edbc 3149 * @arg @ref LL_ADC_REG_CONV_CONTINUOUS
AnnaBridge 171:3a7713b1edbc 3150 * @retval None
AnnaBridge 171:3a7713b1edbc 3151 */
AnnaBridge 171:3a7713b1edbc 3152 __STATIC_INLINE void LL_ADC_REG_SetContinuousMode(ADC_TypeDef *ADCx, uint32_t Continuous)
AnnaBridge 171:3a7713b1edbc 3153 {
AnnaBridge 171:3a7713b1edbc 3154 MODIFY_REG(ADCx->CR2, ADC_CR2_CONT, Continuous);
AnnaBridge 171:3a7713b1edbc 3155 }
AnnaBridge 171:3a7713b1edbc 3156
AnnaBridge 171:3a7713b1edbc 3157 /**
AnnaBridge 171:3a7713b1edbc 3158 * @brief Get ADC continuous conversion mode on ADC group regular.
AnnaBridge 171:3a7713b1edbc 3159 * @note Description of ADC continuous conversion mode:
AnnaBridge 171:3a7713b1edbc 3160 * - single mode: one conversion per trigger
AnnaBridge 171:3a7713b1edbc 3161 * - continuous mode: after the first trigger, following
AnnaBridge 171:3a7713b1edbc 3162 * conversions launched successively automatically.
AnnaBridge 171:3a7713b1edbc 3163 * @rmtoll CR2 CONT LL_ADC_REG_GetContinuousMode
AnnaBridge 171:3a7713b1edbc 3164 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 3165 * @retval Returned value can be one of the following values:
AnnaBridge 171:3a7713b1edbc 3166 * @arg @ref LL_ADC_REG_CONV_SINGLE
AnnaBridge 171:3a7713b1edbc 3167 * @arg @ref LL_ADC_REG_CONV_CONTINUOUS
AnnaBridge 171:3a7713b1edbc 3168 */
AnnaBridge 171:3a7713b1edbc 3169 __STATIC_INLINE uint32_t LL_ADC_REG_GetContinuousMode(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 3170 {
AnnaBridge 171:3a7713b1edbc 3171 return (uint32_t)(READ_BIT(ADCx->CR2, ADC_CR2_CONT));
AnnaBridge 171:3a7713b1edbc 3172 }
AnnaBridge 171:3a7713b1edbc 3173
AnnaBridge 171:3a7713b1edbc 3174 /**
AnnaBridge 171:3a7713b1edbc 3175 * @brief Set ADC group regular conversion data transfer: no transfer or
AnnaBridge 171:3a7713b1edbc 3176 * transfer by DMA, and DMA requests mode.
AnnaBridge 171:3a7713b1edbc 3177 * @note If transfer by DMA selected, specifies the DMA requests
AnnaBridge 171:3a7713b1edbc 3178 * mode:
AnnaBridge 171:3a7713b1edbc 3179 * - Limited mode (One shot mode): DMA transfer requests are stopped
AnnaBridge 171:3a7713b1edbc 3180 * when number of DMA data transfers (number of
AnnaBridge 171:3a7713b1edbc 3181 * ADC conversions) is reached.
AnnaBridge 171:3a7713b1edbc 3182 * This ADC mode is intended to be used with DMA mode non-circular.
AnnaBridge 171:3a7713b1edbc 3183 * - Unlimited mode: DMA transfer requests are unlimited,
AnnaBridge 171:3a7713b1edbc 3184 * whatever number of DMA data transfers (number of
AnnaBridge 171:3a7713b1edbc 3185 * ADC conversions).
AnnaBridge 171:3a7713b1edbc 3186 * This ADC mode is intended to be used with DMA mode circular.
AnnaBridge 171:3a7713b1edbc 3187 * @note If ADC DMA requests mode is set to unlimited and DMA is set to
AnnaBridge 171:3a7713b1edbc 3188 * mode non-circular:
AnnaBridge 171:3a7713b1edbc 3189 * when DMA transfers size will be reached, DMA will stop transfers of
AnnaBridge 171:3a7713b1edbc 3190 * ADC conversions data ADC will raise an overrun error
AnnaBridge 171:3a7713b1edbc 3191 * (overrun flag and interruption if enabled).
AnnaBridge 171:3a7713b1edbc 3192 * @note To configure DMA source address (peripheral address),
AnnaBridge 171:3a7713b1edbc 3193 * use function @ref LL_ADC_DMA_GetRegAddr().
AnnaBridge 171:3a7713b1edbc 3194 * @rmtoll CR2 DMA LL_ADC_REG_SetDMATransfer\n
AnnaBridge 171:3a7713b1edbc 3195 * CR2 DDS LL_ADC_REG_SetDMATransfer
AnnaBridge 171:3a7713b1edbc 3196 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 3197 * @param DMATransfer This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 3198 * @arg @ref LL_ADC_REG_DMA_TRANSFER_NONE
AnnaBridge 171:3a7713b1edbc 3199 * @arg @ref LL_ADC_REG_DMA_TRANSFER_LIMITED
AnnaBridge 171:3a7713b1edbc 3200 * @arg @ref LL_ADC_REG_DMA_TRANSFER_UNLIMITED
AnnaBridge 171:3a7713b1edbc 3201 * @retval None
AnnaBridge 171:3a7713b1edbc 3202 */
AnnaBridge 171:3a7713b1edbc 3203 __STATIC_INLINE void LL_ADC_REG_SetDMATransfer(ADC_TypeDef *ADCx, uint32_t DMATransfer)
AnnaBridge 171:3a7713b1edbc 3204 {
AnnaBridge 171:3a7713b1edbc 3205 MODIFY_REG(ADCx->CR2, ADC_CR2_DMA | ADC_CR2_DDS, DMATransfer);
AnnaBridge 171:3a7713b1edbc 3206 }
AnnaBridge 171:3a7713b1edbc 3207
AnnaBridge 171:3a7713b1edbc 3208 /**
AnnaBridge 171:3a7713b1edbc 3209 * @brief Get ADC group regular conversion data transfer: no transfer or
AnnaBridge 171:3a7713b1edbc 3210 * transfer by DMA, and DMA requests mode.
AnnaBridge 171:3a7713b1edbc 3211 * @note If transfer by DMA selected, specifies the DMA requests
AnnaBridge 171:3a7713b1edbc 3212 * mode:
AnnaBridge 171:3a7713b1edbc 3213 * - Limited mode (One shot mode): DMA transfer requests are stopped
AnnaBridge 171:3a7713b1edbc 3214 * when number of DMA data transfers (number of
AnnaBridge 171:3a7713b1edbc 3215 * ADC conversions) is reached.
AnnaBridge 171:3a7713b1edbc 3216 * This ADC mode is intended to be used with DMA mode non-circular.
AnnaBridge 171:3a7713b1edbc 3217 * - Unlimited mode: DMA transfer requests are unlimited,
AnnaBridge 171:3a7713b1edbc 3218 * whatever number of DMA data transfers (number of
AnnaBridge 171:3a7713b1edbc 3219 * ADC conversions).
AnnaBridge 171:3a7713b1edbc 3220 * This ADC mode is intended to be used with DMA mode circular.
AnnaBridge 171:3a7713b1edbc 3221 * @note If ADC DMA requests mode is set to unlimited and DMA is set to
AnnaBridge 171:3a7713b1edbc 3222 * mode non-circular:
AnnaBridge 171:3a7713b1edbc 3223 * when DMA transfers size will be reached, DMA will stop transfers of
AnnaBridge 171:3a7713b1edbc 3224 * ADC conversions data ADC will raise an overrun error
AnnaBridge 171:3a7713b1edbc 3225 * (overrun flag and interruption if enabled).
AnnaBridge 171:3a7713b1edbc 3226 * @note To configure DMA source address (peripheral address),
AnnaBridge 171:3a7713b1edbc 3227 * use function @ref LL_ADC_DMA_GetRegAddr().
AnnaBridge 171:3a7713b1edbc 3228 * @rmtoll CR2 DMA LL_ADC_REG_GetDMATransfer\n
AnnaBridge 171:3a7713b1edbc 3229 * CR2 DDS LL_ADC_REG_GetDMATransfer
AnnaBridge 171:3a7713b1edbc 3230 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 3231 * @retval Returned value can be one of the following values:
AnnaBridge 171:3a7713b1edbc 3232 * @arg @ref LL_ADC_REG_DMA_TRANSFER_NONE
AnnaBridge 171:3a7713b1edbc 3233 * @arg @ref LL_ADC_REG_DMA_TRANSFER_LIMITED
AnnaBridge 171:3a7713b1edbc 3234 * @arg @ref LL_ADC_REG_DMA_TRANSFER_UNLIMITED
AnnaBridge 171:3a7713b1edbc 3235 */
AnnaBridge 171:3a7713b1edbc 3236 __STATIC_INLINE uint32_t LL_ADC_REG_GetDMATransfer(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 3237 {
AnnaBridge 171:3a7713b1edbc 3238 return (uint32_t)(READ_BIT(ADCx->CR2, ADC_CR2_DMA | ADC_CR2_DDS));
AnnaBridge 171:3a7713b1edbc 3239 }
AnnaBridge 171:3a7713b1edbc 3240
AnnaBridge 171:3a7713b1edbc 3241 /**
AnnaBridge 171:3a7713b1edbc 3242 * @brief Specify which ADC flag between EOC (end of unitary conversion)
AnnaBridge 171:3a7713b1edbc 3243 * or EOS (end of sequence conversions) is used to indicate
AnnaBridge 171:3a7713b1edbc 3244 * the end of conversion.
AnnaBridge 171:3a7713b1edbc 3245 * @note This feature is aimed to be set when using ADC with
AnnaBridge 171:3a7713b1edbc 3246 * programming model by polling or interruption
AnnaBridge 171:3a7713b1edbc 3247 * (programming model by DMA usually uses DMA interruptions
AnnaBridge 171:3a7713b1edbc 3248 * to indicate end of conversion and data transfer).
AnnaBridge 171:3a7713b1edbc 3249 * @note For ADC group injected, end of conversion (flag&IT) is raised
AnnaBridge 171:3a7713b1edbc 3250 * only at the end of the sequence.
AnnaBridge 171:3a7713b1edbc 3251 * @rmtoll CR2 EOCS LL_ADC_REG_SetFlagEndOfConversion
AnnaBridge 171:3a7713b1edbc 3252 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 3253 * @param EocSelection This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 3254 * @arg @ref LL_ADC_REG_FLAG_EOC_SEQUENCE_CONV
AnnaBridge 171:3a7713b1edbc 3255 * @arg @ref LL_ADC_REG_FLAG_EOC_UNITARY_CONV
AnnaBridge 171:3a7713b1edbc 3256 * @retval None
AnnaBridge 171:3a7713b1edbc 3257 */
AnnaBridge 171:3a7713b1edbc 3258 __STATIC_INLINE void LL_ADC_REG_SetFlagEndOfConversion(ADC_TypeDef *ADCx, uint32_t EocSelection)
AnnaBridge 171:3a7713b1edbc 3259 {
AnnaBridge 171:3a7713b1edbc 3260 MODIFY_REG(ADCx->CR2, ADC_CR2_EOCS, EocSelection);
AnnaBridge 171:3a7713b1edbc 3261 }
AnnaBridge 171:3a7713b1edbc 3262
AnnaBridge 171:3a7713b1edbc 3263 /**
AnnaBridge 171:3a7713b1edbc 3264 * @brief Get which ADC flag between EOC (end of unitary conversion)
AnnaBridge 171:3a7713b1edbc 3265 * or EOS (end of sequence conversions) is used to indicate
AnnaBridge 171:3a7713b1edbc 3266 * the end of conversion.
AnnaBridge 171:3a7713b1edbc 3267 * @rmtoll CR2 EOCS LL_ADC_REG_GetFlagEndOfConversion
AnnaBridge 171:3a7713b1edbc 3268 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 3269 * @retval Returned value can be one of the following values:
AnnaBridge 171:3a7713b1edbc 3270 * @arg @ref LL_ADC_REG_FLAG_EOC_SEQUENCE_CONV
AnnaBridge 171:3a7713b1edbc 3271 * @arg @ref LL_ADC_REG_FLAG_EOC_UNITARY_CONV
AnnaBridge 171:3a7713b1edbc 3272 */
AnnaBridge 171:3a7713b1edbc 3273 __STATIC_INLINE uint32_t LL_ADC_REG_GetFlagEndOfConversion(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 3274 {
AnnaBridge 171:3a7713b1edbc 3275 return (uint32_t)(READ_BIT(ADCx->CR2, ADC_CR2_EOCS));
AnnaBridge 171:3a7713b1edbc 3276 }
AnnaBridge 171:3a7713b1edbc 3277
AnnaBridge 171:3a7713b1edbc 3278 /**
AnnaBridge 171:3a7713b1edbc 3279 * @}
AnnaBridge 171:3a7713b1edbc 3280 */
AnnaBridge 171:3a7713b1edbc 3281
AnnaBridge 171:3a7713b1edbc 3282 /** @defgroup ADC_LL_EF_Configuration_ADC_Group_Injected Configuration of ADC hierarchical scope: group injected
AnnaBridge 171:3a7713b1edbc 3283 * @{
AnnaBridge 171:3a7713b1edbc 3284 */
AnnaBridge 171:3a7713b1edbc 3285
AnnaBridge 171:3a7713b1edbc 3286 /**
AnnaBridge 171:3a7713b1edbc 3287 * @brief Set ADC group injected conversion trigger source:
AnnaBridge 171:3a7713b1edbc 3288 * internal (SW start) or from external IP (timer event,
AnnaBridge 171:3a7713b1edbc 3289 * external interrupt line).
AnnaBridge 171:3a7713b1edbc 3290 * @note On this STM32 serie, setting of external trigger edge is performed
AnnaBridge 171:3a7713b1edbc 3291 * using function @ref LL_ADC_INJ_StartConversionExtTrig().
AnnaBridge 171:3a7713b1edbc 3292 * @note Availability of parameters of trigger sources from timer
AnnaBridge 171:3a7713b1edbc 3293 * depends on timers availability on the selected device.
AnnaBridge 171:3a7713b1edbc 3294 * @rmtoll CR2 JEXTSEL LL_ADC_INJ_SetTriggerSource\n
AnnaBridge 171:3a7713b1edbc 3295 * CR2 JEXTEN LL_ADC_INJ_SetTriggerSource
AnnaBridge 171:3a7713b1edbc 3296 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 3297 * @param TriggerSource This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 3298 * @arg @ref LL_ADC_INJ_TRIG_SOFTWARE
AnnaBridge 171:3a7713b1edbc 3299 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM9_CH1
AnnaBridge 171:3a7713b1edbc 3300 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM9_TRGO
AnnaBridge 171:3a7713b1edbc 3301 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM2_TRGO
AnnaBridge 171:3a7713b1edbc 3302 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM2_CH1
AnnaBridge 171:3a7713b1edbc 3303 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM3_CH4
AnnaBridge 171:3a7713b1edbc 3304 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM4_TRGO
AnnaBridge 171:3a7713b1edbc 3305 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM4_CH1
AnnaBridge 171:3a7713b1edbc 3306 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM4_CH2
AnnaBridge 171:3a7713b1edbc 3307 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM4_CH3
AnnaBridge 171:3a7713b1edbc 3308 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM10_CH1
AnnaBridge 171:3a7713b1edbc 3309 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM7_TRGO
AnnaBridge 171:3a7713b1edbc 3310 * @arg @ref LL_ADC_INJ_TRIG_EXT_EXTI_LINE15
AnnaBridge 171:3a7713b1edbc 3311 * @retval None
AnnaBridge 171:3a7713b1edbc 3312 */
AnnaBridge 171:3a7713b1edbc 3313 __STATIC_INLINE void LL_ADC_INJ_SetTriggerSource(ADC_TypeDef *ADCx, uint32_t TriggerSource)
AnnaBridge 171:3a7713b1edbc 3314 {
AnnaBridge 171:3a7713b1edbc 3315 /* Note: On this STM32 serie, ADC group injected external trigger edge */
AnnaBridge 171:3a7713b1edbc 3316 /* is used to perform a ADC conversion start. */
AnnaBridge 171:3a7713b1edbc 3317 /* This function does not set external trigger edge. */
AnnaBridge 171:3a7713b1edbc 3318 /* This feature is set using function */
AnnaBridge 171:3a7713b1edbc 3319 /* @ref LL_ADC_INJ_StartConversionExtTrig(). */
AnnaBridge 171:3a7713b1edbc 3320 MODIFY_REG(ADCx->CR2, ADC_CR2_JEXTSEL, (TriggerSource & ADC_CR2_JEXTSEL));
AnnaBridge 171:3a7713b1edbc 3321 }
AnnaBridge 171:3a7713b1edbc 3322
AnnaBridge 171:3a7713b1edbc 3323 /**
AnnaBridge 171:3a7713b1edbc 3324 * @brief Get ADC group injected conversion trigger source:
AnnaBridge 171:3a7713b1edbc 3325 * internal (SW start) or from external IP (timer event,
AnnaBridge 171:3a7713b1edbc 3326 * external interrupt line).
AnnaBridge 171:3a7713b1edbc 3327 * @note To determine whether group injected trigger source is
AnnaBridge 171:3a7713b1edbc 3328 * internal (SW start) or external, without detail
AnnaBridge 171:3a7713b1edbc 3329 * of which peripheral is selected as external trigger,
AnnaBridge 171:3a7713b1edbc 3330 * (equivalent to
AnnaBridge 171:3a7713b1edbc 3331 * "if(LL_ADC_INJ_GetTriggerSource(ADC1) == LL_ADC_INJ_TRIG_SOFTWARE)")
AnnaBridge 171:3a7713b1edbc 3332 * use function @ref LL_ADC_INJ_IsTriggerSourceSWStart.
AnnaBridge 171:3a7713b1edbc 3333 * @note Availability of parameters of trigger sources from timer
AnnaBridge 171:3a7713b1edbc 3334 * depends on timers availability on the selected device.
AnnaBridge 171:3a7713b1edbc 3335 * @rmtoll CR2 JEXTSEL LL_ADC_INJ_GetTriggerSource\n
AnnaBridge 171:3a7713b1edbc 3336 * CR2 JEXTEN LL_ADC_INJ_GetTriggerSource
AnnaBridge 171:3a7713b1edbc 3337 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 3338 * @retval Returned value can be one of the following values:
AnnaBridge 171:3a7713b1edbc 3339 * @arg @ref LL_ADC_INJ_TRIG_SOFTWARE
AnnaBridge 171:3a7713b1edbc 3340 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM9_CH1
AnnaBridge 171:3a7713b1edbc 3341 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM9_TRGO
AnnaBridge 171:3a7713b1edbc 3342 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM2_TRGO
AnnaBridge 171:3a7713b1edbc 3343 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM2_CH1
AnnaBridge 171:3a7713b1edbc 3344 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM3_CH4
AnnaBridge 171:3a7713b1edbc 3345 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM4_TRGO
AnnaBridge 171:3a7713b1edbc 3346 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM4_CH1
AnnaBridge 171:3a7713b1edbc 3347 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM4_CH2
AnnaBridge 171:3a7713b1edbc 3348 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM4_CH3
AnnaBridge 171:3a7713b1edbc 3349 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM10_CH1
AnnaBridge 171:3a7713b1edbc 3350 * @arg @ref LL_ADC_INJ_TRIG_EXT_TIM7_TRGO
AnnaBridge 171:3a7713b1edbc 3351 * @arg @ref LL_ADC_INJ_TRIG_EXT_EXTI_LINE15
AnnaBridge 171:3a7713b1edbc 3352 */
AnnaBridge 171:3a7713b1edbc 3353 __STATIC_INLINE uint32_t LL_ADC_INJ_GetTriggerSource(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 3354 {
AnnaBridge 171:3a7713b1edbc 3355 register uint32_t TriggerSource = READ_BIT(ADCx->CR2, ADC_CR2_JEXTSEL | ADC_CR2_JEXTEN);
AnnaBridge 171:3a7713b1edbc 3356
AnnaBridge 171:3a7713b1edbc 3357 /* Value for shift of {0; 4; 8; 12} depending on value of bitfield */
AnnaBridge 171:3a7713b1edbc 3358 /* corresponding to ADC_CR2_JEXTEN {0; 1; 2; 3}. */
AnnaBridge 171:3a7713b1edbc 3359 register uint32_t ShiftExten = ((TriggerSource & ADC_CR2_JEXTEN) >> (ADC_INJ_TRIG_EXTEN_BITOFFSET_POS - 2U));
AnnaBridge 171:3a7713b1edbc 3360
AnnaBridge 171:3a7713b1edbc 3361 /* Set bitfield corresponding to ADC_CR2_JEXTEN and ADC_CR2_JEXTSEL */
AnnaBridge 171:3a7713b1edbc 3362 /* to match with triggers literals definition. */
AnnaBridge 171:3a7713b1edbc 3363 return ((TriggerSource
AnnaBridge 171:3a7713b1edbc 3364 & (ADC_INJ_TRIG_SOURCE_MASK << ShiftExten) & ADC_CR2_JEXTSEL)
AnnaBridge 171:3a7713b1edbc 3365 | ((ADC_INJ_TRIG_EDGE_MASK << ShiftExten) & ADC_CR2_JEXTEN)
AnnaBridge 171:3a7713b1edbc 3366 );
AnnaBridge 171:3a7713b1edbc 3367 }
AnnaBridge 171:3a7713b1edbc 3368
AnnaBridge 171:3a7713b1edbc 3369 /**
AnnaBridge 171:3a7713b1edbc 3370 * @brief Get ADC group injected conversion trigger source internal (SW start)
AnnaBridge 171:3a7713b1edbc 3371 or external
AnnaBridge 171:3a7713b1edbc 3372 * @note In case of group injected trigger source set to external trigger,
AnnaBridge 171:3a7713b1edbc 3373 * to determine which peripheral is selected as external trigger,
AnnaBridge 171:3a7713b1edbc 3374 * use function @ref LL_ADC_INJ_GetTriggerSource.
AnnaBridge 171:3a7713b1edbc 3375 * @rmtoll CR2 JEXTEN LL_ADC_INJ_IsTriggerSourceSWStart
AnnaBridge 171:3a7713b1edbc 3376 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 3377 * @retval Value "0" if trigger source external trigger
AnnaBridge 171:3a7713b1edbc 3378 * Value "1" if trigger source SW start.
AnnaBridge 171:3a7713b1edbc 3379 */
AnnaBridge 171:3a7713b1edbc 3380 __STATIC_INLINE uint32_t LL_ADC_INJ_IsTriggerSourceSWStart(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 3381 {
AnnaBridge 171:3a7713b1edbc 3382 return (READ_BIT(ADCx->CR2, ADC_CR2_JEXTEN) == (LL_ADC_INJ_TRIG_SOFTWARE & ADC_CR2_JEXTEN));
AnnaBridge 171:3a7713b1edbc 3383 }
AnnaBridge 171:3a7713b1edbc 3384
AnnaBridge 171:3a7713b1edbc 3385 /**
AnnaBridge 171:3a7713b1edbc 3386 * @brief Get ADC group injected conversion trigger polarity.
AnnaBridge 171:3a7713b1edbc 3387 * Applicable only for trigger source set to external trigger.
AnnaBridge 171:3a7713b1edbc 3388 * @rmtoll CR2 JEXTEN LL_ADC_INJ_GetTriggerEdge
AnnaBridge 171:3a7713b1edbc 3389 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 3390 * @retval Returned value can be one of the following values:
AnnaBridge 171:3a7713b1edbc 3391 * @arg @ref LL_ADC_INJ_TRIG_EXT_RISING
AnnaBridge 171:3a7713b1edbc 3392 * @arg @ref LL_ADC_INJ_TRIG_EXT_FALLING
AnnaBridge 171:3a7713b1edbc 3393 * @arg @ref LL_ADC_INJ_TRIG_EXT_RISINGFALLING
AnnaBridge 171:3a7713b1edbc 3394 */
AnnaBridge 171:3a7713b1edbc 3395 __STATIC_INLINE uint32_t LL_ADC_INJ_GetTriggerEdge(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 3396 {
AnnaBridge 171:3a7713b1edbc 3397 return (uint32_t)(READ_BIT(ADCx->CR2, ADC_CR2_JEXTEN));
AnnaBridge 171:3a7713b1edbc 3398 }
AnnaBridge 171:3a7713b1edbc 3399
AnnaBridge 171:3a7713b1edbc 3400 /**
AnnaBridge 171:3a7713b1edbc 3401 * @brief Set ADC group injected sequencer length and scan direction.
AnnaBridge 171:3a7713b1edbc 3402 * @note This function performs configuration of:
AnnaBridge 171:3a7713b1edbc 3403 * - Sequence length: Number of ranks in the scan sequence.
AnnaBridge 171:3a7713b1edbc 3404 * - Sequence direction: Unless specified in parameters, sequencer
AnnaBridge 171:3a7713b1edbc 3405 * scan direction is forward (from rank 1 to rank n).
AnnaBridge 171:3a7713b1edbc 3406 * @note On this STM32 serie, group injected sequencer configuration
AnnaBridge 171:3a7713b1edbc 3407 * is conditioned to ADC instance sequencer mode.
AnnaBridge 171:3a7713b1edbc 3408 * If ADC instance sequencer mode is disabled, sequencers of
AnnaBridge 171:3a7713b1edbc 3409 * all groups (group regular, group injected) can be configured
AnnaBridge 171:3a7713b1edbc 3410 * but their execution is disabled (limited to rank 1).
AnnaBridge 171:3a7713b1edbc 3411 * Refer to function @ref LL_ADC_SetSequencersScanMode().
AnnaBridge 171:3a7713b1edbc 3412 * @note Sequencer disabled is equivalent to sequencer of 1 rank:
AnnaBridge 171:3a7713b1edbc 3413 * ADC conversion on only 1 channel.
AnnaBridge 171:3a7713b1edbc 3414 * @rmtoll JSQR JL LL_ADC_INJ_SetSequencerLength
AnnaBridge 171:3a7713b1edbc 3415 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 3416 * @param SequencerNbRanks This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 3417 * @arg @ref LL_ADC_INJ_SEQ_SCAN_DISABLE
AnnaBridge 171:3a7713b1edbc 3418 * @arg @ref LL_ADC_INJ_SEQ_SCAN_ENABLE_2RANKS
AnnaBridge 171:3a7713b1edbc 3419 * @arg @ref LL_ADC_INJ_SEQ_SCAN_ENABLE_3RANKS
AnnaBridge 171:3a7713b1edbc 3420 * @arg @ref LL_ADC_INJ_SEQ_SCAN_ENABLE_4RANKS
AnnaBridge 171:3a7713b1edbc 3421 * @retval None
AnnaBridge 171:3a7713b1edbc 3422 */
AnnaBridge 171:3a7713b1edbc 3423 __STATIC_INLINE void LL_ADC_INJ_SetSequencerLength(ADC_TypeDef *ADCx, uint32_t SequencerNbRanks)
AnnaBridge 171:3a7713b1edbc 3424 {
AnnaBridge 171:3a7713b1edbc 3425 MODIFY_REG(ADCx->JSQR, ADC_JSQR_JL, SequencerNbRanks);
AnnaBridge 171:3a7713b1edbc 3426 }
AnnaBridge 171:3a7713b1edbc 3427
AnnaBridge 171:3a7713b1edbc 3428 /**
AnnaBridge 171:3a7713b1edbc 3429 * @brief Get ADC group injected sequencer length and scan direction.
AnnaBridge 171:3a7713b1edbc 3430 * @note This function retrieves:
AnnaBridge 171:3a7713b1edbc 3431 * - Sequence length: Number of ranks in the scan sequence.
AnnaBridge 171:3a7713b1edbc 3432 * - Sequence direction: Unless specified in parameters, sequencer
AnnaBridge 171:3a7713b1edbc 3433 * scan direction is forward (from rank 1 to rank n).
AnnaBridge 171:3a7713b1edbc 3434 * @note On this STM32 serie, group injected sequencer configuration
AnnaBridge 171:3a7713b1edbc 3435 * is conditioned to ADC instance sequencer mode.
AnnaBridge 171:3a7713b1edbc 3436 * If ADC instance sequencer mode is disabled, sequencers of
AnnaBridge 171:3a7713b1edbc 3437 * all groups (group regular, group injected) can be configured
AnnaBridge 171:3a7713b1edbc 3438 * but their execution is disabled (limited to rank 1).
AnnaBridge 171:3a7713b1edbc 3439 * Refer to function @ref LL_ADC_SetSequencersScanMode().
AnnaBridge 171:3a7713b1edbc 3440 * @note Sequencer disabled is equivalent to sequencer of 1 rank:
AnnaBridge 171:3a7713b1edbc 3441 * ADC conversion on only 1 channel.
AnnaBridge 171:3a7713b1edbc 3442 * @rmtoll JSQR JL LL_ADC_INJ_GetSequencerLength
AnnaBridge 171:3a7713b1edbc 3443 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 3444 * @retval Returned value can be one of the following values:
AnnaBridge 171:3a7713b1edbc 3445 * @arg @ref LL_ADC_INJ_SEQ_SCAN_DISABLE
AnnaBridge 171:3a7713b1edbc 3446 * @arg @ref LL_ADC_INJ_SEQ_SCAN_ENABLE_2RANKS
AnnaBridge 171:3a7713b1edbc 3447 * @arg @ref LL_ADC_INJ_SEQ_SCAN_ENABLE_3RANKS
AnnaBridge 171:3a7713b1edbc 3448 * @arg @ref LL_ADC_INJ_SEQ_SCAN_ENABLE_4RANKS
AnnaBridge 171:3a7713b1edbc 3449 */
AnnaBridge 171:3a7713b1edbc 3450 __STATIC_INLINE uint32_t LL_ADC_INJ_GetSequencerLength(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 3451 {
AnnaBridge 171:3a7713b1edbc 3452 return (uint32_t)(READ_BIT(ADCx->JSQR, ADC_JSQR_JL));
AnnaBridge 171:3a7713b1edbc 3453 }
AnnaBridge 171:3a7713b1edbc 3454
AnnaBridge 171:3a7713b1edbc 3455 /**
AnnaBridge 171:3a7713b1edbc 3456 * @brief Set ADC group injected sequencer discontinuous mode:
AnnaBridge 171:3a7713b1edbc 3457 * sequence subdivided and scan conversions interrupted every selected
AnnaBridge 171:3a7713b1edbc 3458 * number of ranks.
AnnaBridge 171:3a7713b1edbc 3459 * @note It is not possible to enable both ADC group injected
AnnaBridge 171:3a7713b1edbc 3460 * auto-injected mode and sequencer discontinuous mode.
AnnaBridge 171:3a7713b1edbc 3461 * @rmtoll CR1 DISCEN LL_ADC_INJ_SetSequencerDiscont
AnnaBridge 171:3a7713b1edbc 3462 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 3463 * @param SeqDiscont This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 3464 * @arg @ref LL_ADC_INJ_SEQ_DISCONT_DISABLE
AnnaBridge 171:3a7713b1edbc 3465 * @arg @ref LL_ADC_INJ_SEQ_DISCONT_1RANK
AnnaBridge 171:3a7713b1edbc 3466 * @retval None
AnnaBridge 171:3a7713b1edbc 3467 */
AnnaBridge 171:3a7713b1edbc 3468 __STATIC_INLINE void LL_ADC_INJ_SetSequencerDiscont(ADC_TypeDef *ADCx, uint32_t SeqDiscont)
AnnaBridge 171:3a7713b1edbc 3469 {
AnnaBridge 171:3a7713b1edbc 3470 MODIFY_REG(ADCx->CR1, ADC_CR1_JDISCEN, SeqDiscont);
AnnaBridge 171:3a7713b1edbc 3471 }
AnnaBridge 171:3a7713b1edbc 3472
AnnaBridge 171:3a7713b1edbc 3473 /**
AnnaBridge 171:3a7713b1edbc 3474 * @brief Get ADC group injected sequencer discontinuous mode:
AnnaBridge 171:3a7713b1edbc 3475 * sequence subdivided and scan conversions interrupted every selected
AnnaBridge 171:3a7713b1edbc 3476 * number of ranks.
AnnaBridge 171:3a7713b1edbc 3477 * @rmtoll CR1 DISCEN LL_ADC_REG_GetSequencerDiscont
AnnaBridge 171:3a7713b1edbc 3478 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 3479 * @retval Returned value can be one of the following values:
AnnaBridge 171:3a7713b1edbc 3480 * @arg @ref LL_ADC_INJ_SEQ_DISCONT_DISABLE
AnnaBridge 171:3a7713b1edbc 3481 * @arg @ref LL_ADC_INJ_SEQ_DISCONT_1RANK
AnnaBridge 171:3a7713b1edbc 3482 */
AnnaBridge 171:3a7713b1edbc 3483 __STATIC_INLINE uint32_t LL_ADC_INJ_GetSequencerDiscont(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 3484 {
AnnaBridge 171:3a7713b1edbc 3485 return (uint32_t)(READ_BIT(ADCx->CR1, ADC_CR1_JDISCEN));
AnnaBridge 171:3a7713b1edbc 3486 }
AnnaBridge 171:3a7713b1edbc 3487
AnnaBridge 171:3a7713b1edbc 3488 /**
AnnaBridge 171:3a7713b1edbc 3489 * @brief Set ADC group injected sequence: channel on the selected
AnnaBridge 171:3a7713b1edbc 3490 * sequence rank.
AnnaBridge 171:3a7713b1edbc 3491 * @note Depending on devices and packages, some channels may not be available.
AnnaBridge 171:3a7713b1edbc 3492 * Refer to device datasheet for channels availability.
AnnaBridge 171:3a7713b1edbc 3493 * @note On this STM32 serie, to measure internal channels (VrefInt,
AnnaBridge 171:3a7713b1edbc 3494 * TempSensor, ...), measurement paths to internal channels must be
AnnaBridge 171:3a7713b1edbc 3495 * enabled separately.
AnnaBridge 171:3a7713b1edbc 3496 * This can be done using function @ref LL_ADC_SetCommonPathInternalCh().
AnnaBridge 171:3a7713b1edbc 3497 * @rmtoll JSQR JSQ1 LL_ADC_INJ_SetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 3498 * JSQR JSQ2 LL_ADC_INJ_SetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 3499 * JSQR JSQ3 LL_ADC_INJ_SetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 3500 * JSQR JSQ4 LL_ADC_INJ_SetSequencerRanks
AnnaBridge 171:3a7713b1edbc 3501 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 3502 * @param Rank This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 3503 * @arg @ref LL_ADC_INJ_RANK_1
AnnaBridge 171:3a7713b1edbc 3504 * @arg @ref LL_ADC_INJ_RANK_2
AnnaBridge 171:3a7713b1edbc 3505 * @arg @ref LL_ADC_INJ_RANK_3
AnnaBridge 171:3a7713b1edbc 3506 * @arg @ref LL_ADC_INJ_RANK_4
AnnaBridge 171:3a7713b1edbc 3507 * @param Channel This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 3508 * @arg @ref LL_ADC_CHANNEL_0 (2)
AnnaBridge 171:3a7713b1edbc 3509 * @arg @ref LL_ADC_CHANNEL_1 (2)
AnnaBridge 171:3a7713b1edbc 3510 * @arg @ref LL_ADC_CHANNEL_2 (2)
AnnaBridge 171:3a7713b1edbc 3511 * @arg @ref LL_ADC_CHANNEL_3 (2)
AnnaBridge 171:3a7713b1edbc 3512 * @arg @ref LL_ADC_CHANNEL_4 (1)
AnnaBridge 171:3a7713b1edbc 3513 * @arg @ref LL_ADC_CHANNEL_5 (1)
AnnaBridge 171:3a7713b1edbc 3514 * @arg @ref LL_ADC_CHANNEL_6 (2)
AnnaBridge 171:3a7713b1edbc 3515 * @arg @ref LL_ADC_CHANNEL_7 (2)
AnnaBridge 171:3a7713b1edbc 3516 * @arg @ref LL_ADC_CHANNEL_8 (2)
AnnaBridge 171:3a7713b1edbc 3517 * @arg @ref LL_ADC_CHANNEL_9 (2)
AnnaBridge 171:3a7713b1edbc 3518 * @arg @ref LL_ADC_CHANNEL_10 (2)
AnnaBridge 171:3a7713b1edbc 3519 * @arg @ref LL_ADC_CHANNEL_11 (2)
AnnaBridge 171:3a7713b1edbc 3520 * @arg @ref LL_ADC_CHANNEL_12 (2)
AnnaBridge 171:3a7713b1edbc 3521 * @arg @ref LL_ADC_CHANNEL_13 (3)
AnnaBridge 171:3a7713b1edbc 3522 * @arg @ref LL_ADC_CHANNEL_14 (3)
AnnaBridge 171:3a7713b1edbc 3523 * @arg @ref LL_ADC_CHANNEL_15 (3)
AnnaBridge 171:3a7713b1edbc 3524 * @arg @ref LL_ADC_CHANNEL_16 (3)
AnnaBridge 171:3a7713b1edbc 3525 * @arg @ref LL_ADC_CHANNEL_17 (3)
AnnaBridge 171:3a7713b1edbc 3526 * @arg @ref LL_ADC_CHANNEL_18 (3)
AnnaBridge 171:3a7713b1edbc 3527 * @arg @ref LL_ADC_CHANNEL_19 (3)
AnnaBridge 171:3a7713b1edbc 3528 * @arg @ref LL_ADC_CHANNEL_20 (3)
AnnaBridge 171:3a7713b1edbc 3529 * @arg @ref LL_ADC_CHANNEL_21 (3)
AnnaBridge 171:3a7713b1edbc 3530 * @arg @ref LL_ADC_CHANNEL_22 (1)
AnnaBridge 171:3a7713b1edbc 3531 * @arg @ref LL_ADC_CHANNEL_23 (1)
AnnaBridge 171:3a7713b1edbc 3532 * @arg @ref LL_ADC_CHANNEL_24 (1)
AnnaBridge 171:3a7713b1edbc 3533 * @arg @ref LL_ADC_CHANNEL_25 (1)
AnnaBridge 171:3a7713b1edbc 3534 * @arg @ref LL_ADC_CHANNEL_26 (3)
AnnaBridge 171:3a7713b1edbc 3535 * @arg @ref LL_ADC_CHANNEL_27 (3)(4)
AnnaBridge 171:3a7713b1edbc 3536 * @arg @ref LL_ADC_CHANNEL_28 (3)(4)
AnnaBridge 171:3a7713b1edbc 3537 * @arg @ref LL_ADC_CHANNEL_29 (3)(4)
AnnaBridge 171:3a7713b1edbc 3538 * @arg @ref LL_ADC_CHANNEL_30 (3)(4)
AnnaBridge 171:3a7713b1edbc 3539 * @arg @ref LL_ADC_CHANNEL_31 (3)(4)
AnnaBridge 171:3a7713b1edbc 3540 * @arg @ref LL_ADC_CHANNEL_VREFINT (3)
AnnaBridge 171:3a7713b1edbc 3541 * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR (3)
AnnaBridge 171:3a7713b1edbc 3542 * @arg @ref LL_ADC_CHANNEL_VCOMP (3)
AnnaBridge 171:3a7713b1edbc 3543 * @arg @ref LL_ADC_CHANNEL_VOPAMP1 (3)(5)
AnnaBridge 171:3a7713b1edbc 3544 * @arg @ref LL_ADC_CHANNEL_VOPAMP2 (3)(5)
AnnaBridge 171:3a7713b1edbc 3545 * @arg @ref LL_ADC_CHANNEL_VOPAMP3 (3)(5)
AnnaBridge 171:3a7713b1edbc 3546 *
AnnaBridge 171:3a7713b1edbc 3547 * (1) On STM32L1, connection via routing interface (RI) specificity: fast channel (channel routed directly to ADC switch matrix).\n
AnnaBridge 171:3a7713b1edbc 3548 * (2) On STM32L1, for devices with feature 'channels banks' available: Channel different in bank A and bank B.\n
AnnaBridge 171:3a7713b1edbc 3549 * (3) On STM32L1, for devices with feature 'channels banks' available: Channel common to both bank A and bank B.\n
AnnaBridge 171:3a7713b1edbc 3550 * (4) On STM32L1, parameter not available on all devices: only on STM32L1 Cat.4 and Cat.5.\n
AnnaBridge 171:3a7713b1edbc 3551 * (5) On STM32L1, parameter not available on all devices: OPAMP1 and OPAMP2 available only on STM32L1 Cat.3, Cat.4 and Cat.5, OPAMP3 available only on STM32L1 Cat.4 and Cat.5
AnnaBridge 171:3a7713b1edbc 3552 * @retval None
AnnaBridge 171:3a7713b1edbc 3553 */
AnnaBridge 171:3a7713b1edbc 3554 __STATIC_INLINE void LL_ADC_INJ_SetSequencerRanks(ADC_TypeDef *ADCx, uint32_t Rank, uint32_t Channel)
AnnaBridge 171:3a7713b1edbc 3555 {
AnnaBridge 171:3a7713b1edbc 3556 /* Set bits with content of parameter "Channel" with bits position */
AnnaBridge 171:3a7713b1edbc 3557 /* in register depending on parameter "Rank". */
AnnaBridge 171:3a7713b1edbc 3558 /* Parameters "Rank" and "Channel" are used with masks because containing */
AnnaBridge 171:3a7713b1edbc 3559 /* other bits reserved for other purpose. */
AnnaBridge 171:3a7713b1edbc 3560 MODIFY_REG(ADCx->JSQR,
AnnaBridge 171:3a7713b1edbc 3561 ADC_CHANNEL_ID_NUMBER_MASK << (Rank & ADC_INJ_RANK_ID_JSQR_MASK),
AnnaBridge 171:3a7713b1edbc 3562 (Channel & ADC_CHANNEL_ID_NUMBER_MASK) << (Rank & ADC_INJ_RANK_ID_JSQR_MASK));
AnnaBridge 171:3a7713b1edbc 3563 }
AnnaBridge 171:3a7713b1edbc 3564
AnnaBridge 171:3a7713b1edbc 3565 /**
AnnaBridge 171:3a7713b1edbc 3566 * @brief Get ADC group injected sequence: channel on the selected
AnnaBridge 171:3a7713b1edbc 3567 * sequence rank.
AnnaBridge 171:3a7713b1edbc 3568 * @note Depending on devices and packages, some channels may not be available.
AnnaBridge 171:3a7713b1edbc 3569 * Refer to device datasheet for channels availability.
AnnaBridge 171:3a7713b1edbc 3570 * @note Usage of the returned channel number:
AnnaBridge 171:3a7713b1edbc 3571 * - To reinject this channel into another function LL_ADC_xxx:
AnnaBridge 171:3a7713b1edbc 3572 * the returned channel number is only partly formatted on definition
AnnaBridge 171:3a7713b1edbc 3573 * of literals LL_ADC_CHANNEL_x. Therefore, it has to be compared
AnnaBridge 171:3a7713b1edbc 3574 * with parts of literals LL_ADC_CHANNEL_x or using
AnnaBridge 171:3a7713b1edbc 3575 * helper macro @ref __LL_ADC_CHANNEL_TO_DECIMAL_NB().
AnnaBridge 171:3a7713b1edbc 3576 * Then the selected literal LL_ADC_CHANNEL_x can be used
AnnaBridge 171:3a7713b1edbc 3577 * as parameter for another function.
AnnaBridge 171:3a7713b1edbc 3578 * - To get the channel number in decimal format:
AnnaBridge 171:3a7713b1edbc 3579 * process the returned value with the helper macro
AnnaBridge 171:3a7713b1edbc 3580 * @ref __LL_ADC_CHANNEL_TO_DECIMAL_NB().
AnnaBridge 171:3a7713b1edbc 3581 * @rmtoll JSQR JSQ1 LL_ADC_INJ_SetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 3582 * JSQR JSQ2 LL_ADC_INJ_SetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 3583 * JSQR JSQ3 LL_ADC_INJ_SetSequencerRanks\n
AnnaBridge 171:3a7713b1edbc 3584 * JSQR JSQ4 LL_ADC_INJ_SetSequencerRanks
AnnaBridge 171:3a7713b1edbc 3585 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 3586 * @param Rank This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 3587 * @arg @ref LL_ADC_INJ_RANK_1
AnnaBridge 171:3a7713b1edbc 3588 * @arg @ref LL_ADC_INJ_RANK_2
AnnaBridge 171:3a7713b1edbc 3589 * @arg @ref LL_ADC_INJ_RANK_3
AnnaBridge 171:3a7713b1edbc 3590 * @arg @ref LL_ADC_INJ_RANK_4
AnnaBridge 171:3a7713b1edbc 3591 * @retval Returned value can be one of the following values:
AnnaBridge 171:3a7713b1edbc 3592 * @arg @ref LL_ADC_CHANNEL_0 (2)
AnnaBridge 171:3a7713b1edbc 3593 * @arg @ref LL_ADC_CHANNEL_1 (2)
AnnaBridge 171:3a7713b1edbc 3594 * @arg @ref LL_ADC_CHANNEL_2 (2)
AnnaBridge 171:3a7713b1edbc 3595 * @arg @ref LL_ADC_CHANNEL_3 (2)
AnnaBridge 171:3a7713b1edbc 3596 * @arg @ref LL_ADC_CHANNEL_4 (1)
AnnaBridge 171:3a7713b1edbc 3597 * @arg @ref LL_ADC_CHANNEL_5 (1)
AnnaBridge 171:3a7713b1edbc 3598 * @arg @ref LL_ADC_CHANNEL_6 (2)
AnnaBridge 171:3a7713b1edbc 3599 * @arg @ref LL_ADC_CHANNEL_7 (2)
AnnaBridge 171:3a7713b1edbc 3600 * @arg @ref LL_ADC_CHANNEL_8 (2)
AnnaBridge 171:3a7713b1edbc 3601 * @arg @ref LL_ADC_CHANNEL_9 (2)
AnnaBridge 171:3a7713b1edbc 3602 * @arg @ref LL_ADC_CHANNEL_10 (2)
AnnaBridge 171:3a7713b1edbc 3603 * @arg @ref LL_ADC_CHANNEL_11 (2)
AnnaBridge 171:3a7713b1edbc 3604 * @arg @ref LL_ADC_CHANNEL_12 (2)
AnnaBridge 171:3a7713b1edbc 3605 * @arg @ref LL_ADC_CHANNEL_13 (3)
AnnaBridge 171:3a7713b1edbc 3606 * @arg @ref LL_ADC_CHANNEL_14 (3)
AnnaBridge 171:3a7713b1edbc 3607 * @arg @ref LL_ADC_CHANNEL_15 (3)
AnnaBridge 171:3a7713b1edbc 3608 * @arg @ref LL_ADC_CHANNEL_16 (3)
AnnaBridge 171:3a7713b1edbc 3609 * @arg @ref LL_ADC_CHANNEL_17 (3)
AnnaBridge 171:3a7713b1edbc 3610 * @arg @ref LL_ADC_CHANNEL_18 (3)
AnnaBridge 171:3a7713b1edbc 3611 * @arg @ref LL_ADC_CHANNEL_19 (3)
AnnaBridge 171:3a7713b1edbc 3612 * @arg @ref LL_ADC_CHANNEL_20 (3)
AnnaBridge 171:3a7713b1edbc 3613 * @arg @ref LL_ADC_CHANNEL_21 (3)
AnnaBridge 171:3a7713b1edbc 3614 * @arg @ref LL_ADC_CHANNEL_22 (1)
AnnaBridge 171:3a7713b1edbc 3615 * @arg @ref LL_ADC_CHANNEL_23 (1)
AnnaBridge 171:3a7713b1edbc 3616 * @arg @ref LL_ADC_CHANNEL_24 (1)
AnnaBridge 171:3a7713b1edbc 3617 * @arg @ref LL_ADC_CHANNEL_25 (1)
AnnaBridge 171:3a7713b1edbc 3618 * @arg @ref LL_ADC_CHANNEL_26 (3)
AnnaBridge 171:3a7713b1edbc 3619 * @arg @ref LL_ADC_CHANNEL_27 (3)(4)
AnnaBridge 171:3a7713b1edbc 3620 * @arg @ref LL_ADC_CHANNEL_28 (3)(4)
AnnaBridge 171:3a7713b1edbc 3621 * @arg @ref LL_ADC_CHANNEL_29 (3)(4)
AnnaBridge 171:3a7713b1edbc 3622 * @arg @ref LL_ADC_CHANNEL_30 (3)(4)
AnnaBridge 171:3a7713b1edbc 3623 * @arg @ref LL_ADC_CHANNEL_31 (3)(4)
AnnaBridge 171:3a7713b1edbc 3624 * @arg @ref LL_ADC_CHANNEL_VREFINT (3)(6)
AnnaBridge 171:3a7713b1edbc 3625 * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR (3)(6)
AnnaBridge 171:3a7713b1edbc 3626 * @arg @ref LL_ADC_CHANNEL_VCOMP (3)(6)
AnnaBridge 171:3a7713b1edbc 3627 * @arg @ref LL_ADC_CHANNEL_VOPAMP1 (3)(5)
AnnaBridge 171:3a7713b1edbc 3628 * @arg @ref LL_ADC_CHANNEL_VOPAMP2 (3)(5)
AnnaBridge 171:3a7713b1edbc 3629 * @arg @ref LL_ADC_CHANNEL_VOPAMP3 (3)(5)
AnnaBridge 171:3a7713b1edbc 3630 *
AnnaBridge 171:3a7713b1edbc 3631 * (1) On STM32L1, connection via routing interface (RI) specificity: fast channel (channel routed directly to ADC switch matrix).\n
AnnaBridge 171:3a7713b1edbc 3632 * (2) On STM32L1, for devices with feature 'channels banks' available: Channel different in bank A and bank B.\n
AnnaBridge 171:3a7713b1edbc 3633 * (3) On STM32L1, for devices with feature 'channels banks' available: Channel common to both bank A and bank B.\n
AnnaBridge 171:3a7713b1edbc 3634 * (4) On STM32L1, parameter not available on all devices: only on STM32L1 Cat.4 and Cat.5.\n
AnnaBridge 171:3a7713b1edbc 3635 * (5) On STM32L1, parameter not available on all devices: OPAMP1 and OPAMP2 available only on STM32L1 Cat.3, Cat.4 and Cat.5, OPAMP3 available only on STM32L1 Cat.4 and Cat.5.\n
AnnaBridge 171:3a7713b1edbc 3636 * (6) For ADC channel read back from ADC register,
AnnaBridge 171:3a7713b1edbc 3637 * comparison with internal channel parameter to be done
AnnaBridge 171:3a7713b1edbc 3638 * using helper macro @ref __LL_ADC_CHANNEL_INTERNAL_TO_EXTERNAL().
AnnaBridge 171:3a7713b1edbc 3639 */
AnnaBridge 171:3a7713b1edbc 3640 __STATIC_INLINE uint32_t LL_ADC_INJ_GetSequencerRanks(ADC_TypeDef *ADCx, uint32_t Rank)
AnnaBridge 171:3a7713b1edbc 3641 {
AnnaBridge 171:3a7713b1edbc 3642 return (uint32_t)(READ_BIT(ADCx->JSQR,
AnnaBridge 171:3a7713b1edbc 3643 ADC_CHANNEL_ID_NUMBER_MASK << (Rank & ADC_INJ_RANK_ID_JSQR_MASK))
AnnaBridge 171:3a7713b1edbc 3644 >> (Rank & ADC_INJ_RANK_ID_JSQR_MASK)
AnnaBridge 171:3a7713b1edbc 3645 );
AnnaBridge 171:3a7713b1edbc 3646 }
AnnaBridge 171:3a7713b1edbc 3647
AnnaBridge 171:3a7713b1edbc 3648 /**
AnnaBridge 171:3a7713b1edbc 3649 * @brief Set ADC group injected conversion trigger:
AnnaBridge 171:3a7713b1edbc 3650 * independent or from ADC group regular.
AnnaBridge 171:3a7713b1edbc 3651 * @note This mode can be used to extend number of data registers
AnnaBridge 171:3a7713b1edbc 3652 * updated after one ADC conversion trigger and with data
AnnaBridge 171:3a7713b1edbc 3653 * permanently kept (not erased by successive conversions of scan of
AnnaBridge 171:3a7713b1edbc 3654 * ADC sequencer ranks), up to 5 data registers:
AnnaBridge 171:3a7713b1edbc 3655 * 1 data register on ADC group regular, 4 data registers
AnnaBridge 171:3a7713b1edbc 3656 * on ADC group injected.
AnnaBridge 171:3a7713b1edbc 3657 * @note If ADC group injected injected trigger source is set to an
AnnaBridge 171:3a7713b1edbc 3658 * external trigger, this feature must be must be set to
AnnaBridge 171:3a7713b1edbc 3659 * independent trigger.
AnnaBridge 171:3a7713b1edbc 3660 * ADC group injected automatic trigger is compliant only with
AnnaBridge 171:3a7713b1edbc 3661 * group injected trigger source set to SW start, without any
AnnaBridge 171:3a7713b1edbc 3662 * further action on ADC group injected conversion start or stop:
AnnaBridge 171:3a7713b1edbc 3663 * in this case, ADC group injected is controlled only
AnnaBridge 171:3a7713b1edbc 3664 * from ADC group regular.
AnnaBridge 171:3a7713b1edbc 3665 * @note It is not possible to enable both ADC group injected
AnnaBridge 171:3a7713b1edbc 3666 * auto-injected mode and sequencer discontinuous mode.
AnnaBridge 171:3a7713b1edbc 3667 * @rmtoll CR1 JAUTO LL_ADC_INJ_SetTrigAuto
AnnaBridge 171:3a7713b1edbc 3668 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 3669 * @param TrigAuto This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 3670 * @arg @ref LL_ADC_INJ_TRIG_INDEPENDENT
AnnaBridge 171:3a7713b1edbc 3671 * @arg @ref LL_ADC_INJ_TRIG_FROM_GRP_REGULAR
AnnaBridge 171:3a7713b1edbc 3672 * @retval None
AnnaBridge 171:3a7713b1edbc 3673 */
AnnaBridge 171:3a7713b1edbc 3674 __STATIC_INLINE void LL_ADC_INJ_SetTrigAuto(ADC_TypeDef *ADCx, uint32_t TrigAuto)
AnnaBridge 171:3a7713b1edbc 3675 {
AnnaBridge 171:3a7713b1edbc 3676 MODIFY_REG(ADCx->CR1, ADC_CR1_JAUTO, TrigAuto);
AnnaBridge 171:3a7713b1edbc 3677 }
AnnaBridge 171:3a7713b1edbc 3678
AnnaBridge 171:3a7713b1edbc 3679 /**
AnnaBridge 171:3a7713b1edbc 3680 * @brief Get ADC group injected conversion trigger:
AnnaBridge 171:3a7713b1edbc 3681 * independent or from ADC group regular.
AnnaBridge 171:3a7713b1edbc 3682 * @rmtoll CR1 JAUTO LL_ADC_INJ_GetTrigAuto
AnnaBridge 171:3a7713b1edbc 3683 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 3684 * @retval Returned value can be one of the following values:
AnnaBridge 171:3a7713b1edbc 3685 * @arg @ref LL_ADC_INJ_TRIG_INDEPENDENT
AnnaBridge 171:3a7713b1edbc 3686 * @arg @ref LL_ADC_INJ_TRIG_FROM_GRP_REGULAR
AnnaBridge 171:3a7713b1edbc 3687 */
AnnaBridge 171:3a7713b1edbc 3688 __STATIC_INLINE uint32_t LL_ADC_INJ_GetTrigAuto(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 3689 {
AnnaBridge 171:3a7713b1edbc 3690 return (uint32_t)(READ_BIT(ADCx->CR1, ADC_CR1_JAUTO));
AnnaBridge 171:3a7713b1edbc 3691 }
AnnaBridge 171:3a7713b1edbc 3692
AnnaBridge 171:3a7713b1edbc 3693 /**
AnnaBridge 171:3a7713b1edbc 3694 * @brief Set ADC group injected offset.
AnnaBridge 171:3a7713b1edbc 3695 * @note It sets:
AnnaBridge 171:3a7713b1edbc 3696 * - ADC group injected rank to which the offset programmed
AnnaBridge 171:3a7713b1edbc 3697 * will be applied
AnnaBridge 171:3a7713b1edbc 3698 * - Offset level (offset to be subtracted from the raw
AnnaBridge 171:3a7713b1edbc 3699 * converted data).
AnnaBridge 171:3a7713b1edbc 3700 * Caution: Offset format is dependent to ADC resolution:
AnnaBridge 171:3a7713b1edbc 3701 * offset has to be left-aligned on bit 11, the LSB (right bits)
AnnaBridge 171:3a7713b1edbc 3702 * are set to 0.
AnnaBridge 171:3a7713b1edbc 3703 * @note Offset cannot be enabled or disabled.
AnnaBridge 171:3a7713b1edbc 3704 * To emulate offset disabled, set an offset value equal to 0.
AnnaBridge 171:3a7713b1edbc 3705 * @rmtoll JOFR1 JOFFSET1 LL_ADC_INJ_SetOffset\n
AnnaBridge 171:3a7713b1edbc 3706 * JOFR2 JOFFSET2 LL_ADC_INJ_SetOffset\n
AnnaBridge 171:3a7713b1edbc 3707 * JOFR3 JOFFSET3 LL_ADC_INJ_SetOffset\n
AnnaBridge 171:3a7713b1edbc 3708 * JOFR4 JOFFSET4 LL_ADC_INJ_SetOffset
AnnaBridge 171:3a7713b1edbc 3709 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 3710 * @param Rank This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 3711 * @arg @ref LL_ADC_INJ_RANK_1
AnnaBridge 171:3a7713b1edbc 3712 * @arg @ref LL_ADC_INJ_RANK_2
AnnaBridge 171:3a7713b1edbc 3713 * @arg @ref LL_ADC_INJ_RANK_3
AnnaBridge 171:3a7713b1edbc 3714 * @arg @ref LL_ADC_INJ_RANK_4
AnnaBridge 171:3a7713b1edbc 3715 * @param OffsetLevel Value between Min_Data=0x000 and Max_Data=0xFFF
AnnaBridge 171:3a7713b1edbc 3716 * @retval None
AnnaBridge 171:3a7713b1edbc 3717 */
AnnaBridge 171:3a7713b1edbc 3718 __STATIC_INLINE void LL_ADC_INJ_SetOffset(ADC_TypeDef *ADCx, uint32_t Rank, uint32_t OffsetLevel)
AnnaBridge 171:3a7713b1edbc 3719 {
AnnaBridge 171:3a7713b1edbc 3720 register uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->JOFR1, __ADC_MASK_SHIFT(Rank, ADC_INJ_JOFRX_REGOFFSET_MASK));
AnnaBridge 171:3a7713b1edbc 3721
AnnaBridge 171:3a7713b1edbc 3722 MODIFY_REG(*preg,
AnnaBridge 171:3a7713b1edbc 3723 ADC_JOFR1_JOFFSET1,
AnnaBridge 171:3a7713b1edbc 3724 OffsetLevel);
AnnaBridge 171:3a7713b1edbc 3725 }
AnnaBridge 171:3a7713b1edbc 3726
AnnaBridge 171:3a7713b1edbc 3727 /**
AnnaBridge 171:3a7713b1edbc 3728 * @brief Get ADC group injected offset.
AnnaBridge 171:3a7713b1edbc 3729 * @note It gives offset level (offset to be subtracted from the raw converted data).
AnnaBridge 171:3a7713b1edbc 3730 * Caution: Offset format is dependent to ADC resolution:
AnnaBridge 171:3a7713b1edbc 3731 * offset has to be left-aligned on bit 11, the LSB (right bits)
AnnaBridge 171:3a7713b1edbc 3732 * are set to 0.
AnnaBridge 171:3a7713b1edbc 3733 * @rmtoll JOFR1 JOFFSET1 LL_ADC_INJ_GetOffset\n
AnnaBridge 171:3a7713b1edbc 3734 * JOFR2 JOFFSET2 LL_ADC_INJ_GetOffset\n
AnnaBridge 171:3a7713b1edbc 3735 * JOFR3 JOFFSET3 LL_ADC_INJ_GetOffset\n
AnnaBridge 171:3a7713b1edbc 3736 * JOFR4 JOFFSET4 LL_ADC_INJ_GetOffset
AnnaBridge 171:3a7713b1edbc 3737 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 3738 * @param Rank This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 3739 * @arg @ref LL_ADC_INJ_RANK_1
AnnaBridge 171:3a7713b1edbc 3740 * @arg @ref LL_ADC_INJ_RANK_2
AnnaBridge 171:3a7713b1edbc 3741 * @arg @ref LL_ADC_INJ_RANK_3
AnnaBridge 171:3a7713b1edbc 3742 * @arg @ref LL_ADC_INJ_RANK_4
AnnaBridge 171:3a7713b1edbc 3743 * @retval Value between Min_Data=0x000 and Max_Data=0xFFF
AnnaBridge 171:3a7713b1edbc 3744 */
AnnaBridge 171:3a7713b1edbc 3745 __STATIC_INLINE uint32_t LL_ADC_INJ_GetOffset(ADC_TypeDef *ADCx, uint32_t Rank)
AnnaBridge 171:3a7713b1edbc 3746 {
AnnaBridge 171:3a7713b1edbc 3747 register uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->JOFR1, __ADC_MASK_SHIFT(Rank, ADC_INJ_JOFRX_REGOFFSET_MASK));
AnnaBridge 171:3a7713b1edbc 3748
AnnaBridge 171:3a7713b1edbc 3749 return (uint32_t)(READ_BIT(*preg,
AnnaBridge 171:3a7713b1edbc 3750 ADC_JOFR1_JOFFSET1)
AnnaBridge 171:3a7713b1edbc 3751 );
AnnaBridge 171:3a7713b1edbc 3752 }
AnnaBridge 171:3a7713b1edbc 3753
AnnaBridge 171:3a7713b1edbc 3754 /**
AnnaBridge 171:3a7713b1edbc 3755 * @}
AnnaBridge 171:3a7713b1edbc 3756 */
AnnaBridge 171:3a7713b1edbc 3757
AnnaBridge 171:3a7713b1edbc 3758 /** @defgroup ADC_LL_EF_Configuration_Channels Configuration of ADC hierarchical scope: channels
AnnaBridge 171:3a7713b1edbc 3759 * @{
AnnaBridge 171:3a7713b1edbc 3760 */
AnnaBridge 171:3a7713b1edbc 3761
AnnaBridge 171:3a7713b1edbc 3762 /**
AnnaBridge 171:3a7713b1edbc 3763 * @brief Set sampling time of the selected ADC channel
AnnaBridge 171:3a7713b1edbc 3764 * Unit: ADC clock cycles.
AnnaBridge 171:3a7713b1edbc 3765 * @note On this device, sampling time is on channel scope: independently
AnnaBridge 171:3a7713b1edbc 3766 * of channel mapped on ADC group regular or injected.
AnnaBridge 171:3a7713b1edbc 3767 * @note In case of internal channel (VrefInt, TempSensor, ...) to be
AnnaBridge 171:3a7713b1edbc 3768 * converted:
AnnaBridge 171:3a7713b1edbc 3769 * sampling time constraints must be respected (sampling time can be
AnnaBridge 171:3a7713b1edbc 3770 * adjusted in function of ADC clock frequency and sampling time
AnnaBridge 171:3a7713b1edbc 3771 * setting).
AnnaBridge 171:3a7713b1edbc 3772 * Refer to device datasheet for timings values (parameters TS_vrefint,
AnnaBridge 171:3a7713b1edbc 3773 * TS_temp, ...).
AnnaBridge 171:3a7713b1edbc 3774 * @note Conversion time is the addition of sampling time and processing time.
AnnaBridge 171:3a7713b1edbc 3775 * Refer to reference manual for ADC processing time of
AnnaBridge 171:3a7713b1edbc 3776 * this STM32 serie.
AnnaBridge 171:3a7713b1edbc 3777 * @note In case of ADC conversion of internal channel (VrefInt,
AnnaBridge 171:3a7713b1edbc 3778 * temperature sensor, ...), a sampling time minimum value
AnnaBridge 171:3a7713b1edbc 3779 * is required.
AnnaBridge 171:3a7713b1edbc 3780 * Refer to device datasheet.
AnnaBridge 171:3a7713b1edbc 3781 * @rmtoll SMPR0 SMP31 LL_ADC_SetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3782 * SMPR0 SMP30 LL_ADC_SetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3783 * SMPR1 SMP29 LL_ADC_SetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3784 * SMPR1 SMP28 LL_ADC_SetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3785 * SMPR1 SMP27 LL_ADC_SetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3786 * SMPR1 SMP26 LL_ADC_SetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3787 * SMPR1 SMP25 LL_ADC_SetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3788 * SMPR1 SMP24 LL_ADC_SetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3789 * SMPR1 SMP23 LL_ADC_SetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3790 * SMPR1 SMP22 LL_ADC_SetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3791 * SMPR1 SMP21 LL_ADC_SetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3792 * SMPR1 SMP20 LL_ADC_SetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3793 * SMPR2 SMP19 LL_ADC_SetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3794 * SMPR2 SMP18 LL_ADC_SetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3795 * SMPR2 SMP17 LL_ADC_SetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3796 * SMPR2 SMP16 LL_ADC_SetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3797 * SMPR2 SMP15 LL_ADC_SetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3798 * SMPR2 SMP14 LL_ADC_SetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3799 * SMPR2 SMP13 LL_ADC_SetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3800 * SMPR2 SMP12 LL_ADC_SetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3801 * SMPR2 SMP11 LL_ADC_SetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3802 * SMPR2 SMP10 LL_ADC_SetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3803 * SMPR3 SMP9 LL_ADC_SetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3804 * SMPR3 SMP8 LL_ADC_SetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3805 * SMPR3 SMP7 LL_ADC_SetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3806 * SMPR3 SMP6 LL_ADC_SetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3807 * SMPR3 SMP5 LL_ADC_SetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3808 * SMPR3 SMP4 LL_ADC_SetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3809 * SMPR3 SMP3 LL_ADC_SetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3810 * SMPR3 SMP2 LL_ADC_SetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3811 * SMPR3 SMP1 LL_ADC_SetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3812 * SMPR3 SMP0 LL_ADC_SetChannelSamplingTime
AnnaBridge 171:3a7713b1edbc 3813 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 3814 * @param Channel This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 3815 * @arg @ref LL_ADC_CHANNEL_0 (2)
AnnaBridge 171:3a7713b1edbc 3816 * @arg @ref LL_ADC_CHANNEL_1 (2)
AnnaBridge 171:3a7713b1edbc 3817 * @arg @ref LL_ADC_CHANNEL_2 (2)
AnnaBridge 171:3a7713b1edbc 3818 * @arg @ref LL_ADC_CHANNEL_3 (2)
AnnaBridge 171:3a7713b1edbc 3819 * @arg @ref LL_ADC_CHANNEL_4 (1)
AnnaBridge 171:3a7713b1edbc 3820 * @arg @ref LL_ADC_CHANNEL_5 (1)
AnnaBridge 171:3a7713b1edbc 3821 * @arg @ref LL_ADC_CHANNEL_6 (2)
AnnaBridge 171:3a7713b1edbc 3822 * @arg @ref LL_ADC_CHANNEL_7 (2)
AnnaBridge 171:3a7713b1edbc 3823 * @arg @ref LL_ADC_CHANNEL_8 (2)
AnnaBridge 171:3a7713b1edbc 3824 * @arg @ref LL_ADC_CHANNEL_9 (2)
AnnaBridge 171:3a7713b1edbc 3825 * @arg @ref LL_ADC_CHANNEL_10 (2)
AnnaBridge 171:3a7713b1edbc 3826 * @arg @ref LL_ADC_CHANNEL_11 (2)
AnnaBridge 171:3a7713b1edbc 3827 * @arg @ref LL_ADC_CHANNEL_12 (2)
AnnaBridge 171:3a7713b1edbc 3828 * @arg @ref LL_ADC_CHANNEL_13 (3)
AnnaBridge 171:3a7713b1edbc 3829 * @arg @ref LL_ADC_CHANNEL_14 (3)
AnnaBridge 171:3a7713b1edbc 3830 * @arg @ref LL_ADC_CHANNEL_15 (3)
AnnaBridge 171:3a7713b1edbc 3831 * @arg @ref LL_ADC_CHANNEL_16 (3)
AnnaBridge 171:3a7713b1edbc 3832 * @arg @ref LL_ADC_CHANNEL_17 (3)
AnnaBridge 171:3a7713b1edbc 3833 * @arg @ref LL_ADC_CHANNEL_18 (3)
AnnaBridge 171:3a7713b1edbc 3834 * @arg @ref LL_ADC_CHANNEL_19 (3)
AnnaBridge 171:3a7713b1edbc 3835 * @arg @ref LL_ADC_CHANNEL_20 (3)
AnnaBridge 171:3a7713b1edbc 3836 * @arg @ref LL_ADC_CHANNEL_21 (3)
AnnaBridge 171:3a7713b1edbc 3837 * @arg @ref LL_ADC_CHANNEL_22 (1)
AnnaBridge 171:3a7713b1edbc 3838 * @arg @ref LL_ADC_CHANNEL_23 (1)
AnnaBridge 171:3a7713b1edbc 3839 * @arg @ref LL_ADC_CHANNEL_24 (1)
AnnaBridge 171:3a7713b1edbc 3840 * @arg @ref LL_ADC_CHANNEL_25 (1)
AnnaBridge 171:3a7713b1edbc 3841 * @arg @ref LL_ADC_CHANNEL_26 (3)
AnnaBridge 171:3a7713b1edbc 3842 * @arg @ref LL_ADC_CHANNEL_27 (3)(4)
AnnaBridge 171:3a7713b1edbc 3843 * @arg @ref LL_ADC_CHANNEL_28 (3)(4)
AnnaBridge 171:3a7713b1edbc 3844 * @arg @ref LL_ADC_CHANNEL_29 (3)(4)
AnnaBridge 171:3a7713b1edbc 3845 * @arg @ref LL_ADC_CHANNEL_30 (3)(4)
AnnaBridge 171:3a7713b1edbc 3846 * @arg @ref LL_ADC_CHANNEL_31 (3)(4)
AnnaBridge 171:3a7713b1edbc 3847 * @arg @ref LL_ADC_CHANNEL_VREFINT (3)
AnnaBridge 171:3a7713b1edbc 3848 * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR (3)
AnnaBridge 171:3a7713b1edbc 3849 * @arg @ref LL_ADC_CHANNEL_VCOMP (3)
AnnaBridge 171:3a7713b1edbc 3850 * @arg @ref LL_ADC_CHANNEL_VOPAMP1 (3)(5)
AnnaBridge 171:3a7713b1edbc 3851 * @arg @ref LL_ADC_CHANNEL_VOPAMP2 (3)(5)
AnnaBridge 171:3a7713b1edbc 3852 * @arg @ref LL_ADC_CHANNEL_VOPAMP3 (3)(5)
AnnaBridge 171:3a7713b1edbc 3853 *
AnnaBridge 171:3a7713b1edbc 3854 * (1) On STM32L1, connection via routing interface (RI) specificity: fast channel (channel routed directly to ADC switch matrix).\n
AnnaBridge 171:3a7713b1edbc 3855 * (2) On STM32L1, for devices with feature 'channels banks' available: Channel different in bank A and bank B.\n
AnnaBridge 171:3a7713b1edbc 3856 * (3) On STM32L1, for devices with feature 'channels banks' available: Channel common to both bank A and bank B.\n
AnnaBridge 171:3a7713b1edbc 3857 * (4) On STM32L1, parameter not available on all devices: only on STM32L1 Cat.4 and Cat.5.\n
AnnaBridge 171:3a7713b1edbc 3858 * (5) On STM32L1, parameter not available on all devices: OPAMP1 and OPAMP2 available only on STM32L1 Cat.3, Cat.4 and Cat.5, OPAMP3 available only on STM32L1 Cat.4 and Cat.5
AnnaBridge 171:3a7713b1edbc 3859 * @param SamplingTime This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 3860 * @arg @ref LL_ADC_SAMPLINGTIME_4CYCLES
AnnaBridge 171:3a7713b1edbc 3861 * @arg @ref LL_ADC_SAMPLINGTIME_9CYCLES
AnnaBridge 171:3a7713b1edbc 3862 * @arg @ref LL_ADC_SAMPLINGTIME_16CYCLES
AnnaBridge 171:3a7713b1edbc 3863 * @arg @ref LL_ADC_SAMPLINGTIME_24CYCLES
AnnaBridge 171:3a7713b1edbc 3864 * @arg @ref LL_ADC_SAMPLINGTIME_48CYCLES
AnnaBridge 171:3a7713b1edbc 3865 * @arg @ref LL_ADC_SAMPLINGTIME_96CYCLES
AnnaBridge 171:3a7713b1edbc 3866 * @arg @ref LL_ADC_SAMPLINGTIME_192CYCLES
AnnaBridge 171:3a7713b1edbc 3867 * @arg @ref LL_ADC_SAMPLINGTIME_384CYCLES
AnnaBridge 171:3a7713b1edbc 3868 * @retval None
AnnaBridge 171:3a7713b1edbc 3869 */
AnnaBridge 171:3a7713b1edbc 3870 __STATIC_INLINE void LL_ADC_SetChannelSamplingTime(ADC_TypeDef *ADCx, uint32_t Channel, uint32_t SamplingTime)
AnnaBridge 171:3a7713b1edbc 3871 {
AnnaBridge 171:3a7713b1edbc 3872 /* Set bits with content of parameter "SamplingTime" with bits position */
AnnaBridge 171:3a7713b1edbc 3873 /* in register and register position depending on parameter "Channel". */
AnnaBridge 171:3a7713b1edbc 3874 /* Parameter "Channel" is used with masks because containing */
AnnaBridge 171:3a7713b1edbc 3875 /* other bits reserved for other purpose. */
AnnaBridge 171:3a7713b1edbc 3876 register uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->SMPR1, __ADC_MASK_SHIFT(Channel, ADC_CHANNEL_SMPRX_REGOFFSET_MASK));
AnnaBridge 171:3a7713b1edbc 3877
AnnaBridge 171:3a7713b1edbc 3878 MODIFY_REG(*preg,
AnnaBridge 171:3a7713b1edbc 3879 ADC_SMPR3_SMP0 << __ADC_MASK_SHIFT(Channel, ADC_CHANNEL_SMPx_BITOFFSET_MASK),
AnnaBridge 171:3a7713b1edbc 3880 SamplingTime << __ADC_MASK_SHIFT(Channel, ADC_CHANNEL_SMPx_BITOFFSET_MASK));
AnnaBridge 171:3a7713b1edbc 3881 }
AnnaBridge 171:3a7713b1edbc 3882
AnnaBridge 171:3a7713b1edbc 3883 /**
AnnaBridge 171:3a7713b1edbc 3884 * @brief Get sampling time of the selected ADC channel
AnnaBridge 171:3a7713b1edbc 3885 * Unit: ADC clock cycles.
AnnaBridge 171:3a7713b1edbc 3886 * @note On this device, sampling time is on channel scope: independently
AnnaBridge 171:3a7713b1edbc 3887 * of channel mapped on ADC group regular or injected.
AnnaBridge 171:3a7713b1edbc 3888 * @note Conversion time is the addition of sampling time and processing time.
AnnaBridge 171:3a7713b1edbc 3889 * Refer to reference manual for ADC processing time of
AnnaBridge 171:3a7713b1edbc 3890 * this STM32 serie.
AnnaBridge 171:3a7713b1edbc 3891 * @rmtoll SMPR0 SMP31 LL_ADC_GetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3892 * SMPR0 SMP30 LL_ADC_GetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3893 * SMPR1 SMP29 LL_ADC_GetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3894 * SMPR1 SMP28 LL_ADC_GetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3895 * SMPR1 SMP27 LL_ADC_GetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3896 * SMPR1 SMP26 LL_ADC_GetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3897 * SMPR1 SMP25 LL_ADC_GetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3898 * SMPR1 SMP24 LL_ADC_GetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3899 * SMPR1 SMP23 LL_ADC_GetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3900 * SMPR1 SMP22 LL_ADC_GetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3901 * SMPR1 SMP21 LL_ADC_GetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3902 * SMPR1 SMP20 LL_ADC_GetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3903 * SMPR2 SMP19 LL_ADC_GetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3904 * SMPR2 SMP18 LL_ADC_GetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3905 * SMPR2 SMP17 LL_ADC_GetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3906 * SMPR2 SMP16 LL_ADC_GetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3907 * SMPR2 SMP15 LL_ADC_GetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3908 * SMPR2 SMP14 LL_ADC_GetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3909 * SMPR2 SMP13 LL_ADC_GetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3910 * SMPR2 SMP12 LL_ADC_GetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3911 * SMPR2 SMP11 LL_ADC_GetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3912 * SMPR2 SMP10 LL_ADC_GetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3913 * SMPR3 SMP9 LL_ADC_GetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3914 * SMPR3 SMP8 LL_ADC_GetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3915 * SMPR3 SMP7 LL_ADC_GetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3916 * SMPR3 SMP6 LL_ADC_GetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3917 * SMPR3 SMP5 LL_ADC_GetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3918 * SMPR3 SMP4 LL_ADC_GetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3919 * SMPR3 SMP3 LL_ADC_GetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3920 * SMPR3 SMP2 LL_ADC_GetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3921 * SMPR3 SMP1 LL_ADC_GetChannelSamplingTime\n
AnnaBridge 171:3a7713b1edbc 3922 * SMPR3 SMP0 LL_ADC_GetChannelSamplingTime
AnnaBridge 171:3a7713b1edbc 3923 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 3924 * @param Channel This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 3925 * @arg @ref LL_ADC_CHANNEL_0 (2)
AnnaBridge 171:3a7713b1edbc 3926 * @arg @ref LL_ADC_CHANNEL_1 (2)
AnnaBridge 171:3a7713b1edbc 3927 * @arg @ref LL_ADC_CHANNEL_2 (2)
AnnaBridge 171:3a7713b1edbc 3928 * @arg @ref LL_ADC_CHANNEL_3 (2)
AnnaBridge 171:3a7713b1edbc 3929 * @arg @ref LL_ADC_CHANNEL_4 (1)
AnnaBridge 171:3a7713b1edbc 3930 * @arg @ref LL_ADC_CHANNEL_5 (1)
AnnaBridge 171:3a7713b1edbc 3931 * @arg @ref LL_ADC_CHANNEL_6 (2)
AnnaBridge 171:3a7713b1edbc 3932 * @arg @ref LL_ADC_CHANNEL_7 (2)
AnnaBridge 171:3a7713b1edbc 3933 * @arg @ref LL_ADC_CHANNEL_8 (2)
AnnaBridge 171:3a7713b1edbc 3934 * @arg @ref LL_ADC_CHANNEL_9 (2)
AnnaBridge 171:3a7713b1edbc 3935 * @arg @ref LL_ADC_CHANNEL_10 (2)
AnnaBridge 171:3a7713b1edbc 3936 * @arg @ref LL_ADC_CHANNEL_11 (2)
AnnaBridge 171:3a7713b1edbc 3937 * @arg @ref LL_ADC_CHANNEL_12 (2)
AnnaBridge 171:3a7713b1edbc 3938 * @arg @ref LL_ADC_CHANNEL_13 (3)
AnnaBridge 171:3a7713b1edbc 3939 * @arg @ref LL_ADC_CHANNEL_14 (3)
AnnaBridge 171:3a7713b1edbc 3940 * @arg @ref LL_ADC_CHANNEL_15 (3)
AnnaBridge 171:3a7713b1edbc 3941 * @arg @ref LL_ADC_CHANNEL_16 (3)
AnnaBridge 171:3a7713b1edbc 3942 * @arg @ref LL_ADC_CHANNEL_17 (3)
AnnaBridge 171:3a7713b1edbc 3943 * @arg @ref LL_ADC_CHANNEL_18 (3)
AnnaBridge 171:3a7713b1edbc 3944 * @arg @ref LL_ADC_CHANNEL_19 (3)
AnnaBridge 171:3a7713b1edbc 3945 * @arg @ref LL_ADC_CHANNEL_20 (3)
AnnaBridge 171:3a7713b1edbc 3946 * @arg @ref LL_ADC_CHANNEL_21 (3)
AnnaBridge 171:3a7713b1edbc 3947 * @arg @ref LL_ADC_CHANNEL_22 (1)
AnnaBridge 171:3a7713b1edbc 3948 * @arg @ref LL_ADC_CHANNEL_23 (1)
AnnaBridge 171:3a7713b1edbc 3949 * @arg @ref LL_ADC_CHANNEL_24 (1)
AnnaBridge 171:3a7713b1edbc 3950 * @arg @ref LL_ADC_CHANNEL_25 (1)
AnnaBridge 171:3a7713b1edbc 3951 * @arg @ref LL_ADC_CHANNEL_26 (3)
AnnaBridge 171:3a7713b1edbc 3952 * @arg @ref LL_ADC_CHANNEL_27 (3)(4)
AnnaBridge 171:3a7713b1edbc 3953 * @arg @ref LL_ADC_CHANNEL_28 (3)(4)
AnnaBridge 171:3a7713b1edbc 3954 * @arg @ref LL_ADC_CHANNEL_29 (3)(4)
AnnaBridge 171:3a7713b1edbc 3955 * @arg @ref LL_ADC_CHANNEL_30 (3)(4)
AnnaBridge 171:3a7713b1edbc 3956 * @arg @ref LL_ADC_CHANNEL_31 (3)(4)
AnnaBridge 171:3a7713b1edbc 3957 * @arg @ref LL_ADC_CHANNEL_VREFINT (3)
AnnaBridge 171:3a7713b1edbc 3958 * @arg @ref LL_ADC_CHANNEL_TEMPSENSOR (3)
AnnaBridge 171:3a7713b1edbc 3959 * @arg @ref LL_ADC_CHANNEL_VCOMP (3)
AnnaBridge 171:3a7713b1edbc 3960 * @arg @ref LL_ADC_CHANNEL_VOPAMP1 (3)(5)
AnnaBridge 171:3a7713b1edbc 3961 * @arg @ref LL_ADC_CHANNEL_VOPAMP2 (3)(5)
AnnaBridge 171:3a7713b1edbc 3962 * @arg @ref LL_ADC_CHANNEL_VOPAMP3 (3)(5)
AnnaBridge 171:3a7713b1edbc 3963 *
AnnaBridge 171:3a7713b1edbc 3964 * (1) On STM32L1, connection via routing interface (RI) specificity: fast channel (channel routed directly to ADC switch matrix).\n
AnnaBridge 171:3a7713b1edbc 3965 * (2) On STM32L1, for devices with feature 'channels banks' available: Channel different in bank A and bank B.\n
AnnaBridge 171:3a7713b1edbc 3966 * (3) On STM32L1, for devices with feature 'channels banks' available: Channel common to both bank A and bank B.\n
AnnaBridge 171:3a7713b1edbc 3967 * (4) On STM32L1, parameter not available on all devices: only on STM32L1 Cat.4 and Cat.5.\n
AnnaBridge 171:3a7713b1edbc 3968 * (5) On STM32L1, parameter not available on all devices: OPAMP1 and OPAMP2 available only on STM32L1 Cat.3, Cat.4 and Cat.5, OPAMP3 available only on STM32L1 Cat.4 and Cat.5
AnnaBridge 171:3a7713b1edbc 3969 * @retval Returned value can be one of the following values:
AnnaBridge 171:3a7713b1edbc 3970 * @arg @ref LL_ADC_SAMPLINGTIME_4CYCLES
AnnaBridge 171:3a7713b1edbc 3971 * @arg @ref LL_ADC_SAMPLINGTIME_9CYCLES
AnnaBridge 171:3a7713b1edbc 3972 * @arg @ref LL_ADC_SAMPLINGTIME_16CYCLES
AnnaBridge 171:3a7713b1edbc 3973 * @arg @ref LL_ADC_SAMPLINGTIME_24CYCLES
AnnaBridge 171:3a7713b1edbc 3974 * @arg @ref LL_ADC_SAMPLINGTIME_48CYCLES
AnnaBridge 171:3a7713b1edbc 3975 * @arg @ref LL_ADC_SAMPLINGTIME_96CYCLES
AnnaBridge 171:3a7713b1edbc 3976 * @arg @ref LL_ADC_SAMPLINGTIME_192CYCLES
AnnaBridge 171:3a7713b1edbc 3977 * @arg @ref LL_ADC_SAMPLINGTIME_384CYCLES
AnnaBridge 171:3a7713b1edbc 3978 */
AnnaBridge 171:3a7713b1edbc 3979 __STATIC_INLINE uint32_t LL_ADC_GetChannelSamplingTime(ADC_TypeDef *ADCx, uint32_t Channel)
AnnaBridge 171:3a7713b1edbc 3980 {
AnnaBridge 171:3a7713b1edbc 3981 register uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->SMPR1, __ADC_MASK_SHIFT(Channel, ADC_CHANNEL_SMPRX_REGOFFSET_MASK));
AnnaBridge 171:3a7713b1edbc 3982
AnnaBridge 171:3a7713b1edbc 3983 return (uint32_t)(READ_BIT(*preg,
AnnaBridge 171:3a7713b1edbc 3984 ADC_SMPR3_SMP0 << __ADC_MASK_SHIFT(Channel, ADC_CHANNEL_SMPx_BITOFFSET_MASK))
AnnaBridge 171:3a7713b1edbc 3985 >> __ADC_MASK_SHIFT(Channel, ADC_CHANNEL_SMPx_BITOFFSET_MASK)
AnnaBridge 171:3a7713b1edbc 3986 );
AnnaBridge 171:3a7713b1edbc 3987 }
AnnaBridge 171:3a7713b1edbc 3988
AnnaBridge 171:3a7713b1edbc 3989 #if defined(COMP_CSR_FCH3)
AnnaBridge 171:3a7713b1edbc 3990 /**
AnnaBridge 171:3a7713b1edbc 3991 * @brief Set ADC channels routing.
AnnaBridge 171:3a7713b1edbc 3992 * @note Channel routing set configuration between ADC IP and GPIO pads,
AnnaBridge 171:3a7713b1edbc 3993 * it is used to increase ADC channels speed (setting of
AnnaBridge 171:3a7713b1edbc 3994 * direct channel).
AnnaBridge 171:3a7713b1edbc 3995 * @note This feature is specific to STM32L1, on devices
AnnaBridge 171:3a7713b1edbc 3996 * category Cat.3, Cat.4, Cat.5.
AnnaBridge 171:3a7713b1edbc 3997 * To use this function, COMP RCC clock domain must be enabled.
AnnaBridge 171:3a7713b1edbc 3998 * Refer to @ref LL_APB1_GRP1_PERIPH_COMP.
AnnaBridge 171:3a7713b1edbc 3999 * @rmtoll CSR FCH3 LL_ADC_SetChannelRouting
AnnaBridge 171:3a7713b1edbc 4000 * @rmtoll CSR FCH8 LL_ADC_SetChannelRouting
AnnaBridge 171:3a7713b1edbc 4001 * @rmtoll CSR RCH13 LL_ADC_SetChannelRouting
AnnaBridge 171:3a7713b1edbc 4002 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 4003 * @param Channel This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 4004 * @arg @ref LL_ADC_CHANNEL_3_ROUTING (1)
AnnaBridge 171:3a7713b1edbc 4005 * @arg @ref LL_ADC_CHANNEL_8_ROUTING (2)
AnnaBridge 171:3a7713b1edbc 4006 * @arg @ref LL_ADC_CHANNEL_13_ROUTING (3)
AnnaBridge 171:3a7713b1edbc 4007 *
AnnaBridge 171:3a7713b1edbc 4008 * (1) Used as ADC direct channel (fast channel) if OPAMP1 is
AnnaBridge 171:3a7713b1edbc 4009 * in power down mode.\n
AnnaBridge 171:3a7713b1edbc 4010 * (2) Used as ADC direct channel (fast channel) if OPAMP2 is
AnnaBridge 171:3a7713b1edbc 4011 * in power down mode.\n
AnnaBridge 171:3a7713b1edbc 4012 * (3) Used as ADC re-routed channel if OPAMP3 is
AnnaBridge 171:3a7713b1edbc 4013 * in power down mode.
AnnaBridge 171:3a7713b1edbc 4014 * Otherwise, channel 13 is connected to OPAMP3 output and routed
AnnaBridge 171:3a7713b1edbc 4015 * through switches COMP1_SW1 and VCOMP to ADC switch matrix.
AnnaBridge 171:3a7713b1edbc 4016 * (Note: OPAMP3 is available on STM32L1 Cat.4 only).
AnnaBridge 171:3a7713b1edbc 4017 * @param Routing This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 4018 * @arg @ref LL_ADC_CHANNEL_ROUTING_DEFAULT
AnnaBridge 171:3a7713b1edbc 4019 * @arg @ref LL_ADC_CHANNEL_ROUTING_DIRECT
AnnaBridge 171:3a7713b1edbc 4020 */
AnnaBridge 171:3a7713b1edbc 4021 __STATIC_INLINE void LL_ADC_SetChannelRouting(ADC_TypeDef *ADCx, uint32_t Channel, uint32_t Routing)
AnnaBridge 171:3a7713b1edbc 4022 {
AnnaBridge 171:3a7713b1edbc 4023 /* Note: Bit is located in comparator IP, but dedicated to ADC */
AnnaBridge 171:3a7713b1edbc 4024 MODIFY_REG(COMP->CSR, Channel, (Routing << POSITION_VAL(Channel)));
AnnaBridge 171:3a7713b1edbc 4025 }
AnnaBridge 171:3a7713b1edbc 4026
AnnaBridge 171:3a7713b1edbc 4027 /**
AnnaBridge 171:3a7713b1edbc 4028 * @brief Get ADC channels speed.
AnnaBridge 171:3a7713b1edbc 4029 * @note Channel routing set configuration between ADC IP and GPIO pads,
AnnaBridge 171:3a7713b1edbc 4030 * it is used to increase ADC channels speed (setting of
AnnaBridge 171:3a7713b1edbc 4031 * direct channel).
AnnaBridge 171:3a7713b1edbc 4032 * @note This feature is specific to STM32L1, on devices
AnnaBridge 171:3a7713b1edbc 4033 * category Cat.3, Cat.4, Cat.5.
AnnaBridge 171:3a7713b1edbc 4034 * To use this function, COMP RCC clock domain must be enabled.
AnnaBridge 171:3a7713b1edbc 4035 * Refer to @ref LL_APB1_GRP1_PERIPH_COMP.
AnnaBridge 171:3a7713b1edbc 4036 * @rmtoll CSR FCH3 LL_ADC_GetChannelRouting
AnnaBridge 171:3a7713b1edbc 4037 * @rmtoll CSR FCH8 LL_ADC_GetChannelRouting
AnnaBridge 171:3a7713b1edbc 4038 * @rmtoll CSR RCH13 LL_ADC_GetChannelRouting
AnnaBridge 171:3a7713b1edbc 4039 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 4040 * @param Channel This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 4041 * @arg @ref LL_ADC_CHANNEL_3_ROUTING (1)
AnnaBridge 171:3a7713b1edbc 4042 * @arg @ref LL_ADC_CHANNEL_8_ROUTING (2)
AnnaBridge 171:3a7713b1edbc 4043 * @arg @ref LL_ADC_CHANNEL_13_ROUTING (3)
AnnaBridge 171:3a7713b1edbc 4044 *
AnnaBridge 171:3a7713b1edbc 4045 * (1) Used as ADC direct channel (fast channel) if OPAMP1 is
AnnaBridge 171:3a7713b1edbc 4046 * in power down mode.\n
AnnaBridge 171:3a7713b1edbc 4047 * (2) Used as ADC direct channel (fast channel) if OPAMP2 is
AnnaBridge 171:3a7713b1edbc 4048 * in power down mode.\n
AnnaBridge 171:3a7713b1edbc 4049 * (3) Used as ADC re-routed channel if OPAMP3 is
AnnaBridge 171:3a7713b1edbc 4050 * in power down mode.
AnnaBridge 171:3a7713b1edbc 4051 * Otherwise, channel 13 is connected to OPAMP3 output and routed
AnnaBridge 171:3a7713b1edbc 4052 * through switches COMP1_SW1 and VCOMP to ADC switch matrix.
AnnaBridge 171:3a7713b1edbc 4053 * (Note: OPAMP3 is available on STM32L1 Cat.4 only).
AnnaBridge 171:3a7713b1edbc 4054 * @retval Returned value can be one of the following values:
AnnaBridge 171:3a7713b1edbc 4055 * @arg @ref LL_ADC_CHANNEL_ROUTING_DEFAULT
AnnaBridge 171:3a7713b1edbc 4056 * @arg @ref LL_ADC_CHANNEL_ROUTING_DIRECT
AnnaBridge 171:3a7713b1edbc 4057 */
AnnaBridge 171:3a7713b1edbc 4058 __STATIC_INLINE uint32_t LL_ADC_GetChannelRouting(ADC_TypeDef *ADCx, uint32_t Channel)
AnnaBridge 171:3a7713b1edbc 4059 {
AnnaBridge 171:3a7713b1edbc 4060 /* Note: Bit is located in comparator IP, but dedicated to ADC */
AnnaBridge 171:3a7713b1edbc 4061 return (uint32_t)(READ_BIT(COMP->CSR, Channel) >> POSITION_VAL(Channel));
AnnaBridge 171:3a7713b1edbc 4062 }
AnnaBridge 171:3a7713b1edbc 4063 #endif
AnnaBridge 171:3a7713b1edbc 4064
AnnaBridge 171:3a7713b1edbc 4065 /**
AnnaBridge 171:3a7713b1edbc 4066 * @}
AnnaBridge 171:3a7713b1edbc 4067 */
AnnaBridge 171:3a7713b1edbc 4068
AnnaBridge 171:3a7713b1edbc 4069 /** @defgroup ADC_LL_EF_Configuration_ADC_AnalogWatchdog Configuration of ADC transversal scope: analog watchdog
AnnaBridge 171:3a7713b1edbc 4070 * @{
AnnaBridge 171:3a7713b1edbc 4071 */
AnnaBridge 171:3a7713b1edbc 4072
AnnaBridge 171:3a7713b1edbc 4073 /**
AnnaBridge 171:3a7713b1edbc 4074 * @brief Set ADC analog watchdog monitored channels:
AnnaBridge 171:3a7713b1edbc 4075 * a single channel or all channels,
AnnaBridge 171:3a7713b1edbc 4076 * on ADC groups regular and-or injected.
AnnaBridge 171:3a7713b1edbc 4077 * @note Once monitored channels are selected, analog watchdog
AnnaBridge 171:3a7713b1edbc 4078 * is enabled.
AnnaBridge 171:3a7713b1edbc 4079 * @note In case of need to define a single channel to monitor
AnnaBridge 171:3a7713b1edbc 4080 * with analog watchdog from sequencer channel definition,
AnnaBridge 171:3a7713b1edbc 4081 * use helper macro @ref __LL_ADC_ANALOGWD_CHANNEL_GROUP().
AnnaBridge 171:3a7713b1edbc 4082 * @note On this STM32 serie, there is only 1 kind of analog watchdog
AnnaBridge 171:3a7713b1edbc 4083 * instance:
AnnaBridge 171:3a7713b1edbc 4084 * - AWD standard (instance AWD1):
AnnaBridge 171:3a7713b1edbc 4085 * - channels monitored: can monitor 1 channel or all channels.
AnnaBridge 171:3a7713b1edbc 4086 * - groups monitored: ADC groups regular and-or injected.
AnnaBridge 171:3a7713b1edbc 4087 * - resolution: resolution is not limited (corresponds to
AnnaBridge 171:3a7713b1edbc 4088 * ADC resolution configured).
AnnaBridge 171:3a7713b1edbc 4089 * @rmtoll CR1 AWD1CH LL_ADC_SetAnalogWDMonitChannels\n
AnnaBridge 171:3a7713b1edbc 4090 * CR1 AWD1SGL LL_ADC_SetAnalogWDMonitChannels\n
AnnaBridge 171:3a7713b1edbc 4091 * CR1 AWD1EN LL_ADC_SetAnalogWDMonitChannels
AnnaBridge 171:3a7713b1edbc 4092 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 4093 * @param AWDChannelGroup This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 4094 * @arg @ref LL_ADC_AWD_DISABLE
AnnaBridge 171:3a7713b1edbc 4095 * @arg @ref LL_ADC_AWD_ALL_CHANNELS_REG
AnnaBridge 171:3a7713b1edbc 4096 * @arg @ref LL_ADC_AWD_ALL_CHANNELS_INJ
AnnaBridge 171:3a7713b1edbc 4097 * @arg @ref LL_ADC_AWD_ALL_CHANNELS_REG_INJ
AnnaBridge 171:3a7713b1edbc 4098 * @arg @ref LL_ADC_AWD_CHANNEL_0_REG (2)
AnnaBridge 171:3a7713b1edbc 4099 * @arg @ref LL_ADC_AWD_CHANNEL_0_INJ (2)
AnnaBridge 171:3a7713b1edbc 4100 * @arg @ref LL_ADC_AWD_CHANNEL_0_REG_INJ (2)
AnnaBridge 171:3a7713b1edbc 4101 * @arg @ref LL_ADC_AWD_CHANNEL_1_REG (2)
AnnaBridge 171:3a7713b1edbc 4102 * @arg @ref LL_ADC_AWD_CHANNEL_1_INJ (2)
AnnaBridge 171:3a7713b1edbc 4103 * @arg @ref LL_ADC_AWD_CHANNEL_1_REG_INJ (2)
AnnaBridge 171:3a7713b1edbc 4104 * @arg @ref LL_ADC_AWD_CHANNEL_2_REG (2)
AnnaBridge 171:3a7713b1edbc 4105 * @arg @ref LL_ADC_AWD_CHANNEL_2_INJ (2)
AnnaBridge 171:3a7713b1edbc 4106 * @arg @ref LL_ADC_AWD_CHANNEL_2_REG_INJ (2)
AnnaBridge 171:3a7713b1edbc 4107 * @arg @ref LL_ADC_AWD_CHANNEL_3_REG (2)
AnnaBridge 171:3a7713b1edbc 4108 * @arg @ref LL_ADC_AWD_CHANNEL_3_INJ (2)
AnnaBridge 171:3a7713b1edbc 4109 * @arg @ref LL_ADC_AWD_CHANNEL_3_REG_INJ (2)
AnnaBridge 171:3a7713b1edbc 4110 * @arg @ref LL_ADC_AWD_CHANNEL_4_REG (1)
AnnaBridge 171:3a7713b1edbc 4111 * @arg @ref LL_ADC_AWD_CHANNEL_4_INJ (1)
AnnaBridge 171:3a7713b1edbc 4112 * @arg @ref LL_ADC_AWD_CHANNEL_4_REG_INJ (1)
AnnaBridge 171:3a7713b1edbc 4113 * @arg @ref LL_ADC_AWD_CHANNEL_5_REG (1)
AnnaBridge 171:3a7713b1edbc 4114 * @arg @ref LL_ADC_AWD_CHANNEL_5_INJ (1)
AnnaBridge 171:3a7713b1edbc 4115 * @arg @ref LL_ADC_AWD_CHANNEL_5_REG_INJ (1)
AnnaBridge 171:3a7713b1edbc 4116 * @arg @ref LL_ADC_AWD_CHANNEL_6_REG (2)
AnnaBridge 171:3a7713b1edbc 4117 * @arg @ref LL_ADC_AWD_CHANNEL_6_INJ (2)
AnnaBridge 171:3a7713b1edbc 4118 * @arg @ref LL_ADC_AWD_CHANNEL_6_REG_INJ (2)
AnnaBridge 171:3a7713b1edbc 4119 * @arg @ref LL_ADC_AWD_CHANNEL_7_REG (2)
AnnaBridge 171:3a7713b1edbc 4120 * @arg @ref LL_ADC_AWD_CHANNEL_7_INJ (2)
AnnaBridge 171:3a7713b1edbc 4121 * @arg @ref LL_ADC_AWD_CHANNEL_7_REG_INJ (2)
AnnaBridge 171:3a7713b1edbc 4122 * @arg @ref LL_ADC_AWD_CHANNEL_8_REG (2)
AnnaBridge 171:3a7713b1edbc 4123 * @arg @ref LL_ADC_AWD_CHANNEL_8_INJ (2)
AnnaBridge 171:3a7713b1edbc 4124 * @arg @ref LL_ADC_AWD_CHANNEL_8_REG_INJ (2)
AnnaBridge 171:3a7713b1edbc 4125 * @arg @ref LL_ADC_AWD_CHANNEL_9_REG (2)
AnnaBridge 171:3a7713b1edbc 4126 * @arg @ref LL_ADC_AWD_CHANNEL_9_INJ (2)
AnnaBridge 171:3a7713b1edbc 4127 * @arg @ref LL_ADC_AWD_CHANNEL_9_REG_INJ (2)
AnnaBridge 171:3a7713b1edbc 4128 * @arg @ref LL_ADC_AWD_CHANNEL_10_REG (2)
AnnaBridge 171:3a7713b1edbc 4129 * @arg @ref LL_ADC_AWD_CHANNEL_10_INJ (2)
AnnaBridge 171:3a7713b1edbc 4130 * @arg @ref LL_ADC_AWD_CHANNEL_10_REG_INJ (2)
AnnaBridge 171:3a7713b1edbc 4131 * @arg @ref LL_ADC_AWD_CHANNEL_11_REG (2)
AnnaBridge 171:3a7713b1edbc 4132 * @arg @ref LL_ADC_AWD_CHANNEL_11_INJ (2)
AnnaBridge 171:3a7713b1edbc 4133 * @arg @ref LL_ADC_AWD_CHANNEL_11_REG_INJ (2)
AnnaBridge 171:3a7713b1edbc 4134 * @arg @ref LL_ADC_AWD_CHANNEL_12_REG (2)
AnnaBridge 171:3a7713b1edbc 4135 * @arg @ref LL_ADC_AWD_CHANNEL_12_INJ (2)
AnnaBridge 171:3a7713b1edbc 4136 * @arg @ref LL_ADC_AWD_CHANNEL_12_REG_INJ (2)
AnnaBridge 171:3a7713b1edbc 4137 * @arg @ref LL_ADC_AWD_CHANNEL_13_REG (3)
AnnaBridge 171:3a7713b1edbc 4138 * @arg @ref LL_ADC_AWD_CHANNEL_13_INJ (3)
AnnaBridge 171:3a7713b1edbc 4139 * @arg @ref LL_ADC_AWD_CHANNEL_13_REG_INJ (3)
AnnaBridge 171:3a7713b1edbc 4140 * @arg @ref LL_ADC_AWD_CHANNEL_14_REG (3)
AnnaBridge 171:3a7713b1edbc 4141 * @arg @ref LL_ADC_AWD_CHANNEL_14_INJ (3)
AnnaBridge 171:3a7713b1edbc 4142 * @arg @ref LL_ADC_AWD_CHANNEL_14_REG_INJ (3)
AnnaBridge 171:3a7713b1edbc 4143 * @arg @ref LL_ADC_AWD_CHANNEL_15_REG (3)
AnnaBridge 171:3a7713b1edbc 4144 * @arg @ref LL_ADC_AWD_CHANNEL_15_INJ (3)
AnnaBridge 171:3a7713b1edbc 4145 * @arg @ref LL_ADC_AWD_CHANNEL_15_REG_INJ (3)
AnnaBridge 171:3a7713b1edbc 4146 * @arg @ref LL_ADC_AWD_CHANNEL_16_REG (3)
AnnaBridge 171:3a7713b1edbc 4147 * @arg @ref LL_ADC_AWD_CHANNEL_16_INJ (3)
AnnaBridge 171:3a7713b1edbc 4148 * @arg @ref LL_ADC_AWD_CHANNEL_16_REG_INJ (3)
AnnaBridge 171:3a7713b1edbc 4149 * @arg @ref LL_ADC_AWD_CHANNEL_17_REG (3)
AnnaBridge 171:3a7713b1edbc 4150 * @arg @ref LL_ADC_AWD_CHANNEL_17_INJ (3)
AnnaBridge 171:3a7713b1edbc 4151 * @arg @ref LL_ADC_AWD_CHANNEL_17_REG_INJ (3)
AnnaBridge 171:3a7713b1edbc 4152 * @arg @ref LL_ADC_AWD_CHANNEL_18_REG (3)
AnnaBridge 171:3a7713b1edbc 4153 * @arg @ref LL_ADC_AWD_CHANNEL_18_INJ (3)
AnnaBridge 171:3a7713b1edbc 4154 * @arg @ref LL_ADC_AWD_CHANNEL_18_REG_INJ (3)
AnnaBridge 171:3a7713b1edbc 4155 * @arg @ref LL_ADC_AWD_CHANNEL_19_REG (3)
AnnaBridge 171:3a7713b1edbc 4156 * @arg @ref LL_ADC_AWD_CHANNEL_19_INJ (3)
AnnaBridge 171:3a7713b1edbc 4157 * @arg @ref LL_ADC_AWD_CHANNEL_19_REG_INJ (3)
AnnaBridge 171:3a7713b1edbc 4158 * @arg @ref LL_ADC_AWD_CHANNEL_20_REG (3)
AnnaBridge 171:3a7713b1edbc 4159 * @arg @ref LL_ADC_AWD_CHANNEL_20_INJ (3)
AnnaBridge 171:3a7713b1edbc 4160 * @arg @ref LL_ADC_AWD_CHANNEL_20_REG_INJ (3)
AnnaBridge 171:3a7713b1edbc 4161 * @arg @ref LL_ADC_AWD_CHANNEL_21_REG (3)
AnnaBridge 171:3a7713b1edbc 4162 * @arg @ref LL_ADC_AWD_CHANNEL_21_INJ (3)
AnnaBridge 171:3a7713b1edbc 4163 * @arg @ref LL_ADC_AWD_CHANNEL_21_REG_INJ (3)
AnnaBridge 171:3a7713b1edbc 4164 * @arg @ref LL_ADC_AWD_CHANNEL_22_REG (1)
AnnaBridge 171:3a7713b1edbc 4165 * @arg @ref LL_ADC_AWD_CHANNEL_22_INJ (1)
AnnaBridge 171:3a7713b1edbc 4166 * @arg @ref LL_ADC_AWD_CHANNEL_22_REG_INJ (1)
AnnaBridge 171:3a7713b1edbc 4167 * @arg @ref LL_ADC_AWD_CHANNEL_23_REG (1)
AnnaBridge 171:3a7713b1edbc 4168 * @arg @ref LL_ADC_AWD_CHANNEL_23_INJ (1)
AnnaBridge 171:3a7713b1edbc 4169 * @arg @ref LL_ADC_AWD_CHANNEL_23_REG_INJ (1)
AnnaBridge 171:3a7713b1edbc 4170 * @arg @ref LL_ADC_AWD_CHANNEL_24_REG (1)
AnnaBridge 171:3a7713b1edbc 4171 * @arg @ref LL_ADC_AWD_CHANNEL_24_INJ (1)
AnnaBridge 171:3a7713b1edbc 4172 * @arg @ref LL_ADC_AWD_CHANNEL_24_REG_INJ (1)
AnnaBridge 171:3a7713b1edbc 4173 * @arg @ref LL_ADC_AWD_CHANNEL_25_REG (1)
AnnaBridge 171:3a7713b1edbc 4174 * @arg @ref LL_ADC_AWD_CHANNEL_25_INJ (1)
AnnaBridge 171:3a7713b1edbc 4175 * @arg @ref LL_ADC_AWD_CHANNEL_25_REG_INJ (1)
AnnaBridge 171:3a7713b1edbc 4176 * @arg @ref LL_ADC_AWD_CHANNEL_26_REG (3)
AnnaBridge 171:3a7713b1edbc 4177 * @arg @ref LL_ADC_AWD_CHANNEL_26_INJ (3)
AnnaBridge 171:3a7713b1edbc 4178 * @arg @ref LL_ADC_AWD_CHANNEL_26_REG_INJ (3)
AnnaBridge 171:3a7713b1edbc 4179 * @arg @ref LL_ADC_AWD_CHANNEL_27_REG (3)(4)
AnnaBridge 171:3a7713b1edbc 4180 * @arg @ref LL_ADC_AWD_CHANNEL_27_INJ (3)(4)
AnnaBridge 171:3a7713b1edbc 4181 * @arg @ref LL_ADC_AWD_CHANNEL_27_REG_INJ (3)(4)
AnnaBridge 171:3a7713b1edbc 4182 * @arg @ref LL_ADC_AWD_CHANNEL_28_REG (3)(4)
AnnaBridge 171:3a7713b1edbc 4183 * @arg @ref LL_ADC_AWD_CHANNEL_28_INJ (3)(4)
AnnaBridge 171:3a7713b1edbc 4184 * @arg @ref LL_ADC_AWD_CHANNEL_28_REG_INJ (3)(4)
AnnaBridge 171:3a7713b1edbc 4185 * @arg @ref LL_ADC_AWD_CHANNEL_29_REG (3)(4)
AnnaBridge 171:3a7713b1edbc 4186 * @arg @ref LL_ADC_AWD_CHANNEL_29_INJ (3)(4)
AnnaBridge 171:3a7713b1edbc 4187 * @arg @ref LL_ADC_AWD_CHANNEL_29_REG_INJ (3)(4)
AnnaBridge 171:3a7713b1edbc 4188 * @arg @ref LL_ADC_AWD_CHANNEL_30_REG (3)(4)
AnnaBridge 171:3a7713b1edbc 4189 * @arg @ref LL_ADC_AWD_CHANNEL_30_INJ (3)(4)
AnnaBridge 171:3a7713b1edbc 4190 * @arg @ref LL_ADC_AWD_CHANNEL_30_REG_INJ (3)(4)
AnnaBridge 171:3a7713b1edbc 4191 * @arg @ref LL_ADC_AWD_CHANNEL_31_REG (3)(4)
AnnaBridge 171:3a7713b1edbc 4192 * @arg @ref LL_ADC_AWD_CHANNEL_31_INJ (3)(4)
AnnaBridge 171:3a7713b1edbc 4193 * @arg @ref LL_ADC_AWD_CHANNEL_31_REG_INJ (3)(4)
AnnaBridge 171:3a7713b1edbc 4194 * @arg @ref LL_ADC_AWD_CH_VREFINT_REG (3)
AnnaBridge 171:3a7713b1edbc 4195 * @arg @ref LL_ADC_AWD_CH_VREFINT_INJ (3)
AnnaBridge 171:3a7713b1edbc 4196 * @arg @ref LL_ADC_AWD_CH_VREFINT_REG_INJ (3)
AnnaBridge 171:3a7713b1edbc 4197 * @arg @ref LL_ADC_AWD_CH_TEMPSENSOR_REG (3)
AnnaBridge 171:3a7713b1edbc 4198 * @arg @ref LL_ADC_AWD_CH_TEMPSENSOR_INJ (3)
AnnaBridge 171:3a7713b1edbc 4199 * @arg @ref LL_ADC_AWD_CH_TEMPSENSOR_REG_INJ (3)
AnnaBridge 171:3a7713b1edbc 4200 * @arg @ref LL_ADC_AWD_CH_VCOMP_REG (3)
AnnaBridge 171:3a7713b1edbc 4201 * @arg @ref LL_ADC_AWD_CH_VCOMP_INJ (3)
AnnaBridge 171:3a7713b1edbc 4202 * @arg @ref LL_ADC_AWD_CH_VCOMP_REG_INJ (3)
AnnaBridge 171:3a7713b1edbc 4203 * @arg @ref LL_ADC_AWD_CH_VOPAMP1_REG (3)(5)
AnnaBridge 171:3a7713b1edbc 4204 * @arg @ref LL_ADC_AWD_CH_VOPAMP1_INJ (3)(5)
AnnaBridge 171:3a7713b1edbc 4205 * @arg @ref LL_ADC_AWD_CH_VOPAMP1_REG_INJ (3)(5)
AnnaBridge 171:3a7713b1edbc 4206 * @arg @ref LL_ADC_AWD_CH_VOPAMP2_REG (3)(5)
AnnaBridge 171:3a7713b1edbc 4207 * @arg @ref LL_ADC_AWD_CH_VOPAMP2_INJ (3)(5)
AnnaBridge 171:3a7713b1edbc 4208 * @arg @ref LL_ADC_AWD_CH_VOPAMP2_REG_INJ (3)(5)
AnnaBridge 171:3a7713b1edbc 4209 * @arg @ref LL_ADC_AWD_CH_VOPAMP3_REG (3)(5)
AnnaBridge 171:3a7713b1edbc 4210 * @arg @ref LL_ADC_AWD_CH_VOPAMP3_INJ (3)(5)
AnnaBridge 171:3a7713b1edbc 4211 * @arg @ref LL_ADC_AWD_CH_VOPAMP3_REG_INJ (3)(5)
AnnaBridge 171:3a7713b1edbc 4212 *
AnnaBridge 171:3a7713b1edbc 4213 * (1) On STM32L1, connection via routing interface (RI) specificity: fast channel (channel routed directly to ADC switch matrix).\n
AnnaBridge 171:3a7713b1edbc 4214 * (2) On STM32L1, for devices with feature 'channels banks' available: Channel different in bank A and bank B.\n
AnnaBridge 171:3a7713b1edbc 4215 * (3) On STM32L1, for devices with feature 'channels banks' available: Channel common to both bank A and bank B.\n
AnnaBridge 171:3a7713b1edbc 4216 * (4) On STM32L1, parameter not available on all devices: only on STM32L1 Cat.4 and Cat.5.\n
AnnaBridge 171:3a7713b1edbc 4217 * (5) On STM32L1, parameter not available on all devices: OPAMP1 and OPAMP2 available only on STM32L1 Cat.3, Cat.4 and Cat.5, OPAMP3 available only on STM32L1 Cat.4 and Cat.5
AnnaBridge 171:3a7713b1edbc 4218 * @retval None
AnnaBridge 171:3a7713b1edbc 4219 */
AnnaBridge 171:3a7713b1edbc 4220 __STATIC_INLINE void LL_ADC_SetAnalogWDMonitChannels(ADC_TypeDef *ADCx, uint32_t AWDChannelGroup)
AnnaBridge 171:3a7713b1edbc 4221 {
AnnaBridge 171:3a7713b1edbc 4222 MODIFY_REG(ADCx->CR1,
AnnaBridge 171:3a7713b1edbc 4223 (ADC_CR1_AWDEN | ADC_CR1_JAWDEN | ADC_CR1_AWDSGL | ADC_CR1_AWDCH),
AnnaBridge 171:3a7713b1edbc 4224 AWDChannelGroup);
AnnaBridge 171:3a7713b1edbc 4225 }
AnnaBridge 171:3a7713b1edbc 4226
AnnaBridge 171:3a7713b1edbc 4227 /**
AnnaBridge 171:3a7713b1edbc 4228 * @brief Get ADC analog watchdog monitored channel.
AnnaBridge 171:3a7713b1edbc 4229 * @note Usage of the returned channel number:
AnnaBridge 171:3a7713b1edbc 4230 * - To reinject this channel into another function LL_ADC_xxx:
AnnaBridge 171:3a7713b1edbc 4231 * the returned channel number is only partly formatted on definition
AnnaBridge 171:3a7713b1edbc 4232 * of literals LL_ADC_CHANNEL_x. Therefore, it has to be compared
AnnaBridge 171:3a7713b1edbc 4233 * with parts of literals LL_ADC_CHANNEL_x or using
AnnaBridge 171:3a7713b1edbc 4234 * helper macro @ref __LL_ADC_CHANNEL_TO_DECIMAL_NB().
AnnaBridge 171:3a7713b1edbc 4235 * Then the selected literal LL_ADC_CHANNEL_x can be used
AnnaBridge 171:3a7713b1edbc 4236 * as parameter for another function.
AnnaBridge 171:3a7713b1edbc 4237 * - To get the channel number in decimal format:
AnnaBridge 171:3a7713b1edbc 4238 * process the returned value with the helper macro
AnnaBridge 171:3a7713b1edbc 4239 * @ref __LL_ADC_CHANNEL_TO_DECIMAL_NB().
AnnaBridge 171:3a7713b1edbc 4240 * Applicable only when the analog watchdog is set to monitor
AnnaBridge 171:3a7713b1edbc 4241 * one channel.
AnnaBridge 171:3a7713b1edbc 4242 * @note On this STM32 serie, there is only 1 kind of analog watchdog
AnnaBridge 171:3a7713b1edbc 4243 * instance:
AnnaBridge 171:3a7713b1edbc 4244 * - AWD standard (instance AWD1):
AnnaBridge 171:3a7713b1edbc 4245 * - channels monitored: can monitor 1 channel or all channels.
AnnaBridge 171:3a7713b1edbc 4246 * - groups monitored: ADC groups regular and-or injected.
AnnaBridge 171:3a7713b1edbc 4247 * - resolution: resolution is not limited (corresponds to
AnnaBridge 171:3a7713b1edbc 4248 * ADC resolution configured).
AnnaBridge 171:3a7713b1edbc 4249 * @rmtoll CR1 AWD1CH LL_ADC_GetAnalogWDMonitChannels\n
AnnaBridge 171:3a7713b1edbc 4250 * CR1 AWD1SGL LL_ADC_GetAnalogWDMonitChannels\n
AnnaBridge 171:3a7713b1edbc 4251 * CR1 AWD1EN LL_ADC_GetAnalogWDMonitChannels
AnnaBridge 171:3a7713b1edbc 4252 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 4253 * @retval Returned value can be one of the following values:
AnnaBridge 171:3a7713b1edbc 4254 * @arg @ref LL_ADC_AWD_DISABLE
AnnaBridge 171:3a7713b1edbc 4255 * @arg @ref LL_ADC_AWD_ALL_CHANNELS_REG
AnnaBridge 171:3a7713b1edbc 4256 * @arg @ref LL_ADC_AWD_ALL_CHANNELS_INJ
AnnaBridge 171:3a7713b1edbc 4257 * @arg @ref LL_ADC_AWD_ALL_CHANNELS_REG_INJ
AnnaBridge 171:3a7713b1edbc 4258 * @arg @ref LL_ADC_AWD_CHANNEL_0_REG (2)
AnnaBridge 171:3a7713b1edbc 4259 * @arg @ref LL_ADC_AWD_CHANNEL_0_INJ (2)
AnnaBridge 171:3a7713b1edbc 4260 * @arg @ref LL_ADC_AWD_CHANNEL_0_REG_INJ (2)
AnnaBridge 171:3a7713b1edbc 4261 * @arg @ref LL_ADC_AWD_CHANNEL_1_REG (2)
AnnaBridge 171:3a7713b1edbc 4262 * @arg @ref LL_ADC_AWD_CHANNEL_1_INJ (2)
AnnaBridge 171:3a7713b1edbc 4263 * @arg @ref LL_ADC_AWD_CHANNEL_1_REG_INJ (2)
AnnaBridge 171:3a7713b1edbc 4264 * @arg @ref LL_ADC_AWD_CHANNEL_2_REG (2)
AnnaBridge 171:3a7713b1edbc 4265 * @arg @ref LL_ADC_AWD_CHANNEL_2_INJ (2)
AnnaBridge 171:3a7713b1edbc 4266 * @arg @ref LL_ADC_AWD_CHANNEL_2_REG_INJ (2)
AnnaBridge 171:3a7713b1edbc 4267 * @arg @ref LL_ADC_AWD_CHANNEL_3_REG (2)
AnnaBridge 171:3a7713b1edbc 4268 * @arg @ref LL_ADC_AWD_CHANNEL_3_INJ (2)
AnnaBridge 171:3a7713b1edbc 4269 * @arg @ref LL_ADC_AWD_CHANNEL_3_REG_INJ (2)
AnnaBridge 171:3a7713b1edbc 4270 * @arg @ref LL_ADC_AWD_CHANNEL_4_REG (1)
AnnaBridge 171:3a7713b1edbc 4271 * @arg @ref LL_ADC_AWD_CHANNEL_4_INJ (1)
AnnaBridge 171:3a7713b1edbc 4272 * @arg @ref LL_ADC_AWD_CHANNEL_4_REG_INJ (1)
AnnaBridge 171:3a7713b1edbc 4273 * @arg @ref LL_ADC_AWD_CHANNEL_5_REG (1)
AnnaBridge 171:3a7713b1edbc 4274 * @arg @ref LL_ADC_AWD_CHANNEL_5_INJ (1)
AnnaBridge 171:3a7713b1edbc 4275 * @arg @ref LL_ADC_AWD_CHANNEL_5_REG_INJ (1)
AnnaBridge 171:3a7713b1edbc 4276 * @arg @ref LL_ADC_AWD_CHANNEL_6_REG (2)
AnnaBridge 171:3a7713b1edbc 4277 * @arg @ref LL_ADC_AWD_CHANNEL_6_INJ (2)
AnnaBridge 171:3a7713b1edbc 4278 * @arg @ref LL_ADC_AWD_CHANNEL_6_REG_INJ (2)
AnnaBridge 171:3a7713b1edbc 4279 * @arg @ref LL_ADC_AWD_CHANNEL_7_REG (2)
AnnaBridge 171:3a7713b1edbc 4280 * @arg @ref LL_ADC_AWD_CHANNEL_7_INJ (2)
AnnaBridge 171:3a7713b1edbc 4281 * @arg @ref LL_ADC_AWD_CHANNEL_7_REG_INJ (2)
AnnaBridge 171:3a7713b1edbc 4282 * @arg @ref LL_ADC_AWD_CHANNEL_8_REG (2)
AnnaBridge 171:3a7713b1edbc 4283 * @arg @ref LL_ADC_AWD_CHANNEL_8_INJ (2)
AnnaBridge 171:3a7713b1edbc 4284 * @arg @ref LL_ADC_AWD_CHANNEL_8_REG_INJ (2)
AnnaBridge 171:3a7713b1edbc 4285 * @arg @ref LL_ADC_AWD_CHANNEL_9_REG (2)
AnnaBridge 171:3a7713b1edbc 4286 * @arg @ref LL_ADC_AWD_CHANNEL_9_INJ (2)
AnnaBridge 171:3a7713b1edbc 4287 * @arg @ref LL_ADC_AWD_CHANNEL_9_REG_INJ (2)
AnnaBridge 171:3a7713b1edbc 4288 * @arg @ref LL_ADC_AWD_CHANNEL_10_REG (2)
AnnaBridge 171:3a7713b1edbc 4289 * @arg @ref LL_ADC_AWD_CHANNEL_10_INJ (2)
AnnaBridge 171:3a7713b1edbc 4290 * @arg @ref LL_ADC_AWD_CHANNEL_10_REG_INJ (2)
AnnaBridge 171:3a7713b1edbc 4291 * @arg @ref LL_ADC_AWD_CHANNEL_11_REG (2)
AnnaBridge 171:3a7713b1edbc 4292 * @arg @ref LL_ADC_AWD_CHANNEL_11_INJ (2)
AnnaBridge 171:3a7713b1edbc 4293 * @arg @ref LL_ADC_AWD_CHANNEL_11_REG_INJ (2)
AnnaBridge 171:3a7713b1edbc 4294 * @arg @ref LL_ADC_AWD_CHANNEL_12_REG (2)
AnnaBridge 171:3a7713b1edbc 4295 * @arg @ref LL_ADC_AWD_CHANNEL_12_INJ (2)
AnnaBridge 171:3a7713b1edbc 4296 * @arg @ref LL_ADC_AWD_CHANNEL_12_REG_INJ (2)
AnnaBridge 171:3a7713b1edbc 4297 * @arg @ref LL_ADC_AWD_CHANNEL_13_REG (3)
AnnaBridge 171:3a7713b1edbc 4298 * @arg @ref LL_ADC_AWD_CHANNEL_13_INJ (3)
AnnaBridge 171:3a7713b1edbc 4299 * @arg @ref LL_ADC_AWD_CHANNEL_13_REG_INJ (3)
AnnaBridge 171:3a7713b1edbc 4300 * @arg @ref LL_ADC_AWD_CHANNEL_14_REG (3)
AnnaBridge 171:3a7713b1edbc 4301 * @arg @ref LL_ADC_AWD_CHANNEL_14_INJ (3)
AnnaBridge 171:3a7713b1edbc 4302 * @arg @ref LL_ADC_AWD_CHANNEL_14_REG_INJ (3)
AnnaBridge 171:3a7713b1edbc 4303 * @arg @ref LL_ADC_AWD_CHANNEL_15_REG (3)
AnnaBridge 171:3a7713b1edbc 4304 * @arg @ref LL_ADC_AWD_CHANNEL_15_INJ (3)
AnnaBridge 171:3a7713b1edbc 4305 * @arg @ref LL_ADC_AWD_CHANNEL_15_REG_INJ (3)
AnnaBridge 171:3a7713b1edbc 4306 * @arg @ref LL_ADC_AWD_CHANNEL_16_REG (3)
AnnaBridge 171:3a7713b1edbc 4307 * @arg @ref LL_ADC_AWD_CHANNEL_16_INJ (3)
AnnaBridge 171:3a7713b1edbc 4308 * @arg @ref LL_ADC_AWD_CHANNEL_16_REG_INJ (3)
AnnaBridge 171:3a7713b1edbc 4309 * @arg @ref LL_ADC_AWD_CHANNEL_17_REG (3)
AnnaBridge 171:3a7713b1edbc 4310 * @arg @ref LL_ADC_AWD_CHANNEL_17_INJ (3)
AnnaBridge 171:3a7713b1edbc 4311 * @arg @ref LL_ADC_AWD_CHANNEL_17_REG_INJ (3)
AnnaBridge 171:3a7713b1edbc 4312 * @arg @ref LL_ADC_AWD_CHANNEL_18_REG (3)
AnnaBridge 171:3a7713b1edbc 4313 * @arg @ref LL_ADC_AWD_CHANNEL_18_INJ (3)
AnnaBridge 171:3a7713b1edbc 4314 * @arg @ref LL_ADC_AWD_CHANNEL_18_REG_INJ (3)
AnnaBridge 171:3a7713b1edbc 4315 * @arg @ref LL_ADC_AWD_CHANNEL_19_REG (3)
AnnaBridge 171:3a7713b1edbc 4316 * @arg @ref LL_ADC_AWD_CHANNEL_19_INJ (3)
AnnaBridge 171:3a7713b1edbc 4317 * @arg @ref LL_ADC_AWD_CHANNEL_19_REG_INJ (3)
AnnaBridge 171:3a7713b1edbc 4318 * @arg @ref LL_ADC_AWD_CHANNEL_20_REG (3)
AnnaBridge 171:3a7713b1edbc 4319 * @arg @ref LL_ADC_AWD_CHANNEL_20_INJ (3)
AnnaBridge 171:3a7713b1edbc 4320 * @arg @ref LL_ADC_AWD_CHANNEL_20_REG_INJ (3)
AnnaBridge 171:3a7713b1edbc 4321 * @arg @ref LL_ADC_AWD_CHANNEL_21_REG (3)
AnnaBridge 171:3a7713b1edbc 4322 * @arg @ref LL_ADC_AWD_CHANNEL_21_INJ (3)
AnnaBridge 171:3a7713b1edbc 4323 * @arg @ref LL_ADC_AWD_CHANNEL_21_REG_INJ (3)
AnnaBridge 171:3a7713b1edbc 4324 * @arg @ref LL_ADC_AWD_CHANNEL_22_REG (1)
AnnaBridge 171:3a7713b1edbc 4325 * @arg @ref LL_ADC_AWD_CHANNEL_22_INJ (1)
AnnaBridge 171:3a7713b1edbc 4326 * @arg @ref LL_ADC_AWD_CHANNEL_22_REG_INJ (1)
AnnaBridge 171:3a7713b1edbc 4327 * @arg @ref LL_ADC_AWD_CHANNEL_23_REG (1)
AnnaBridge 171:3a7713b1edbc 4328 * @arg @ref LL_ADC_AWD_CHANNEL_23_INJ (1)
AnnaBridge 171:3a7713b1edbc 4329 * @arg @ref LL_ADC_AWD_CHANNEL_23_REG_INJ (1)
AnnaBridge 171:3a7713b1edbc 4330 * @arg @ref LL_ADC_AWD_CHANNEL_24_REG (1)
AnnaBridge 171:3a7713b1edbc 4331 * @arg @ref LL_ADC_AWD_CHANNEL_24_INJ (1)
AnnaBridge 171:3a7713b1edbc 4332 * @arg @ref LL_ADC_AWD_CHANNEL_24_REG_INJ (1)
AnnaBridge 171:3a7713b1edbc 4333 * @arg @ref LL_ADC_AWD_CHANNEL_25_REG (1)
AnnaBridge 171:3a7713b1edbc 4334 * @arg @ref LL_ADC_AWD_CHANNEL_25_INJ (1)
AnnaBridge 171:3a7713b1edbc 4335 * @arg @ref LL_ADC_AWD_CHANNEL_25_REG_INJ (1)
AnnaBridge 171:3a7713b1edbc 4336 * @arg @ref LL_ADC_AWD_CHANNEL_26_REG (3)
AnnaBridge 171:3a7713b1edbc 4337 * @arg @ref LL_ADC_AWD_CHANNEL_26_INJ (3)
AnnaBridge 171:3a7713b1edbc 4338 * @arg @ref LL_ADC_AWD_CHANNEL_26_REG_INJ (3)
AnnaBridge 171:3a7713b1edbc 4339 * @arg @ref LL_ADC_AWD_CHANNEL_27_REG (3)(4)
AnnaBridge 171:3a7713b1edbc 4340 * @arg @ref LL_ADC_AWD_CHANNEL_27_INJ (3)(4)
AnnaBridge 171:3a7713b1edbc 4341 * @arg @ref LL_ADC_AWD_CHANNEL_27_REG_INJ (3)(4)
AnnaBridge 171:3a7713b1edbc 4342 * @arg @ref LL_ADC_AWD_CHANNEL_28_REG (3)(4)
AnnaBridge 171:3a7713b1edbc 4343 * @arg @ref LL_ADC_AWD_CHANNEL_28_INJ (3)(4)
AnnaBridge 171:3a7713b1edbc 4344 * @arg @ref LL_ADC_AWD_CHANNEL_28_REG_INJ (3)(4)
AnnaBridge 171:3a7713b1edbc 4345 * @arg @ref LL_ADC_AWD_CHANNEL_29_REG (3)(4)
AnnaBridge 171:3a7713b1edbc 4346 * @arg @ref LL_ADC_AWD_CHANNEL_29_INJ (3)(4)
AnnaBridge 171:3a7713b1edbc 4347 * @arg @ref LL_ADC_AWD_CHANNEL_29_REG_INJ (3)(4)
AnnaBridge 171:3a7713b1edbc 4348 * @arg @ref LL_ADC_AWD_CHANNEL_30_REG (3)(4)
AnnaBridge 171:3a7713b1edbc 4349 * @arg @ref LL_ADC_AWD_CHANNEL_30_INJ (3)(4)
AnnaBridge 171:3a7713b1edbc 4350 * @arg @ref LL_ADC_AWD_CHANNEL_30_REG_INJ (3)(4)
AnnaBridge 171:3a7713b1edbc 4351 * @arg @ref LL_ADC_AWD_CHANNEL_31_REG (3)(4)
AnnaBridge 171:3a7713b1edbc 4352 * @arg @ref LL_ADC_AWD_CHANNEL_31_INJ (3)(4)
AnnaBridge 171:3a7713b1edbc 4353 * @arg @ref LL_ADC_AWD_CHANNEL_31_REG_INJ (3)(4)
AnnaBridge 171:3a7713b1edbc 4354 *
AnnaBridge 171:3a7713b1edbc 4355 * (1) On STM32L1, connection via routing interface (RI) specificity: fast channel (channel routed directly to ADC switch matrix).\n
AnnaBridge 171:3a7713b1edbc 4356 * (2) On STM32L1, for devices with feature 'channels banks' available: Channel different in bank A and bank B.\n
AnnaBridge 171:3a7713b1edbc 4357 * (3) On STM32L1, for devices with feature 'channels banks' available: Channel common to both bank A and bank B.\n
AnnaBridge 171:3a7713b1edbc 4358 * (4) On STM32L1, parameter not available on all devices: only on STM32L1 Cat.4 and Cat.5.
AnnaBridge 171:3a7713b1edbc 4359 */
AnnaBridge 171:3a7713b1edbc 4360 __STATIC_INLINE uint32_t LL_ADC_GetAnalogWDMonitChannels(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 4361 {
AnnaBridge 171:3a7713b1edbc 4362 return (uint32_t)(READ_BIT(ADCx->CR1, (ADC_CR1_AWDEN | ADC_CR1_JAWDEN | ADC_CR1_AWDSGL | ADC_CR1_AWDCH)));
AnnaBridge 171:3a7713b1edbc 4363 }
AnnaBridge 171:3a7713b1edbc 4364
AnnaBridge 171:3a7713b1edbc 4365 /**
AnnaBridge 171:3a7713b1edbc 4366 * @brief Set ADC analog watchdog threshold value of threshold
AnnaBridge 171:3a7713b1edbc 4367 * high or low.
AnnaBridge 171:3a7713b1edbc 4368 * @note In case of ADC resolution different of 12 bits,
AnnaBridge 171:3a7713b1edbc 4369 * analog watchdog thresholds data require a specific shift.
AnnaBridge 171:3a7713b1edbc 4370 * Use helper macro @ref __LL_ADC_ANALOGWD_SET_THRESHOLD_RESOLUTION().
AnnaBridge 171:3a7713b1edbc 4371 * @note On this STM32 serie, there is only 1 kind of analog watchdog
AnnaBridge 171:3a7713b1edbc 4372 * instance:
AnnaBridge 171:3a7713b1edbc 4373 * - AWD standard (instance AWD1):
AnnaBridge 171:3a7713b1edbc 4374 * - channels monitored: can monitor 1 channel or all channels.
AnnaBridge 171:3a7713b1edbc 4375 * - groups monitored: ADC groups regular and-or injected.
AnnaBridge 171:3a7713b1edbc 4376 * - resolution: resolution is not limited (corresponds to
AnnaBridge 171:3a7713b1edbc 4377 * ADC resolution configured).
AnnaBridge 171:3a7713b1edbc 4378 * @rmtoll HTR HT LL_ADC_SetAnalogWDThresholds\n
AnnaBridge 171:3a7713b1edbc 4379 * LTR LT LL_ADC_SetAnalogWDThresholds
AnnaBridge 171:3a7713b1edbc 4380 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 4381 * @param AWDThresholdsHighLow This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 4382 * @arg @ref LL_ADC_AWD_THRESHOLD_HIGH
AnnaBridge 171:3a7713b1edbc 4383 * @arg @ref LL_ADC_AWD_THRESHOLD_LOW
AnnaBridge 171:3a7713b1edbc 4384 * @param AWDThresholdValue: Value between Min_Data=0x000 and Max_Data=0xFFF
AnnaBridge 171:3a7713b1edbc 4385 * @retval None
AnnaBridge 171:3a7713b1edbc 4386 */
AnnaBridge 171:3a7713b1edbc 4387 __STATIC_INLINE void LL_ADC_SetAnalogWDThresholds(ADC_TypeDef *ADCx, uint32_t AWDThresholdsHighLow, uint32_t AWDThresholdValue)
AnnaBridge 171:3a7713b1edbc 4388 {
AnnaBridge 171:3a7713b1edbc 4389 register uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->HTR, AWDThresholdsHighLow);
AnnaBridge 171:3a7713b1edbc 4390
AnnaBridge 171:3a7713b1edbc 4391 MODIFY_REG(*preg,
AnnaBridge 171:3a7713b1edbc 4392 ADC_HTR_HT,
AnnaBridge 171:3a7713b1edbc 4393 AWDThresholdValue);
AnnaBridge 171:3a7713b1edbc 4394 }
AnnaBridge 171:3a7713b1edbc 4395
AnnaBridge 171:3a7713b1edbc 4396 /**
AnnaBridge 171:3a7713b1edbc 4397 * @brief Get ADC analog watchdog threshold value of threshold high or
AnnaBridge 171:3a7713b1edbc 4398 * threshold low.
AnnaBridge 171:3a7713b1edbc 4399 * @note In case of ADC resolution different of 12 bits,
AnnaBridge 171:3a7713b1edbc 4400 * analog watchdog thresholds data require a specific shift.
AnnaBridge 171:3a7713b1edbc 4401 * Use helper macro @ref __LL_ADC_ANALOGWD_GET_THRESHOLD_RESOLUTION().
AnnaBridge 171:3a7713b1edbc 4402 * @rmtoll HTR HT LL_ADC_GetAnalogWDThresholds\n
AnnaBridge 171:3a7713b1edbc 4403 * LTR LT LL_ADC_GetAnalogWDThresholds
AnnaBridge 171:3a7713b1edbc 4404 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 4405 * @param AWDThresholdsHighLow This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 4406 * @arg @ref LL_ADC_AWD_THRESHOLD_HIGH
AnnaBridge 171:3a7713b1edbc 4407 * @arg @ref LL_ADC_AWD_THRESHOLD_LOW
AnnaBridge 171:3a7713b1edbc 4408 * @retval Value between Min_Data=0x000 and Max_Data=0xFFF
AnnaBridge 171:3a7713b1edbc 4409 */
AnnaBridge 171:3a7713b1edbc 4410 __STATIC_INLINE uint32_t LL_ADC_GetAnalogWDThresholds(ADC_TypeDef *ADCx, uint32_t AWDThresholdsHighLow)
AnnaBridge 171:3a7713b1edbc 4411 {
AnnaBridge 171:3a7713b1edbc 4412 register uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->HTR, AWDThresholdsHighLow);
AnnaBridge 171:3a7713b1edbc 4413
AnnaBridge 171:3a7713b1edbc 4414 return (uint32_t)(READ_BIT(*preg, ADC_HTR_HT));
AnnaBridge 171:3a7713b1edbc 4415 }
AnnaBridge 171:3a7713b1edbc 4416
AnnaBridge 171:3a7713b1edbc 4417 /**
AnnaBridge 171:3a7713b1edbc 4418 * @}
AnnaBridge 171:3a7713b1edbc 4419 */
AnnaBridge 171:3a7713b1edbc 4420
AnnaBridge 171:3a7713b1edbc 4421 /** @defgroup ADC_LL_EF_Operation_ADC_Instance Operation on ADC hierarchical scope: ADC instance
AnnaBridge 171:3a7713b1edbc 4422 * @{
AnnaBridge 171:3a7713b1edbc 4423 */
AnnaBridge 171:3a7713b1edbc 4424
AnnaBridge 171:3a7713b1edbc 4425 /**
AnnaBridge 171:3a7713b1edbc 4426 * @brief Enable the selected ADC instance.
AnnaBridge 171:3a7713b1edbc 4427 * @note On this STM32 serie, after ADC enable, a delay for
AnnaBridge 171:3a7713b1edbc 4428 * ADC internal analog stabilization is required before performing a
AnnaBridge 171:3a7713b1edbc 4429 * ADC conversion start.
AnnaBridge 171:3a7713b1edbc 4430 * Refer to device datasheet, parameter tSTAB.
AnnaBridge 171:3a7713b1edbc 4431 * @note Due to the latency introduced by the synchronization between
AnnaBridge 171:3a7713b1edbc 4432 * two clock domains (ADC clock source asynchronous),
AnnaBridge 171:3a7713b1edbc 4433 * some hardware constraints must be respected:
AnnaBridge 171:3a7713b1edbc 4434 * - ADC must be enabled (@ref LL_ADC_Enable() ) only
AnnaBridge 171:3a7713b1edbc 4435 * when ADC is not ready to convert.
AnnaBridge 171:3a7713b1edbc 4436 * - ADC must be disabled (@ref LL_ADC_Disable() ) only
AnnaBridge 171:3a7713b1edbc 4437 * when ADC is ready to convert.
AnnaBridge 171:3a7713b1edbc 4438 * Status of ADC ready to convert can be checked using function
AnnaBridge 171:3a7713b1edbc 4439 * @ref LL_ADC_IsActiveFlag_ADRDY().
AnnaBridge 171:3a7713b1edbc 4440 * @rmtoll CR2 ADON LL_ADC_Enable
AnnaBridge 171:3a7713b1edbc 4441 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 4442 * @retval None
AnnaBridge 171:3a7713b1edbc 4443 */
AnnaBridge 171:3a7713b1edbc 4444 __STATIC_INLINE void LL_ADC_Enable(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 4445 {
AnnaBridge 171:3a7713b1edbc 4446 SET_BIT(ADCx->CR2, ADC_CR2_ADON);
AnnaBridge 171:3a7713b1edbc 4447 }
AnnaBridge 171:3a7713b1edbc 4448
AnnaBridge 171:3a7713b1edbc 4449 /**
AnnaBridge 171:3a7713b1edbc 4450 * @brief Disable the selected ADC instance.
AnnaBridge 171:3a7713b1edbc 4451 * @note Due to the latency introduced by the synchronization between
AnnaBridge 171:3a7713b1edbc 4452 * two clock domains (ADC clock source asynchronous),
AnnaBridge 171:3a7713b1edbc 4453 * some hardware constraints must be respected:
AnnaBridge 171:3a7713b1edbc 4454 * - ADC must be enabled (@ref LL_ADC_Enable() ) only
AnnaBridge 171:3a7713b1edbc 4455 * when ADC is not ready to convert.
AnnaBridge 171:3a7713b1edbc 4456 * - ADC must be disabled (@ref LL_ADC_Disable() ) only
AnnaBridge 171:3a7713b1edbc 4457 * when ADC is ready to convert.
AnnaBridge 171:3a7713b1edbc 4458 * Status of ADC ready to convert can be checked using function
AnnaBridge 171:3a7713b1edbc 4459 * @ref LL_ADC_IsActiveFlag_ADRDY().
AnnaBridge 171:3a7713b1edbc 4460 * @rmtoll CR2 ADON LL_ADC_Disable
AnnaBridge 171:3a7713b1edbc 4461 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 4462 * @retval None
AnnaBridge 171:3a7713b1edbc 4463 */
AnnaBridge 171:3a7713b1edbc 4464 __STATIC_INLINE void LL_ADC_Disable(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 4465 {
AnnaBridge 171:3a7713b1edbc 4466 CLEAR_BIT(ADCx->CR2, ADC_CR2_ADON);
AnnaBridge 171:3a7713b1edbc 4467 }
AnnaBridge 171:3a7713b1edbc 4468
AnnaBridge 171:3a7713b1edbc 4469 /**
AnnaBridge 171:3a7713b1edbc 4470 * @brief Get the selected ADC instance enable state.
AnnaBridge 171:3a7713b1edbc 4471 * @rmtoll CR2 ADON LL_ADC_IsEnabled
AnnaBridge 171:3a7713b1edbc 4472 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 4473 * @retval 0: ADC is disabled, 1: ADC is enabled.
AnnaBridge 171:3a7713b1edbc 4474 */
AnnaBridge 171:3a7713b1edbc 4475 __STATIC_INLINE uint32_t LL_ADC_IsEnabled(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 4476 {
AnnaBridge 171:3a7713b1edbc 4477 return (READ_BIT(ADCx->CR2, ADC_CR2_ADON) == (ADC_CR2_ADON));
AnnaBridge 171:3a7713b1edbc 4478 }
AnnaBridge 171:3a7713b1edbc 4479
AnnaBridge 171:3a7713b1edbc 4480 /**
AnnaBridge 171:3a7713b1edbc 4481 * @}
AnnaBridge 171:3a7713b1edbc 4482 */
AnnaBridge 171:3a7713b1edbc 4483
AnnaBridge 171:3a7713b1edbc 4484 /** @defgroup ADC_LL_EF_Operation_ADC_Group_Regular Operation on ADC hierarchical scope: group regular
AnnaBridge 171:3a7713b1edbc 4485 * @{
AnnaBridge 171:3a7713b1edbc 4486 */
AnnaBridge 171:3a7713b1edbc 4487
AnnaBridge 171:3a7713b1edbc 4488 /**
AnnaBridge 171:3a7713b1edbc 4489 * @brief Start ADC group regular conversion.
AnnaBridge 171:3a7713b1edbc 4490 * @note On this STM32 serie, this function is relevant only for
AnnaBridge 171:3a7713b1edbc 4491 * internal trigger (SW start), not for external trigger:
AnnaBridge 171:3a7713b1edbc 4492 * - If ADC trigger has been set to software start, ADC conversion
AnnaBridge 171:3a7713b1edbc 4493 * starts immediately.
AnnaBridge 171:3a7713b1edbc 4494 * - If ADC trigger has been set to external trigger, ADC conversion
AnnaBridge 171:3a7713b1edbc 4495 * start must be performed using function
AnnaBridge 171:3a7713b1edbc 4496 * @ref LL_ADC_REG_StartConversionExtTrig().
AnnaBridge 171:3a7713b1edbc 4497 * (if external trigger edge would have been set during ADC other
AnnaBridge 171:3a7713b1edbc 4498 * settings, ADC conversion would start at trigger event
AnnaBridge 171:3a7713b1edbc 4499 * as soon as ADC is enabled).
AnnaBridge 171:3a7713b1edbc 4500 * @rmtoll CR2 SWSTART LL_ADC_REG_StartConversionSWStart
AnnaBridge 171:3a7713b1edbc 4501 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 4502 * @retval None
AnnaBridge 171:3a7713b1edbc 4503 */
AnnaBridge 171:3a7713b1edbc 4504 __STATIC_INLINE void LL_ADC_REG_StartConversionSWStart(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 4505 {
AnnaBridge 171:3a7713b1edbc 4506 SET_BIT(ADCx->CR2, ADC_CR2_SWSTART);
AnnaBridge 171:3a7713b1edbc 4507 }
AnnaBridge 171:3a7713b1edbc 4508
AnnaBridge 171:3a7713b1edbc 4509 /**
AnnaBridge 171:3a7713b1edbc 4510 * @brief Start ADC group regular conversion from external trigger.
AnnaBridge 171:3a7713b1edbc 4511 * @note ADC conversion will start at next trigger event (on the selected
AnnaBridge 171:3a7713b1edbc 4512 * trigger edge) following the ADC start conversion command.
AnnaBridge 171:3a7713b1edbc 4513 * @note On this STM32 serie, this function is relevant for
AnnaBridge 171:3a7713b1edbc 4514 * ADC conversion start from external trigger.
AnnaBridge 171:3a7713b1edbc 4515 * If internal trigger (SW start) is needed, perform ADC conversion
AnnaBridge 171:3a7713b1edbc 4516 * start using function @ref LL_ADC_REG_StartConversionSWStart().
AnnaBridge 171:3a7713b1edbc 4517 * @rmtoll CR2 EXTEN LL_ADC_REG_StartConversionExtTrig
AnnaBridge 171:3a7713b1edbc 4518 * @param ExternalTriggerEdge This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 4519 * @arg @ref LL_ADC_REG_TRIG_EXT_RISING
AnnaBridge 171:3a7713b1edbc 4520 * @arg @ref LL_ADC_REG_TRIG_EXT_FALLING
AnnaBridge 171:3a7713b1edbc 4521 * @arg @ref LL_ADC_REG_TRIG_EXT_RISINGFALLING
AnnaBridge 171:3a7713b1edbc 4522 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 4523 * @retval None
AnnaBridge 171:3a7713b1edbc 4524 */
AnnaBridge 171:3a7713b1edbc 4525 __STATIC_INLINE void LL_ADC_REG_StartConversionExtTrig(ADC_TypeDef *ADCx, uint32_t ExternalTriggerEdge)
AnnaBridge 171:3a7713b1edbc 4526 {
AnnaBridge 171:3a7713b1edbc 4527 SET_BIT(ADCx->CR2, ExternalTriggerEdge);
AnnaBridge 171:3a7713b1edbc 4528 }
AnnaBridge 171:3a7713b1edbc 4529
AnnaBridge 171:3a7713b1edbc 4530 /**
AnnaBridge 171:3a7713b1edbc 4531 * @brief Stop ADC group regular conversion from external trigger.
AnnaBridge 171:3a7713b1edbc 4532 * @note No more ADC conversion will start at next trigger event
AnnaBridge 171:3a7713b1edbc 4533 * following the ADC stop conversion command.
AnnaBridge 171:3a7713b1edbc 4534 * If a conversion is on-going, it will be completed.
AnnaBridge 171:3a7713b1edbc 4535 * @note On this STM32 serie, there is no specific command
AnnaBridge 171:3a7713b1edbc 4536 * to stop a conversion on-going or to stop ADC converting
AnnaBridge 171:3a7713b1edbc 4537 * in continuous mode. These actions can be performed
AnnaBridge 171:3a7713b1edbc 4538 * using function @ref LL_ADC_Disable().
AnnaBridge 171:3a7713b1edbc 4539 * @rmtoll CR2 EXTEN LL_ADC_REG_StopConversionExtTrig
AnnaBridge 171:3a7713b1edbc 4540 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 4541 * @retval None
AnnaBridge 171:3a7713b1edbc 4542 */
AnnaBridge 171:3a7713b1edbc 4543 __STATIC_INLINE void LL_ADC_REG_StopConversionExtTrig(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 4544 {
AnnaBridge 171:3a7713b1edbc 4545 CLEAR_BIT(ADCx->CR2, ADC_CR2_EXTEN);
AnnaBridge 171:3a7713b1edbc 4546 }
AnnaBridge 171:3a7713b1edbc 4547
AnnaBridge 171:3a7713b1edbc 4548 /**
AnnaBridge 171:3a7713b1edbc 4549 * @brief Get ADC group regular conversion data, range fit for
AnnaBridge 171:3a7713b1edbc 4550 * all ADC configurations: all ADC resolutions and
AnnaBridge 171:3a7713b1edbc 4551 * all oversampling increased data width (for devices
AnnaBridge 171:3a7713b1edbc 4552 * with feature oversampling).
AnnaBridge 171:3a7713b1edbc 4553 * @rmtoll DR RDATA LL_ADC_REG_ReadConversionData32
AnnaBridge 171:3a7713b1edbc 4554 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 4555 * @retval Value between Min_Data=0x00000000 and Max_Data=0xFFFFFFFF
AnnaBridge 171:3a7713b1edbc 4556 */
AnnaBridge 171:3a7713b1edbc 4557 __STATIC_INLINE uint32_t LL_ADC_REG_ReadConversionData32(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 4558 {
AnnaBridge 171:3a7713b1edbc 4559 return (uint16_t)(READ_BIT(ADCx->DR, ADC_DR_DATA));
AnnaBridge 171:3a7713b1edbc 4560 }
AnnaBridge 171:3a7713b1edbc 4561
AnnaBridge 171:3a7713b1edbc 4562 /**
AnnaBridge 171:3a7713b1edbc 4563 * @brief Get ADC group regular conversion data, range fit for
AnnaBridge 171:3a7713b1edbc 4564 * ADC resolution 12 bits.
AnnaBridge 171:3a7713b1edbc 4565 * @note For devices with feature oversampling: Oversampling
AnnaBridge 171:3a7713b1edbc 4566 * can increase data width, function for extended range
AnnaBridge 171:3a7713b1edbc 4567 * may be needed: @ref LL_ADC_REG_ReadConversionData32.
AnnaBridge 171:3a7713b1edbc 4568 * @rmtoll DR RDATA LL_ADC_REG_ReadConversionData12
AnnaBridge 171:3a7713b1edbc 4569 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 4570 * @retval Value between Min_Data=0x000 and Max_Data=0xFFF
AnnaBridge 171:3a7713b1edbc 4571 */
AnnaBridge 171:3a7713b1edbc 4572 __STATIC_INLINE uint16_t LL_ADC_REG_ReadConversionData12(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 4573 {
AnnaBridge 171:3a7713b1edbc 4574 return (uint16_t)(READ_BIT(ADCx->DR, ADC_DR_DATA));
AnnaBridge 171:3a7713b1edbc 4575 }
AnnaBridge 171:3a7713b1edbc 4576
AnnaBridge 171:3a7713b1edbc 4577 /**
AnnaBridge 171:3a7713b1edbc 4578 * @brief Get ADC group regular conversion data, range fit for
AnnaBridge 171:3a7713b1edbc 4579 * ADC resolution 10 bits.
AnnaBridge 171:3a7713b1edbc 4580 * @note For devices with feature oversampling: Oversampling
AnnaBridge 171:3a7713b1edbc 4581 * can increase data width, function for extended range
AnnaBridge 171:3a7713b1edbc 4582 * may be needed: @ref LL_ADC_REG_ReadConversionData32.
AnnaBridge 171:3a7713b1edbc 4583 * @rmtoll DR RDATA LL_ADC_REG_ReadConversionData10
AnnaBridge 171:3a7713b1edbc 4584 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 4585 * @retval Value between Min_Data=0x000 and Max_Data=0x3FF
AnnaBridge 171:3a7713b1edbc 4586 */
AnnaBridge 171:3a7713b1edbc 4587 __STATIC_INLINE uint16_t LL_ADC_REG_ReadConversionData10(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 4588 {
AnnaBridge 171:3a7713b1edbc 4589 return (uint16_t)(READ_BIT(ADCx->DR, ADC_DR_DATA));
AnnaBridge 171:3a7713b1edbc 4590 }
AnnaBridge 171:3a7713b1edbc 4591
AnnaBridge 171:3a7713b1edbc 4592 /**
AnnaBridge 171:3a7713b1edbc 4593 * @brief Get ADC group regular conversion data, range fit for
AnnaBridge 171:3a7713b1edbc 4594 * ADC resolution 8 bits.
AnnaBridge 171:3a7713b1edbc 4595 * @note For devices with feature oversampling: Oversampling
AnnaBridge 171:3a7713b1edbc 4596 * can increase data width, function for extended range
AnnaBridge 171:3a7713b1edbc 4597 * may be needed: @ref LL_ADC_REG_ReadConversionData32.
AnnaBridge 171:3a7713b1edbc 4598 * @rmtoll DR RDATA LL_ADC_REG_ReadConversionData8
AnnaBridge 171:3a7713b1edbc 4599 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 4600 * @retval Value between Min_Data=0x00 and Max_Data=0xFF
AnnaBridge 171:3a7713b1edbc 4601 */
AnnaBridge 171:3a7713b1edbc 4602 __STATIC_INLINE uint8_t LL_ADC_REG_ReadConversionData8(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 4603 {
AnnaBridge 171:3a7713b1edbc 4604 return (uint16_t)(READ_BIT(ADCx->DR, ADC_DR_DATA));
AnnaBridge 171:3a7713b1edbc 4605 }
AnnaBridge 171:3a7713b1edbc 4606
AnnaBridge 171:3a7713b1edbc 4607 /**
AnnaBridge 171:3a7713b1edbc 4608 * @brief Get ADC group regular conversion data, range fit for
AnnaBridge 171:3a7713b1edbc 4609 * ADC resolution 6 bits.
AnnaBridge 171:3a7713b1edbc 4610 * @note For devices with feature oversampling: Oversampling
AnnaBridge 171:3a7713b1edbc 4611 * can increase data width, function for extended range
AnnaBridge 171:3a7713b1edbc 4612 * may be needed: @ref LL_ADC_REG_ReadConversionData32.
AnnaBridge 171:3a7713b1edbc 4613 * @rmtoll DR RDATA LL_ADC_REG_ReadConversionData6
AnnaBridge 171:3a7713b1edbc 4614 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 4615 * @retval Value between Min_Data=0x00 and Max_Data=0x3F
AnnaBridge 171:3a7713b1edbc 4616 */
AnnaBridge 171:3a7713b1edbc 4617 __STATIC_INLINE uint8_t LL_ADC_REG_ReadConversionData6(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 4618 {
AnnaBridge 171:3a7713b1edbc 4619 return (uint16_t)(READ_BIT(ADCx->DR, ADC_DR_DATA));
AnnaBridge 171:3a7713b1edbc 4620 }
AnnaBridge 171:3a7713b1edbc 4621
AnnaBridge 171:3a7713b1edbc 4622 /**
AnnaBridge 171:3a7713b1edbc 4623 * @}
AnnaBridge 171:3a7713b1edbc 4624 */
AnnaBridge 171:3a7713b1edbc 4625
AnnaBridge 171:3a7713b1edbc 4626 /** @defgroup ADC_LL_EF_Operation_ADC_Group_Injected Operation on ADC hierarchical scope: group injected
AnnaBridge 171:3a7713b1edbc 4627 * @{
AnnaBridge 171:3a7713b1edbc 4628 */
AnnaBridge 171:3a7713b1edbc 4629
AnnaBridge 171:3a7713b1edbc 4630 /**
AnnaBridge 171:3a7713b1edbc 4631 * @brief Start ADC group injected conversion.
AnnaBridge 171:3a7713b1edbc 4632 * @note On this STM32 serie, this function is relevant only for
AnnaBridge 171:3a7713b1edbc 4633 * internal trigger (SW start), not for external trigger:
AnnaBridge 171:3a7713b1edbc 4634 * - If ADC trigger has been set to software start, ADC conversion
AnnaBridge 171:3a7713b1edbc 4635 * starts immediately.
AnnaBridge 171:3a7713b1edbc 4636 * - If ADC trigger has been set to external trigger, ADC conversion
AnnaBridge 171:3a7713b1edbc 4637 * start must be performed using function
AnnaBridge 171:3a7713b1edbc 4638 * @ref LL_ADC_INJ_StartConversionExtTrig().
AnnaBridge 171:3a7713b1edbc 4639 * (if external trigger edge would have been set during ADC other
AnnaBridge 171:3a7713b1edbc 4640 * settings, ADC conversion would start at trigger event
AnnaBridge 171:3a7713b1edbc 4641 * as soon as ADC is enabled).
AnnaBridge 171:3a7713b1edbc 4642 * @rmtoll CR2 JSWSTART LL_ADC_INJ_StartConversionSWStart
AnnaBridge 171:3a7713b1edbc 4643 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 4644 * @retval None
AnnaBridge 171:3a7713b1edbc 4645 */
AnnaBridge 171:3a7713b1edbc 4646 __STATIC_INLINE void LL_ADC_INJ_StartConversionSWStart(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 4647 {
AnnaBridge 171:3a7713b1edbc 4648 SET_BIT(ADCx->CR2, ADC_CR2_JSWSTART);
AnnaBridge 171:3a7713b1edbc 4649 }
AnnaBridge 171:3a7713b1edbc 4650
AnnaBridge 171:3a7713b1edbc 4651 /**
AnnaBridge 171:3a7713b1edbc 4652 * @brief Start ADC group injected conversion from external trigger.
AnnaBridge 171:3a7713b1edbc 4653 * @note ADC conversion will start at next trigger event (on the selected
AnnaBridge 171:3a7713b1edbc 4654 * trigger edge) following the ADC start conversion command.
AnnaBridge 171:3a7713b1edbc 4655 * @note On this STM32 serie, this function is relevant for
AnnaBridge 171:3a7713b1edbc 4656 * ADC conversion start from external trigger.
AnnaBridge 171:3a7713b1edbc 4657 * If internal trigger (SW start) is needed, perform ADC conversion
AnnaBridge 171:3a7713b1edbc 4658 * start using function @ref LL_ADC_INJ_StartConversionSWStart().
AnnaBridge 171:3a7713b1edbc 4659 * @rmtoll CR2 JEXTEN LL_ADC_INJ_StartConversionExtTrig
AnnaBridge 171:3a7713b1edbc 4660 * @param ExternalTriggerEdge This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 4661 * @arg @ref LL_ADC_INJ_TRIG_EXT_RISING
AnnaBridge 171:3a7713b1edbc 4662 * @arg @ref LL_ADC_INJ_TRIG_EXT_FALLING
AnnaBridge 171:3a7713b1edbc 4663 * @arg @ref LL_ADC_INJ_TRIG_EXT_RISINGFALLING
AnnaBridge 171:3a7713b1edbc 4664 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 4665 * @retval None
AnnaBridge 171:3a7713b1edbc 4666 */
AnnaBridge 171:3a7713b1edbc 4667 __STATIC_INLINE void LL_ADC_INJ_StartConversionExtTrig(ADC_TypeDef *ADCx, uint32_t ExternalTriggerEdge)
AnnaBridge 171:3a7713b1edbc 4668 {
AnnaBridge 171:3a7713b1edbc 4669 SET_BIT(ADCx->CR2, ExternalTriggerEdge);
AnnaBridge 171:3a7713b1edbc 4670 }
AnnaBridge 171:3a7713b1edbc 4671
AnnaBridge 171:3a7713b1edbc 4672 /**
AnnaBridge 171:3a7713b1edbc 4673 * @brief Stop ADC group injected conversion from external trigger.
AnnaBridge 171:3a7713b1edbc 4674 * @note No more ADC conversion will start at next trigger event
AnnaBridge 171:3a7713b1edbc 4675 * following the ADC stop conversion command.
AnnaBridge 171:3a7713b1edbc 4676 * If a conversion is on-going, it will be completed.
AnnaBridge 171:3a7713b1edbc 4677 * @note On this STM32 serie, there is no specific command
AnnaBridge 171:3a7713b1edbc 4678 * to stop a conversion on-going or to stop ADC converting
AnnaBridge 171:3a7713b1edbc 4679 * in continuous mode. These actions can be performed
AnnaBridge 171:3a7713b1edbc 4680 * using function @ref LL_ADC_Disable().
AnnaBridge 171:3a7713b1edbc 4681 * @rmtoll CR2 JEXTEN LL_ADC_INJ_StopConversionExtTrig
AnnaBridge 171:3a7713b1edbc 4682 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 4683 * @retval None
AnnaBridge 171:3a7713b1edbc 4684 */
AnnaBridge 171:3a7713b1edbc 4685 __STATIC_INLINE void LL_ADC_INJ_StopConversionExtTrig(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 4686 {
AnnaBridge 171:3a7713b1edbc 4687 CLEAR_BIT(ADCx->CR2, ADC_CR2_JEXTEN);
AnnaBridge 171:3a7713b1edbc 4688 }
AnnaBridge 171:3a7713b1edbc 4689
AnnaBridge 171:3a7713b1edbc 4690 /**
AnnaBridge 171:3a7713b1edbc 4691 * @brief Get ADC group regular conversion data, range fit for
AnnaBridge 171:3a7713b1edbc 4692 * all ADC configurations: all ADC resolutions and
AnnaBridge 171:3a7713b1edbc 4693 * all oversampling increased data width (for devices
AnnaBridge 171:3a7713b1edbc 4694 * with feature oversampling).
AnnaBridge 171:3a7713b1edbc 4695 * @rmtoll JDR1 JDATA LL_ADC_INJ_ReadConversionData32\n
AnnaBridge 171:3a7713b1edbc 4696 * JDR2 JDATA LL_ADC_INJ_ReadConversionData32\n
AnnaBridge 171:3a7713b1edbc 4697 * JDR3 JDATA LL_ADC_INJ_ReadConversionData32\n
AnnaBridge 171:3a7713b1edbc 4698 * JDR4 JDATA LL_ADC_INJ_ReadConversionData32
AnnaBridge 171:3a7713b1edbc 4699 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 4700 * @param Rank This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 4701 * @arg @ref LL_ADC_INJ_RANK_1
AnnaBridge 171:3a7713b1edbc 4702 * @arg @ref LL_ADC_INJ_RANK_2
AnnaBridge 171:3a7713b1edbc 4703 * @arg @ref LL_ADC_INJ_RANK_3
AnnaBridge 171:3a7713b1edbc 4704 * @arg @ref LL_ADC_INJ_RANK_4
AnnaBridge 171:3a7713b1edbc 4705 * @retval Value between Min_Data=0x00000000 and Max_Data=0xFFFFFFFF
AnnaBridge 171:3a7713b1edbc 4706 */
AnnaBridge 171:3a7713b1edbc 4707 __STATIC_INLINE uint32_t LL_ADC_INJ_ReadConversionData32(ADC_TypeDef *ADCx, uint32_t Rank)
AnnaBridge 171:3a7713b1edbc 4708 {
AnnaBridge 171:3a7713b1edbc 4709 register uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->JDR1, __ADC_MASK_SHIFT(Rank, ADC_INJ_JDRX_REGOFFSET_MASK));
AnnaBridge 171:3a7713b1edbc 4710
AnnaBridge 171:3a7713b1edbc 4711 return (uint32_t)(READ_BIT(*preg,
AnnaBridge 171:3a7713b1edbc 4712 ADC_JDR1_JDATA)
AnnaBridge 171:3a7713b1edbc 4713 );
AnnaBridge 171:3a7713b1edbc 4714 }
AnnaBridge 171:3a7713b1edbc 4715
AnnaBridge 171:3a7713b1edbc 4716 /**
AnnaBridge 171:3a7713b1edbc 4717 * @brief Get ADC group injected conversion data, range fit for
AnnaBridge 171:3a7713b1edbc 4718 * ADC resolution 12 bits.
AnnaBridge 171:3a7713b1edbc 4719 * @note For devices with feature oversampling: Oversampling
AnnaBridge 171:3a7713b1edbc 4720 * can increase data width, function for extended range
AnnaBridge 171:3a7713b1edbc 4721 * may be needed: @ref LL_ADC_INJ_ReadConversionData32.
AnnaBridge 171:3a7713b1edbc 4722 * @rmtoll JDR1 JDATA LL_ADC_INJ_ReadConversionData12\n
AnnaBridge 171:3a7713b1edbc 4723 * JDR2 JDATA LL_ADC_INJ_ReadConversionData12\n
AnnaBridge 171:3a7713b1edbc 4724 * JDR3 JDATA LL_ADC_INJ_ReadConversionData12\n
AnnaBridge 171:3a7713b1edbc 4725 * JDR4 JDATA LL_ADC_INJ_ReadConversionData12
AnnaBridge 171:3a7713b1edbc 4726 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 4727 * @param Rank This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 4728 * @arg @ref LL_ADC_INJ_RANK_1
AnnaBridge 171:3a7713b1edbc 4729 * @arg @ref LL_ADC_INJ_RANK_2
AnnaBridge 171:3a7713b1edbc 4730 * @arg @ref LL_ADC_INJ_RANK_3
AnnaBridge 171:3a7713b1edbc 4731 * @arg @ref LL_ADC_INJ_RANK_4
AnnaBridge 171:3a7713b1edbc 4732 * @retval Value between Min_Data=0x000 and Max_Data=0xFFF
AnnaBridge 171:3a7713b1edbc 4733 */
AnnaBridge 171:3a7713b1edbc 4734 __STATIC_INLINE uint16_t LL_ADC_INJ_ReadConversionData12(ADC_TypeDef *ADCx, uint32_t Rank)
AnnaBridge 171:3a7713b1edbc 4735 {
AnnaBridge 171:3a7713b1edbc 4736 register uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->JDR1, __ADC_MASK_SHIFT(Rank, ADC_INJ_JDRX_REGOFFSET_MASK));
AnnaBridge 171:3a7713b1edbc 4737
AnnaBridge 171:3a7713b1edbc 4738 return (uint16_t)(READ_BIT(*preg,
AnnaBridge 171:3a7713b1edbc 4739 ADC_JDR1_JDATA)
AnnaBridge 171:3a7713b1edbc 4740 );
AnnaBridge 171:3a7713b1edbc 4741 }
AnnaBridge 171:3a7713b1edbc 4742
AnnaBridge 171:3a7713b1edbc 4743 /**
AnnaBridge 171:3a7713b1edbc 4744 * @brief Get ADC group injected conversion data, range fit for
AnnaBridge 171:3a7713b1edbc 4745 * ADC resolution 10 bits.
AnnaBridge 171:3a7713b1edbc 4746 * @note For devices with feature oversampling: Oversampling
AnnaBridge 171:3a7713b1edbc 4747 * can increase data width, function for extended range
AnnaBridge 171:3a7713b1edbc 4748 * may be needed: @ref LL_ADC_INJ_ReadConversionData32.
AnnaBridge 171:3a7713b1edbc 4749 * @rmtoll JDR1 JDATA LL_ADC_INJ_ReadConversionData10\n
AnnaBridge 171:3a7713b1edbc 4750 * JDR2 JDATA LL_ADC_INJ_ReadConversionData10\n
AnnaBridge 171:3a7713b1edbc 4751 * JDR3 JDATA LL_ADC_INJ_ReadConversionData10\n
AnnaBridge 171:3a7713b1edbc 4752 * JDR4 JDATA LL_ADC_INJ_ReadConversionData10
AnnaBridge 171:3a7713b1edbc 4753 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 4754 * @param Rank This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 4755 * @arg @ref LL_ADC_INJ_RANK_1
AnnaBridge 171:3a7713b1edbc 4756 * @arg @ref LL_ADC_INJ_RANK_2
AnnaBridge 171:3a7713b1edbc 4757 * @arg @ref LL_ADC_INJ_RANK_3
AnnaBridge 171:3a7713b1edbc 4758 * @arg @ref LL_ADC_INJ_RANK_4
AnnaBridge 171:3a7713b1edbc 4759 * @retval Value between Min_Data=0x000 and Max_Data=0x3FF
AnnaBridge 171:3a7713b1edbc 4760 */
AnnaBridge 171:3a7713b1edbc 4761 __STATIC_INLINE uint16_t LL_ADC_INJ_ReadConversionData10(ADC_TypeDef *ADCx, uint32_t Rank)
AnnaBridge 171:3a7713b1edbc 4762 {
AnnaBridge 171:3a7713b1edbc 4763 register uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->JDR1, __ADC_MASK_SHIFT(Rank, ADC_INJ_JDRX_REGOFFSET_MASK));
AnnaBridge 171:3a7713b1edbc 4764
AnnaBridge 171:3a7713b1edbc 4765 return (uint16_t)(READ_BIT(*preg,
AnnaBridge 171:3a7713b1edbc 4766 ADC_JDR1_JDATA)
AnnaBridge 171:3a7713b1edbc 4767 );
AnnaBridge 171:3a7713b1edbc 4768 }
AnnaBridge 171:3a7713b1edbc 4769
AnnaBridge 171:3a7713b1edbc 4770 /**
AnnaBridge 171:3a7713b1edbc 4771 * @brief Get ADC group injected conversion data, range fit for
AnnaBridge 171:3a7713b1edbc 4772 * ADC resolution 8 bits.
AnnaBridge 171:3a7713b1edbc 4773 * @note For devices with feature oversampling: Oversampling
AnnaBridge 171:3a7713b1edbc 4774 * can increase data width, function for extended range
AnnaBridge 171:3a7713b1edbc 4775 * may be needed: @ref LL_ADC_INJ_ReadConversionData32.
AnnaBridge 171:3a7713b1edbc 4776 * @rmtoll JDR1 JDATA LL_ADC_INJ_ReadConversionData8\n
AnnaBridge 171:3a7713b1edbc 4777 * JDR2 JDATA LL_ADC_INJ_ReadConversionData8\n
AnnaBridge 171:3a7713b1edbc 4778 * JDR3 JDATA LL_ADC_INJ_ReadConversionData8\n
AnnaBridge 171:3a7713b1edbc 4779 * JDR4 JDATA LL_ADC_INJ_ReadConversionData8
AnnaBridge 171:3a7713b1edbc 4780 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 4781 * @param Rank This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 4782 * @arg @ref LL_ADC_INJ_RANK_1
AnnaBridge 171:3a7713b1edbc 4783 * @arg @ref LL_ADC_INJ_RANK_2
AnnaBridge 171:3a7713b1edbc 4784 * @arg @ref LL_ADC_INJ_RANK_3
AnnaBridge 171:3a7713b1edbc 4785 * @arg @ref LL_ADC_INJ_RANK_4
AnnaBridge 171:3a7713b1edbc 4786 * @retval Value between Min_Data=0x00 and Max_Data=0xFF
AnnaBridge 171:3a7713b1edbc 4787 */
AnnaBridge 171:3a7713b1edbc 4788 __STATIC_INLINE uint8_t LL_ADC_INJ_ReadConversionData8(ADC_TypeDef *ADCx, uint32_t Rank)
AnnaBridge 171:3a7713b1edbc 4789 {
AnnaBridge 171:3a7713b1edbc 4790 register uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->JDR1, __ADC_MASK_SHIFT(Rank, ADC_INJ_JDRX_REGOFFSET_MASK));
AnnaBridge 171:3a7713b1edbc 4791
AnnaBridge 171:3a7713b1edbc 4792 return (uint8_t)(READ_BIT(*preg,
AnnaBridge 171:3a7713b1edbc 4793 ADC_JDR1_JDATA)
AnnaBridge 171:3a7713b1edbc 4794 );
AnnaBridge 171:3a7713b1edbc 4795 }
AnnaBridge 171:3a7713b1edbc 4796
AnnaBridge 171:3a7713b1edbc 4797 /**
AnnaBridge 171:3a7713b1edbc 4798 * @brief Get ADC group injected conversion data, range fit for
AnnaBridge 171:3a7713b1edbc 4799 * ADC resolution 6 bits.
AnnaBridge 171:3a7713b1edbc 4800 * @note For devices with feature oversampling: Oversampling
AnnaBridge 171:3a7713b1edbc 4801 * can increase data width, function for extended range
AnnaBridge 171:3a7713b1edbc 4802 * may be needed: @ref LL_ADC_INJ_ReadConversionData32.
AnnaBridge 171:3a7713b1edbc 4803 * @rmtoll JDR1 JDATA LL_ADC_INJ_ReadConversionData6\n
AnnaBridge 171:3a7713b1edbc 4804 * JDR2 JDATA LL_ADC_INJ_ReadConversionData6\n
AnnaBridge 171:3a7713b1edbc 4805 * JDR3 JDATA LL_ADC_INJ_ReadConversionData6\n
AnnaBridge 171:3a7713b1edbc 4806 * JDR4 JDATA LL_ADC_INJ_ReadConversionData6
AnnaBridge 171:3a7713b1edbc 4807 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 4808 * @param Rank This parameter can be one of the following values:
AnnaBridge 171:3a7713b1edbc 4809 * @arg @ref LL_ADC_INJ_RANK_1
AnnaBridge 171:3a7713b1edbc 4810 * @arg @ref LL_ADC_INJ_RANK_2
AnnaBridge 171:3a7713b1edbc 4811 * @arg @ref LL_ADC_INJ_RANK_3
AnnaBridge 171:3a7713b1edbc 4812 * @arg @ref LL_ADC_INJ_RANK_4
AnnaBridge 171:3a7713b1edbc 4813 * @retval Value between Min_Data=0x00 and Max_Data=0x3F
AnnaBridge 171:3a7713b1edbc 4814 */
AnnaBridge 171:3a7713b1edbc 4815 __STATIC_INLINE uint8_t LL_ADC_INJ_ReadConversionData6(ADC_TypeDef *ADCx, uint32_t Rank)
AnnaBridge 171:3a7713b1edbc 4816 {
AnnaBridge 171:3a7713b1edbc 4817 register uint32_t *preg = __ADC_PTR_REG_OFFSET(ADCx->JDR1, __ADC_MASK_SHIFT(Rank, ADC_INJ_JDRX_REGOFFSET_MASK));
AnnaBridge 171:3a7713b1edbc 4818
AnnaBridge 171:3a7713b1edbc 4819 return (uint8_t)(READ_BIT(*preg,
AnnaBridge 171:3a7713b1edbc 4820 ADC_JDR1_JDATA)
AnnaBridge 171:3a7713b1edbc 4821 );
AnnaBridge 171:3a7713b1edbc 4822 }
AnnaBridge 171:3a7713b1edbc 4823
AnnaBridge 171:3a7713b1edbc 4824 /**
AnnaBridge 171:3a7713b1edbc 4825 * @}
AnnaBridge 171:3a7713b1edbc 4826 */
AnnaBridge 171:3a7713b1edbc 4827
AnnaBridge 171:3a7713b1edbc 4828 /** @defgroup ADC_LL_EF_FLAG_Management ADC flag management
AnnaBridge 171:3a7713b1edbc 4829 * @{
AnnaBridge 171:3a7713b1edbc 4830 */
AnnaBridge 171:3a7713b1edbc 4831
AnnaBridge 171:3a7713b1edbc 4832 /**
AnnaBridge 171:3a7713b1edbc 4833 * @brief Get flag ADC ready.
AnnaBridge 171:3a7713b1edbc 4834 * @rmtoll SR ADONS LL_ADC_IsActiveFlag_ADRDY
AnnaBridge 171:3a7713b1edbc 4835 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 4836 * @retval State of bit (1 or 0).
AnnaBridge 171:3a7713b1edbc 4837 */
AnnaBridge 171:3a7713b1edbc 4838 __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_ADRDY(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 4839 {
AnnaBridge 171:3a7713b1edbc 4840 return (READ_BIT(ADCx->SR, LL_ADC_FLAG_ADRDY) == (LL_ADC_FLAG_ADRDY));
AnnaBridge 171:3a7713b1edbc 4841 }
AnnaBridge 171:3a7713b1edbc 4842
AnnaBridge 171:3a7713b1edbc 4843 /**
AnnaBridge 171:3a7713b1edbc 4844 * @brief Get flag ADC group regular end of unitary conversion
AnnaBridge 171:3a7713b1edbc 4845 * or end of sequence conversions, depending on
AnnaBridge 171:3a7713b1edbc 4846 * ADC configuration.
AnnaBridge 171:3a7713b1edbc 4847 * @note To configure flag of end of conversion,
AnnaBridge 171:3a7713b1edbc 4848 * use function @ref LL_ADC_REG_SetFlagEndOfConversion().
AnnaBridge 171:3a7713b1edbc 4849 * @rmtoll SR EOC LL_ADC_IsActiveFlag_EOCS
AnnaBridge 171:3a7713b1edbc 4850 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 4851 * @retval State of bit (1 or 0).
AnnaBridge 171:3a7713b1edbc 4852 */
AnnaBridge 171:3a7713b1edbc 4853 __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_EOCS(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 4854 {
AnnaBridge 171:3a7713b1edbc 4855 return (READ_BIT(ADCx->SR, LL_ADC_FLAG_EOCS) == (LL_ADC_FLAG_EOCS));
AnnaBridge 171:3a7713b1edbc 4856 }
AnnaBridge 171:3a7713b1edbc 4857
AnnaBridge 171:3a7713b1edbc 4858 /**
AnnaBridge 171:3a7713b1edbc 4859 * @brief Get flag ADC group regular overrun.
AnnaBridge 171:3a7713b1edbc 4860 * @rmtoll SR OVR LL_ADC_IsActiveFlag_OVR
AnnaBridge 171:3a7713b1edbc 4861 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 4862 * @retval State of bit (1 or 0).
AnnaBridge 171:3a7713b1edbc 4863 */
AnnaBridge 171:3a7713b1edbc 4864 __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_OVR(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 4865 {
AnnaBridge 171:3a7713b1edbc 4866 return (READ_BIT(ADCx->SR, LL_ADC_FLAG_OVR) == (LL_ADC_FLAG_OVR));
AnnaBridge 171:3a7713b1edbc 4867 }
AnnaBridge 171:3a7713b1edbc 4868
AnnaBridge 171:3a7713b1edbc 4869
AnnaBridge 171:3a7713b1edbc 4870 /**
AnnaBridge 171:3a7713b1edbc 4871 * @brief Get flag ADC group injected end of sequence conversions.
AnnaBridge 171:3a7713b1edbc 4872 * @rmtoll SR JEOC LL_ADC_IsActiveFlag_JEOS
AnnaBridge 171:3a7713b1edbc 4873 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 4874 * @retval State of bit (1 or 0).
AnnaBridge 171:3a7713b1edbc 4875 */
AnnaBridge 171:3a7713b1edbc 4876 __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_JEOS(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 4877 {
AnnaBridge 171:3a7713b1edbc 4878 /* Note: on this STM32 serie, there is no flag ADC group injected */
AnnaBridge 171:3a7713b1edbc 4879 /* end of unitary conversion. */
AnnaBridge 171:3a7713b1edbc 4880 /* Flag noted as "JEOC" is corresponding to flag "JEOS" */
AnnaBridge 171:3a7713b1edbc 4881 /* in other STM32 families). */
AnnaBridge 171:3a7713b1edbc 4882 return (READ_BIT(ADCx->SR, LL_ADC_FLAG_JEOS) == (LL_ADC_FLAG_JEOS));
AnnaBridge 171:3a7713b1edbc 4883 }
AnnaBridge 171:3a7713b1edbc 4884
AnnaBridge 171:3a7713b1edbc 4885 /**
AnnaBridge 171:3a7713b1edbc 4886 * @brief Get flag ADC analog watchdog 1 flag
AnnaBridge 171:3a7713b1edbc 4887 * @rmtoll SR AWD LL_ADC_IsActiveFlag_AWD1
AnnaBridge 171:3a7713b1edbc 4888 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 4889 * @retval State of bit (1 or 0).
AnnaBridge 171:3a7713b1edbc 4890 */
AnnaBridge 171:3a7713b1edbc 4891 __STATIC_INLINE uint32_t LL_ADC_IsActiveFlag_AWD1(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 4892 {
AnnaBridge 171:3a7713b1edbc 4893 return (READ_BIT(ADCx->SR, LL_ADC_FLAG_AWD1) == (LL_ADC_FLAG_AWD1));
AnnaBridge 171:3a7713b1edbc 4894 }
AnnaBridge 171:3a7713b1edbc 4895
AnnaBridge 171:3a7713b1edbc 4896 /**
AnnaBridge 171:3a7713b1edbc 4897 * @brief Clear flag ADC group regular end of unitary conversion
AnnaBridge 171:3a7713b1edbc 4898 * or end of sequence conversions, depending on
AnnaBridge 171:3a7713b1edbc 4899 * ADC configuration.
AnnaBridge 171:3a7713b1edbc 4900 * @note To configure flag of end of conversion,
AnnaBridge 171:3a7713b1edbc 4901 * use function @ref LL_ADC_REG_SetFlagEndOfConversion().
AnnaBridge 171:3a7713b1edbc 4902 * @rmtoll SR EOC LL_ADC_ClearFlag_EOCS
AnnaBridge 171:3a7713b1edbc 4903 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 4904 * @retval None
AnnaBridge 171:3a7713b1edbc 4905 */
AnnaBridge 171:3a7713b1edbc 4906 __STATIC_INLINE void LL_ADC_ClearFlag_EOCS(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 4907 {
AnnaBridge 171:3a7713b1edbc 4908 WRITE_REG(ADCx->SR, ~LL_ADC_FLAG_EOCS);
AnnaBridge 171:3a7713b1edbc 4909 }
AnnaBridge 171:3a7713b1edbc 4910
AnnaBridge 171:3a7713b1edbc 4911 /**
AnnaBridge 171:3a7713b1edbc 4912 * @brief Clear flag ADC group regular overrun.
AnnaBridge 171:3a7713b1edbc 4913 * @rmtoll SR OVR LL_ADC_ClearFlag_OVR
AnnaBridge 171:3a7713b1edbc 4914 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 4915 * @retval None
AnnaBridge 171:3a7713b1edbc 4916 */
AnnaBridge 171:3a7713b1edbc 4917 __STATIC_INLINE void LL_ADC_ClearFlag_OVR(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 4918 {
AnnaBridge 171:3a7713b1edbc 4919 WRITE_REG(ADCx->SR, ~LL_ADC_FLAG_OVR);
AnnaBridge 171:3a7713b1edbc 4920 }
AnnaBridge 171:3a7713b1edbc 4921
AnnaBridge 171:3a7713b1edbc 4922
AnnaBridge 171:3a7713b1edbc 4923 /**
AnnaBridge 171:3a7713b1edbc 4924 * @brief Clear flag ADC group injected end of sequence conversions.
AnnaBridge 171:3a7713b1edbc 4925 * @rmtoll SR JEOC LL_ADC_ClearFlag_JEOS
AnnaBridge 171:3a7713b1edbc 4926 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 4927 * @retval None
AnnaBridge 171:3a7713b1edbc 4928 */
AnnaBridge 171:3a7713b1edbc 4929 __STATIC_INLINE void LL_ADC_ClearFlag_JEOS(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 4930 {
AnnaBridge 171:3a7713b1edbc 4931 /* Note: on this STM32 serie, there is no flag ADC group injected */
AnnaBridge 171:3a7713b1edbc 4932 /* end of unitary conversion. */
AnnaBridge 171:3a7713b1edbc 4933 /* Flag noted as "JEOC" is corresponding to flag "JEOS" */
AnnaBridge 171:3a7713b1edbc 4934 /* in other STM32 families). */
AnnaBridge 171:3a7713b1edbc 4935 WRITE_REG(ADCx->SR, ~LL_ADC_FLAG_JEOS);
AnnaBridge 171:3a7713b1edbc 4936 }
AnnaBridge 171:3a7713b1edbc 4937
AnnaBridge 171:3a7713b1edbc 4938 /**
AnnaBridge 171:3a7713b1edbc 4939 * @brief Clear flag ADC analog watchdog 1.
AnnaBridge 171:3a7713b1edbc 4940 * @rmtoll SR AWD LL_ADC_ClearFlag_AWD1
AnnaBridge 171:3a7713b1edbc 4941 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 4942 * @retval None
AnnaBridge 171:3a7713b1edbc 4943 */
AnnaBridge 171:3a7713b1edbc 4944 __STATIC_INLINE void LL_ADC_ClearFlag_AWD1(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 4945 {
AnnaBridge 171:3a7713b1edbc 4946 WRITE_REG(ADCx->SR, ~LL_ADC_FLAG_AWD1);
AnnaBridge 171:3a7713b1edbc 4947 }
AnnaBridge 171:3a7713b1edbc 4948
AnnaBridge 171:3a7713b1edbc 4949 /**
AnnaBridge 171:3a7713b1edbc 4950 * @}
AnnaBridge 171:3a7713b1edbc 4951 */
AnnaBridge 171:3a7713b1edbc 4952
AnnaBridge 171:3a7713b1edbc 4953 /** @defgroup ADC_LL_EF_IT_Management ADC IT management
AnnaBridge 171:3a7713b1edbc 4954 * @{
AnnaBridge 171:3a7713b1edbc 4955 */
AnnaBridge 171:3a7713b1edbc 4956
AnnaBridge 171:3a7713b1edbc 4957 /**
AnnaBridge 171:3a7713b1edbc 4958 * @brief Enable interruption ADC group regular end of unitary conversion
AnnaBridge 171:3a7713b1edbc 4959 * or end of sequence conversions, depending on
AnnaBridge 171:3a7713b1edbc 4960 * ADC configuration.
AnnaBridge 171:3a7713b1edbc 4961 * @note To configure flag of end of conversion,
AnnaBridge 171:3a7713b1edbc 4962 * use function @ref LL_ADC_REG_SetFlagEndOfConversion().
AnnaBridge 171:3a7713b1edbc 4963 * @rmtoll CR1 EOCIE LL_ADC_EnableIT_EOCS
AnnaBridge 171:3a7713b1edbc 4964 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 4965 * @retval None
AnnaBridge 171:3a7713b1edbc 4966 */
AnnaBridge 171:3a7713b1edbc 4967 __STATIC_INLINE void LL_ADC_EnableIT_EOCS(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 4968 {
AnnaBridge 171:3a7713b1edbc 4969 SET_BIT(ADCx->CR1, LL_ADC_IT_EOCS);
AnnaBridge 171:3a7713b1edbc 4970 }
AnnaBridge 171:3a7713b1edbc 4971
AnnaBridge 171:3a7713b1edbc 4972 /**
AnnaBridge 171:3a7713b1edbc 4973 * @brief Enable ADC group regular interruption overrun.
AnnaBridge 171:3a7713b1edbc 4974 * @rmtoll CR1 OVRIE LL_ADC_EnableIT_OVR
AnnaBridge 171:3a7713b1edbc 4975 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 4976 * @retval None
AnnaBridge 171:3a7713b1edbc 4977 */
AnnaBridge 171:3a7713b1edbc 4978 __STATIC_INLINE void LL_ADC_EnableIT_OVR(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 4979 {
AnnaBridge 171:3a7713b1edbc 4980 SET_BIT(ADCx->CR1, LL_ADC_IT_OVR);
AnnaBridge 171:3a7713b1edbc 4981 }
AnnaBridge 171:3a7713b1edbc 4982
AnnaBridge 171:3a7713b1edbc 4983
AnnaBridge 171:3a7713b1edbc 4984 /**
AnnaBridge 171:3a7713b1edbc 4985 * @brief Enable interruption ADC group injected end of sequence conversions.
AnnaBridge 171:3a7713b1edbc 4986 * @rmtoll CR1 JEOCIE LL_ADC_EnableIT_JEOS
AnnaBridge 171:3a7713b1edbc 4987 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 4988 * @retval None
AnnaBridge 171:3a7713b1edbc 4989 */
AnnaBridge 171:3a7713b1edbc 4990 __STATIC_INLINE void LL_ADC_EnableIT_JEOS(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 4991 {
AnnaBridge 171:3a7713b1edbc 4992 /* Note: on this STM32 serie, there is no flag ADC group injected */
AnnaBridge 171:3a7713b1edbc 4993 /* end of unitary conversion. */
AnnaBridge 171:3a7713b1edbc 4994 /* Flag noted as "JEOC" is corresponding to flag "JEOS" */
AnnaBridge 171:3a7713b1edbc 4995 /* in other STM32 families). */
AnnaBridge 171:3a7713b1edbc 4996 SET_BIT(ADCx->CR1, LL_ADC_IT_JEOS);
AnnaBridge 171:3a7713b1edbc 4997 }
AnnaBridge 171:3a7713b1edbc 4998
AnnaBridge 171:3a7713b1edbc 4999 /**
AnnaBridge 171:3a7713b1edbc 5000 * @brief Enable interruption ADC analog watchdog 1.
AnnaBridge 171:3a7713b1edbc 5001 * @rmtoll CR1 AWDIE LL_ADC_EnableIT_AWD1
AnnaBridge 171:3a7713b1edbc 5002 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 5003 * @retval None
AnnaBridge 171:3a7713b1edbc 5004 */
AnnaBridge 171:3a7713b1edbc 5005 __STATIC_INLINE void LL_ADC_EnableIT_AWD1(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 5006 {
AnnaBridge 171:3a7713b1edbc 5007 SET_BIT(ADCx->CR1, LL_ADC_IT_AWD1);
AnnaBridge 171:3a7713b1edbc 5008 }
AnnaBridge 171:3a7713b1edbc 5009
AnnaBridge 171:3a7713b1edbc 5010 /**
AnnaBridge 171:3a7713b1edbc 5011 * @brief Disable interruption ADC group regular end of unitary conversion
AnnaBridge 171:3a7713b1edbc 5012 * or end of sequence conversions, depending on
AnnaBridge 171:3a7713b1edbc 5013 * ADC configuration.
AnnaBridge 171:3a7713b1edbc 5014 * @note To configure flag of end of conversion,
AnnaBridge 171:3a7713b1edbc 5015 * use function @ref LL_ADC_REG_SetFlagEndOfConversion().
AnnaBridge 171:3a7713b1edbc 5016 * @rmtoll CR1 EOCIE LL_ADC_DisableIT_EOCS
AnnaBridge 171:3a7713b1edbc 5017 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 5018 * @retval None
AnnaBridge 171:3a7713b1edbc 5019 */
AnnaBridge 171:3a7713b1edbc 5020 __STATIC_INLINE void LL_ADC_DisableIT_EOCS(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 5021 {
AnnaBridge 171:3a7713b1edbc 5022 CLEAR_BIT(ADCx->CR1, LL_ADC_IT_EOCS);
AnnaBridge 171:3a7713b1edbc 5023 }
AnnaBridge 171:3a7713b1edbc 5024
AnnaBridge 171:3a7713b1edbc 5025 /**
AnnaBridge 171:3a7713b1edbc 5026 * @brief Disable interruption ADC group regular overrun.
AnnaBridge 171:3a7713b1edbc 5027 * @rmtoll CR1 OVRIE LL_ADC_DisableIT_OVR
AnnaBridge 171:3a7713b1edbc 5028 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 5029 * @retval None
AnnaBridge 171:3a7713b1edbc 5030 */
AnnaBridge 171:3a7713b1edbc 5031 __STATIC_INLINE void LL_ADC_DisableIT_OVR(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 5032 {
AnnaBridge 171:3a7713b1edbc 5033 CLEAR_BIT(ADCx->CR1, LL_ADC_IT_OVR);
AnnaBridge 171:3a7713b1edbc 5034 }
AnnaBridge 171:3a7713b1edbc 5035
AnnaBridge 171:3a7713b1edbc 5036
AnnaBridge 171:3a7713b1edbc 5037 /**
AnnaBridge 171:3a7713b1edbc 5038 * @brief Disable interruption ADC group injected end of sequence conversions.
AnnaBridge 171:3a7713b1edbc 5039 * @rmtoll CR1 JEOCIE LL_ADC_EnableIT_JEOS
AnnaBridge 171:3a7713b1edbc 5040 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 5041 * @retval None
AnnaBridge 171:3a7713b1edbc 5042 */
AnnaBridge 171:3a7713b1edbc 5043 __STATIC_INLINE void LL_ADC_DisableIT_JEOS(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 5044 {
AnnaBridge 171:3a7713b1edbc 5045 /* Note: on this STM32 serie, there is no flag ADC group injected */
AnnaBridge 171:3a7713b1edbc 5046 /* end of unitary conversion. */
AnnaBridge 171:3a7713b1edbc 5047 /* Flag noted as "JEOC" is corresponding to flag "JEOS" */
AnnaBridge 171:3a7713b1edbc 5048 /* in other STM32 families). */
AnnaBridge 171:3a7713b1edbc 5049 CLEAR_BIT(ADCx->CR1, LL_ADC_IT_JEOS);
AnnaBridge 171:3a7713b1edbc 5050 }
AnnaBridge 171:3a7713b1edbc 5051
AnnaBridge 171:3a7713b1edbc 5052 /**
AnnaBridge 171:3a7713b1edbc 5053 * @brief Disable interruption ADC analog watchdog 1.
AnnaBridge 171:3a7713b1edbc 5054 * @rmtoll CR1 AWDIE LL_ADC_EnableIT_AWD1
AnnaBridge 171:3a7713b1edbc 5055 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 5056 * @retval None
AnnaBridge 171:3a7713b1edbc 5057 */
AnnaBridge 171:3a7713b1edbc 5058 __STATIC_INLINE void LL_ADC_DisableIT_AWD1(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 5059 {
AnnaBridge 171:3a7713b1edbc 5060 CLEAR_BIT(ADCx->CR1, LL_ADC_IT_AWD1);
AnnaBridge 171:3a7713b1edbc 5061 }
AnnaBridge 171:3a7713b1edbc 5062
AnnaBridge 171:3a7713b1edbc 5063 /**
AnnaBridge 171:3a7713b1edbc 5064 * @brief Get state of interruption ADC group regular end of unitary conversion
AnnaBridge 171:3a7713b1edbc 5065 * or end of sequence conversions, depending on
AnnaBridge 171:3a7713b1edbc 5066 * ADC configuration.
AnnaBridge 171:3a7713b1edbc 5067 * @note To configure flag of end of conversion,
AnnaBridge 171:3a7713b1edbc 5068 * use function @ref LL_ADC_REG_SetFlagEndOfConversion().
AnnaBridge 171:3a7713b1edbc 5069 * (0: interrupt disabled, 1: interrupt enabled)
AnnaBridge 171:3a7713b1edbc 5070 * @rmtoll CR1 EOCIE LL_ADC_IsEnabledIT_EOCS
AnnaBridge 171:3a7713b1edbc 5071 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 5072 * @retval State of bit (1 or 0).
AnnaBridge 171:3a7713b1edbc 5073 */
AnnaBridge 171:3a7713b1edbc 5074 __STATIC_INLINE uint32_t LL_ADC_IsEnabledIT_EOCS(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 5075 {
AnnaBridge 171:3a7713b1edbc 5076 return (READ_BIT(ADCx->CR1, LL_ADC_IT_EOCS) == (LL_ADC_IT_EOCS));
AnnaBridge 171:3a7713b1edbc 5077 }
AnnaBridge 171:3a7713b1edbc 5078
AnnaBridge 171:3a7713b1edbc 5079 /**
AnnaBridge 171:3a7713b1edbc 5080 * @brief Get state of interruption ADC group regular overrun
AnnaBridge 171:3a7713b1edbc 5081 * (0: interrupt disabled, 1: interrupt enabled).
AnnaBridge 171:3a7713b1edbc 5082 * @rmtoll CR1 OVRIE LL_ADC_IsEnabledIT_OVR
AnnaBridge 171:3a7713b1edbc 5083 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 5084 * @retval State of bit (1 or 0).
AnnaBridge 171:3a7713b1edbc 5085 */
AnnaBridge 171:3a7713b1edbc 5086 __STATIC_INLINE uint32_t LL_ADC_IsEnabledIT_OVR(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 5087 {
AnnaBridge 171:3a7713b1edbc 5088 return (READ_BIT(ADCx->CR1, LL_ADC_IT_OVR) == (LL_ADC_IT_OVR));
AnnaBridge 171:3a7713b1edbc 5089 }
AnnaBridge 171:3a7713b1edbc 5090
AnnaBridge 171:3a7713b1edbc 5091
AnnaBridge 171:3a7713b1edbc 5092 /**
AnnaBridge 171:3a7713b1edbc 5093 * @brief Get state of interruption ADC group injected end of sequence conversions
AnnaBridge 171:3a7713b1edbc 5094 * (0: interrupt disabled, 1: interrupt enabled).
AnnaBridge 171:3a7713b1edbc 5095 * @rmtoll CR1 JEOCIE LL_ADC_EnableIT_JEOS
AnnaBridge 171:3a7713b1edbc 5096 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 5097 * @retval State of bit (1 or 0).
AnnaBridge 171:3a7713b1edbc 5098 */
AnnaBridge 171:3a7713b1edbc 5099 __STATIC_INLINE uint32_t LL_ADC_IsEnabledIT_JEOS(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 5100 {
AnnaBridge 171:3a7713b1edbc 5101 /* Note: on this STM32 serie, there is no flag ADC group injected */
AnnaBridge 171:3a7713b1edbc 5102 /* end of unitary conversion. */
AnnaBridge 171:3a7713b1edbc 5103 /* Flag noted as "JEOC" is corresponding to flag "JEOS" */
AnnaBridge 171:3a7713b1edbc 5104 /* in other STM32 families). */
AnnaBridge 171:3a7713b1edbc 5105 return (READ_BIT(ADCx->CR1, LL_ADC_IT_JEOS) == (LL_ADC_IT_JEOS));
AnnaBridge 171:3a7713b1edbc 5106 }
AnnaBridge 171:3a7713b1edbc 5107
AnnaBridge 171:3a7713b1edbc 5108 /**
AnnaBridge 171:3a7713b1edbc 5109 * @brief Get state of interruption ADC analog watchdog 1
AnnaBridge 171:3a7713b1edbc 5110 * (0: interrupt disabled, 1: interrupt enabled).
AnnaBridge 171:3a7713b1edbc 5111 * @rmtoll CR1 AWDIE LL_ADC_EnableIT_AWD1
AnnaBridge 171:3a7713b1edbc 5112 * @param ADCx ADC instance
AnnaBridge 171:3a7713b1edbc 5113 * @retval State of bit (1 or 0).
AnnaBridge 171:3a7713b1edbc 5114 */
AnnaBridge 171:3a7713b1edbc 5115 __STATIC_INLINE uint32_t LL_ADC_IsEnabledIT_AWD1(ADC_TypeDef *ADCx)
AnnaBridge 171:3a7713b1edbc 5116 {
AnnaBridge 171:3a7713b1edbc 5117 return (READ_BIT(ADCx->CR1, LL_ADC_IT_AWD1) == (LL_ADC_IT_AWD1));
AnnaBridge 171:3a7713b1edbc 5118 }
AnnaBridge 171:3a7713b1edbc 5119
AnnaBridge 171:3a7713b1edbc 5120 /**
AnnaBridge 171:3a7713b1edbc 5121 * @}
AnnaBridge 171:3a7713b1edbc 5122 */
AnnaBridge 171:3a7713b1edbc 5123
AnnaBridge 171:3a7713b1edbc 5124 #if defined(USE_FULL_LL_DRIVER)
AnnaBridge 171:3a7713b1edbc 5125 /** @defgroup ADC_LL_EF_Init Initialization and de-initialization functions
AnnaBridge 171:3a7713b1edbc 5126 * @{
AnnaBridge 171:3a7713b1edbc 5127 */
AnnaBridge 171:3a7713b1edbc 5128
AnnaBridge 171:3a7713b1edbc 5129 /* Initialization of some features of ADC common parameters and multimode */
AnnaBridge 171:3a7713b1edbc 5130 ErrorStatus LL_ADC_CommonDeInit(ADC_Common_TypeDef *ADCxy_COMMON);
AnnaBridge 171:3a7713b1edbc 5131 ErrorStatus LL_ADC_CommonInit(ADC_Common_TypeDef *ADCxy_COMMON, LL_ADC_CommonInitTypeDef *ADC_CommonInitStruct);
AnnaBridge 171:3a7713b1edbc 5132 void LL_ADC_CommonStructInit(LL_ADC_CommonInitTypeDef *ADC_CommonInitStruct);
AnnaBridge 171:3a7713b1edbc 5133
AnnaBridge 171:3a7713b1edbc 5134 /* De-initialization of ADC instance, ADC group regular and ADC group injected */
AnnaBridge 171:3a7713b1edbc 5135 /* (availability of ADC group injected depends on STM32 families) */
AnnaBridge 171:3a7713b1edbc 5136 ErrorStatus LL_ADC_DeInit(ADC_TypeDef *ADCx);
AnnaBridge 171:3a7713b1edbc 5137
AnnaBridge 171:3a7713b1edbc 5138 /* Initialization of some features of ADC instance */
AnnaBridge 171:3a7713b1edbc 5139 ErrorStatus LL_ADC_Init(ADC_TypeDef *ADCx, LL_ADC_InitTypeDef *ADC_InitStruct);
AnnaBridge 171:3a7713b1edbc 5140 void LL_ADC_StructInit(LL_ADC_InitTypeDef *ADC_InitStruct);
AnnaBridge 171:3a7713b1edbc 5141
AnnaBridge 171:3a7713b1edbc 5142 /* Initialization of some features of ADC instance and ADC group regular */
AnnaBridge 171:3a7713b1edbc 5143 ErrorStatus LL_ADC_REG_Init(ADC_TypeDef *ADCx, LL_ADC_REG_InitTypeDef *ADC_REG_InitStruct);
AnnaBridge 171:3a7713b1edbc 5144 void LL_ADC_REG_StructInit(LL_ADC_REG_InitTypeDef *ADC_REG_InitStruct);
AnnaBridge 171:3a7713b1edbc 5145
AnnaBridge 171:3a7713b1edbc 5146 /* Initialization of some features of ADC instance and ADC group injected */
AnnaBridge 171:3a7713b1edbc 5147 ErrorStatus LL_ADC_INJ_Init(ADC_TypeDef *ADCx, LL_ADC_INJ_InitTypeDef *ADC_INJ_InitStruct);
AnnaBridge 171:3a7713b1edbc 5148 void LL_ADC_INJ_StructInit(LL_ADC_INJ_InitTypeDef *ADC_INJ_InitStruct);
AnnaBridge 171:3a7713b1edbc 5149
AnnaBridge 171:3a7713b1edbc 5150 /**
AnnaBridge 171:3a7713b1edbc 5151 * @}
AnnaBridge 171:3a7713b1edbc 5152 */
AnnaBridge 171:3a7713b1edbc 5153 #endif /* USE_FULL_LL_DRIVER */
AnnaBridge 171:3a7713b1edbc 5154
AnnaBridge 171:3a7713b1edbc 5155 /**
AnnaBridge 171:3a7713b1edbc 5156 * @}
AnnaBridge 171:3a7713b1edbc 5157 */
AnnaBridge 171:3a7713b1edbc 5158
AnnaBridge 171:3a7713b1edbc 5159 /**
AnnaBridge 171:3a7713b1edbc 5160 * @}
AnnaBridge 171:3a7713b1edbc 5161 */
AnnaBridge 171:3a7713b1edbc 5162
AnnaBridge 171:3a7713b1edbc 5163 #endif /* ADC1 */
AnnaBridge 171:3a7713b1edbc 5164
AnnaBridge 171:3a7713b1edbc 5165 /**
AnnaBridge 171:3a7713b1edbc 5166 * @}
AnnaBridge 171:3a7713b1edbc 5167 */
AnnaBridge 171:3a7713b1edbc 5168
AnnaBridge 171:3a7713b1edbc 5169 #ifdef __cplusplus
AnnaBridge 171:3a7713b1edbc 5170 }
AnnaBridge 171:3a7713b1edbc 5171 #endif
AnnaBridge 171:3a7713b1edbc 5172
AnnaBridge 171:3a7713b1edbc 5173 #endif /* __STM32L1xx_LL_ADC_H */
AnnaBridge 171:3a7713b1edbc 5174
AnnaBridge 171:3a7713b1edbc 5175 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/