【需求描述】
汽车电子类产品(如BCM)一般要求正常工作电压为9~16V,CAN总线活跃电压范围为7~18V。有些负载如门锁、转向灯则不限制9~16V。
【设计思路】
STEP1:
板载CAN transceiver(如TJA1043)工作电压范围为[4.5 5.5]V,典型值为5V。
板载5VLDO(如TPS7B69xx)稳定输出5V的输入电压范围为[5.8 40V]。
STEP2:
车载蓄电池规格为12V。
STEP3:
结合需求与硬件特性,可作出电压状态划分图如下。
其中模式Low与Normal之间的滞洄区间(0.5V/200ms)是指:当电压从高于9V变化到低于8.5V时,电压低于8.5V持续时间多于200ms,电源模式从Normal模式切换到Low模式;当电压从低于9V变化到高于9V时,电压高于9V持续时间多于200ms,电源模式从Low模式切换到Normal模式。
设计滞洄区间的目的:防止干扰造成的电压变化执行到负载上。
【编码实现】
appPowerManage.c
/*****************************************
* prototype : scan voltage mode
* input : none
* output : none
* return : voltage mode
*****************************************/
U8 pmmSysCheck_SystermVoltageScan(void)
{
U16 pmmSystermVoltTemp;
U8 pmmSystermVoltModeNew;
pmmSystermVoltTemp = Adh_GetLogicalValue(ADH_KL30_DUT);
/* sys voltage mode parse */
if ((pmmSystermVoltTemp >= sysVoltageCfgPara.sysLowVoltThreshold)
&&(pmmSystermVoltTemp <= sysVoltageCfgPara.sysHighVoltThreshold) )// 9.0V ~ 16.0V
{
pmmSystermVoltModeNew = PMM_SYS_VOL_NORMAL;
}
else if(pmmSystermVoltTemp > sysVoltageCfgPara.sysHighVoltThreshold) // > 16.0V
{