无线电爱好网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

【SemiDrive G9】G9X 使用 CAN 休眠唤醒

2022-10-27 09:27| 发布者: 闪电| 查看: 1| 评论: 0

摘要: 一、休眠唤醒硬件设置1.1 开发环境 使用的硬件平台是 Semidrive 官方的 G9X 开发板,软件版本是 G9 PTG4.9。1.2 休眠唤醒原理 本次我们介绍的是用 CAN 唤醒板端,我们先来看一下开发板关于唤醒这块的原理图是怎样的 ...

一、休眠唤醒硬件设置

1.1 开发环境

       使用的硬件平台是 Semidrive 官方的 G9X 开发板,软件版本是 G9 PTG4.9。

1.2 休眠唤醒原理

       本次我们介绍的是用 CAN 唤醒板端,我们先来看一下开发板关于唤醒这块的原理图是怎样的:

       从原理图可以看出,CAN1_INH 脚连到了 G9X WAKE0 脚,连到 WAKE0 脚的同时还有 3 个 ETH 管脚和 1 个 LIN 管脚。唤醒的原理是这样的:如果设置 WAKE0 为高电平触发,当系统休眠前,连到 WAKE0 的管脚都应该进入低电平状态使

WAKE0 置低,休眠后当其中某个管脚输出高电平后,WAKE0 会被其拉高,从而唤醒 CPU。


二、休眠唤醒验证

2.1 休眠 APP

       在 Freertos 这边有一个叫做 sleep 的app 位于 yocto\source\lk_safety\application\test\sleep ,它的原理是这样子:

       ① CAN1 的收发芯片用的是 TLE9252,前面提到在系统秀面前 CAN1_INH 应该置低,所以需要使 TLE9252 先进入休眠状态。TLE9252 的状态是由 EN 和 NTSB 两个脚控制,这两个脚是由拓展 IO TCA9539 控制,所以第一步是先通过配置

TCA9539 使 CAN1 休眠,从而拉低 CAN1_INH。

 


        ② Rtc 时钟资源分配到 Safety ,以便后面唤醒直接控制时钟进行初始化。

        ③ 关闭晶振,关闭上电复位功能。

        ④ 使能 WAKE0 管脚。



        ⑤ 根据 WAKE0 是低电平触发还是高电平触发对 WAKE0 电平进行设置。

        ⑥ 下电休眠

        其中的 4 个输入参数,en_wk0 代表是否使能 WAKE0,wk0_level 代表 WAKE0 是高电平触发还是低电平触发,en_wk1 和 wk1_level 即是 WAKE1 的设置。

2.2 使用 sleep 进行验证

       得知 sleep APP 的原理后,我们直接在 Freertos 进行验证,在串口输入 low_power 1 1 0 0 命令即可,这时奇怪的事发生了,运行 app 后使用万用表测量电压发现根本没有下电,即系统没有进入休眠状态。


三、解决方法

3.1 排除问题

      根据前面的原理图可以发现,WAKE0 上除了 CAN1_INH 还连接了 ETH 和 LIN 的几个脚,因为我们的 APP 只对 CAN1 进行了休眠操作,这就让人不得不怀疑是不是其他几个脚搞的鬼。于是我就将除了 CAN1_INH 以外的其他脚跟 WAKE0断开。

3.2 再次验证

      下面是进入休眠前的功耗:

       再次运行 low_power 1 1 0 0 后发现 LED 灯全熄灭了,发现功耗由原来的 464mA 变成了 2mA,说明已经完全进入休眠状态了:

        这时候只需要对 CAN1 发送任意一条数据即可唤醒 TLE9252,从而 CAN1_INH 置高,并拉高 WAKE0 使系统唤醒。
     

参考资料:

【1】《sd004_g9x_ref_a03_sch.pdf》


路过

雷人

握手

鲜花

鸡蛋

QQ|关于本站|小黑屋|Archiver|手机版|无线电爱好网 ( 粤ICP备15040352号 ) 无线电爱好技术交流5 无线电爱好技术交流1无线电爱好技术交流9开关电源讨论群LED照明应用、电源无线电爱好技术交流4无线电爱好技术交流8无线电爱好技术交流10无线电爱好技术交流11

粤公网安备 44030702001224号

GMT+8, 2022-10-27 09:27 , Processed in 0.140400 second(s), 18 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

返回顶部