105 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			105 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /****************************************************************************
 | |
| 
 | |
| Copyright(c) 2019 by Aerospace C.Power (Chongqing) Microelectronics. ALL RIGHTS RESERVED.
 | |
| 
 | |
| This Information is proprietary to Aerospace C.Power (Chongqing) Microelectronics and MAY NOT
 | |
| be copied by any method or incorporated into another program without
 | |
| the express written consent of Aerospace C.Power. This Information or any portion
 | |
| thereof remains the property of Aerospace C.Power. The Information contained herein
 | |
| is believed to be accurate and Aerospace C.Power assumes no responsibility or
 | |
| liability for its use in any way and conveys no license or title under
 | |
| any patent or copyright and makes no representation or warranty that this
 | |
| Information is free from patent or copyright infringement.
 | |
| 
 | |
| ****************************************************************************/
 | |
| #ifndef _POWER_MGMT_H
 | |
| #define _POWER_MGMT_H
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| extern "C" {
 | |
| #endif
 | |
| 
 | |
| #define POWER_12V_DETECT_CNT        10
 | |
| #define POWER_12V_DETECT_FAIL_THR   (POWER_12V_DETECT_CNT/2)
 | |
| 
 | |
| #define POWER_CHARGE_COUNT_MAX      7200  //100ms *7200 = 720s = 12m
 | |
| #define POWER_AUX_CHECK_COUNT_MAX   3
 | |
| #define POWER_SAMPLE_COUNT_MAX      2
 | |
| #define POWER_SADC_DISABLE_COUNT_MAX 100
 | |
| 
 | |
| #define POWER_MANAGEMENT_DEBUG      0
 | |
| 
 | |
| typedef enum {
 | |
|     POWER_TYPE_12V,
 | |
|     POWER_TYPE_3V,
 | |
|     POWER_TYPE_GND,
 | |
| } power_type_t;
 | |
| 
 | |
| /**
 | |
|  * @brief power_get_supply_high_volt_thr() - get threshold of supply high voltage.
 | |
|  *        voltage less than this means module is power down.
 | |
|  * @retval threshold voltage, unit:mV.
 | |
|  */
 | |
| int32_t power_get_supply_high_volt_thr();
 | |
| 
 | |
| /**
 | |
|  * @brief power_get_supply_low_volt_thr() - get threshold of supply low voltage.
 | |
|  *        voltage less than this means module is pulled out or wrong.
 | |
|  * @retval threshold voltage, unit:mV.
 | |
|  */
 | |
| int32_t power_get_supply_low_volt_thr();
 | |
| 
 | |
| /**
 | |
|  * @brief power_get_supply_normal_volt_thr() - get threshold of supply normal voltage.
 | |
|  *       voltage less than this means power is abnormal.
 | |
|  * @retval threshold voltage, unit:mV.
 | |
|  */
 | |
| int32_t power_get_supply_normal_volt_thr();
 | |
| 
 | |
| /**
 | |
|  * @brief power_get_charge_volt_thr() - get threshold of charging voltage.
 | |
|  * @param start_thr: pointer of start charging threshold voltage, unit:mV.
 | |
|  * @param stop_thr: pointer of stop charging threshold voltage, unit:mV.
 | |
|  * @retval none.
 | |
|  */
 | |
| void power_get_charge_volt_thr(int16_t *start_thr, int16_t *stop_thr);
 | |
| 
 | |
| /**
 | |
|  * @brief power_get_event_detection_enable() - get event detection enable or not.
 | |
|  * @retval 1: event detection enable;
 | |
|  *         0: event detection not enable.
 | |
|  */
 | |
| uint8_t power_get_event_detection_enable();
 | |
| 
 | |
| /**
 | |
|  * @brief power_get_3v_lowest_volt_thr() - get threshold of super capacitor lowest voltage.
 | |
|  *      voltage less than this means charge circuit is bad, need disable charge.
 | |
|  * @retval threshold voltage, unit:mV.
 | |
|  */
 | |
| int32_t power_get_3v_lowest_volt_thr();
 | |
| 
 | |
| /**
 | |
|  * @brief power_get_gnd_low_volt_thr() - get threshold of gnd low voltage.
 | |
|  * @retval threshold voltage, unit:mV.
 | |
|  */
 | |
| int32_t power_get_gnd_low_volt_thr();
 | |
| 
 | |
| /**
 | |
|  * @brief power_get_volt() - get voltage by type.
 | |
|  * @param type, power type, refs to POWER_TYPE_xxx().
 | |
|  * @param ch, the adc channel of power type.
 | |
|  * @param err_num: err_num return value:
 | |
|                    0 - normal. data is OK;
 | |
|                    1 - abnormal, data is not OK;
 | |
|                    2 - device in use;
 | |
|  * @retval voltage, unit:mV.
 | |
|  */
 | |
| int32_t power_get_volt(power_type_t type, uint32_t ch, uint8_t *err_num);
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| }
 | |
| #endif
 | |
| 
 | |
| #endif  /* _POWER_MGMT_H */
 | |
| 
 |