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>&copy; 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