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

  • 相关阅读:
    javascript简易下拉菜单效果
    精通javascript笔记(智能社)——简易tab选项卡及应用面向对象方法实现
    精通JS正则表达式(转)
    精通javascript笔记(智能社)——数字时钟
    ERROR: transport error 202: bind failed: Address already in use
    理解git对象
    InvocationHandler中invoke()方法的调用问题
    深入理解Java Proxy机制(转)
    IP、子网的详述 ——IP分类、网关地址,子网掩码、子网作用(转)
    getRequestDispatcher()与sendRedirect()的区别
  • 原文地址:https://www.cnblogs.com/cbd7788/p/14250041.html
Copyright © 2011-2022 走看看