你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

应用开发笔记|MYD-YA157-V2开发板CAN BUS 总线通信实例

[复制链接]
STMCU-管管 发布时间:2021-1-15 14:36
应用开发笔记|MYD-YA157-V2开发板CAN BUS 总线通信实例

' u! v/ F+ @( h' `5 J, T" W
本例程主要讲解 CANFD 总线异构通讯简单实例。把 CANFD 分配给 M4 核,然后另外一 块开发板发送,M4 接收 CANFD 数据并通过异构通讯方式发送给 A7 在终端回显。
1.硬件资源
l  USB-TTL Debug 线两根
l  两块开发板
l  开发板配件
2.软件资源
l  Linux 5.4.31
l  STM32CubeIDE 1.3.0
l  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。
1.1.png
1.2.png
接着配置资源管理器,分配异构通讯的 SRAM。
1.3.png
2) 编译并更新设备树
配置完成之后编译并拷贝对应设备树到 bootfs 分区。
1.4.png
另官方已经默认配置了 RPMSG_TTY 驱动。
      4.2.M4 核操作
创建一个 STM32 工程,在STM32CubeMX 里,依次配置 CANFD 用于发送报文、以 及配置 IPCC 和 OPENAMP 用于通信。
1.5.png
图4-1.配置 IPCC
1.6.png
图4-2.配置 openamp
1.7.png
图4-3.CANFD 配置
注意配置 IPCC 时,需要在NVIC Settings 选项卡里,将 IPCC RX1 occupied interrupt 和 IPCC TX1 free interrupt 的使能勾选上,不然后面的OPENAMP 的 Activated 始终为灰色,无法激活。这里计划创建两个 RPMsg tty 通道,一个用来传输 canfd 报文,一个用来统计 canfd 报文的数量。
l  初始化两个 RPMsg tty 虚拟串口 。
1.8.png
l  注册回调函数以按通道接收消息。
1.9.png
l  设置 canfd 接收滤波器和发送数据 buf,并注册回调函数和 canfd 接收中 断。
1.10.png
1.11.png
1.12.png
1.13.png
主函数轮询 RPMsg 消息OPENAMP_check_for_message() 查询 MailBox 状态 ,主 函数并根据运行时间向外发送报文同时不停的查询接收报文。
1.14.png
1.15.png
1.16.png
当 M4 核接收到 canfd 报文的时候,存入 buf,主函数检测到有 buf 数据, 就会调用虚拟串口发送给 A7 端。
1.17.png
1.18.png
      4.3.测试步骤
J12 的 CANH、CANL 引脚和同类型的板子 CANH、CANL相连,把编译 生成的 M4 固件拷贝到 A7,并启动固件
获取完整MYD-YA157-V2开发板CANBUS 总线通信实例应用开发笔记
文章出处: 米尔MYiR

5 y  {" i6 K6 a/ Y
收藏 评论0 发布时间:2021-1-15 14:36

举报

0个回答

所属标签

相似分享

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版