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 , TMS320F28P659DH-Q1 , TMS320F28P659DK-Q1 , TMS320F28P659SH-Q1
为了展示事件同步机制,我们在所提供的示例中介绍了菊花链网络中 EPWM 同步的具体情况。任务是确保各节点器件的所有 EPWM 信号与主控器件的 EPWM 信号保持同步。一般来说,可以根据应用,使用 FSI 事件同步配置对任何事件进行同步。所有控制应用都使用 EPWM 时基,因此仅需保持所有节点器件的 EPWM 同步即可。通常,与 ADC、比较器或节点器件中的任何事件功能相关的活动会基于 EPWM 事件或触发器。
假设有 1 个主控器件和 2 个节点器件,如#GUID-9DD0D54C-AC09-4B34-9190-ABFAAD70C29D 所示,便可理解如何通过 FSI 进行 PWM 同步。在菊花链网络中,首先使用GUID-49AC5642-233D-4482-BA3A-570302EBA7EA.html#GUID-49AC5642-233D-4482-BA3A-570302EBA7EA中所述的握手机制建立 FSI 通信链路。
主控器件以固定的时间间隔向各节点器件发送 Ping 数据包(就长度而言是最短的 FSI 数据包),以验证通信链路,并通知节点器件与主控器件同步。主控器件 FSITX 触发器由用户配置的本地 EPWM 比较事件进行控制。在配置的 EPWM 的上升沿或下降沿,触发 FSITX 以向节点器件发送 Ping 数据包。EPWM 信号的计数器比较值取决于链中的器件数量、器件之间的距离等,该值由用户根据具体应用进行配置。
在某个节点接收到主控器件发送的 Ping 数据包后,该节点处生成的 FSI Ping 帧接收信号 (RX_PING_FRAME) 便会在内部连接至同一节点的可配置逻辑块 (CLB) 模块,如#GUID-9DD0D54C-AC09-4B34-9190-ABFAAD70C29D 所示。CLB 路由 RX_PING_FRAME 信号以立即触发 FSI TX Ping 转发到链中的下一器件。在 CLB 内部实现的可配置延迟计数器充当计时器,将周期作为“match”值馈送到 CLB,并在达到“match”值时重新开始计数。当 CLB 收到 RX_PING_FRAME 信号时,计数器开始计数,在达到“match”值时,它会为该节点的 EPWM 模块生成 EPWM 同步输入信号。换句话说,“match”值有助于计算出从节点收到 Ping 数据包信号开始到本地节点器件生成 PWM 同步输入信号为止的延迟。理想情况下,每个节点的 EPWM 同步输入信号将同时生成,并与主控器件 EPWM 计数器等于零事件对齐。#GUID-4591B5A4-89F8-491B-9FC5-F89331884646 展示了节点器件内部流程的功能表示。
PWM 信号不会随着时间的推移而保持同步,因为每个器件的振荡器时钟不可能都是相同的。链中的节点器件会经历其各自 EPWM 信号中存在的抖动形式的不确定性,如#GUID-70B281BE-6736-4A85-A79B-122FC76BD2EB 所示。对于菊花链配置,链中的最后一个器件将经历最大的抖动量,因为每个器件的数据包转发和同步器偏差都会产生附加抖动,GUID-39092BC0-4613-469B-9749-122C27D77B6D.html中对此进行了讨论。这种利用 Ping 数据包生成 EPWM 同步输入信号的方式将使链中所有器件的 EPWM 保持同步。
生成 EPWM 信号所需的延迟因菊花链网络中的节点而异。例如,对于节点 1,将在短时间内收到 Ping 数据包,而对于第 8 个节点,由于转发和传播延迟,Ping 数据包信号到达该节点所需的时间会更长。因此,节点 1 的 CLB 计数器计数(“match”值)必须更高,这样才能确保 EPWM 同步输入信号生成的延迟大于节点 8 的计数,从而根据传输延迟进行调整。要馈送到计数器的“match”值必须由用户设置并在 CLB 配置块中配置,这取决于所使用的隔离栅、节点之间的距离和运行中的器件。工程源文件的简介一节中提供了“match”计数开始时的近似值。