[PSOC™] 通过LIN RX唤醒PSoC4200M深度睡眠的方法介绍

[复制链接]
166|3
IFX_Lingling 发表于 2025-9-8 17:33 | 显示全部楼层 |阅读模式
, , , ,
本帖最后由 IFX_Lingling 于 2025-9-10 13:47 编辑

一、LIN协议概述
LIN
LocalInterconnect Network)是一种低成本串行通信协议,广泛应用于汽车电子(如车窗升降器、雨刷控制)及工业控制领域。其核心特点包括:

  • 低成本:适用于对可靠性要求较低的场景,作为     CAN 总线的补充。
  • 主从架构:单主多从通信,主节点负责调度,从节点响应指令。
  • 物理层特性:单线总线(LIN     Bus),逻辑电平通过收发器转换为差分信号。

二、硬件环境搭建
1
:所需设备
  
设备名称
  
型号/描述
功能说明
  
主控板
  
CY8CKIT-044PSoC4200M
集成  PSoC4 MCU,需外接 LIN 收发器实现总线通信。
  
LIN  Shield
  
CY8CKIT-026
提供  LIN 收发器接口,支持协议转换与信号驱动。
  
总线分析仪
  
Toomoss  LIN Analyzer
监控  LIN 总线通信,解析数据帧(PID、数据负载等)。

2.
硬件连接
硬件的连接如下图:

1Lin环境搭建的硬件图
三、如何通过LIN RX唤醒PSoC4200M深度睡眠?
方法一:通过All PortGPIO中断去唤醒PSoC4200M
这种方法可以针对LIN RX 的引脚上面没有专用中断向量号的设计需求(注:有专用向量号的也可以用这种方法)

第一步:在工程中添加GlobalSignal 组件,将组件的中断配置成Combinedport interrupt (AllPortInt),将中断名字修改为“isr_CombinedPort”
图2:原理图设计
第二步:对应的代码设计:

1:配置LINRX 引脚的中断模式,在这里设置成下降沿中断。
LINS_SCB_rx_SetInterruptMode(LINS_SCB_rx_0_INTR,LINS_SCB_rx_INTR_FALLING);
2
:配置GPIO中断的入口函数,在配置入口函数的API里面已经使能了中断,同时配置了中断的优先级。
uint8_t flag=0;
CY_ISR(testisr)
    {
    flag =0x55;
    LINS_SCB_rx_ClearInterrupt();
    }
isr_CombinedPort_StartEx(testisr);
3
:芯片从deepsleep唤醒以后,需要把GPIO的中断关闭,这样可以保证LIN通信可以正常运行。
void LIN_Rx_Int_Disable(void)
{
    isr_CombinedPort_Disable();
    LINS_SCB_rx_ClearInterrupt();
}

测试结果如下图,芯片被唤醒以后收到的数据帧SignalIn01,实际应用中需要添加一个唤醒包,第一帧数据不能保证被正确接收。

3:测试结果
5
:测试代码见附件。

方法二:可以通过修改LIN组件的方式,在组件中使能“Enable wakeup fromDeep Sleep Mode”,这种方法针对GPIO有专用的引脚向量号,没有直连中断向量的不能用这种方法。

第一步:如何修改LIN组件:
1
:在 "WorkspaceExplorer "中选择"Components "选项卡。
2
:右键单击项目并选择 "ImportComponent"
4 :导入最新版本的LIN组件
3:点击对应组件的LINxx.cysch, 勾选Enable wakeup fromDeep Sleep Mode,然后保存。
4
:点击对应的组件,右击选择Set As TopComponent,然后切换到“workspaceExplorer ”中的source,进行编译。这个时候,生成的文件里面会多出SCB_rx_wake SCB_RX_WAKEUP_IRQ文件夹,说明修改成功了。
5:关闭工程,重新打开workspace,这个时候工程会调用本地的LIN组件。(一定要重新打开工程,这样才会调用本地的库)
6
:对应的代码设计为:
  LINS_SCB_Sleep();
  CySysPmDeepSleep();
  LINS_SCB_Wakeup();
7
:测试工程见附件。

四、参考文档
1
CY8CKIT-044
2
CY8CKIT-026
3
图莫斯

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
小小蚂蚁举千斤 发表于 2025-9-29 16:29 | 显示全部楼层
很实用的唤醒PSoC4200M深度睡眠的方法
星辰大海不退缩 发表于 2025-9-29 23:08 | 显示全部楼层
通过LIN RX唤醒PSoC4200M深度睡眠的方法很不错
szt1993 发表于 2025-9-30 09:35 | 显示全部楼层
LIN RX唤醒PSoC4200M深度睡眠的方法
您需要登录后才可以回帖 登录 | 注册

本版积分规则

认证:
简介:关于英飞凌——我们致力于打造一个更加便利、安全和环保的世界,在赢得自身成功发展的同时,积极践行企业社会责任。

136

主题

224

帖子

6

粉丝
快速回复 在线客服 返回列表 返回顶部