1 /** 2 ****************************************************************************** 3 * @file tae32f53xx_ll_lvdctrl.h 4 * @author MCD Application Team 5 * @brief Head file for LVDCTRL LL Module 6 * 7 ****************************************************************************** 8 * @attention 9 * 10 * <h2><center>© Copyright (c) 2020 Tai-Action. 11 * All rights reserved.</center></h2> 12 * 13 * This software is licensed by Tai-Action under BSD 3-Clause license, 14 * the "License"; You may not use this file except in compliance with the 15 * License. You may obtain a copy of the License at: 16 * opensource.org/licenses/BSD-3-Clause 17 * 18 ****************************************************************************** 19 */ 20 21 /* Define to prevent recursive inclusion -------------------------------------*/ 22 #ifndef _TAE32F53XX_LL_LVDCTRL_H_ 23 #define _TAE32F53XX_LL_LVDCTRL_H_ 24 25 #ifdef __cplusplus 26 extern "C" { 27 #endif /* __cplusplus */ 28 29 /* Includes ------------------------------------------------------------------*/ 30 #include "tae32f53xx_ll_def.h" 31 32 33 /** @addtogroup TAE32F53xx_LL_Driver 34 * @{ 35 */ 36 37 /** @addtogroup LVDCTRL_LL 38 * @{ 39 */ 40 41 42 /* Exported types ------------------------------------------------------------*/ 43 /* Exported constants --------------------------------------------------------*/ 44 /* Exported macro ------------------------------------------------------------*/ 45 /** @defgroup LVDCTRL_LL_Exported_Macros LVDCTRL LL Exported Macros 46 * @brief LVDCTRL LL Exported Macros 47 * @{ 48 */ 49 50 /** 51 * @brief Judge VDD Over Current or not 52 * @param __LVD__ Specifies LVD peripheral 53 * @retval 0 VDD isn't Over Current 54 * @retval 1 VDD is Over Current 55 */ 56 #define __LL_LVDCTRL_IsVDDOverCur(__LVD__) (READ_BIT((__LVD__)->LACR, LVDCTRL_VDDOC_ST_Msk) >> LVDCTRL_VDDOC_ST_Pos) 57 58 /** 59 * @brief Judge VDD Low Voltage or not 60 * @param __LVD__ Specifies LVD peripheral 61 * @retval 0 VDD isn't Low Voltage 62 * @retval 1 VDD is Low Voltage 63 */ 64 #define __LL_LVDCTRL_IsVDDLowVol(__LVD__) (READ_BIT((__LVD__)->LACR, LVDCTRL_VDDLV_ST_Msk) >> LVDCTRL_VDDLV_ST_Pos) 65 66 /** 67 * @brief Judge VCC Low Voltage or not 68 * @param __LVD__ Specifies LVD peripheral 69 * @retval 0 VCC isn't Low Voltage 70 * @retval 1 VCC is Low Voltage 71 */ 72 #define __LL_LVDCTRL_IsVCCLowVol(__LVD__) (READ_BIT((__LVD__)->LACR, LVDCTRL_VCCLV_ST_Msk) >> LVDCTRL_VCCLV_ST_Pos) 73 74 /** 75 * @brief Judge AVCC Low Voltage or not 76 * @param __LVD__ Specifies LVD peripheral 77 * @retval 0 AVCC isn't Low Voltage 78 * @retval 1 AVCC is Low Voltage 79 */ 80 #define __LL_LVDCTRL_IsAVCCLowVol(__LVD__) (READ_BIT((__LVD__)->LACR, LVDCTRL_AVCCLV_ST_Msk) >> LVDCTRL_AVCCLV_ST_Pos) 81 82 /** 83 * @brief VDD Over Current Bypass Enable 84 * @param __LVD__ Specifies LVD peripheral 85 * @return None 86 */ 87 #define __LL_LVDCTRL_VDD_OverCurByp_En(__LVD__) SET_BIT((__LVD__)->LACR, LVDCTRL_VDDOC_BYP_EN_Msk) 88 89 /** 90 * @brief VDD Over Current Bypass Disable 91 * @param __LVD__ Specifies LVD peripheral 92 * @return None 93 */ 94 #define __LL_LVDCTRL_VDD_OverCurByp_Dis(__LVD__) CLEAR_BIT((__LVD__)->LACR, LVDCTRL_VDDOC_BYP_EN_Msk) 95 96 /** 97 * @brief VDD Low Voltage Bypass Enable 98 * @param __LVD__ Specifies LVD peripheral 99 * @return None 100 */ 101 #define __LL_LVDCTRL_VDD_LowVolByp_En(__LVD__) SET_BIT((__LVD__)->LACR, LVDCTRL_VDDLV_BYP_EN_Msk) 102 103 /** 104 * @brief VDD Low Voltage Bypass Disable 105 * @param __LVD__ Specifies LVD peripheral 106 * @return None 107 */ 108 #define __LL_LVDCTRL_VDD_LowVolByp_Dis(__LVD__) CLEAR_BIT((__LVD__)->LACR, LVDCTRL_VDDLV_BYP_EN_Msk) 109 110 /** 111 * @brief VCC Low Voltage Bypass Enable 112 * @param __LVD__ Specifies LVD peripheral 113 * @return None 114 */ 115 #define __LL_LVDCTRL_VCC_LowVolByp_En(__LVD__) SET_BIT((__LVD__)->LACR, LVDCTRL_VCCLV_BYP_EN_Msk) 116 117 /** 118 * @brief VCC Low Voltage Bypass Disable 119 * @param __LVD__ Specifies LVD peripheral 120 * @return None 121 */ 122 #define __LL_LVDCTRL_VCC_LowVolByp_Dis(__LVD__) CLEAR_BIT((__LVD__)->LACR, LVDCTRL_VCCLV_BYP_EN_Msk) 123 124 /** 125 * @brief AVCC Low Voltage Bypass Enable 126 * @param __LVD__ Specifies LVD peripheral 127 * @return None 128 */ 129 #define __LL_LVDCTRL_AVCC_LowVolByp_En(__LVD__) SET_BIT((__LVD__)->LACR, LVDCTRL_AVCCLV_BYP_EN_Msk) 130 131 /** 132 * @brief AVCC Low Voltage Bypass Disable 133 * @param __LVD__ Specifies LVD peripheral 134 * @return None 135 */ 136 #define __LL_LVDCTRL_AVCC_LowVolByp_Dis(__LVD__) CLEAR_BIT((__LVD__)->LACR, LVDCTRL_AVCCLV_BYP_EN_Msk) 137 138 /** 139 * @brief Analog Input Signal Debounce Limit Set 140 * @param __LVD__ Specifies LVD peripheral 141 * @param limit Analog Input Signal Debounce Limit 142 * @return None 143 */ 144 #define __LL_LVDCTRL_AnalogInDbcLimit_Set(__LVD__, limit) \ 145 MODIFY_REG((__LVD__)->LACR, LVDCTRL_ANAIN_DBC_LIMIT_Msk, ((limit & 0xffUL) << LVDCTRL_ANAIN_DBC_LIMIT_Pos)) 146 147 /** 148 * @brief VCC Low Voltage Threshold Set 149 * @param __LVD__ Specifies LVD peripheral 150 * @param thres VCC Low Voltage Threshold 151 * @return None 152 */ 153 #define __LL_LVDCTRL_VCC_LowVolThres_Set(__LVD__, thres) MODIFY_REG((__LVD__)->LACR, LVDCTRL_VCCLV_SET_Msk, thres) 154 155 /** 156 * @brief AVCC Low Voltage Threshold Set 157 * @param __LVD__ Specifies LVD peripheral 158 * @param thres AVCC Low Voltage Threshold 159 * @return None 160 */ 161 #define __LL_LVDCTRL_AVCC_LowVolThres_Set(__LVD__, thres) MODIFY_REG((__LVD__)->LACR, LVDCTRL_AVCCLV_SET_Msk, thres) 162 163 /** 164 * @brief VDD Over Current Threshold Set 165 * @param __LVD__ Specifies LVD peripheral 166 * @param thres VDD Over Current Threshold 167 * @return None 168 */ 169 #define __LL_LVDCTRL_VDD_OverCurThres_Set(__LVD__, thres) MODIFY_REG((__LVD__)->LACR, LVDCTRL_VDDOC_SET_Msk, thres) 170 171 /** 172 * @brief VDD Low Voltage Threshold Set 173 * @param __LVD__ Specifies LVD peripheral 174 * @param thres VDD Low Voltage Threshold 175 * @return None 176 */ 177 #define __LL_LVDCTRL_VDD_LowVolThres_Set(__LVD__, thres) MODIFY_REG((__LVD__)->LACR, LVDCTRL_VDDLV_SET_Msk, thres) 178 179 /** 180 * @brief VCC Low Voltage Detect Enable 181 * @param __LVD__ Specifies LVD peripheral 182 * @return None 183 */ 184 #define __LL_LVDCTRL_VCC_LowVolDet_En(__LVD__) SET_BIT((__LVD__)->LACR, LVDCTRL_VCCLV_EN_Msk) 185 186 /** 187 * @brief VCC Low Voltage Detect Disable 188 * @param __LVD__ Specifies LVD peripheral 189 * @return None 190 */ 191 #define __LL_LVDCTRL_VCC_LowVolDet_Dis(__LVD__) CLEAR_BIT((__LVD__)->LACR, LVDCTRL_VCCLV_EN_Msk) 192 193 /** 194 * @brief AVCC Low Voltage Detect Enable 195 * @param __LVD__ Specifies LVD peripheral 196 * @return None 197 */ 198 #define __LL_LVDCTRL_AVCC_LowVolDet_En(__LVD__) SET_BIT((__LVD__)->LACR, LVDCTRL_AVCCLV_EN_Msk) 199 200 /** 201 * @brief AVCC Low Voltage Detect Disable 202 * @param __LVD__ Specifies LVD peripheral 203 * @return None 204 */ 205 #define __LL_LVDCTRL_AVCC_LowVolDet_Dis(__LVD__) CLEAR_BIT((__LVD__)->LACR, LVDCTRL_AVCCLV_EN_Msk) 206 207 /** 208 * @brief VDD Over Current Detect Enable 209 * @param __LVD__ Specifies LVD peripheral 210 * @return None 211 */ 212 #define __LL_LVDCTRL_VDD_OverCurDet_En(__LVD__) SET_BIT((__LVD__)->LACR, LVDCTRL_VDDOC_EN_Msk) 213 214 /** 215 * @brief VDD Over Current Detect Disable 216 * @param __LVD__ Specifies LVD peripheral 217 * @return None 218 */ 219 #define __LL_LVDCTRL_VDD_OverCurDet_Dis(__LVD__) CLEAR_BIT((__LVD__)->LACR, LVDCTRL_VDDOC_EN_Msk) 220 221 /** 222 * @brief VDD Low Voltage Detect Enable 223 * @param __LVD__ Specifies LVD peripheral 224 * @return None 225 */ 226 #define __LL_LVDCTRL_VDD_LowVolDet_En(__LVD__) SET_BIT((__LVD__)->LACR, LVDCTRL_VDDLV_EN_Msk) 227 228 /** 229 * @brief VDD Low Voltage Detect Disable 230 * @param __LVD__ Specifies LVD peripheral 231 * @return None 232 */ 233 #define __LL_LVDCTRL_VDD_LowVolDet_Dis(__LVD__) CLEAR_BIT((__LVD__)->LACR, LVDCTRL_VDDLV_EN_Msk) 234 235 236 /** 237 * @brief VDD Over Current Braking Enable 238 * @param __LVD__ Specifies LVD peripheral 239 * @return None 240 */ 241 #define __LL_LVDCTRL_VDD_OverCurBrk_En(__LVD__) SET_BIT((__LVD__)->LCR, LVDCTRL_VDDOC_BRK_EN_Msk) 242 243 /** 244 * @brief VDD Over Current Braking Disable 245 * @param __LVD__ Specifies LVD peripheral 246 * @return None 247 */ 248 #define __LL_LVDCTRL_VDD_OverCurBrk_Dis(__LVD__) CLEAR_BIT((__LVD__)->LCR, LVDCTRL_VDDOC_BRK_EN_Msk) 249 250 /** 251 * @brief VDD Low Voltage Braking Enable 252 * @param __LVD__ Specifies LVD peripheral 253 * @return None 254 */ 255 #define __LL_LVDCTRL_VDD_LowVolBrk_En(__LVD__) SET_BIT((__LVD__)->LCR, LVDCTRL_VDDLV_BRK_EN_Msk) 256 257 /** 258 * @brief VDD Low Voltage Braking Disable 259 * @param __LVD__ Specifies LVD peripheral 260 * @return None 261 */ 262 #define __LL_LVDCTRL_VDD_LowVolBrk_Dis(__LVD__) CLEAR_BIT((__LVD__)->LCR, LVDCTRL_VDDLV_BRK_EN_Msk) 263 264 /** 265 * @brief VCC Low Voltage Braking Enable 266 * @param __LVD__ Specifies LVD peripheral 267 * @return None 268 */ 269 #define __LL_LVDCTRL_VCC_LowVolBrk_En(__LVD__) SET_BIT((__LVD__)->LCR, LVDCTRL_VCCLV_BRK_EN_Msk) 270 271 /** 272 * @brief VCC Low Voltage Braking Disable 273 * @param __LVD__ Specifies LVD peripheral 274 * @return None 275 */ 276 #define __LL_LVDCTRL_VCC_LowVolBrk_Dis(__LVD__) CLEAR_BIT((__LVD__)->LCR, LVDCTRL_VCCLV_BRK_EN_Msk) 277 278 /** 279 * @brief AVCC Low Voltage Braking Enable 280 * @param __LVD__ Specifies LVD peripheral 281 * @return None 282 */ 283 #define __LL_LVDCTRL_AVCC_LowVolBrk_En(__LVD__) SET_BIT((__LVD__)->LCR, LVDCTRL_AVCCLV_BRK_EN_Msk) 284 285 /** 286 * @brief AVCC Low Voltage Braking Disable 287 * @param __LVD__ Specifies LVD peripheral 288 * @return None 289 */ 290 #define __LL_LVDCTRL_AVCC_LowVolBrk_Dis(__LVD__) CLEAR_BIT((__LVD__)->LCR, LVDCTRL_AVCCLV_BRK_EN_Msk) 291 292 /** 293 * @brief VDD Over Current Interrupt Enable 294 * @param __LVD__ Specifies LVD peripheral 295 * @return None 296 */ 297 #define __LL_LVDCTRL_VDD_OverCurInt_En(__LVD__) SET_BIT((__LVD__)->LCR, LVDCTRL_VDDOC_INT_EN_Msk) 298 299 /** 300 * @brief VDD Over Current Interrupt Disable 301 * @param __LVD__ Specifies LVD peripheral 302 * @return None 303 */ 304 #define __LL_LVDCTRL_VDD_OverCurInt_Dis(__LVD__) CLEAR_BIT((__LVD__)->LCR, LVDCTRL_VDDOC_INT_EN_Msk) 305 306 /** 307 * @brief VDD Low Voltage Interrupt Enable 308 * @param __LVD__ Specifies LVD peripheral 309 * @return None 310 */ 311 #define __LL_LVDCTRL_VDD_LowVolInt_En(__LVD__) SET_BIT((__LVD__)->LCR, LVDCTRL_VDDLV_INT_EN_Msk) 312 313 /** 314 * @brief VDD Low Voltage Interrupt Disable 315 * @param __LVD__ Specifies LVD peripheral 316 * @return None 317 */ 318 #define __LL_LVDCTRL_VDD_LowVolInt_Dis(__LVD__) CLEAR_BIT((__LVD__)->LCR, LVDCTRL_VDDLV_INT_EN_Msk) 319 320 /** 321 * @brief VCC Low Voltage Interrupt Enable 322 * @param __LVD__ Specifies LVD peripheral 323 * @return None 324 */ 325 #define __LL_LVDCTRL_VCC_LowVolInt_En(__LVD__) SET_BIT((__LVD__)->LCR, LVDCTRL_VCCLV_INT_EN_Msk) 326 327 /** 328 * @brief VCC Low Voltage Interrupt Disable 329 * @param __LVD__ Specifies LVD peripheral 330 * @return None 331 */ 332 #define __LL_LVDCTRL_VCC_LowVolInt_Dis(__LVD__) CLEAR_BIT((__LVD__)->LCR, LVDCTRL_VCCLV_INT_EN_Msk) 333 334 /** 335 * @brief AVCC Low Voltage Interrupt Enable 336 * @param __LVD__ Specifies LVD peripheral 337 * @return None 338 */ 339 #define __LL_LVDCTRL_AVCC_LowVolInt_En(__LVD__) SET_BIT((__LVD__)->LCR, LVDCTRL_AVCCLV_INT_EN_Msk) 340 341 /** 342 * @brief AVCC Low Voltage Interrupt Disable 343 * @param __LVD__ Specifies LVD peripheral 344 * @return None 345 */ 346 #define __LL_LVDCTRL_AVCC_LowVolInt_Dis(__LVD__) CLEAR_BIT((__LVD__)->LCR, LVDCTRL_AVCCLV_INT_EN_Msk) 347 348 /** 349 * @brief VDD Over Current Reset Enable 350 * @param __LVD__ Specifies LVD peripheral 351 * @return None 352 */ 353 #define __LL_LVDCTRL_VDD_OverCurRst_En(__LVD__) SET_BIT((__LVD__)->LCR, LVDCTRL_VDDOC_RST_EN_Msk) 354 355 /** 356 * @brief VDD Over Current Reset Disable 357 * @param __LVD__ Specifies LVD peripheral 358 * @return None 359 */ 360 #define __LL_LVDCTRL_VDD_OverCurRst_Dis(__LVD__) CLEAR_BIT((__LVD__)->LCR, LVDCTRL_VDDOC_RST_EN_Msk) 361 362 /** 363 * @brief VDD Low Voltage Reset Enable 364 * @param __LVD__ Specifies LVD peripheral 365 * @return None 366 */ 367 #define __LL_LVDCTRL_VDD_LowVolRst_En(__LVD__) SET_BIT((__LVD__)->LCR, LVDCTRL_VDDLV_RST_EN_Msk) 368 369 /** 370 * @brief VDD Low Voltage Reset Disable 371 * @param __LVD__ Specifies LVD peripheral 372 * @return None 373 */ 374 #define __LL_LVDCTRL_VDD_LowVolRst_Dis(__LVD__) CLEAR_BIT((__LVD__)->LCR, LVDCTRL_VDDLV_RST_EN_Msk) 375 376 /** 377 * @brief VCC Low Voltage Reset Enable 378 * @param __LVD__ Specifies LVD peripheral 379 * @return None 380 */ 381 #define __LL_LVDCTRL_VCC_LowVolRst_En(__LVD__) SET_BIT((__LVD__)->LCR, LVDCTRL_VCCLV_RST_EN_Msk) 382 383 /** 384 * @brief VCC Low Voltage Reset Disable 385 * @param __LVD__ Specifies LVD peripheral 386 * @return None 387 */ 388 #define __LL_LVDCTRL_VCC_LowVolRst_Dis(__LVD__) CLEAR_BIT((__LVD__)->LCR, LVDCTRL_VCCLV_RST_EN_Msk) 389 390 /** 391 * @brief AVCC Low Voltage Reset Enable 392 * @param __LVD__ Specifies LVD peripheral 393 * @return None 394 */ 395 #define __LL_LVDCTRL_AVCC_LowVolRst_En(__LVD__) SET_BIT((__LVD__)->LCR, LVDCTRL_AVCCLV_RST_EN_Msk) 396 397 /** 398 * @brief AVCC Low Voltage Reset Disable 399 * @param __LVD__ Specifies LVD peripheral 400 * @return None 401 */ 402 #define __LL_LVDCTRL_AVCC_LowVolRst_Dis(__LVD__) CLEAR_BIT((__LVD__)->LCR, LVDCTRL_AVCCLV_RST_EN_Msk) 403 404 /** 405 * @} 406 */ 407 408 409 /* Exported functions --------------------------------------------------------*/ 410 /** @addtogroup LVDCTRL_LL_Exported_Functions 411 * @{ 412 */ 413 414 /** @addtogroup LVDCTRL_LL_Exported_Functions_Group1 415 * @{ 416 */ 417 LL_StatusETypeDef LL_LVD_Init(LVD_TypeDef *Instance); 418 LL_StatusETypeDef LL_LVD_DeInit(LVD_TypeDef *Instance); 419 void LL_LVD_MspInit(LVD_TypeDef *Instance); 420 void LL_LVD_MspDeInit(LVD_TypeDef *Instance); 421 /** 422 * @} 423 */ 424 425 426 /** @addtogroup LVDCTRL_LL_Exported_Functions_Interrupt 427 * @{ 428 */ 429 void LL_LVD_CtrlIRQHandler(LVD_TypeDef *Instance); 430 /** 431 * @} 432 */ 433 434 /** 435 * @} 436 */ 437 438 439 /* Private types -------------------------------------------------------------*/ 440 /* Private variables ---------------------------------------------------------*/ 441 /* Private constants ---------------------------------------------------------*/ 442 /* Private macros ------------------------------------------------------------*/ 443 /* Private functions ---------------------------------------------------------*/ 444 445 446 /** 447 * @} 448 */ 449 450 /** 451 * @} 452 */ 453 454 455 #ifdef __cplusplus 456 } 457 #endif /* __cplusplus */ 458 459 460 #endif /* _TAE32F53XX_LL_LVDCTRL_H_ */ 461 462 463 /************************* (C) COPYRIGHT Tai-Action *****END OF FILE***********/ 464 465