当前位置: 首页 > news >正文

复杂驱动开发-TLE9471的休眠流程与定时唤醒

文章目录

    • 前言
    • 休眠流程
    • 定时唤醒功能
    • 总结

前言

开发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寄存器获取唤醒原因,一般就是硬线唤醒/网络唤醒/周期唤醒。

http://www.lryc.cn/news/576669.html

相关文章:

  • 断路器、空气开关、漏电保护器
  • 【扩欧应用】同余方程
  • 概述-4-通用语法及分类
  • 领域驱动设计(DDD)【21】之值对象的优势
  • WebRTC(十二):DTLS
  • PowerBI 柱状图显示MoM销量环比示例,以及解决相同列值时设置柱子颜色的问题
  • 【转】PostgreSql的镜像地址
  • 一个简单测试Deepseek吞吐量的脚本,国内环境可跑
  • QTreeWidget 简单使用
  • web自动化测试常见函数
  • 西门子S7-200 SMART PLC:小型自动化领域的高效之选
  • 华为云鸿蒙应用入门级开发者认证 实验部分题目及操作步骤
  • 基于Uniapp+SpringBoot+Vue 的在线商城小程序
  • AI 在金融领域的落地实践:从智能风控到量化交易的技术突破与案例解析
  • 【Docker基础】Docker容器管理:docker stats及其参数详解
  • 使用asyncio构建高性能网络爬虫
  • 华为云Flexus+DeepSeek征文|基于Dify构建AI资讯语音播报工作流
  • Python pyserial库【串口通信】全面讲解
  • 从傅立叶级数到傅里叶变换和离散傅里叶变换及其逆变换:FS FT DFT IDFT
  • 华为云Flexus+DeepSeek征文 | 华为云ModelArts Studio实战指南:创建高效的AingDesk知识库问答助手
  • Java锁机制知识点
  • Java安装与使用教程
  • FPGA设计的上板调试
  • zookeeper Curator(2):Curator的节点操作
  • 移动端日志平台EMAS
  • 在C++中#pragma“可选预处理指令的作用“。
  • OpenCV图像噪点消除五大滤波方法
  • springboot+Vue逍遥大药房管理系统
  • Redis—主从复制
  • 多径信道下移动通信信号均衡技术研究与实现