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
mbed library release version 165

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AnnaBridge 172:65be27845400 1 /**
AnnaBridge 172:65be27845400 2 ******************************************************************************
AnnaBridge 172:65be27845400 3 * @file stm32h7xx_hal_opamp.h
AnnaBridge 172:65be27845400 4 * @author MCD Application Team
AnnaBridge 172:65be27845400 5 * @brief Header file of OPAMP HAL module.
AnnaBridge 172:65be27845400 6 ******************************************************************************
AnnaBridge 172:65be27845400 7 * @attention
AnnaBridge 172:65be27845400 8 *
AnnaBridge 172:65be27845400 9 * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
AnnaBridge 172:65be27845400 10 * All rights reserved.</center></h2>
AnnaBridge 172:65be27845400 11 *
AnnaBridge 172:65be27845400 12 * This software component is licensed by ST under BSD 3-Clause license,
AnnaBridge 172:65be27845400 13 * the "License"; You may not use this file except in compliance with the
AnnaBridge 172:65be27845400 14 * License. You may obtain a copy of the License at:
AnnaBridge 172:65be27845400 15 * opensource.org/licenses/BSD-3-Clause
AnnaBridge 172:65be27845400 16 *
AnnaBridge 172:65be27845400 17 ******************************************************************************
AnnaBridge 172:65be27845400 18 */
AnnaBridge 172:65be27845400 19
AnnaBridge 172:65be27845400 20 /* Define to prevent recursive inclusion -------------------------------------*/
AnnaBridge 172:65be27845400 21 #ifndef STM32H7xx_HAL_OPAMP_H
AnnaBridge 172:65be27845400 22 #define STM32H7xx_HAL_OPAMP_H
AnnaBridge 172:65be27845400 23
AnnaBridge 172:65be27845400 24 #ifdef __cplusplus
AnnaBridge 172:65be27845400 25 extern "C" {
AnnaBridge 172:65be27845400 26 #endif
AnnaBridge 172:65be27845400 27
AnnaBridge 172:65be27845400 28 /* Includes ------------------------------------------------------------------*/
AnnaBridge 172:65be27845400 29 #include "stm32h7xx_hal_def.h"
AnnaBridge 172:65be27845400 30
AnnaBridge 172:65be27845400 31 /** @addtogroup STM32H7xx_HAL_Driver
AnnaBridge 172:65be27845400 32 * @{
AnnaBridge 172:65be27845400 33 */
AnnaBridge 172:65be27845400 34
AnnaBridge 172:65be27845400 35 /** @addtogroup OPAMP
AnnaBridge 172:65be27845400 36 * @{
AnnaBridge 172:65be27845400 37 */
AnnaBridge 172:65be27845400 38
AnnaBridge 172:65be27845400 39 /* Exported types ------------------------------------------------------------*/
AnnaBridge 172:65be27845400 40
AnnaBridge 172:65be27845400 41 /** @defgroup OPAMP_Exported_Types OPAMP Exported Types
AnnaBridge 172:65be27845400 42 * @{
AnnaBridge 172:65be27845400 43 */
AnnaBridge 172:65be27845400 44
AnnaBridge 172:65be27845400 45 /**
AnnaBridge 172:65be27845400 46 * @brief OPAMP Init structure definition
AnnaBridge 172:65be27845400 47 */
AnnaBridge 172:65be27845400 48
AnnaBridge 172:65be27845400 49 typedef struct
AnnaBridge 172:65be27845400 50 {
AnnaBridge 172:65be27845400 51
AnnaBridge 172:65be27845400 52 uint32_t PowerMode; /*!< Specifies the power mode Normal or High Speed.
AnnaBridge 172:65be27845400 53 This parameter must be a value of @ref OPAMP_PowerMode */
AnnaBridge 172:65be27845400 54
AnnaBridge 172:65be27845400 55 uint32_t Mode; /*!< Specifies the OPAMP mode
AnnaBridge 172:65be27845400 56 This parameter must be a value of @ref OPAMP_Mode
AnnaBridge 172:65be27845400 57 mode is either Standalone, - Follower or PGA */
AnnaBridge 172:65be27845400 58
AnnaBridge 172:65be27845400 59 uint32_t InvertingInput; /*!< Specifies the inverting input in Standalone & PGA modes
AnnaBridge 172:65be27845400 60 - In Standalone mode i.e when mode is OPAMP_STANDALONE_MODE
AnnaBridge 172:65be27845400 61 This parameter must be a value of @ref OPAMP_InvertingInput
AnnaBridge 172:65be27845400 62 - In Follower mode i.e when mode is OPAMP_FOLLOWER_MODE
AnnaBridge 172:65be27845400 63 & In PGA mode i.e when mode is OPAMP_PGA_MODE
AnnaBridge 172:65be27845400 64 This parameter is Not Applicable */
AnnaBridge 172:65be27845400 65
AnnaBridge 172:65be27845400 66 uint32_t NonInvertingInput; /*!< Specifies the non inverting input of the opamp:
AnnaBridge 172:65be27845400 67 This parameter must be a value of @ref OPAMP_NonInvertingInput */
AnnaBridge 172:65be27845400 68
AnnaBridge 172:65be27845400 69 uint32_t PgaGain; /*!< Specifies the gain in PGA mode
AnnaBridge 172:65be27845400 70 i.e. when mode is OPAMP_PGA_MODE.
AnnaBridge 172:65be27845400 71 This parameter must be a value of @ref OPAMP_PgaGain */
AnnaBridge 172:65be27845400 72
AnnaBridge 172:65be27845400 73 uint32_t PgaConnect; /*!< Specifies the inverting pin in PGA mode
AnnaBridge 172:65be27845400 74 i.e. when mode is OPAMP_PGA_MODE
AnnaBridge 172:65be27845400 75 This parameter must be a value of @ref OPAMP_PgaConnect
AnnaBridge 172:65be27845400 76 Either: not connected, connected to VINM0, connected to VINM1
AnnaBridge 172:65be27845400 77 (VINM0 or VINM1 are typically used for external filtering) */
AnnaBridge 172:65be27845400 78
AnnaBridge 172:65be27845400 79 uint32_t UserTrimming; /*!< Specifies the trimming mode
AnnaBridge 172:65be27845400 80 This parameter must be a value of @ref OPAMP_UserTrimming
AnnaBridge 172:65be27845400 81 UserTrimming is either factory or user trimming.*/
AnnaBridge 172:65be27845400 82
AnnaBridge 172:65be27845400 83 uint32_t TrimmingValueP; /*!< Specifies the offset trimming value (PMOS) in Normal Mode
AnnaBridge 172:65be27845400 84
AnnaBridge 172:65be27845400 85 i.e. when UserTrimming is OPAMP_TRIMMING_USER.
AnnaBridge 172:65be27845400 86 This parameter must be a number between Min_Data = 0 and Max_Data = 31.
AnnaBridge 172:65be27845400 87 16 is typical default value */
AnnaBridge 172:65be27845400 88
AnnaBridge 172:65be27845400 89 uint32_t TrimmingValueN; /*!< Specifies the offset trimming value (NMOS) in Normal Mode
AnnaBridge 172:65be27845400 90 i.e. when UserTrimming is OPAMP_TRIMMING_USER.
AnnaBridge 172:65be27845400 91 This parameter must be a number between Min_Data = 0 and Max_Data = 31.
AnnaBridge 172:65be27845400 92 16 is typical default value */
AnnaBridge 172:65be27845400 93
AnnaBridge 172:65be27845400 94 uint32_t TrimmingValuePHighSpeed; /*!< Specifies the offset trimming value (PMOS) in High Speed Mode
AnnaBridge 172:65be27845400 95 i.e. when UserTrimming is OPAMP_TRIMMING_USER.
AnnaBridge 172:65be27845400 96 This parameter must be a number between Min_Data = 0 and Max_Data = 31.
AnnaBridge 172:65be27845400 97 16 is typical default value */
AnnaBridge 172:65be27845400 98
AnnaBridge 172:65be27845400 99 uint32_t TrimmingValueNHighSpeed; /*!< Specifies the offset trimming value (NMOS) in High Speed Mode
AnnaBridge 172:65be27845400 100 i.e. when UserTrimming is OPAMP_TRIMMING_USER.
AnnaBridge 172:65be27845400 101 This parameter must be a number between Min_Data = 0 and Max_Data = 31.
AnnaBridge 172:65be27845400 102 16 is typical default value */
AnnaBridge 172:65be27845400 103
AnnaBridge 172:65be27845400 104 }OPAMP_InitTypeDef;
AnnaBridge 172:65be27845400 105
AnnaBridge 172:65be27845400 106 /**
AnnaBridge 172:65be27845400 107 * @brief HAL State structures definition
AnnaBridge 172:65be27845400 108 */
AnnaBridge 172:65be27845400 109
AnnaBridge 172:65be27845400 110 typedef enum
AnnaBridge 172:65be27845400 111 {
AnnaBridge 172:65be27845400 112 HAL_OPAMP_STATE_RESET = 0x00000000U, /*!< OPAMP is not yet Initialized */
AnnaBridge 172:65be27845400 113
AnnaBridge 172:65be27845400 114 HAL_OPAMP_STATE_READY = 0x00000001U, /*!< OPAMP is initialized and ready for use */
AnnaBridge 172:65be27845400 115 HAL_OPAMP_STATE_CALIBBUSY = 0x00000002U, /*!< OPAMP is enabled in auto calibration mode */
AnnaBridge 172:65be27845400 116
AnnaBridge 172:65be27845400 117 HAL_OPAMP_STATE_BUSY = 0x00000004U, /*!< OPAMP is enabled and running in normal mode */
AnnaBridge 172:65be27845400 118 HAL_OPAMP_STATE_BUSYLOCKED = 0x00000005U /*!< OPAMP is locked
AnnaBridge 172:65be27845400 119 only system reset allows reconfiguring the opamp. */
AnnaBridge 172:65be27845400 120
AnnaBridge 172:65be27845400 121 }HAL_OPAMP_StateTypeDef;
AnnaBridge 172:65be27845400 122
AnnaBridge 172:65be27845400 123 /**
AnnaBridge 172:65be27845400 124 * @brief OPAMP Handle Structure definition
AnnaBridge 172:65be27845400 125 */
AnnaBridge 172:65be27845400 126 #if (USE_HAL_OPAMP_REGISTER_CALLBACKS == 1)
AnnaBridge 172:65be27845400 127 typedef struct __OPAMP_HandleTypeDef
AnnaBridge 172:65be27845400 128 #else
AnnaBridge 172:65be27845400 129 typedef struct
AnnaBridge 172:65be27845400 130 #endif /* USE_HAL_OPAMP_REGISTER_CALLBACKS */
AnnaBridge 172:65be27845400 131 {
AnnaBridge 172:65be27845400 132 OPAMP_TypeDef *Instance; /*!< OPAMP instance's registers base address */
AnnaBridge 172:65be27845400 133 OPAMP_InitTypeDef Init; /*!< OPAMP required parameters */
AnnaBridge 172:65be27845400 134 HAL_StatusTypeDef Status; /*!< OPAMP peripheral status */
AnnaBridge 172:65be27845400 135 HAL_LockTypeDef Lock; /*!< Locking object */
AnnaBridge 172:65be27845400 136 __IO HAL_OPAMP_StateTypeDef State; /*!< OPAMP communication state */
AnnaBridge 172:65be27845400 137
AnnaBridge 172:65be27845400 138 #if (USE_HAL_OPAMP_REGISTER_CALLBACKS == 1)
AnnaBridge 172:65be27845400 139 void (* MspInitCallback) (struct __OPAMP_HandleTypeDef *hopamp);
AnnaBridge 172:65be27845400 140 void (* MspDeInitCallback) (struct __OPAMP_HandleTypeDef *hopamp);
AnnaBridge 172:65be27845400 141 #endif /* USE_HAL_OPAMP_REGISTER_CALLBACKS */
AnnaBridge 172:65be27845400 142 } OPAMP_HandleTypeDef;
AnnaBridge 172:65be27845400 143
AnnaBridge 172:65be27845400 144 /**
AnnaBridge 172:65be27845400 145 * @brief HAl_OPAMP_TrimmingValueTypeDef definition
AnnaBridge 172:65be27845400 146 */
AnnaBridge 172:65be27845400 147
AnnaBridge 172:65be27845400 148 typedef uint32_t HAL_OPAMP_TrimmingValueTypeDef;
AnnaBridge 172:65be27845400 149
AnnaBridge 172:65be27845400 150 /**
AnnaBridge 172:65be27845400 151 * @}
AnnaBridge 172:65be27845400 152 */
AnnaBridge 172:65be27845400 153
AnnaBridge 172:65be27845400 154 #if (USE_HAL_OPAMP_REGISTER_CALLBACKS == 1)
AnnaBridge 172:65be27845400 155 /**
AnnaBridge 172:65be27845400 156 * @brief HAL OPAMP Callback ID enumeration definition
AnnaBridge 172:65be27845400 157 */
AnnaBridge 172:65be27845400 158 typedef enum
AnnaBridge 172:65be27845400 159 {
AnnaBridge 172:65be27845400 160 HAL_OPAMP_MSP_INIT_CB_ID = 0x01U, /*!< OPAMP MspInit Callback ID */
AnnaBridge 172:65be27845400 161 HAL_OPAMP_MSP_DEINIT_CB_ID = 0x02U, /*!< OPAMP MspDeInit Callback ID */
AnnaBridge 172:65be27845400 162 HAL_OPAMP_ALL_CB_ID = 0x03U /*!< OPAMP All ID */
AnnaBridge 172:65be27845400 163 }HAL_OPAMP_CallbackIDTypeDef;
AnnaBridge 172:65be27845400 164
AnnaBridge 172:65be27845400 165 /**
AnnaBridge 172:65be27845400 166 * @brief HAL OPAMP Callback pointer definition
AnnaBridge 172:65be27845400 167 */
AnnaBridge 172:65be27845400 168 typedef void (*pOPAMP_CallbackTypeDef)(OPAMP_HandleTypeDef *hopamp);
AnnaBridge 172:65be27845400 169 #endif /* USE_HAL_OPAMP_REGISTER_CALLBACKS */
AnnaBridge 172:65be27845400 170
AnnaBridge 172:65be27845400 171
AnnaBridge 172:65be27845400 172 /* Exported constants --------------------------------------------------------*/
AnnaBridge 172:65be27845400 173 /** @defgroup OPAMP_Exported_Constants OPAMP Exported Constants
AnnaBridge 172:65be27845400 174 * @{
AnnaBridge 172:65be27845400 175 */
AnnaBridge 172:65be27845400 176
AnnaBridge 172:65be27845400 177 /** @defgroup OPAMP_Mode OPAMP Mode
AnnaBridge 172:65be27845400 178 * @{
AnnaBridge 172:65be27845400 179 */
AnnaBridge 172:65be27845400 180 #define OPAMP_STANDALONE_MODE 0x00000000U /*!< standalone mode */
AnnaBridge 172:65be27845400 181 #define OPAMP_PGA_MODE OPAMP_CSR_VMSEL_1 /*!< PGA mode */
AnnaBridge 172:65be27845400 182 #define OPAMP_FOLLOWER_MODE (OPAMP_CSR_VMSEL_1 | OPAMP_CSR_VMSEL_0) /*!< follower mode */
AnnaBridge 172:65be27845400 183
AnnaBridge 172:65be27845400 184 /**
AnnaBridge 172:65be27845400 185 * @}
AnnaBridge 172:65be27845400 186 */
AnnaBridge 172:65be27845400 187
AnnaBridge 172:65be27845400 188 /** @defgroup OPAMP_NonInvertingInput OPAMP Non Inverting Input
AnnaBridge 172:65be27845400 189 * @{
AnnaBridge 172:65be27845400 190 */
AnnaBridge 172:65be27845400 191
AnnaBridge 172:65be27845400 192 #define OPAMP_NONINVERTINGINPUT_IO0 0x00000000U /*!< OPAMP non-inverting input connected to dedicated IO pin */
AnnaBridge 172:65be27845400 193 #define OPAMP_NONINVERTINGINPUT_DAC_CH OPAMP_CSR_VPSEL_0 /*!< OPAMP non-inverting input connected internally to DAC channel */
AnnaBridge 172:65be27845400 194
AnnaBridge 172:65be27845400 195 /**
AnnaBridge 172:65be27845400 196 * @}
AnnaBridge 172:65be27845400 197 */
AnnaBridge 172:65be27845400 198
AnnaBridge 172:65be27845400 199 /** @defgroup OPAMP_InvertingInput OPAMP Inverting Input
AnnaBridge 172:65be27845400 200 * @{
AnnaBridge 172:65be27845400 201 */
AnnaBridge 172:65be27845400 202
AnnaBridge 172:65be27845400 203 #define OPAMP_INVERTINGINPUT_IO0 0x00000000U /*!< OPAMP inverting input connected to dedicated IO pin */
AnnaBridge 172:65be27845400 204 #define OPAMP_INVERTINGINPUT_IO1 OPAMP_CSR_VMSEL_0 /*!< OPAMP inverting input connected to dedicated IO pin */
AnnaBridge 172:65be27845400 205
AnnaBridge 172:65be27845400 206 /**
AnnaBridge 172:65be27845400 207 * @}
AnnaBridge 172:65be27845400 208 */
AnnaBridge 172:65be27845400 209
AnnaBridge 172:65be27845400 210 /** @defgroup OPAMP_PgaConnect OPAMP Pga Connect
AnnaBridge 172:65be27845400 211 * @{
AnnaBridge 172:65be27845400 212 */
AnnaBridge 172:65be27845400 213
AnnaBridge 172:65be27845400 214 #define OPAMP_PGA_CONNECT_INVERTINGINPUT_NO 0x00000000U /*!< In PGA mode, the inverting input is not connected */
AnnaBridge 172:65be27845400 215 #define OPAMP_PGA_CONNECT_INVERTINGINPUT_IO0 OPAMP_CSR_PGGAIN_2 /*!< In PGA mode, the inverting input is connected to VINM0 */
AnnaBridge 172:65be27845400 216 #define OPAMP_PGA_CONNECT_INVERTINGINPUT_IO0_BIAS OPAMP_CSR_PGGAIN_3 /*!< In PGA mode, the inverting input is connected to VINM0 or bias */
AnnaBridge 172:65be27845400 217 #define OPAMP_PGA_CONNECT_INVERTINGINPUT_IO0_IO1_BIAS (OPAMP_CSR_PGGAIN_2 | OPAMP_CSR_PGGAIN_3) /*!< In PGA mode, the inverting input is connected to VINM0 or bias , VINM1 connected for filtering */
AnnaBridge 172:65be27845400 218
AnnaBridge 172:65be27845400 219
AnnaBridge 172:65be27845400 220 /**
AnnaBridge 172:65be27845400 221 * @}
AnnaBridge 172:65be27845400 222 */
AnnaBridge 172:65be27845400 223
AnnaBridge 172:65be27845400 224 /** @defgroup OPAMP_PgaGain OPAMP Pga Gain
AnnaBridge 172:65be27845400 225 * @{
AnnaBridge 172:65be27845400 226 */
AnnaBridge 172:65be27845400 227
AnnaBridge 172:65be27845400 228 #define OPAMP_PGA_GAIN_2_OR_MINUS_1 0x00000000U /*!< PGA gain could be 2 or -1 */
AnnaBridge 172:65be27845400 229 #define OPAMP_PGA_GAIN_4_OR_MINUS_3 OPAMP_CSR_PGGAIN_0 /*!< PGA gain could be 4 or -3 */
AnnaBridge 172:65be27845400 230 #define OPAMP_PGA_GAIN_8_OR_MINUS_7 OPAMP_CSR_PGGAIN_1 /*!< PGA gain could be 8 or -7 */
AnnaBridge 172:65be27845400 231 #define OPAMP_PGA_GAIN_16_OR_MINUS_15 (OPAMP_CSR_PGGAIN_0 | OPAMP_CSR_PGGAIN_1) /*!< PGA gain could be 16 or -15 */
AnnaBridge 172:65be27845400 232
AnnaBridge 172:65be27845400 233 /**
AnnaBridge 172:65be27845400 234 * @}
AnnaBridge 172:65be27845400 235 */
AnnaBridge 172:65be27845400 236
AnnaBridge 172:65be27845400 237 /** @defgroup OPAMP_PowerMode OPAMP PowerMode
AnnaBridge 172:65be27845400 238 * @{
AnnaBridge 172:65be27845400 239 */
AnnaBridge 172:65be27845400 240 #define OPAMP_POWERMODE_NORMAL 0x00000000U
AnnaBridge 172:65be27845400 241 #define OPAMP_POWERMODE_HIGHSPEED OPAMP_CSR_OPAHSM
AnnaBridge 172:65be27845400 242
AnnaBridge 172:65be27845400 243 /**
AnnaBridge 172:65be27845400 244 * @}
AnnaBridge 172:65be27845400 245 */
AnnaBridge 172:65be27845400 246
AnnaBridge 172:65be27845400 247
AnnaBridge 172:65be27845400 248 /** @defgroup OPAMP_VREF OPAMP VREF
AnnaBridge 172:65be27845400 249 * @{
AnnaBridge 172:65be27845400 250 */
AnnaBridge 172:65be27845400 251
AnnaBridge 172:65be27845400 252 #define OPAMP_VREF_3VDDA 0x00000000U /*!< OPAMP Vref = 3.3% VDDA */
AnnaBridge 172:65be27845400 253 #define OPAMP_VREF_10VDDA OPAMP_CSR_CALSEL_0 /*!< OPAMP Vref = 10% VDDA */
AnnaBridge 172:65be27845400 254 #define OPAMP_VREF_50VDDA OPAMP_CSR_CALSEL_1 /*!< OPAMP Vref = 50% VDDA */
AnnaBridge 172:65be27845400 255 #define OPAMP_VREF_90VDDA OPAMP_CSR_CALSEL /*!< OPAMP Vref = 90% VDDA */
AnnaBridge 172:65be27845400 256
AnnaBridge 172:65be27845400 257 /**
AnnaBridge 172:65be27845400 258 * @}
AnnaBridge 172:65be27845400 259 */
AnnaBridge 172:65be27845400 260
AnnaBridge 172:65be27845400 261 /** @defgroup OPAMP_UserTrimming OPAMP User Trimming
AnnaBridge 172:65be27845400 262 * @{
AnnaBridge 172:65be27845400 263 */
AnnaBridge 172:65be27845400 264 #define OPAMP_TRIMMING_FACTORY 0x00000000U /*!< Factory trimming */
AnnaBridge 172:65be27845400 265 #define OPAMP_TRIMMING_USER OPAMP_CSR_USERTRIM /*!< User trimming */
AnnaBridge 172:65be27845400 266
AnnaBridge 172:65be27845400 267
AnnaBridge 172:65be27845400 268 /**
AnnaBridge 172:65be27845400 269 * @}
AnnaBridge 172:65be27845400 270 */
AnnaBridge 172:65be27845400 271
AnnaBridge 172:65be27845400 272 /** @defgroup OPAMP_FactoryTrimming OPAMP Factory Trimming
AnnaBridge 172:65be27845400 273 * @{
AnnaBridge 172:65be27845400 274 */
AnnaBridge 172:65be27845400 275 #define OPAMP_FACTORYTRIMMING_DUMMY 0xFFFFFFFFU /*!< Dummy value if trimming value could not be retrieved */
AnnaBridge 172:65be27845400 276
AnnaBridge 172:65be27845400 277 #define OPAMP_FACTORYTRIMMING_N 0x00000000U /*!< Offset trimming N */
AnnaBridge 172:65be27845400 278 #define OPAMP_FACTORYTRIMMING_P 0x00000001U /*!< Offset trimming P */
AnnaBridge 172:65be27845400 279
AnnaBridge 172:65be27845400 280 /**
AnnaBridge 172:65be27845400 281 * @}
AnnaBridge 172:65be27845400 282 */
AnnaBridge 172:65be27845400 283
AnnaBridge 172:65be27845400 284 /**
AnnaBridge 172:65be27845400 285 * @}
AnnaBridge 172:65be27845400 286 */
AnnaBridge 172:65be27845400 287
AnnaBridge 172:65be27845400 288 /* Private constants ---------------------------------------------------------*/
AnnaBridge 172:65be27845400 289 /** @defgroup OPAMP_Private_Constants OPAMP Private Constants
AnnaBridge 172:65be27845400 290 * @brief OPAMP Private constants and defines
AnnaBridge 172:65be27845400 291 * @{
AnnaBridge 172:65be27845400 292 */
AnnaBridge 172:65be27845400 293
AnnaBridge 172:65be27845400 294 /* NONINVERTING bit position in OTR & HSOTR */
AnnaBridge 172:65be27845400 295 #define OPAMP_INPUT_NONINVERTING (8U) /*!< Non inverting input */
AnnaBridge 172:65be27845400 296
AnnaBridge 172:65be27845400 297 /* Offset trimming time: during calibration, minimum time needed between two */
AnnaBridge 172:65be27845400 298 /* steps to have 1 mV accuracy. */
AnnaBridge 172:65be27845400 299 /* Refer to datasheet, electrical characteristics: parameter tOFFTRIM Typ=2ms.*/
AnnaBridge 172:65be27845400 300 /* Unit: ms. */
AnnaBridge 172:65be27845400 301 #define OPAMP_TRIMMING_DELAY (2U)
AnnaBridge 172:65be27845400 302
AnnaBridge 172:65be27845400 303 /**
AnnaBridge 172:65be27845400 304 * @}
AnnaBridge 172:65be27845400 305 */
AnnaBridge 172:65be27845400 306
AnnaBridge 172:65be27845400 307 /* Exported macros -----------------------------------------------------------*/
AnnaBridge 172:65be27845400 308 /** @defgroup OPAMP_Exported_Macros OPAMP Exported Macros
AnnaBridge 172:65be27845400 309 * @{
AnnaBridge 172:65be27845400 310 */
AnnaBridge 172:65be27845400 311
AnnaBridge 172:65be27845400 312 /** @brief Reset OPAMP handle state.
AnnaBridge 172:65be27845400 313 * @param __HANDLE__: OPAMP handle.
AnnaBridge 172:65be27845400 314 * @retval None
AnnaBridge 172:65be27845400 315 */
AnnaBridge 172:65be27845400 316 #define __HAL_OPAMP_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_OPAMP_STATE_RESET)
AnnaBridge 172:65be27845400 317
AnnaBridge 172:65be27845400 318 /**
AnnaBridge 172:65be27845400 319 * @}
AnnaBridge 172:65be27845400 320 */
AnnaBridge 172:65be27845400 321
AnnaBridge 172:65be27845400 322 /* Private macro -------------------------------------------------------------*/
AnnaBridge 172:65be27845400 323
AnnaBridge 172:65be27845400 324 /** @defgroup OPAMP_Private_Macros OPAMP Private Macros
AnnaBridge 172:65be27845400 325 * @{
AnnaBridge 172:65be27845400 326 */
AnnaBridge 172:65be27845400 327
AnnaBridge 172:65be27845400 328 #define IS_OPAMP_FUNCTIONAL_NORMALMODE(INPUT) (((INPUT) == OPAMP_STANDALONE_MODE) || \
AnnaBridge 172:65be27845400 329 ((INPUT) == OPAMP_PGA_MODE) || \
AnnaBridge 172:65be27845400 330 ((INPUT) == OPAMP_FOLLOWER_MODE))
AnnaBridge 172:65be27845400 331
AnnaBridge 172:65be27845400 332 #define IS_OPAMP_INVERTING_INPUT_STANDALONE(INPUT) (((INPUT) == OPAMP_INVERTINGINPUT_IO0) || \
AnnaBridge 172:65be27845400 333 ((INPUT) == OPAMP_INVERTINGINPUT_IO1))
AnnaBridge 172:65be27845400 334
AnnaBridge 172:65be27845400 335
AnnaBridge 172:65be27845400 336 #define IS_OPAMP_NONINVERTING_INPUT(INPUT) (((INPUT) == OPAMP_NONINVERTINGINPUT_IO0) || \
AnnaBridge 172:65be27845400 337 ((INPUT) == OPAMP_NONINVERTINGINPUT_DAC_CH))
AnnaBridge 172:65be27845400 338
AnnaBridge 172:65be27845400 339 #define IS_OPAMP_PGACONNECT(CONNECT) (((CONNECT) == OPAMP_PGA_CONNECT_INVERTINGINPUT_NO) || \
AnnaBridge 172:65be27845400 340 ((CONNECT) == OPAMP_PGA_CONNECT_INVERTINGINPUT_IO0) || \
AnnaBridge 172:65be27845400 341 ((CONNECT) == OPAMP_PGA_CONNECT_INVERTINGINPUT_IO0_BIAS) || \
AnnaBridge 172:65be27845400 342 ((CONNECT) == OPAMP_PGA_CONNECT_INVERTINGINPUT_IO0_IO1_BIAS))
AnnaBridge 172:65be27845400 343
AnnaBridge 172:65be27845400 344 #define IS_OPAMP_PGA_GAIN(GAIN) (((GAIN) == OPAMP_PGA_GAIN_2_OR_MINUS_1) || \
AnnaBridge 172:65be27845400 345 ((GAIN) == OPAMP_PGA_GAIN_4_OR_MINUS_3) || \
AnnaBridge 172:65be27845400 346 ((GAIN) == OPAMP_PGA_GAIN_8_OR_MINUS_7) || \
AnnaBridge 172:65be27845400 347 ((GAIN) == OPAMP_PGA_GAIN_16_OR_MINUS_15))
AnnaBridge 172:65be27845400 348
AnnaBridge 172:65be27845400 349
AnnaBridge 172:65be27845400 350 #define IS_OPAMP_VREF(VREF) (((VREF) == OPAMP_VREF_3VDDA) || \
AnnaBridge 172:65be27845400 351 ((VREF) == OPAMP_VREF_10VDDA) || \
AnnaBridge 172:65be27845400 352 ((VREF) == OPAMP_VREF_50VDDA) || \
AnnaBridge 172:65be27845400 353 ((VREF) == OPAMP_VREF_90VDDA))
AnnaBridge 172:65be27845400 354
AnnaBridge 172:65be27845400 355 #define IS_OPAMP_POWERMODE(TRIMMING) (((TRIMMING) == OPAMP_POWERMODE_NORMAL) || \
AnnaBridge 172:65be27845400 356 ((TRIMMING) == OPAMP_POWERMODE_HIGHSPEED) )
AnnaBridge 172:65be27845400 357
AnnaBridge 172:65be27845400 358
AnnaBridge 172:65be27845400 359 #define IS_OPAMP_TRIMMING(TRIMMING) (((TRIMMING) == OPAMP_TRIMMING_FACTORY) || \
AnnaBridge 172:65be27845400 360 ((TRIMMING) == OPAMP_TRIMMING_USER))
AnnaBridge 172:65be27845400 361
AnnaBridge 172:65be27845400 362
AnnaBridge 172:65be27845400 363 #define IS_OPAMP_TRIMMINGVALUE(TRIMMINGVALUE) ((TRIMMINGVALUE) <= 0x1FU)
AnnaBridge 172:65be27845400 364
AnnaBridge 172:65be27845400 365 #define IS_OPAMP_FACTORYTRIMMING(TRIMMING) (((TRIMMING) == OPAMP_FACTORYTRIMMING_N) || \
AnnaBridge 172:65be27845400 366 ((TRIMMING) == OPAMP_FACTORYTRIMMING_P))
AnnaBridge 172:65be27845400 367
AnnaBridge 172:65be27845400 368 /**
AnnaBridge 172:65be27845400 369 * @}
AnnaBridge 172:65be27845400 370 */
AnnaBridge 172:65be27845400 371
AnnaBridge 172:65be27845400 372 /* Include OPAMP HAL Extended module */
AnnaBridge 172:65be27845400 373 #include "stm32h7xx_hal_opamp_ex.h"
AnnaBridge 172:65be27845400 374
AnnaBridge 172:65be27845400 375 /* Exported functions --------------------------------------------------------*/
AnnaBridge 172:65be27845400 376 /** @addtogroup OPAMP_Exported_Functions
AnnaBridge 172:65be27845400 377 * @{
AnnaBridge 172:65be27845400 378 */
AnnaBridge 172:65be27845400 379
AnnaBridge 172:65be27845400 380 /** @addtogroup OPAMP_Exported_Functions_Group1
AnnaBridge 172:65be27845400 381 * @{
AnnaBridge 172:65be27845400 382 */
AnnaBridge 172:65be27845400 383 /* Initialization/de-initialization functions **********************************/
AnnaBridge 172:65be27845400 384 HAL_StatusTypeDef HAL_OPAMP_Init(OPAMP_HandleTypeDef *hopamp);
AnnaBridge 172:65be27845400 385 HAL_StatusTypeDef HAL_OPAMP_DeInit (OPAMP_HandleTypeDef *hopamp);
AnnaBridge 172:65be27845400 386 void HAL_OPAMP_MspInit(OPAMP_HandleTypeDef *hopamp);
AnnaBridge 172:65be27845400 387 void HAL_OPAMP_MspDeInit(OPAMP_HandleTypeDef *hopamp);
AnnaBridge 172:65be27845400 388 /**
AnnaBridge 172:65be27845400 389 * @}
AnnaBridge 172:65be27845400 390 */
AnnaBridge 172:65be27845400 391
AnnaBridge 172:65be27845400 392 /** @addtogroup OPAMP_Exported_Functions_Group2
AnnaBridge 172:65be27845400 393 * @{
AnnaBridge 172:65be27845400 394 */
AnnaBridge 172:65be27845400 395
AnnaBridge 172:65be27845400 396 /* I/O operation functions *****************************************************/
AnnaBridge 172:65be27845400 397 HAL_StatusTypeDef HAL_OPAMP_Start(OPAMP_HandleTypeDef *hopamp);
AnnaBridge 172:65be27845400 398 HAL_StatusTypeDef HAL_OPAMP_Stop(OPAMP_HandleTypeDef *hopamp);
AnnaBridge 172:65be27845400 399 HAL_StatusTypeDef HAL_OPAMP_SelfCalibrate(OPAMP_HandleTypeDef *hopamp);
AnnaBridge 172:65be27845400 400
AnnaBridge 172:65be27845400 401 /**
AnnaBridge 172:65be27845400 402 * @}
AnnaBridge 172:65be27845400 403 */
AnnaBridge 172:65be27845400 404
AnnaBridge 172:65be27845400 405 /** @addtogroup OPAMP_Exported_Functions_Group3
AnnaBridge 172:65be27845400 406 * @{
AnnaBridge 172:65be27845400 407 */
AnnaBridge 172:65be27845400 408
AnnaBridge 172:65be27845400 409 /* Peripheral Control functions ************************************************/
AnnaBridge 172:65be27845400 410 #if (USE_HAL_OPAMP_REGISTER_CALLBACKS == 1)
AnnaBridge 172:65be27845400 411 /* OPAMP callback registering/unregistering */
AnnaBridge 172:65be27845400 412 HAL_StatusTypeDef HAL_OPAMP_RegisterCallback (OPAMP_HandleTypeDef *hopamp, HAL_OPAMP_CallbackIDTypeDef CallbackId, pOPAMP_CallbackTypeDef pCallback);
AnnaBridge 172:65be27845400 413 HAL_StatusTypeDef HAL_OPAMP_UnRegisterCallback (OPAMP_HandleTypeDef *hopamp, HAL_OPAMP_CallbackIDTypeDef CallbackId);
AnnaBridge 172:65be27845400 414 #endif /* USE_HAL_OPAMP_REGISTER_CALLBACKS */
AnnaBridge 172:65be27845400 415 HAL_StatusTypeDef HAL_OPAMP_Lock(OPAMP_HandleTypeDef *hopamp);
AnnaBridge 172:65be27845400 416 HAL_OPAMP_TrimmingValueTypeDef HAL_OPAMP_GetTrimOffset (OPAMP_HandleTypeDef *hopamp, uint32_t trimmingoffset);
AnnaBridge 172:65be27845400 417
AnnaBridge 172:65be27845400 418 /**
AnnaBridge 172:65be27845400 419 * @}
AnnaBridge 172:65be27845400 420 */
AnnaBridge 172:65be27845400 421
AnnaBridge 172:65be27845400 422 /** @addtogroup OPAMP_Exported_Functions_Group4
AnnaBridge 172:65be27845400 423 * @{
AnnaBridge 172:65be27845400 424 */
AnnaBridge 172:65be27845400 425
AnnaBridge 172:65be27845400 426 /* Peripheral State functions **************************************************/
AnnaBridge 172:65be27845400 427 HAL_OPAMP_StateTypeDef HAL_OPAMP_GetState(OPAMP_HandleTypeDef *hopamp);
AnnaBridge 172:65be27845400 428
AnnaBridge 172:65be27845400 429 /**
AnnaBridge 172:65be27845400 430 * @}
AnnaBridge 172:65be27845400 431 */
AnnaBridge 172:65be27845400 432
AnnaBridge 172:65be27845400 433 /**
AnnaBridge 172:65be27845400 434 * @}
AnnaBridge 172:65be27845400 435 */
AnnaBridge 172:65be27845400 436
AnnaBridge 172:65be27845400 437 /**
AnnaBridge 172:65be27845400 438 * @}
AnnaBridge 172:65be27845400 439 */
AnnaBridge 172:65be27845400 440
AnnaBridge 172:65be27845400 441 /**
AnnaBridge 172:65be27845400 442 * @}
AnnaBridge 172:65be27845400 443 */
AnnaBridge 172:65be27845400 444
AnnaBridge 172:65be27845400 445 #ifdef __cplusplus
AnnaBridge 172:65be27845400 446 }
AnnaBridge 172:65be27845400 447 #endif
AnnaBridge 172:65be27845400 448
AnnaBridge 172:65be27845400 449 #endif /* STM32H7xx_HAL_OPAMP_H */
AnnaBridge 172:65be27845400 450
AnnaBridge 172:65be27845400 451 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/