wuyage

Kinetis VLPS下FlexCAN唤醒实现

0
阅读(1543)

本篇介绍如何在VLPS低功耗模式下实现CAN唤醒的功能。

QQ截图20161025112231.jpg

手册中介绍在VLPS下,FlexCAN可以被配置成产生一个中断用户唤醒MCU。

产生Wake-up 中断的条件是SLFWAK设置为1,WAKMSK设置为1, 当WAKINT标志位为1时即产生中断

xxxxx.jpg


值得注意的一点是这时产生的中断不是普通的CAN接收数据的中断,

YYYY.jpg

所以整个配置过程是:

1)CANx_MCR寄存器的SLFWAK位置1

1111111.jpg


2)CANx_MCR寄存器的WAKMSK位置1

222222.jpg

3)使能CAN wake-up NVIC中断

4 ) 调用VLPS函数进入低功耗状态

5)在CAN wake-up中断服务函数中,判断WAKINT标志位是否为1,当为1时清除标志位

标志位清楚.jpg

注意:唤醒的这一帧CAN数据唤醒MCU之后将无法被正常接收


附上一个main.c文件以供参考

main.rar



Baidu
map