ZHCAA38E August   2021  – January 2023 TMS320F280021 , TMS320F280021-Q1 , TMS320F280023 , TMS320F280023-Q1 , TMS320F280023C , TMS320F280025 , TMS320F280025-Q1 , TMS320F280025C , TMS320F280025C-Q1 , TMS320F280033 , TMS320F280034 , TMS320F280034-Q1 , TMS320F280036-Q1 , TMS320F280036C-Q1 , TMS320F280037 , TMS320F280037-Q1 , TMS320F280037C , TMS320F280037C-Q1 , TMS320F280038-Q1 , TMS320F280038C-Q1 , TMS320F280039 , TMS320F280039-Q1 , TMS320F280039C , TMS320F280039C-Q1 , TMS320F280040-Q1 , TMS320F280040C-Q1 , TMS320F280041 , TMS320F280041-Q1 , TMS320F280041C , TMS320F280041C-Q1 , TMS320F280045 , TMS320F280048-Q1 , TMS320F280048C-Q1 , TMS320F280049 , TMS320F280049-Q1 , TMS320F280049C , TMS320F280049C-Q1 , TMS320F28384D , TMS320F28384S , TMS320F28386D , TMS320F28386S , TMS320F28388D , TMS320F28388S , TMS320F28P650DH , TMS320F28P650DK , TMS320F28P650SH , TMS320F28P650SK , TMS320F28P659DK-Q1

 

  1.   将快速串行接口 (FSI) 应用于应用中的多个器件
  2.   商标
  3. 1FSI 模块简介
  4. 2FSI 应用
  5. 3握手机制
    1. 3.1 菊花链握手机制
    2. 3.2 星型握手机制
  6. 4发送和接收 FSI 数据帧
    1. 4.1 FSI 数据帧配置 API
    2. 4.2 开始传输数据帧
  7. 5菊花链拓扑测试
    1. 5.1 两器件 FSI 通信
      1. 5.1.1 CPU 控制
      2. 5.1.2 DMA 控件
      3. 5.1.3 硬件控制
    2. 5.2 三器件 FSI 通信
      1. 5.2.1 CPU/DMA 控制
      2. 5.2.2 硬件控制
        1. 5.2.2.1 三器件菊花链系统的偏斜补偿
          1. 5.2.2.1.1 CPU/DMA 控制
          2. 5.2.2.1.2 硬件控制
  8. 6星型拓扑测试
  9. 7通过 FSI 进行事件同步
    1. 7.1 引言
      1. 7.1.1 分布式系统的事件同步需求
      2. 7.1.2 采用 FSI 事件同步机制的解决方案
      3. 7.1.3 FSI 事件同步机制功能概述
    2. 7.2 C2000Ware FSI EPWM 同步示例
      1. 7.2.1 C2000Ware 示例工程的位置
      2. 7.2.2 软件配置综述
        1. 7.2.2.1 主控器件配置
        2. 7.2.2.2 节点器件配置
      3. 7.2.3 1 主控和 2 节点 F28002x 器件菊花链测试
        1. 7.2.3.1 硬件设置和配置
        2. 7.2.3.2 试验结果
      4. 7.2.4 1 主控和 8 节点 F28002x 器件菊花链测试
        1. 7.2.4.1 硬件设置和配置
        2. 7.2.4.2 试验结果
      5. 7.2.5 C2000 理论上的不确定性
    3. 7.3 FSI 事件同步的其他提示和用法
      1. 7.3.1 运行示例
      2. 7.3.2 目标配置文件
      3. 7.3.3 星型配置事件同步的用法
  10. 8参考文献
  11. 9修订历史记录

DMA 控件

  • 测试条件

    器件 1 发送数据 -> 器件 2 接收数据 -> 器件 2 DMA 将 RX 数据移至 TX 缓冲区和寄存器 -> 在对用于将接收到的数据转发回至器件 1 的 TX_FRAME_TAG_UDATA FSI 寄存器进行写入之后器件 2 触发 TX -> 器件 1 接收返回的数据 -> 器件 1 DMA 将 RX 数据移到内存中 -> CPU 验证内存中的数据是否与最初发送的 TX 数据相匹配。

  • 测试案例

    8 个字的数据长度(每个脉冲 8 个字,每次传输 1 个脉冲),2 条数据线,TXCLK = 50MHz,启用设置 ②(表 5-1)。

在该测试中,启用 CH2 和 CH4 的 DMA 中断以在主控器件中的传输结束时触发,这意味着每次将数据从内存复制到 FSITX 缓冲区 (CH2) 或将数据从 FSRX 缓冲区传输至内存中的某个位置 (CH4) 时都会发生中断。在节点器件中,DMA 通道配置为在接收到 FSI 数据帧时将接收到的数据从 RX 缓冲区和寄存器传输到 TX 缓冲区和寄存器,最终将数据转发回主控器件。因此,节点器件仅启用一个 DMA 中断,而主控器件启用了两个 DMA 中断。#ID-11A349B9-6068-4F37-9226-EC9BF73AFDE1显示了在 DMA ISR 中进行 GPIO 翻转时,使用 DMA 控件的 FSI 通信所呈现的测试结果。

GUID-4D79CA71-E290-41C5-98C4-FA2AE9ED3699-low.png图 5-4 使用 DMA 控件的 FSI 通信

应注意的是,所示的时间为 1.86µs,其中包含主控器件传输数据帧、节点器件将 RX 数据移至 TX 缓冲区/寄存器、ISR 进入以及翻转 GPIO 的时间。根据 DMA 管道时序要求(更多相关信息,请参阅GUID-5A9652A2-7BAF-4E81-8C61-BC04CD16B478.html#GUID-5A9652A2-7BAF-4E81-8C61-BC04CD16B478中引用的特定于器件的 TRM),可以如#ID-72EF6EEA-0FDE-4973-A889-2A65CBD5D62B中所示计算使用 2 个通道移动 9 个字的数据(8 个字的数据 + 1 个字的用户数据和帧标签)所需的时间。

Equation2. ( 9 × 3   c y c l e s / W o r d + 2   c y c l e s ) ÷ ( 100 M H z ) = 0 . 29 μ s

因此,考虑到其他延迟时间,实际传输时间几乎与前面使用 CPU 控件的测试结果 (1.4µs) 一致。还应强调的是,在这种情况下利用 DMA 可以极大地节省传输接收到的数据所需的时间,尤其是在涉及大量数据传输的应用中。