mbed library sources

Fork of mbed-src by mbed official

Committer:
mbed_official
Date:
Fri Nov 07 15:45:07 2014 +0000
Revision:
394:83f921546702
Parent:
targets/cmsis/TARGET_STM/TARGET_NUCLEO_L152RE/stm32l1xx_hal_opamp_ex.h@354:e67efb2aab0e
Synchronized with git revision aab52cb7ec5a665869e507dd988bbfd55b7e087e

Full URL: https://github.com/mbedmicro/mbed/commit/aab52cb7ec5a665869e507dd988bbfd55b7e087e/

Tests: Fix cpputest testrunner

Who changed what in which revision?

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