mbed library sources. Supersedes mbed-src.

Dependents:   Nucleo_Hello_Encoder BLE_iBeaconScan AM1805_DEMO DISCO-F429ZI_ExportTemplate1 ... more

Committer:
AnnaBridge
Date:
Wed Feb 20 22:31:08 2019 +0000
Revision:
189:f392fc9709a3
Parent:
184:08ed48f1de7f
mbed library release version 165

Who changed what in which revision?

UserRevisionLine numberNew contents of line
<> 149:156823d33999 1 /**
<> 149:156823d33999 2 ******************************************************************************
<> 149:156823d33999 3 * @file stm32l1xx_hal_opamp_ex.h
<> 149:156823d33999 4 * @author MCD Application Team
<> 149:156823d33999 5 * @brief Header file of OPAMP HAL Extension module.
<> 149:156823d33999 6 ******************************************************************************
<> 149:156823d33999 7 * @attention
<> 149:156823d33999 8 *
AnnaBridge 184:08ed48f1de7f 9 * <h2><center>&copy; COPYRIGHT(c) 2017 STMicroelectronics</center></h2>
<> 149:156823d33999 10 *
<> 149:156823d33999 11 * Redistribution and use in source and binary forms, with or without modification,
<> 149:156823d33999 12 * are permitted provided that the following conditions are met:
<> 149:156823d33999 13 * 1. Redistributions of source code must retain the above copyright notice,
<> 149:156823d33999 14 * this list of conditions and the following disclaimer.
<> 149:156823d33999 15 * 2. Redistributions in binary form must reproduce the above copyright notice,
<> 149:156823d33999 16 * this list of conditions and the following disclaimer in the documentation
<> 149:156823d33999 17 * and/or other materials provided with the distribution.
<> 149:156823d33999 18 * 3. Neither the name of STMicroelectronics nor the names of its contributors
<> 149:156823d33999 19 * may be used to endorse or promote products derived from this software
<> 149:156823d33999 20 * without specific prior written permission.
<> 149:156823d33999 21 *
<> 149:156823d33999 22 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
<> 149:156823d33999 23 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
<> 149:156823d33999 24 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
<> 149:156823d33999 25 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
<> 149:156823d33999 26 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
<> 149:156823d33999 27 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
<> 149:156823d33999 28 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
<> 149:156823d33999 29 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
<> 149:156823d33999 30 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
<> 149:156823d33999 31 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
<> 149:156823d33999 32 *
<> 149:156823d33999 33 ******************************************************************************
<> 149:156823d33999 34 */
<> 149:156823d33999 35
<> 149:156823d33999 36 /* Define to prevent recursive inclusion -------------------------------------*/
<> 149:156823d33999 37 #ifndef __STM32L1xx_HAL_OPAMP_EX_H
<> 149:156823d33999 38 #define __STM32L1xx_HAL_OPAMP_EX_H
<> 149:156823d33999 39
<> 149:156823d33999 40 #ifdef __cplusplus
<> 149:156823d33999 41 extern "C" {
<> 149:156823d33999 42 #endif
<> 149:156823d33999 43
<> 149:156823d33999 44 #if defined (STM32L151xCA) || defined (STM32L151xD) || defined (STM32L152xCA) || defined (STM32L152xD) || defined (STM32L162xCA) || defined (STM32L162xD) || defined (STM32L151xE) || defined (STM32L151xDX) || defined (STM32L152xE) || defined (STM32L152xDX) || defined (STM32L162xE) || defined (STM32L162xDX) || defined (STM32L162xC) || defined (STM32L152xC) || defined (STM32L151xC)
<> 149:156823d33999 45
<> 149:156823d33999 46 /* Includes ------------------------------------------------------------------*/
<> 149:156823d33999 47 #include "stm32l1xx_hal_def.h"
<> 149:156823d33999 48
<> 149:156823d33999 49 /** @addtogroup STM32L1xx_HAL_Driver
<> 149:156823d33999 50 * @{
<> 149:156823d33999 51 */
<> 149:156823d33999 52
<> 149:156823d33999 53 /** @addtogroup OPAMPEx
<> 149:156823d33999 54 * @{
<> 149:156823d33999 55 */
<> 149:156823d33999 56 /* Exported types ------------------------------------------------------------*/
<> 149:156823d33999 57 /* Exported constants ---------------------------------------------------------*/
<> 149:156823d33999 58 /** @defgroup OPAMPEx_Exported_Constants OPAMPEx Exported Constants
<> 149:156823d33999 59 * @{
<> 149:156823d33999 60 */
<> 149:156823d33999 61 #if defined (STM32L151xD) || defined (STM32L152xD) || defined (STM32L162xD)
<> 149:156823d33999 62 #define OPAMP_CSR_OPAXPD_ALL \
<> 149:156823d33999 63 (OPAMP_CSR_OPA1PD | OPAMP_CSR_OPA2PD | OPAMP_CSR_OPA3PD)
<> 149:156823d33999 64
<> 149:156823d33999 65 #define OPAMP_CSR_OPAXCAL_L_ALL \
<> 149:156823d33999 66 (OPAMP_CSR_OPA1CAL_L | OPAMP_CSR_OPA2CAL_L | OPAMP_CSR_OPA3CAL_L)
<> 149:156823d33999 67
<> 149:156823d33999 68 #define OPAMP_CSR_OPAXCAL_H_ALL \
<> 149:156823d33999 69 (OPAMP_CSR_OPA1CAL_H | OPAMP_CSR_OPA2CAL_H | OPAMP_CSR_OPA3CAL_H)
<> 149:156823d33999 70
<> 149:156823d33999 71 #define OPAMP_CSR_ALL_SWITCHES_ALL_OPAMPS \
<> 149:156823d33999 72 (OPAMP_CSR_S3SEL1 | OPAMP_CSR_S4SEL1 | OPAMP_CSR_S5SEL1 | OPAMP_CSR_S6SEL1 | \
<> 149:156823d33999 73 OPAMP_CSR_ANAWSEL1 | \
<> 149:156823d33999 74 OPAMP_CSR_S3SEL2 | OPAMP_CSR_S4SEL2 | OPAMP_CSR_S5SEL2 | OPAMP_CSR_S6SEL2 | \
<> 149:156823d33999 75 OPAMP_CSR_ANAWSEL2 | OPAMP_CSR_S7SEL2 | \
<> 149:156823d33999 76 OPAMP_CSR_S3SEL3 | OPAMP_CSR_S4SEL3 | OPAMP_CSR_S5SEL3 | OPAMP_CSR_S6SEL3 | \
<> 149:156823d33999 77 OPAMP_CSR_ANAWSEL3 )
<> 149:156823d33999 78 #else
<> 149:156823d33999 79 #define OPAMP_CSR_OPAXPD_ALL \
<> 149:156823d33999 80 (OPAMP_CSR_OPA1PD | OPAMP_CSR_OPA2PD)
<> 149:156823d33999 81
<> 149:156823d33999 82 #define OPAMP_CSR_OPAXCAL_L_ALL \
<> 149:156823d33999 83 (OPAMP_CSR_OPA1CAL_L | OPAMP_CSR_OPA2CAL_L)
<> 149:156823d33999 84
<> 149:156823d33999 85 #define OPAMP_CSR_OPAXCAL_H_ALL \
<> 149:156823d33999 86 (OPAMP_CSR_OPA1CAL_H | OPAMP_CSR_OPA2CAL_H)
<> 149:156823d33999 87
<> 149:156823d33999 88 #define OPAMP_CSR_ALL_SWITCHES_ALL_OPAMPS \
<> 149:156823d33999 89 (OPAMP_CSR_S3SEL1 | OPAMP_CSR_S4SEL1 | OPAMP_CSR_S5SEL1 | OPAMP_CSR_S6SEL1 | \
<> 149:156823d33999 90 OPAMP_CSR_ANAWSEL1 | \
<> 149:156823d33999 91 OPAMP_CSR_S3SEL2 | OPAMP_CSR_S4SEL2 | OPAMP_CSR_S5SEL2 | OPAMP_CSR_S6SEL2 | \
<> 149:156823d33999 92 OPAMP_CSR_ANAWSEL2 | OPAMP_CSR_S7SEL2 )
<> 149:156823d33999 93 #endif /* STM32L151xD || STM32L152xD || STM32L162xD */
<> 149:156823d33999 94
<> 149:156823d33999 95 /**
<> 149:156823d33999 96 * @}
<> 149:156823d33999 97 */
<> 149:156823d33999 98
<> 149:156823d33999 99 /* Exported macro ------------------------------------------------------------*/
<> 149:156823d33999 100
<> 149:156823d33999 101 /** @defgroup OPAMPEx_Exported_Macro OPAMPEx Exported Macro
<> 149:156823d33999 102 * @{
<> 149:156823d33999 103 */
<> 149:156823d33999 104
<> 149:156823d33999 105 #if defined (STM32L151xD) || defined (STM32L152xD) || defined (STM32L162xD)
<> 149:156823d33999 106 /**
<> 149:156823d33999 107 * @brief Enable internal analog switch SW1 to connect OPAMP3 ouput to ADC
<> 149:156823d33999 108 * switch matrix (ADC channel VCOMP, channel 26) and COMP1 non-inverting input
<> 149:156823d33999 109 * (OPAMP3 available on STM32L1 devices Cat.4 only).
<> 149:156823d33999 110 * @retval None
<> 149:156823d33999 111 */
<> 149:156823d33999 112 #define __HAL_OPAMP_OPAMP3OUT_CONNECT_ADC_COMP1() __HAL_RI_SWITCH_COMP1_SW1_CLOSE()
<> 149:156823d33999 113
<> 149:156823d33999 114 /**
<> 149:156823d33999 115 * @brief Disable internal analog switch SW1 to disconnect OPAMP3 ouput from
<> 149:156823d33999 116 * ADC switch matrix (ADC channel VCOMP, channel 26) and COMP1 non-inverting
<> 149:156823d33999 117 * input.
<> 149:156823d33999 118 * @retval None
<> 149:156823d33999 119 */
<> 149:156823d33999 120 #define __HAL_OPAMP_OPAMP3OUT_DISCONNECT_ADC_COMP1() __HAL_RI_SWITCH_COMP1_SW1_OPEN()
<> 149:156823d33999 121 #endif /* STM32L151xD || STM32L152xD || STM32L162xD */
<> 149:156823d33999 122
<> 149:156823d33999 123 /**
<> 149:156823d33999 124 * @}
<> 149:156823d33999 125 */
<> 149:156823d33999 126
<> 149:156823d33999 127 /* Private macro -------------------------------------------------------------*/
<> 149:156823d33999 128
<> 149:156823d33999 129 /** @defgroup OPAMPEx_Private_Macro OPAMPEx Private Macro
<> 149:156823d33999 130 * @{
<> 149:156823d33999 131 */
<> 149:156823d33999 132
<> 149:156823d33999 133 #if defined (STM32L151xD) || defined (STM32L152xD) || defined (STM32L162xD)
<> 149:156823d33999 134 /**
<> 149:156823d33999 135 * @brief Get the OPAMP instance in decimal number for further
<> 149:156823d33999 136 * processing needs by HAL OPAMP driver functions.
<> 149:156823d33999 137 * @param __HANDLE__: OPAMP handle
<> 149:156823d33999 138 * @retval "0" for OPAMP1, "1" for OPAMP2, "2" for OPAMP3
<> 149:156823d33999 139 */
<> 149:156823d33999 140 #define OPAMP_INSTANCE_DECIMAL(__HANDLE__) \
<> 149:156823d33999 141 ( ( ((__HANDLE__)->Instance == OPAMP1) \
<> 149:156823d33999 142 )? \
<> 149:156823d33999 143 ((uint32_t)0) \
<> 149:156823d33999 144 : \
<> 149:156823d33999 145 ( ( ((__HANDLE__)->Instance == OPAMP2) \
<> 149:156823d33999 146 )? \
<> 149:156823d33999 147 ((uint32_t)1) \
<> 149:156823d33999 148 : \
<> 149:156823d33999 149 ((uint32_t)2) \
<> 149:156823d33999 150 ) \
<> 149:156823d33999 151 )
<> 149:156823d33999 152 #else
<> 149:156823d33999 153 /**
<> 149:156823d33999 154 * @brief Get the OPAMP instance in decimal number for further
<> 149:156823d33999 155 * processing needs by HAL OPAMP driver functions.
<> 149:156823d33999 156 * @param __HANDLE__: OPAMP handle
<> 149:156823d33999 157 * @retval "0" for OPAMP1, "1" for OPAMP2
<> 149:156823d33999 158 */
<> 149:156823d33999 159 #define OPAMP_INSTANCE_DECIMAL(__HANDLE__) \
<> 149:156823d33999 160 ( ( ((__HANDLE__)->Instance == OPAMP1) \
<> 149:156823d33999 161 )? \
<> 149:156823d33999 162 ((uint32_t)0) \
<> 149:156823d33999 163 : \
<> 149:156823d33999 164 ((uint32_t)1) \
<> 149:156823d33999 165 )
<> 149:156823d33999 166 #endif /* STM32L151xD || STM32L152xD || STM32L162xD */
<> 149:156823d33999 167
<> 149:156823d33999 168 #if defined (STM32L151xD) || defined (STM32L152xD) || defined (STM32L162xD)
<> 149:156823d33999 169
<> 149:156823d33999 170 /**
<> 149:156823d33999 171 * @brief Check OPAMP non-inverting input in function of OPAMPx instance
<> 149:156823d33999 172 * @param __HANDLE__: OPAMP handle
<> 149:156823d33999 173 * @param INPUT: OPAMP non-inverting input
<> 149:156823d33999 174 * @retval None
<> 149:156823d33999 175 */
<> 149:156823d33999 176 #define IS_OPAMP_NONINVERTING_INPUT_CHECK_INSTANCE(__HANDLE__, INPUT) \
<> 149:156823d33999 177 ( ( ((__HANDLE__)->Instance == OPAMP1) \
<> 149:156823d33999 178 )? \
<> 149:156823d33999 179 ( \
<> 149:156823d33999 180 ((INPUT) == OPAMP_NONINVERTINGINPUT_IO0) || \
<> 149:156823d33999 181 ((INPUT) == OPAMP_NONINVERTINGINPUT_DAC_CH1) \
<> 149:156823d33999 182 ) \
<> 149:156823d33999 183 : \
<> 149:156823d33999 184 ( ( ((__HANDLE__)->Instance == OPAMP2) \
<> 149:156823d33999 185 )? \
<> 149:156823d33999 186 ( \
<> 149:156823d33999 187 ((INPUT) == OPAMP_NONINVERTINGINPUT_IO0) || \
<> 149:156823d33999 188 ((INPUT) == OPAMP_NONINVERTINGINPUT_DAC_CH1) || \
<> 149:156823d33999 189 ((INPUT) == OPAMP_NONINVERTINGINPUT_DAC_CH2) \
<> 149:156823d33999 190 ) \
<> 149:156823d33999 191 : \
<> 149:156823d33999 192 ( \
<> 149:156823d33999 193 ((INPUT) == OPAMP_NONINVERTINGINPUT_IO0) || \
<> 149:156823d33999 194 ((INPUT) == OPAMP_NONINVERTINGINPUT_DAC_CH2) \
<> 149:156823d33999 195 ) \
<> 149:156823d33999 196 ) \
<> 149:156823d33999 197 )
<> 149:156823d33999 198 #else
<> 149:156823d33999 199 /**
<> 149:156823d33999 200 * @brief Check OPAMP non-inverting input in function of OPAMPx instance
<> 149:156823d33999 201 * @param __HANDLE__: OPAMP handle
<> 149:156823d33999 202 * @param INPUT: OPAMP non-inverting input
<> 149:156823d33999 203 * @retval None
<> 149:156823d33999 204 */
<> 149:156823d33999 205 #define IS_OPAMP_NONINVERTING_INPUT_CHECK_INSTANCE(__HANDLE__, INPUT) \
<> 149:156823d33999 206 ( ( ((__HANDLE__)->Instance == OPAMP1) \
<> 149:156823d33999 207 )? \
<> 149:156823d33999 208 ( \
<> 149:156823d33999 209 ((INPUT) == OPAMP_NONINVERTINGINPUT_IO0) || \
<> 149:156823d33999 210 ((INPUT) == OPAMP_NONINVERTINGINPUT_DAC_CH1) \
<> 149:156823d33999 211 ) \
<> 149:156823d33999 212 : \
<> 149:156823d33999 213 ( \
<> 149:156823d33999 214 ((INPUT) == OPAMP_NONINVERTINGINPUT_IO0) || \
<> 149:156823d33999 215 ((INPUT) == OPAMP_NONINVERTINGINPUT_DAC_CH1) || \
<> 149:156823d33999 216 ((INPUT) == OPAMP_NONINVERTINGINPUT_DAC_CH2) \
<> 149:156823d33999 217 ) \
<> 149:156823d33999 218 )
<> 149:156823d33999 219 #endif /* STM32L151xD || STM32L152xD || STM32L162xD */
<> 149:156823d33999 220
<> 149:156823d33999 221 /**
<> 149:156823d33999 222 * @}
<> 149:156823d33999 223 */
<> 149:156823d33999 224
<> 149:156823d33999 225 /* Exported functions --------------------------------------------------------*/
<> 149:156823d33999 226 /** @addtogroup OPAMPEx_Exported_Functions
<> 149:156823d33999 227 * @{
<> 149:156823d33999 228 */
<> 149:156823d33999 229
<> 149:156823d33999 230 /* I/O operation functions *****************************************************/
<> 149:156823d33999 231 /** @defgroup OPAMPEx_Exported_Functions_Group1 Extended Input and Output operation functions
<> 149:156823d33999 232 * @{
<> 149:156823d33999 233 */
<> 149:156823d33999 234 #if defined (STM32L151xD) || defined (STM32L152xD) || defined (STM32L162xD)
<> 149:156823d33999 235 HAL_StatusTypeDef HAL_OPAMPEx_SelfCalibrateAll(OPAMP_HandleTypeDef *hopamp1, OPAMP_HandleTypeDef *hopamp2, OPAMP_HandleTypeDef *hopamp3);
<> 149:156823d33999 236 #else
<> 149:156823d33999 237 HAL_StatusTypeDef HAL_OPAMPEx_SelfCalibrateAll(OPAMP_HandleTypeDef *hopamp1, OPAMP_HandleTypeDef *hopamp2);
<> 149:156823d33999 238 #endif /* STM32L151xD || STM32L152xD || STM32L162xD */
<> 149:156823d33999 239 /**
<> 149:156823d33999 240 * @}
<> 149:156823d33999 241 */
<> 149:156823d33999 242 /* Peripheral Control functions ************************************************/
<> 149:156823d33999 243 /** @addtogroup OPAMPEx_Exported_Functions_Group2
<> 149:156823d33999 244 * @{
<> 149:156823d33999 245 */
<> 149:156823d33999 246 HAL_StatusTypeDef HAL_OPAMPEx_Unlock(OPAMP_HandleTypeDef *hopamp);
<> 149:156823d33999 247 /**
<> 149:156823d33999 248 * @}
<> 149:156823d33999 249 */
<> 149:156823d33999 250
<> 149:156823d33999 251 /**
<> 149:156823d33999 252 * @}
<> 149:156823d33999 253 */
<> 149:156823d33999 254
<> 149:156823d33999 255 /**
<> 149:156823d33999 256 * @}
<> 149:156823d33999 257 */
<> 149:156823d33999 258
<> 149:156823d33999 259 /**
<> 149:156823d33999 260 * @}
<> 149:156823d33999 261 */
<> 149:156823d33999 262
<> 149:156823d33999 263 #endif /* STM32L151xCA || STM32L151xD || STM32L152xCA || STM32L152xD || STM32L162xCA || STM32L162xD || STM32L151xE || STM32L151xDX || STM32L152xE || STM32L152xDX || STM32L162xE || STM32L162xDX || STM32L162xC || STM32L152xC || STM32L151xC */
<> 149:156823d33999 264
<> 149:156823d33999 265 #ifdef __cplusplus
<> 149:156823d33999 266 }
<> 149:156823d33999 267 #endif
<> 149:156823d33999 268
<> 149:156823d33999 269
<> 149:156823d33999 270 #endif /* __STM32L1xx_HAL_OPAMP_EX_H */
<> 149:156823d33999 271
<> 149:156823d33999 272 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/