查看: 138|回复: 0

[原创] 【FRDM-MCXA346】3.CANFD通讯测试

[复制链接]
  • TA的每日心情
    开心
    2019-3-5 08:47
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    115

    主题

    3449

    帖子

    2

    金牌会员

    Rank: 6Rank: 6

    积分
    9183
    最后登录
    2025-10-3
    发表于 7 天前 | 显示全部楼层 |阅读模式
          假期休息两天,继续解决MCXA346的外设通信。阅读Datasheet,该款芯片带有一个1个FlexCAN with FD。这些通讯接口都是常用,搞通了后面要用。
    准备工作就是需要连接一个测试卡。从原理图上看,板卡已经将设备的CAN口引出,如图1所示:
    4-4.png
    图1

    使用杜邦线连接好板卡和CAN测试卡,如图2所示:
    4-5.jpg
    图2

    官方提供了Classcal CAN 测试程序,稍稍改动就能编程适合自己测试目的的CANFD程序。
    打开FD CAN的宏定义,如下所示:
    1. #define USE_CANFD             (1)
    复制代码

    发送部分需要修正的部分就是需要把bitRateFD修改为2Mbps,每隔1S发送一次即可,修改如下:
    1.     /* Setup Tx Message Buffer. */
    2. #if (defined(USE_CANFD) && USE_CANFD)
    3.     FLEXCAN_SetFDTxMbConfig(EXAMPLE_CAN, TX_MESSAGE_BUFFER_NUM, true);
    4. #else
    5.     FLEXCAN_SetTxMbConfig(EXAMPLE_CAN, TX_MESSAGE_BUFFER_NUM, true);
    6. #endif

    7.     /* Configure CAN transceiver */
    8.     FLEXCAN_PHY_Config();

    9.     for(uint32_t i =0;i<16;i++)
    10.         {
    11.                 frame.dataWord[i] =i;
    12.         }

    13.     UTICK_Init(EXAMPLE_UTICK);
    复制代码

    接收部分都放到接收中断里进行数据接收,修改如下:
    1. rxComplete = true;
    2.                 FDCAN_RxConfig();
    3.                 for(uint8_t i=0;i<16;i++)
    4.                  {
    5.                   rxdata[i] = frame.dataWord[i];
    6.                  }
    复制代码

    OK,修改完,编译,Debug, 发送测试结果如图3所示:
    4-1.png
    图3

    数据接收如图4和图5所示:
    4-3.png
    图4
    4-2.png
    图5


    发送和接收的64 字节数据都一样,验证了发送和中断接收均正常。这部分后面做数据通讯会用到。


    加油哦
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-10-10 05:17 , Processed in 0.085958 second(s), 20 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表