RT-Thread上CAN实践

企业   2024-11-12 18:04   上海  

开箱测试

RT-Thread官方已完成了对英飞凌XMC7200 EVK的移植,通过shell可以看到做好了uart3的console。

本文将介绍如何进行RT-Thread Can 移植。

接下来我们要完成CAN_FD的驱动移植,并正常启动RT-Thread,首先参考下面的帖子搭建好开发环境:

https://club.rt-thread.org/ask/article/4e5abc98191c3747.html

接着在RT-Thread主仓中找到xmc7200的模板工程(路径:\bsp\Infineon\xmc7200-kit_xmc7200_evk)。在不改变任何参数的情况下,我们修改应用程序让三个灯循环点亮,接着进行编译和并下载程序验证。

下载验证:

原理图分析

从开发板的原理图和芯片复用手册可知,驱动CAN_FD芯片的是P0.2和P0.3两个引脚,使用CAN0通道1进行控制。另外P1.0引脚控制CAN transceiver的standby功能。

驱动移植

使用RT-Thread ENV 工具对内核进行配置,开启内核层CAN总线驱动,并重新生成KEIL MDK工程,运行scons --target=mdk5

在HAL_Drivers目录下添加硬件层的can驱动代码,命名为drv_can.c drv_can.h.

参考STM32的RTT HAL驱动,我们需要针对性地对各部分进行更改,仔细核对驱动API调用方法才能完成移植。由于是第一次使用英飞凌XMC系列处理器,并没有完全了解其驱动库架构和寄存器对应关系,需要进一步更改才能使用。目前实现的功能是内核驱动挂载并正常显示。

如下图所示,可查找到名为xmc_can0的设备,但是无法对其进行操作。

CAN测试

为了完成XMC7200 CANFD驱动评估,需要一个CAN总线分析仪。考虑到成本原因,我选择通过嘉立创开源项目拷贝一个现有方案并手工贴片完成一个简单的CAN采集器,用于测试和数据分析。选中了下面这款USB_TO_CAN tool,并进行打板,焊接,测试,下载官方的固件并进行通信验证。

完成的实物和测试效果如下图:

参考STM32的CAN驱动,我们移植英飞凌的CAN驱动对接到RT-Thread的

CAN框架最终完成了一个传统CAN模式的测试框架,并提交到github上面。https://github.com/Jason0204/rtthread-xmc7200 测试效果如下:

XMC7200EVK 传统模式下的CANFD在RT-Thread下的运行已经完成驱动移植和部分测试。

原文链接

原文链接:https://club.rt-thread.org/ask/article/ee5a26b536d9a122.html

XMC7200电子书正式发布

XMC7200是英飞凌推出的一款32位双核CPU子系统(ARM Cortex-M7 和 ARM Cortex-M0)的开发板。该XMC7200D专为工业应用而设计,是一款真正的可编程嵌入式片上系统,集成了多达两个 350MHz Arm® Cortex-M7® 作为主应用处理器,一个 100MHz Arm® Cortex-M0®+ 。RT-Thread 已支持英飞凌 XMC7200,并联合英飞凌半导体以及社区的活跃开发者,完成了电子书《英飞凌 XMC7200 开发实践指南》(下滑点击“阅读原文”查看),希望能够为大家提供到帮助。

——————End——————

想要在RT-Thread平台或社区投放内容?或想参与相关直播活动及赛事?RT-Thread已开放对接窗口,请通过邮件与我们取得联系,期待合作!

合作邮箱: tongfangyi@rt-thread.com 

RTThread物联网操作系统
帮助您了解RT-Thread相关的资讯。
 最新文章