This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TMS320F28388D:带 DC 的 TMS320F28388D EtherCAT 最小 PD 周期时间

Guru**** 2350610 points
Other Parts Discussed in Thread: TMS320F28388D
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1386946/tms320f28388d-tms320f28388d-ethercat-min-pd-cycle-time-with-dc

器件型号:TMS320F28388D

工具与软件:

您好!

我正在将 TMS320F28388D 用作 EtherCAT 网络中的从站器件、我打算以4kHz (250us 周期时间)运行。 我最初打算在启用 DC (分配时钟)的情况下运行系统、但发现器件似乎只支持500us 的最小 SYNC0周期时间。 这是 对 ecat_def.h 中下面块的解释:

/**
MIN_PD_CYCLE_TIME:从器件支持的最短周期时间(以 ns 为单位)(条目0x1C3x:05)。
在该值设置为0的情况下、如果0x1C3x.8为1 */、则计算出0x1C3x:5的值
#ifndef MIN_PD_CYCLE_TIME
#define MIN_PD_CYCLE_TIME             0x7A120
#endif
文件 ecat_def.h 由 Beckhoff SSC 工具生成、该变量的值似乎是 从 ESI 文件 F2838x CM EtherCAT Slave.xml 读取的。  
当我尝试在 启用 DC 的情况下以250us 周期时间运行时、 ALSTATUSCODE_DCSYNC0CYCLETIME (在 ecatslv.h 中定义)出现错误。 如果我改为 在启用直流的情况下以500us 的速率运行、或在禁用直流的情况下以250us 的速率运行、则运行正常。  
我的问题是:
我得出此器件不支持以250us DC 周期时间运行的结论、这是否正确? 是否可以绕过此引脚、或者是否有其他 C2000器件支持具有直流的250us 周期时间?
2.在没有 DC 的情况下运行时是否有最短的受支持周期时间? AL 状态代码 ALSTATUSCODE_CYCLETIMETOOSMALL 似乎没有在我生成的从设备代码中使用、因此我不确定 在没有 DC 的情况下适用的 PD 周期时间限制。
谢谢!
Blake
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Blake、

    Unknown 说:
    1. 我得出此器件不支持以250us DC 周期时间运行的结论、这对我来说是否正确? 可以绕过此引脚吗?或者其他 C2000器件是否支持具有 DC 且周期时间为250us 的情况?

    您绝对可以使用具有 DC 的250us 周期时间。 我始终 通过 MainDevice (例如使用 TwinCAT)进行配置。 由于该值将存储在 ESC 寄存器中、因此可由 C28x CPU 或主器件修改。

    [quote userid="614274" url="~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1386946/tms320f28388d-tms320f28388d-ethercat-min-pd-cycle-time-with-dc 在没有 DC 的情况下运行时、支持的周期时间是否最短? AL 状态代码 ALSTATUSCODE_CYCLETIMETOOSMALL 似乎未在我生成的从设备代码中使用、因此我不确定 在没有 DC 的情况下适用的 PD 周期时间限制。[/QUOT]

    我认为最小周期时间为1us。 老实说、如果您能够将 TwinCAT 用作您的主设备、最简单的检查方法就是使用 TwinCAT 中的设置。

    此致、

    Ben Collier

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Ben、

    感谢您的答复。 问题2已解决、我可以通过使用您建议的设置通过实验找到限制。 禁用直流后、我开始在网络拓扑和应用中看到超过40微秒的溢出错误。

    但是、对于问题1、我仍然有一些困惑。 您说我可以使用具有直流的250us 周期时间、但正如我在原始消息中所说的、我已经尝试使用 TwinCAT 将任务周期时间设置为250us、并将 SYNC0周期时间设置为250us。 当我执行此操作并在 TMS320F28388D 从站设备上运行时、我会收到 AL 状态代码  ALSTATUSCODE_DCSYNC0CYCLETIME、下属没有在超过运行前状态后继续。 宏定义 MIN_PD_CYCLE_TIME 的值似乎表明允许的最小 SYNC0周期时间为500us。

    为了绕过此错误、在 TwinCAT 中、我是否需要将 SYNC0周期时间配置为允许的值、例如500us、而任务周期时间为250us?  否则、您建议如何配置 TwinCAT 项目以在启用 DC 的情况下实现250us 任务周期时间?

    谢谢!

    Blake

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Ben、

    感谢您的答复。 问题2已解决、我可以通过使用您建议的设置通过实验找到限制。 禁用直流后、我开始在网络拓扑和应用中看到超过40微秒的溢出错误。

    但是、对于问题1、我仍然有一些困惑。 您说我可以使用具有直流的250us 周期时间、但正如我在原始消息中所说的、我已经尝试使用 TwinCAT 将任务周期时间设置为250us、并将 SYNC0周期时间设置为250us。 当我执行此操作并在 TMS320F28388D 从站设备上运行时、我会收到 AL 状态代码  ALSTATUSCODE_DCSYNC0CYCLETIME、下属没有在超过运行前状态后继续。 宏定义 MIN_PD_CYCLE_TIME 的值似乎表明允许的最小 SYNC0周期时间为500us。

    为了绕过此错误、在 TwinCAT 中、我是否需要将 SYNC0周期时间配置为允许的值、例如500us、而任务周期时间为250us?  否则、您建议如何配置 TwinCAT 项目以在启用 DC 的情况下实现250us 任务周期时间?

    谢谢!

    Blake

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Blake、

    为了澄清、我认为任务周期时间应该为250us、但我不确定 SYNC0周期时间。  

    为了绕过此错误、在 TwinCAT 中、我需要将 SYNC0周期时间配置为允许值(如500us)、而任务周期时间为250us?

    我认为这是一个好主意。 请检查您的通信是否使用较高的 SYNC0周期时间、同时将任务周期时间保持在250us。

    此致、

    Ben Collier