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:有关寄存器 CMSOFTPRESET1的问题。

Guru**** 2587345 points
Other Parts Discussed in Thread: C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1172259/tms320f28388d-question-about-register-cmsoftpreset1

器件型号:TMS320F28388D
主题中讨论的其他器件:C2000WARE
我正在评估 EtherCAT。 
我将 CMSOFTPRESET1寄存器中的 EtherCAT 位设置为0、并设置以下寄存器。
ESCSS_ACCESS_CTRL
ESCSS_INTR_MASK
ESCSS_SYNC0_CONFIG
ESCSS_SYNC1_CONFIG
这样、在大多数情况下、器件将成功启动 EtherCAT。 
但是、我发现在极少数情况下、除非在清零 EtherCAT 位后插入等待、否则它不会启动。
在处理器文档中、我找不到有关清除 EtherCAT 后等待时间的任何说明。
所需的最短等待时间是多少? 
 
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好、藤川高谷、

    您是否参考了下面 C2000WARE 目录中的 EtherCAT 软件示例和材料? 如果没有,我建议这样做。

    C:\ti\c2000Ware_4_02_00_00\libraries\communications\EtherCAT\f2838x

    [引用 userid="431036" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1172259/tms320f28388d-question-about-register-cmsoftpreset1。]但是、我发现在极少数情况下、除非在清除 EtherCAT 位后插入等待、否则无法启动。

    您说哪种特定的 EtherCAT 位?

    最棒的

    Kevin

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

    尊敬的 Kevin San:

    我指的是"TMS320F2838x 微控制器技术参考手册"。
    此文档是否也包含在您指定的文件夹中?

    我附上描述 CMSOFTPRESET1的页面。
    我已在附件文件中将 EtherCAT 位标记为红色。

    此致、
    藤川高谷  

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

    你好、藤川高谷、

    [引用 userid="431036" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1172259/tms320f28388d-question-about-register-cmsoftpreset1/4412404 #4412404"]此文档是否也包含在您指定的文件夹中?

    不是、但有一个不同的文档'EtherCAT_Slave_Controller_User_Guide.pdf'、其中讨论了我们提供的 EtherCAT 软件示例。 我认为最好参考此文档和相应的软件示例、因为它们可以帮助您解答有关 EtherCAT 软件的问题。

    C:\ti\c2000Ware_4_01_00_00\libraries\communications\EtherCAT\f2838x\docs

    [引用 userid="431036" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1172259/tms320f28388d-question-about-register-cmsoftpreset1/4412404 #4412404)]我附加了介绍 CMSOFTPRESET1的页面。
    我已在附件文件中将 EtherCAT 位标记为红色。

    好的、当 ESC 模块退出复位状态时、我看不到该特定寄存器位的等待时间。 但是、必须遵循特定的软件初始化序列、并在 TRM 中进行了说明。

    我强烈建议您查看以下 C2000WARE 中的两个软件示例。 实现的软件初始化与 TRM 中的上述内容类似。

    • f2838x_cm_echoback_solution
      • 特别是'ESC_initHW()'函数
    • f2838x_CPU1_Allocate_ecat_TO_cm

    最棒的

    Kevin

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

    尊敬的 Kevin San:

    我询问的内容是步骤11之后的序列。
    复位释放步骤11。
    我使用该序列进行了测试。
    如果我按照图中的顺序操作、问题似乎可以避免。
    由于 Step12的时间有点长、因此可以避免这个问题。

    我对这个序列有一些问题。

    问题1. 在执行 Step12而不等待 Step11中完成复位是否有问题?
    (是否已正确初始化和检查内存?)

    问题2. 以下两次有多长时间?
    -执行 Step11后、复位完成之前的时间。
    - Step12的最短执行时间
    (如果 Step11长于 Step12、则预计 Step13之后的运行将变得不稳定。)

    此致、
    藤川高谷

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

    Fujikawa-San、您好!

    [引用 userid="431036" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1172259/tms320f28388d-question-about-register-cmsoftpreset1/4414391 #4414391]Q1。 在执行 Step12而不等待 Step11中完成复位是否有问题?
    (是否已正确初始化并检查内存?)

    我不认为将 EtherCAT 外设从复位状态中退出的第11步需要很长时间。 我也看不到我们的软件示例中在 ESC 复位序列和 ESC 存储器初始化之间添加了任何额外的延迟。 它们似乎是背靠背执行的。

    [引用 userid="431036" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1172259/tms320f28388d-question-about-register-cmsoftpreset1/4414391 #4414391]Q2。 以下两次有多长时间?
    -执行 Step11后、复位完成之前的时间。
    - Step12的最短执行时间
    (如果 Step11长于 Step12、则预计 Step13之后的操作将变得不稳定。)[/引述]

    我没有这两项的测量数据。 复位不应花费太多时间。 可以使用下面介绍的 CCS 配置文件时钟功能轻松测量存储器初始化。

    https://software-dl.ti.com/C2000/docs/optimization_guide/phase2.html

    有关断点和测量 CCS 配置文件时钟的位置、请参阅包含注释的代码块。

        // Breakpoint here and reset CCS profile clock
        
        //
        // Initialize ESCSS Memory
        //
        ESCSS_initMemory(ESC_SS_BASE);
    
        //
        // Wait for ESCSS memory initialization to complete
        //
        if(ESCSS_getMemoryInitDoneStatusBlocking(ESC_SS_BASE, memoryTimeOut) !=
           ESCSS_API_SUCCESS)
        {
            return(ESC_HW_INIT_FAIL);
        }
        
        // Breakpoint here and measure CCS profile clock

    最棒的

    Kevin