网站建设归工商局管还是工信局管,凡科快图网页版,wordpress分享卡片,群晖 套件 wordpress文章目录 前言休眠流程定时唤醒功能总结 前言
开发SBC时非常重要的一环就是开发休眠流程#xff0c;其目的是为了保证接KL30的ECU在休眠模式下尽可能小的消耗低压蓄电池的电量#xff0c;防止车辆放置长时间后出现亏电。而定时唤醒功能在部分ECU中会有需求休眠后定期对车辆状… 文章目录 前言休眠流程定时唤醒功能总结 前言
开发SBC时非常重要的一环就是开发休眠流程其目的是为了保证接KL30的ECU在休眠模式下尽可能小的消耗低压蓄电池的电量防止车辆放置长时间后出现亏电。而定时唤醒功能在部分ECU中会有需求休眠后定期对车辆状态进行检查。本文介绍TLE9471的休眠流程及定时唤醒的配置
休眠流程
9471进入低功耗模式流程如下 首先清除唤醒源然后进入Sleep模式 模式切换寄存器为M_S_CTRL 如果需要SWK(PN唤醒)还需要配置相关的寄存器 示例代码如下 清除唤醒标志
Tle94xx_Send_Frame(Tle94xx_SendPackage(TLE94x1_WK_STAT_0_REG_ADDR,0x00u)); /* clear wake up state for WK_STAT_0 */
Tle94xx_Send_Frame(Tle94xx_SendPackage(TLE94x1_WK_STAT_1_REG_ADDR,0x00u)); /* clear wake up state for WK_STAT_1 */设置睡眠模式
TLE94x1_InitReg_Config.M_S_CTRL.B.VCC1_RT SBC_VCC1_RT_VRT1;
TLE94x1_InitReg_Config.M_S_CTRL.B.VCC1_OV_RST SBC_VCC1_OV_RST_RESTART_FAILSAFE;
TLE94x1_InitReg_Config.M_S_CTRL.B.VCC2_ON SBC_VCC2_OFF;
TLE94x1_InitReg_Config.M_S_CTRL.B.MODE SBC_MODE_SLEEP;Tle94xx_Send_Frame(Tle94xx_SendPackage(TLE94x1_M_S_CTRL_REG_ADDR,TLE94x1_InitReg_Config.M_S_CTRL.R)); /* enter sleep mode */定时唤醒功能
9471定时唤醒(周期唤醒)配置流程如下 通过WK_CTRL_0寄存器使能周期唤醒功能通过TIMER_CTRL寄存器配置唤醒的周期 示例配置如下
static void Tle94x1_CycWakeup_set(void)
{TLE94x1_InitReg_Config.WK_CTRL_0.B.TIMER_WK_EN WK_CTRL_0_TIMER_WK_EN_WAKESOURCE;TLE94x1_InitReg_Config.TIMER_CTRL.B.TIMER_ON SBC_TIMER_ON_20MS;TLE94x1_InitReg_Config.TIMER_CTRL.B.TIMER_PER SBC_TIMER_PER_1000S;Tle94xx_Send_Frame(Tle94xx_SendPackage(TLE94x1_TIMER_CTRL_REG_ADDR,TLE94x1_InitReg_Config.TIMER_CTRL.R));
Tle94xx_Send_Frame(Tle94xx_SendPackage(TLE94x1_WK_CTRL_0_REG_ADDR,TLE94x1_InitReg_Config.WK_CTRL_0.R));
}此处配置的唤醒周期为1000s在进入休眠模式前调用该函数即可。
总结
对于不同的唤醒方式需要知道对应的唤醒原因以便APP做对应的逻辑在9471中可以在初始化时通过WK_STAT_0寄存器获取唤醒原因一般就是硬线唤醒/网络唤醒/周期唤醒。