CANFD总线异构通信的简单示例

该例程主要说明了CANFD总线异构通信的简单示例。

将CANFD分配给M4内核,然后再由另一个开发板发送它,M4接收CANFD数据,并通过异构通信将其发送到A7,以在终端上显示它。

1.硬件资源USB-TTLDebug两行,两个开发板开发板配件2.软件资源Linux5.4.31STM32CubeIDE1.3.0STM32CubeMX5.6.03。

该环境已准备好与CubeIDE,CubeMX和其他开发软件一起预安装。

4.操作步骤4.1。

A7核心操作由于A7和m4可以同时使用CAN,因此现在将其分配给m4,因此在A7端,通过设备树将CAN分配给m4。

操作步骤如下:1)配置设备树并进入内核源目录stm32mp15xc-kernel5.4 / arch / arm / boot / dts,vim打开stm32mp15xx-ya157c.dtsi设备树文件,将can1分配给m4,在A7侧屏蔽can1。

然后配置资源管理器以分配SRAM进行异构通信。

2)编译并更新设备树完成配置后,编译并将相应的设备树复制到bootfs分区。

默认情况下,另一位官员已配置RPMSG_TTY驱动程序。

4.2。

M4核心操作创建一个STM32项目。

在STM32CubeMX中,将CANFD配置为发送消息,并配置IPCC和OPENAMP进行通信。

图4-1。

配置IPCC图4-2。

配置openamp图4-3。

CANFD配置注意配置IPCC时,需要在NVICSettings选项卡中检查IPCCRX1occupiedinterrupt和IPCCTX1freeinterrupt的启用,然后检查下一个OPENAMP Activated它始终为灰色,无法激活。

在这里,我们计划创建两个RPMsgtty通道,一个用于发送canfd数据包,另一个用于计算canfd数据包的数量。

初始化两个RPMsgtty虚拟串行端口。

注册一个回调函数以接收每个通道的消息。

设置canfd接收过滤器并发送数据buf,并注册回调函数和canfd接收中断。

主要功能轮询RPMsg消息OPENAMP_check_for_message()以查询邮箱状态。

主要功能根据运行时间发出消息,同时不断询问接收消息。

当M4内核接收到canfd消息时,它将存储在buf中,并且主函数检测到存在buf数据,它将调用虚拟串行端口并将其发送到A7端。

4.3。

测试步骤J12的CANH和CANL引脚连接到相同类型的板CANH和CANL,将编译的M4固件复制到A7,然后启动固件。

MYD-YA157- V2开发板CANBUS总线通讯示例文章来源:[微信公众号:STM32微控制器]欢迎大家关注!请指出转载文章的来源。

产品知识/行业、品牌资讯