zoukankan      html  css  js  c++  java
  • 应用开发笔记|MYD-YA157-V2开发板CAN BUS 总线通信实例

    本例程主要讲解 CANFD 总线异构通讯简单实例。把 CANFD 分配给 M4 核,然后另外一 块开发板发送,M4 接收 CANFD 数据并通过异构通讯方式发送给 A7 在终端回显。

    2.硬件资源

    • USB-TTL Debug 线两根

    • 两块开发板 

    • 开发板配件

    3.软件资源 

    • Linux 5.4.31 

    • STM32CubeIDE 1.3.0

    • STM32CubeMX5.6.0

    4.环境准备 

    预先安装好 CubeIDE,CubeMX 等开发软件。

    5.操作步骤

    5.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 驱动。

    5.2.M4 核操作

    创建一个 STM32 工程,在 STM32CubeMX 里,依次配置 CANFD 用于发送报文、以 及配置 IPCC 和 OPENAMP 用于通信。

    图 5-1.配置 IPCC

    图 5-2.配置 openamp

    图 5-3.CANFD 配置

    注意配置 IPCC 时,需要在 NVIC Settings 选项卡里,将 IPCC RX1 occupied interrupt 和 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 端。

    5.3.测试步骤 

    J12 的 CANH、CANL 引脚和同类型的板子 CANH、CANL 相连,把编译 生成的 M4 固件拷贝到 A7,并启动固件.....

    获取完整MYD-YA157-V2开发板CAN BUS 总线通信实例应用开发笔记

    下载地址:http://www.myir-tech.com/soft.asp?id=1197

  • 相关阅读:
    python模块—socket
    mac os系统的快捷键
    教你如何将UIImageView视图中的图片变成圆角
    关于ASP.NET MVC
    iOS 日期格式的转换
    将App通过XCode上传到AppStore 出现这个错误“An error occurred uploading to the iTunes Store”的解决方法
    关于MAC OS下面两个软件的功能改进——Dictionary和Fit 输入法
    分享一下上个星期的香港行程
    【博客园IT新闻】博客园IT新闻 iPhone 客户端发布
    解决Entity Framework Code First 的问题——Model compatibility cannot be checked because the database does not contain model metadata
  • 原文地址:https://www.cnblogs.com/cbd7788/p/14250041.html
Copyright © 2011-2022 走看看