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.

[参考译文] TMS320F28379S:上电后、ET1100没有 INIT 2 PREOP 命令

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/908150/tms320f28379s-no-init-2-preop-command-from-et1100-after-power-on

器件型号:TMS320F28379S
Thread 中讨论的其他器件:TMDSECATCNCD379DcontrolSUITE

你(们)好。

我们遇到了有线问题。

我们将测试我们的新电路板、在它上电并主器件开始初始化 EtherCAT 通信后。MCU 需要等待至少20秒、然后才能从 ET1100接收 init 2 PREOP 命令(AL 控制事件 ET1100偏移量0x220)。

等待时间似乎是随机的、有时甚至是~2分钟。

它感觉像 ET1100继续自我复位。 (由于 MCU 甚至无法接收到 PREOP 命令的初始化,或者在其他字中 EMIF 不回读任何内容)

我们设法找到了临时解决方案-上电后、MCU 在再次复位 ET1100之前保持空闲~2s。

此问题仅在 MCU 从闪存引导时发生、使用 RAM 时不会出现此类问题。

在 TI TMDSECATCNCD379D 上同样的问题无法重现。 因此、这可能是一个硬件问题。

但我们无法找出原因。

我们尝试使用示波器测量引脚到 ET1100 RESET (RESn)的信号、该信号看起来正常。 (仅当 MCU 在初始化期间尝试将其复位时设置为低电平、之后它始终保持高电平)

我们想知道什么可能导致 ET1100以这种方式运行? 或者您是否经历过任何类似的色情内容?

此致、
李浩民

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

    您好!
    此查询已分配给专家。 由于美国假期是在2005年5月25日、请在美国时间2005年6月26日之前回复。

    谢谢
    Vasudha

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

    更新问题:

    1.其他板上的等待时间更长、似乎等待时间会因板而异。

    不等待、MCU 的 EEPROM 加载检查将通过(通过检查 ET1100 EEPROM_LOADED)、但从 ET1100 ESC_PDI_CONTRAL_OFFSET (0x0140)的后续读取将返回全部0

    3.每次在全新的电路板上刷写 ET1100 EEPROM 时、都会失败。 SSC 工具的 EEPROM 编程器将返回成功并已写入~8500数据包。 但在尝试建立通信时失败。 只有在断电并再次打开后、刷写过程才会成功(通过查看编程器返回、它已写入7445数据包)

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

    你好

    我建议您在 ETG 论坛上发帖。 他们是 ET1100的最佳专家、可为您提供帮助。

    如果您尝试执行与 TMDSECATCNCD379D 类似的操作、则如果您尚未执行类似操作、则可以在 controlSUITE 中参考设计文件。

    此致

    Chris

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

    谢谢克里斯托弗,我会把这个问题带到 ETG 论坛。 我们曾在 TMDSECATCNCD379D 上尝试过这种方法、但没有发生过提及的任何波形。

    同时,我们还有一个问题会让我们对它有更好的看法。  昨天进行了更多测试、我们怀疑这可能与 ET1100无关。 是否有任何从闪存引导的方法会影响 EMIF r/w?

    ET1100上有一个专用引脚、用于通知 MCU 它已准备好进行通信(EEPROM_LOADED)。 该引脚的读数应该是高电平、实际上是高电平(至少从 MCU 读取)。

    在这个引脚测试完成后、我们对 MCU 进行编程、以便从 ET1100 (型号和 RAM 大小)中读出一些硬接线常量、并检查它们是否与预期值相匹配。 但所有读出结果都错误、与 ET1100数据表中列出的结果不匹配。 此外、这仅在从闪存进行冷启动时发生!  (即使不是从 TI CCS、只需加电)。 当通过 TI CCS 从 RAM 引导时重复相同的测试时、读数完全正常! 我们甚至没有添加断点、对值匹配测试进行编程、以便在传递后打开 LED。  

    如果 ET1100 的 EEPROM_LOADED 引脚正确、我们只能怀疑从闪存引导会以某种方式影响 MCU 的 EMIF。 但怎么可能呢?

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

    你好

    从闪存引导不会影响 EMIF 行为。   TMDSECATCNCD379D 解决方案可从 RAM 和闪存正常工作。 我建议根据该示例代码检查您的 EMIF 代码流。

    在 RAM 案例之前是否运行了某个东西? 您能否详细说明每个 RAM/闪存的测试流程? 如何在 MCU 上检查 ET1100数据?

    此致

    Chris

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

    您好、Christopher、

    感谢您提供建议、我们稍后将对照示例代码进行检查。

    不确定您的意思、它正在运行最后刷写的程序。 来自 RAM 和闪存的程序是相同的。

    RAM 和闪存的测试是相同的。 我们的板有2个 LED。 首先、如果 ET1100 的 EEPROM_LOADED 引脚为高电平、MCU 将会将 LED 设置为开启。 然后 MCU 通过 EMIF 读取一些 ET1100寄存器。 这些寄存器的值在 ET1100上是硬接线的(如型号、RAM 大小)、并且它们的值在 ET1100数据表中预先知道。 如果 EMIF 工作正常、则返回值应与数据表的值匹配。 如果其他 LED 匹配、则对 MCU 进行编程、以将其设置为打开。  

    当从 RAM 运行或从闪存运行时、但通过 TI CCS、两个 LED 始终亮起。 但是、当从闪存进行冷启动时、仅 EEPROM_LOADED LED 亮起、值检查 LED 总是会失败。  

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

    你好

    好的、我看到了。 不确定执行冷启动时会发生什么变化。

    确保没有任何未初始化的变量。

    此外、在冷启动情况下、可能需要添加无限循环、然后连接到器件(使用不带 GEL 的修改目标配置来避免器件复位、从高级设置中删除)。 观察 EMIF 配置寄存器并将其与工作用例进行比较。

    此致

    Chris

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

    感谢 Chris、我们稍后将对此进行探讨。 我们从未尝试过通过中间位置的 TI CCS 连接到 MCU、我们必须对此进行研究。 目前正在其他领域工作。 如果出现任何更新、我将发布更新。

    代码比较没有太多的结果。 我删除了 etherCAT_slave_C28x_hal.c 中的 Emif1ConfigRegs.EMIF1MSEL 一行 但这对于从双核更改为单核是必要的。

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

    另外、您是否可以提供有关如何连接到冷启动器件的更多详细信息? 谢谢。

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

    你好

    当然。 因此、当连接到器件(最初是独立运行的)时、您需要首先编辑目标配置文件。 在 CCS 中、打开目标配置文件、转至高级选项卡、单击 CPU1、每个文件都清除 GEL 文件的路径。 这是在您连接时、您不会重置器件、它将仅在当前的位置停止。

    此致

    Chris

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

    尊敬的 Chris:

    我们将其计算出来。 结果是 ET1100上的焊料不好。 使用热风枪加热时问题消失了。 所有原型板都会遇到相同的问题。 感谢你的帮助。

    此致、

    李浩民

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

    这次我们真的解决了这个问题! 这不是焊料问题。 结果是 GPIO 配置。 问题。

    我们将 GPIO94连接到 ET11的 EMIF 地址15引脚、 并且在使用 setup_emif1_pinmux_async_16bit_option2 ()时未配置 GPIO94。 因此、当启动 GPIO94时、可能会提供逻辑高电压、从而使 EMIF 的地址混乱、ET1100的阻抗错误、并返回错误的读数! 当 GPIO94配置为 GPIO 并提供逻辑低电压时、问题得到解决。  

    不过、有一个问题、当 GPIO 设置为未定义的多路复用器位置时会发生什么情况? 由于我们匆忙行事、我们将 GPIO 94设置为多路复用器位置2、以便对其进行测试并使其正常工作。 但在数据表中、GPIO 94 MUX 位置2未定义。  

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

    Thomas

    很高兴听到您已解决问题!

    如果您选择未映射到外设或 GPIO 模式的保留 GPIO 多路复用器配置、则引脚状态将未定义、引脚可能被驱动。

    此致

    Chris