Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of mbed by
TARGET_NUCLEO_L152RE/stm32l1xx_opamp.h@81:7d30d6019079, 2014-03-19 (annotated)
- Committer:
- bogdanm
- Date:
- Wed Mar 19 18:28:32 2014 +0000
- Revision:
- 81:7d30d6019079
- Parent:
- 77:869cf507173a
Release 81 of the mbed library
Main changes:
- Updates and fixes for many targets
- LPC1768: serial interface code fixes
- nRF51822 targets now output a .hex file
- More exporters
- More flexible GPIO API
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| emilmont | 77:869cf507173a | 1 | /** |
| emilmont | 77:869cf507173a | 2 | ****************************************************************************** |
| emilmont | 77:869cf507173a | 3 | * @file stm32l1xx_opamp.h |
| emilmont | 77:869cf507173a | 4 | * @author MCD Application Team |
| emilmont | 77:869cf507173a | 5 | * @version V1.3.0 |
| emilmont | 77:869cf507173a | 6 | * @date 31-January-2014 |
| emilmont | 77:869cf507173a | 7 | * @brief This file contains all the functions prototypes for the operational |
| emilmont | 77:869cf507173a | 8 | * amplifiers (opamp) firmware library. |
| emilmont | 77:869cf507173a | 9 | ****************************************************************************** |
| emilmont | 77:869cf507173a | 10 | * @attention |
| emilmont | 77:869cf507173a | 11 | * |
| bogdanm | 81:7d30d6019079 | 12 | * <h2><center>© COPYRIGHT(c) 2014 STMicroelectronics</center></h2> |
| emilmont | 77:869cf507173a | 13 | * |
| bogdanm | 81:7d30d6019079 | 14 | * Redistribution and use in source and binary forms, with or without modification, |
| bogdanm | 81:7d30d6019079 | 15 | * are permitted provided that the following conditions are met: |
| bogdanm | 81:7d30d6019079 | 16 | * 1. Redistributions of source code must retain the above copyright notice, |
| bogdanm | 81:7d30d6019079 | 17 | * this list of conditions and the following disclaimer. |
| bogdanm | 81:7d30d6019079 | 18 | * 2. Redistributions in binary form must reproduce the above copyright notice, |
| bogdanm | 81:7d30d6019079 | 19 | * this list of conditions and the following disclaimer in the documentation |
| bogdanm | 81:7d30d6019079 | 20 | * and/or other materials provided with the distribution. |
| bogdanm | 81:7d30d6019079 | 21 | * 3. Neither the name of STMicroelectronics nor the names of its contributors |
| bogdanm | 81:7d30d6019079 | 22 | * may be used to endorse or promote products derived from this software |
| bogdanm | 81:7d30d6019079 | 23 | * without specific prior written permission. |
| emilmont | 77:869cf507173a | 24 | * |
| bogdanm | 81:7d30d6019079 | 25 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" |
| bogdanm | 81:7d30d6019079 | 26 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
| bogdanm | 81:7d30d6019079 | 27 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |
| bogdanm | 81:7d30d6019079 | 28 | * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE |
| bogdanm | 81:7d30d6019079 | 29 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |
| bogdanm | 81:7d30d6019079 | 30 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR |
| bogdanm | 81:7d30d6019079 | 31 | * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER |
| bogdanm | 81:7d30d6019079 | 32 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, |
| bogdanm | 81:7d30d6019079 | 33 | * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
| bogdanm | 81:7d30d6019079 | 34 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| emilmont | 77:869cf507173a | 35 | * |
| emilmont | 77:869cf507173a | 36 | ****************************************************************************** |
| emilmont | 77:869cf507173a | 37 | */ |
| emilmont | 77:869cf507173a | 38 | |
| emilmont | 77:869cf507173a | 39 | /* Define to prevent recursive inclusion -------------------------------------*/ |
| emilmont | 77:869cf507173a | 40 | #ifndef __STM32L1xx_OPAMP_H |
| emilmont | 77:869cf507173a | 41 | #define __STM32L1xx_OPAMP_H |
| emilmont | 77:869cf507173a | 42 | |
| emilmont | 77:869cf507173a | 43 | #ifdef __cplusplus |
| emilmont | 77:869cf507173a | 44 | extern "C" { |
| emilmont | 77:869cf507173a | 45 | #endif |
| emilmont | 77:869cf507173a | 46 | |
| emilmont | 77:869cf507173a | 47 | /* Includes ------------------------------------------------------------------*/ |
| emilmont | 77:869cf507173a | 48 | #include "stm32l1xx.h" |
| emilmont | 77:869cf507173a | 49 | |
| emilmont | 77:869cf507173a | 50 | /** @addtogroup STM32L1xx_StdPeriph_Driver |
| emilmont | 77:869cf507173a | 51 | * @{ |
| emilmont | 77:869cf507173a | 52 | */ |
| emilmont | 77:869cf507173a | 53 | |
| emilmont | 77:869cf507173a | 54 | /** @addtogroup OPAMP |
| emilmont | 77:869cf507173a | 55 | * @{ |
| emilmont | 77:869cf507173a | 56 | */ |
| emilmont | 77:869cf507173a | 57 | |
| emilmont | 77:869cf507173a | 58 | /* Exported types ------------------------------------------------------------*/ |
| emilmont | 77:869cf507173a | 59 | /* Exported constants --------------------------------------------------------*/ |
| emilmont | 77:869cf507173a | 60 | |
| emilmont | 77:869cf507173a | 61 | /** @defgroup OPAMP_Exported_Constants |
| emilmont | 77:869cf507173a | 62 | * @{ |
| emilmont | 77:869cf507173a | 63 | */ |
| emilmont | 77:869cf507173a | 64 | |
| emilmont | 77:869cf507173a | 65 | /** @defgroup OPAMP_Selection |
| emilmont | 77:869cf507173a | 66 | * @{ |
| emilmont | 77:869cf507173a | 67 | */ |
| emilmont | 77:869cf507173a | 68 | |
| emilmont | 77:869cf507173a | 69 | #define OPAMP_Selection_OPAMP1 OPAMP_CSR_OPA1PD |
| emilmont | 77:869cf507173a | 70 | #define OPAMP_Selection_OPAMP2 OPAMP_CSR_OPA2PD |
| emilmont | 77:869cf507173a | 71 | #define OPAMP_Selection_OPAMP3 OPAMP_CSR_OPA3PD |
| emilmont | 77:869cf507173a | 72 | |
| emilmont | 77:869cf507173a | 73 | #define IS_OPAMP_ALL_PERIPH(PERIPH) (((PERIPH) == OPAMP_Selection_OPAMP1) || \ |
| emilmont | 77:869cf507173a | 74 | ((PERIPH) == OPAMP_Selection_OPAMP2) || \ |
| emilmont | 77:869cf507173a | 75 | ((PERIPH) == OPAMP_Selection_OPAMP3)) |
| emilmont | 77:869cf507173a | 76 | |
| emilmont | 77:869cf507173a | 77 | /** |
| emilmont | 77:869cf507173a | 78 | * @} |
| emilmont | 77:869cf507173a | 79 | */ |
| emilmont | 77:869cf507173a | 80 | |
| emilmont | 77:869cf507173a | 81 | /** @defgroup OPAMP_Switches |
| emilmont | 77:869cf507173a | 82 | * @{ |
| emilmont | 77:869cf507173a | 83 | */ |
| emilmont | 77:869cf507173a | 84 | |
| emilmont | 77:869cf507173a | 85 | /* OPAMP1 Switches */ |
| emilmont | 77:869cf507173a | 86 | #define OPAMP_OPAMP1Switch3 OPAMP_CSR_S3SEL1 /*!< OPAMP1 Switch 3 */ |
| emilmont | 77:869cf507173a | 87 | #define OPAMP_OPAMP1Switch4 OPAMP_CSR_S4SEL1 /*!< OPAMP1 Switch 4 */ |
| emilmont | 77:869cf507173a | 88 | #define OPAMP_OPAMP1Switch5 OPAMP_CSR_S5SEL1 /*!< OPAMP1 Switch 5 */ |
| emilmont | 77:869cf507173a | 89 | #define OPAMP_OPAMP1Switch6 OPAMP_CSR_S6SEL1 /*!< OPAMP1 Switch 6 */ |
| emilmont | 77:869cf507173a | 90 | #define OPAMP_OPAMP1SwitchANA OPAMP_CSR_ANAWSEL1 /*!< OPAMP1 Switch ANA */ |
| emilmont | 77:869cf507173a | 91 | |
| emilmont | 77:869cf507173a | 92 | /* OPAMP2 Switches */ |
| emilmont | 77:869cf507173a | 93 | #define OPAMP_OPAMP2Switch3 OPAMP_CSR_S3SEL2 /*!< OPAMP2 Switch 3 */ |
| emilmont | 77:869cf507173a | 94 | #define OPAMP_OPAMP2Switch4 OPAMP_CSR_S4SEL2 /*!< OPAMP2 Switch 4 */ |
| emilmont | 77:869cf507173a | 95 | #define OPAMP_OPAMP2Switch5 OPAMP_CSR_S5SEL2 /*!< OPAMP2 Switch 5 */ |
| emilmont | 77:869cf507173a | 96 | #define OPAMP_OPAMP2Switch6 OPAMP_CSR_S6SEL2 /*!< OPAMP2 Switch 6 */ |
| emilmont | 77:869cf507173a | 97 | #define OPAMP_OPAMP2Switch7 OPAMP_CSR_S7SEL2 /*!< OPAMP2 Switch 7 */ |
| emilmont | 77:869cf507173a | 98 | #define OPAMP_OPAMP2SwitchANA OPAMP_CSR_ANAWSEL2 /*!< OPAMP2 Switch ANA */ |
| emilmont | 77:869cf507173a | 99 | |
| emilmont | 77:869cf507173a | 100 | /* OPAMP3 Switches */ |
| emilmont | 77:869cf507173a | 101 | #define OPAMP_OPAMP3Switch3 OPAMP_CSR_S3SEL3 /*!< OPAMP3 Switch 3 */ |
| emilmont | 77:869cf507173a | 102 | #define OPAMP_OPAMP3Switch4 OPAMP_CSR_S4SEL3 /*!< OPAMP3 Switch 4 */ |
| emilmont | 77:869cf507173a | 103 | #define OPAMP_OPAMP3Switch5 OPAMP_CSR_S5SEL3 /*!< OPAMP3 Switch 5 */ |
| emilmont | 77:869cf507173a | 104 | #define OPAMP_OPAMP3Switch6 OPAMP_CSR_S6SEL3 /*!< OPAMP3 Switch 6 */ |
| emilmont | 77:869cf507173a | 105 | #define OPAMP_OPAMP3SwitchANA OPAMP_CSR_ANAWSEL3 /*!< OPAMP3 Switch ANA */ |
| emilmont | 77:869cf507173a | 106 | |
| emilmont | 77:869cf507173a | 107 | #define IS_OPAMP_SWITCH(SWITCH) ((((SWITCH) & (uint32_t)0xF0E1E1E1) == 0x00) && ((SWITCH) != 0x00)) |
| emilmont | 77:869cf507173a | 108 | |
| emilmont | 77:869cf507173a | 109 | /** |
| emilmont | 77:869cf507173a | 110 | * @} |
| emilmont | 77:869cf507173a | 111 | */ |
| emilmont | 77:869cf507173a | 112 | |
| emilmont | 77:869cf507173a | 113 | /** @defgroup OPAMP_Trimming |
| emilmont | 77:869cf507173a | 114 | * @{ |
| emilmont | 77:869cf507173a | 115 | */ |
| emilmont | 77:869cf507173a | 116 | |
| emilmont | 77:869cf507173a | 117 | #define OPAMP_Trimming_Factory ((uint32_t)0x00000000) /*!< Factory trimming */ |
| emilmont | 77:869cf507173a | 118 | #define OPAMP_Trimming_User OPAMP_OTR_OT_USER /*!< User trimming */ |
| emilmont | 77:869cf507173a | 119 | |
| emilmont | 77:869cf507173a | 120 | #define IS_OPAMP_TRIMMING(TRIMMING) (((TRIMMING) == OPAMP_Trimming_Factory) || \ |
| emilmont | 77:869cf507173a | 121 | ((TRIMMING) == OPAMP_Trimming_User)) |
| emilmont | 77:869cf507173a | 122 | |
| emilmont | 77:869cf507173a | 123 | /** |
| emilmont | 77:869cf507173a | 124 | * @} |
| emilmont | 77:869cf507173a | 125 | */ |
| emilmont | 77:869cf507173a | 126 | |
| emilmont | 77:869cf507173a | 127 | /** @defgroup OPAMP_Input |
| emilmont | 77:869cf507173a | 128 | * @{ |
| emilmont | 77:869cf507173a | 129 | */ |
| emilmont | 77:869cf507173a | 130 | |
| emilmont | 77:869cf507173a | 131 | #define OPAMP_Input_NMOS OPAMP_CSR_OPA1CAL_H /*!< NMOS input */ |
| emilmont | 77:869cf507173a | 132 | #define OPAMP_Input_PMOS OPAMP_CSR_OPA1CAL_L /*!< PMOS input */ |
| emilmont | 77:869cf507173a | 133 | |
| emilmont | 77:869cf507173a | 134 | #define IS_OPAMP_INPUT(INPUT) (((INPUT) == OPAMP_Input_NMOS) || \ |
| emilmont | 77:869cf507173a | 135 | ((INPUT) == OPAMP_Input_PMOS)) |
| emilmont | 77:869cf507173a | 136 | |
| emilmont | 77:869cf507173a | 137 | /** |
| emilmont | 77:869cf507173a | 138 | * @} |
| emilmont | 77:869cf507173a | 139 | */ |
| emilmont | 77:869cf507173a | 140 | |
| emilmont | 77:869cf507173a | 141 | /** @defgroup OPAMP_TrimValue |
| emilmont | 77:869cf507173a | 142 | * @{ |
| emilmont | 77:869cf507173a | 143 | */ |
| emilmont | 77:869cf507173a | 144 | |
| emilmont | 77:869cf507173a | 145 | #define IS_OPAMP_TRIMMINGVALUE(VALUE) ((VALUE) <= 0x0000001F) /*!< Trimming value */ |
| emilmont | 77:869cf507173a | 146 | |
| emilmont | 77:869cf507173a | 147 | /** |
| emilmont | 77:869cf507173a | 148 | * @} |
| emilmont | 77:869cf507173a | 149 | */ |
| emilmont | 77:869cf507173a | 150 | |
| emilmont | 77:869cf507173a | 151 | /** @defgroup OPAMP_PowerRange |
| emilmont | 77:869cf507173a | 152 | * @{ |
| emilmont | 77:869cf507173a | 153 | */ |
| emilmont | 77:869cf507173a | 154 | |
| emilmont | 77:869cf507173a | 155 | #define OPAMP_PowerRange_Low ((uint32_t)0x00000000) /*!< Low power range is selected (VDDA is lower than 2.4V) */ |
| emilmont | 77:869cf507173a | 156 | #define OPAMP_PowerRange_High OPAMP_CSR_AOP_RANGE /*!< High power range is selected (VDDA is higher than 2.4V) */ |
| emilmont | 77:869cf507173a | 157 | |
| emilmont | 77:869cf507173a | 158 | #define IS_OPAMP_RANGE(RANGE) (((RANGE) == OPAMP_PowerRange_Low) || \ |
| emilmont | 77:869cf507173a | 159 | ((RANGE) == OPAMP_PowerRange_High)) |
| emilmont | 77:869cf507173a | 160 | |
| emilmont | 77:869cf507173a | 161 | /** |
| emilmont | 77:869cf507173a | 162 | * @} |
| emilmont | 77:869cf507173a | 163 | */ |
| emilmont | 77:869cf507173a | 164 | /** |
| emilmont | 77:869cf507173a | 165 | * @} |
| emilmont | 77:869cf507173a | 166 | */ |
| emilmont | 77:869cf507173a | 167 | |
| emilmont | 77:869cf507173a | 168 | /* Exported macro ------------------------------------------------------------*/ |
| emilmont | 77:869cf507173a | 169 | /* Exported functions ------------------------------------------------------- */ |
| emilmont | 77:869cf507173a | 170 | /* Initialization and Configuration functions *********************************/ |
| emilmont | 77:869cf507173a | 171 | void OPAMP_DeInit(void); |
| emilmont | 77:869cf507173a | 172 | void OPAMP_SwitchCmd(uint32_t OPAMP_OPAMPxSwitchy, FunctionalState NewState); |
| emilmont | 77:869cf507173a | 173 | void OPAMP_Cmd(uint32_t OPAMP_Selection, FunctionalState NewState); |
| emilmont | 77:869cf507173a | 174 | void OPAMP_LowPowerCmd(uint32_t OPAMP_Selection, FunctionalState NewState); |
| emilmont | 77:869cf507173a | 175 | void OPAMP_PowerRangeSelect(uint32_t OPAMP_PowerRange); |
| emilmont | 77:869cf507173a | 176 | |
| emilmont | 77:869cf507173a | 177 | /* Calibration functions ******************************************************/ |
| emilmont | 77:869cf507173a | 178 | void OPAMP_OffsetTrimmingModeSelect(uint32_t OPAMP_Trimming); |
| emilmont | 77:869cf507173a | 179 | void OPAMP_OffsetTrimConfig(uint32_t OPAMP_Selection, uint32_t OPAMP_Input, uint32_t OPAMP_TrimValue); |
| emilmont | 77:869cf507173a | 180 | void OPAMP_OffsetTrimLowPowerConfig(uint32_t OPAMP_Selection, uint32_t OPAMP_Input, uint32_t OPAMP_TrimValue); |
| emilmont | 77:869cf507173a | 181 | FlagStatus OPAMP_GetFlagStatus(uint32_t OPAMP_Selection); |
| emilmont | 77:869cf507173a | 182 | |
| emilmont | 77:869cf507173a | 183 | #ifdef __cplusplus |
| emilmont | 77:869cf507173a | 184 | } |
| emilmont | 77:869cf507173a | 185 | #endif |
| emilmont | 77:869cf507173a | 186 | |
| emilmont | 77:869cf507173a | 187 | #endif /*__STM32L1xx_OPAMP_H */ |
| emilmont | 77:869cf507173a | 188 | |
| emilmont | 77:869cf507173a | 189 | /** |
| emilmont | 77:869cf507173a | 190 | * @} |
| emilmont | 77:869cf507173a | 191 | */ |
| emilmont | 77:869cf507173a | 192 | |
| emilmont | 77:869cf507173a | 193 | /** |
| emilmont | 77:869cf507173a | 194 | * @} |
| emilmont | 77:869cf507173a | 195 | */ |
| emilmont | 77:869cf507173a | 196 | |
| emilmont | 77:869cf507173a | 197 | /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ |
