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 */
							 | 
						||
| 
								 | 
							
								
							 |