ZHCAF96 April   2025 MSPM0G3506 , MSPM0G3507 , MSPM0G3518 , MSPM0G3519

 

  1.   1
  2.   摘要
  3.   商标
  4. 1简介
    1. 1.1 MCAN 特性
  5. 2MCAN 模块的 Sysconfig 配置
    1. 2.1 MCAN 时钟频率
    2. 2.2 MCAN 基本配置
      1. 2.2.1 发送器延迟补偿 (TDC)
      2. 2.2.2 位时序参数
      3. 2.2.3 消息 RAM 配置
        1. 2.2.3.1 标准和扩展 ID 滤波器配置
          1. 2.2.3.1.1 如何添加更多滤波器
        2. 2.2.3.2 TX MSG RAM
        3. 2.2.3.3 RX MSG RAM
    3. 2.3 高级配置
    4. 2.4 保留配置
    5. 2.5 中断
    6. 2.6 引脚配置和 PinMux
  6. 3演示项目说明
    1. 3.1 TX 缓冲模式
    2. 3.2 TX FIFO 模式
    3. 3.3 RX 缓冲模式
    4. 3.4 RX FIFO 模式
  7. 4解决/避免 CAN 通信问题的调试和设计提示
    1. 4.1 所需的最少节点数
    2. 4.2 为何需要收发器
    3. 4.3 总线关闭状态
    4. 4.4 在低功耗模式下使用 MCAN
    5. 4.5 调试检查清单
      1. 4.5.1 编程问题
      2. 4.5.2 物理层问题
      3. 4.5.3 硬件调试提示
  8. 5总结
  9. 6参考资料
如何添加更多滤波器

SysConfig 当前不支持多个滤波器的配置。可以在用户应用程序中添加更多滤波器,但请确保在初始化期间分配足够的 RAM。在应用程序代码中配置滤波器之前,请记住在 SysConfig 中配置滤波器数量。

下例所示的是如何在应用程序代码中添加更多滤波器。在 SysConfig 中,起始地址配置为 0x0,滤波器数量配置为 2。

static const DL_MCAN_StdMsgIDFilterElement gMCAN0StdFiltelem_0 = {
    .sfec = 0x1,
    .sft  = 0x0,
    .sfid1 = 3,
    .sfid2 = 4,
};

static const DL_MCAN_StdMsgIDFilterElement gMCAN0StdFiltelem_1 = {
    .sfec = 0x10,
    .sft  = 0x0,
    .sfid1 = 13,
    .sfid2 = 14,
};
/* Configure Standard ID filter element */
DL_MCAN_addStdMsgIDFilter(MCAN0_INST, 0U, (DL_MCAN_StdMsgIDFilterElement *) &gMCAN0StdFiltelem_0);
DL_MCAN_addStdMsgIDFilter(MCAN0_INST, 1U, (DL_MCAN_StdMsgIDFilterElement *) &gMCAN0StdFiltelem_1);

下例所示的是如何添加更多扩展滤波器。

static const DL_MCAN_ExtMsgIDFilterElement gMCAN0ExtFiltelem_0 = {
    .efec = 0x1,
    .eft  = 0x2,
    .efid1 = 0x3,
    .efid2 = 0x1FFFFFFF,
};
/* Configure Extended ID filter element */
DL_MCAN_addExtMsgIDFilter(MCAN0_INST, 0U, (DL_MCAN_ExtMsgIDFilterElement *) &gMCAN0ExtFiltelem_0);