ZHCAD88 October   2023 TMS320F280039

 

  1.   1
  2.   摘要
  3.   商标
  4. 引言
  5. DCAN 和 MCAN 之间的主要差异
  6. 模块初始化
    1. 3.1 DCAN 初始化
    2. 3.2 MCAN 初始化
    3. 3.3 初始化序列
    4. 3.4 模块初始化代码片段
  7. 位时序配置
  8. 消息 RAM 配置
  9. 中断处理
    1. 6.1 MCAN 中断源
    2. 6.2 DCAN 中断处理
    3. 6.3 MCAN 中断处理
  10. 发送数据
    1. 7.1 基本发送过程
      1. 7.1.1 使用 DCAN 发送
      2. 7.1.2 使用 MCAN 发送
    2. 7.2 MCAN 与 DCAN 发送过程差异
    3. 7.3 MCAN 发送概念
      1. 7.3.1 Tx 事件 FIFO
  11. 接收数据
    1. 8.1 接收简介
    2. 8.2 基本接收流程
      1. 8.2.1 DCAN 接收
      2. 8.2.2 MCAN 接收
    3. 8.3 过滤器元素
      1. 8.3.1 过滤器元素结构
    4. 8.4 Rx 缓冲器
      1. 8.4.1 在 Rx 缓冲器中接收
    5. 8.5 Rx FIFO
      1. 8.5.1 在 Rx FIFO 中接收
    6. 8.6 接收高优先级消息
  12. 避免网络错误
  13. 10参考资料

初始化序列

表 3-1 中列出了初始化 DCAN 和 MCAN 模块的各个步骤以及主要差异:

表 3-1 DCAN/MCAN 初始化序列
运行DCANMCAN
进入初始化模式设置 CAN_CTL.INIT设置 MCAN_CCCR.INIT 位并检查该位是否已设置
解锁受保护的寄存器设置 CAN_CTL.CCE设置 MCAN_CCCR.CCE
配置 CAN 模式和比特率切换不适用设置 CAN FD 功能的 MCAN_CCCR.FDOE

设置 MCAN_CCCR.BRSE 位以启用比特率切换 (BRS)

(对于传统 CAN 通信,这两个位都需要为 0)
配置位时序配置 CAN_BTR 寄存器配置 MCAN_NBTP 寄存器
配置数据位时序不适用配置 MCAN_DBTP 寄存器(对于传统 CAN 不需要,因为 BRS 已禁用)
消息 RAM 配置不适用请参阅消息 RAM 配置
全局过滤器配置(如果需要)(确定模块如何处理不匹配的帧)。不适用设置 MCAN_GFC 寄存器
接收和发送配置(也可以在运行时执行)设置消息对象滤波器配置
锁定受保护的寄存器清除 CAN_CTL.CCE清除 MCAN_CCCR.CCE
使模块恢复正常运行清除 CAN_CTL.INIT清除 MCAN_CCCR.INIT

除了上面显示的步骤之外,对于 MCAN,可能还需要在初始化过程中设置 MCAN 时钟分频器。此配置通常通过 AUXCLKDIVSEL 寄存器执行(请参阅特定于器件的 TRM 以确定用于时钟分频的寄存器)。对于 120MHz 和 200MHz 器件,C2000ware 示例将 MCAN 位时钟配置为 40MHz。如果应用需要更小的时间量子 (TQ),则可以采用其他位时钟配置。不过,需要相应地更改标称位时序和数据位时序的参数。图 3-1 显示了 DCAN 的初始化步骤。图 3-2图 3-3图 3-4 显示了 MCAN 的初始化步骤。