CANFD总线异构通讯简单实例

本例程主要讲解 canfd 总线异构通讯简单实例。把 canfd 分配给 m4 核,然后另外一块开发板发送,m4 接收 canfd 数据并通过异构通讯方式发送给 a7 在终端回显。
1.硬件资源
usb-ttl debug 线两根
两块开发板 
开发板配件
2.软件资源 
linux 5.4.31 
stm32cubeide 1.3.0
stm32cubemx5.6.0
3.环境准备 
预先安装好 cubeide,cubemx 等开发软件。
4.操作步骤
4.1.a7 核操作 
由于 can 可以被 a7 和 m4 同时使用,现在是要分配给 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 时,需要在 nvic settings 选项卡里,将 ipcc rx1 occupiedinterrupt 和 ipcc tx1 free interrupt 的使能勾选上,不然后面的 openamp 的 activated始终为灰色,无法激活。这里计划创建两个 rpmsg tty 通道,一个用来传输 canfd 报文,一个用来统计 canfd报文的数量。
初始化两个 rpmsg tty 虚拟串口 。
注册回调函数以按通道接收消息 。
设置 canfd 接收滤波器和发送数据 buf,并注册回调函数和 canfd 接收中断。
主函数轮询 rpmsg 消息 openamp_check_for_message() 查询 mailbox 状态 ,主函数并根据运行时间向外发送报文同时不停的查询接收报文。
当 m4 核接收到 canfd 报文的时候,存入 buf,主函数检测到有 buf 数据,就会调用虚拟串口发送给 a7 端。
4.3.测试步骤 
j12 的 canh、canl 引脚和同类型的板子 canh、canl 相连,把编译生成的 m4 固件拷贝到 a7,并启动固件.....
原文标题:应用开发笔记|myd-ya157-v2开发板can bus 总线通信实例
文章出处:【微信公众号:stm32单片机】欢迎添加关注!文章转载请注明出处。


UEFI中的中断处理流程
三星折叠屏手机正式发布_携手三星S10系列惊艳亮相
电机控制器的主要功能及组成
医用防护服阻燃测试仪技术特点
Verizon打算今年秋季在洛杉矶推出5G网络
CANFD总线异构通讯简单实例
iphone13和13pro哪个好 哪款更值得入手
端到端的自动驾驶研发系统介绍
智能工业需求急升 “工业云”平台国家试点获批
先进的电池包为下一代系统赋能
土壤养分快速检测仪农业生产中发挥着怎样的作用
AGV机器人具备有哪些优势
海底大地电磁探测数据畸变校正方法的研究
7月18日 助力制造企业“鹏城起飞”,2022华南国际工业博览会将于九月深圳举办
实现云计算和边缘计算协同作用所需的关键技术是边缘缓存
NE555光控开关的工作原理
华为Mate10曝光,这配置和颜值我只问价格是多少?
空调制冷不制热是怎么回事
Teledyne e2v射频功率团队将在北京参加China MED展览
通过CD57001光耦合器可实现电气隔离