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.

[参考译文] TMS570LS3137:TMS570LS3137

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/690164/tms570ls3137-tms570ls3137

器件型号:TMS570LS3137
主题中讨论的其他器件: UNIFLASH

我有一个具有 TM570LS3137的电路板。 当我尝试在 TMS570中转储代码时、擦除和加载部件成功完成、但 CCS 不会在代码中给出的断点处停止。 我需要在 CCS 中手动暂停以检查代码的状态。 暂停时、代码处于中止状态。

我确信我的代码能够正常工作、因为同一代码可以在另一个相同的电路板上工作。 因此、我怀疑硬件有问题。  当我给电路板通电时、与处理器相关的 nERROR LED 亮起。 但是、我无法调试问题的位置。 与处理器相关的时钟和复位正确(我已经探测并确认)。  

我的 TMS570是否已死、或者问题出在哪里?  

请提供帮助。

TIA。

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

    不、TMS570LS3137芯片可以。 该器件具有许多安全特性。 当器件启动时、它会执行许多与安全相关的诊断。 如果检测到严重错误、则可能跳转至异常中止。

    您能为我检查几个 ESM 寄存器吗? 暂停后、打开寄存器窗口、将 ESM 状态寄存器的值复制到我。

    如果错误 LED 亮起、则应清除勘误表。 请通过向被置位的位写入"1"来清除所有 ESM 错误。 将0x0A 写入勘误表寄存器以复位 ERROR 引脚。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    下面是从 CCS 获取的 ESM 寄存器的日志。 我尝试通过我的代码将"1"和0x0A 写入上述寄存器。 但我的代码将进入异常中断状态。 因此、我的寄存器写入部分不会首先执行。 错误指示灯仍然亮起。 由于代码正在中止、是否有其他方法可以写入寄存器?

    521177 13.
    R ESM_IflErrPinSet1 0x0000000B 0x00000000
    R ESM_IflErrPinClr1 0x0000000B 0x00000000
    R ESM_IntEnaSet1 0x0000000B 0x00000000
    R ESM_IntEnaClr1 0x0000000B 0x00000000
    R ESM_IntLvlSet1 0x0000000B 0x00000000
    R ESM_IntLvlClr1 0x0000000B 0x00000000
    R ESM_STAT1 0x0000000B 0x00000040
    R ESM_STAT2 0x0000000B 0x00000000
    R ESM_STAT3 0x0000000B 0x00000080
    R ESM_ErrPinStat 0x0000000B 0x00000000
    R ESM_IntOffstHgh 0x0000000B 0x00000000
    R ESM_IntOffstLow 0x0000000B 0x00000000
    R ESM_LTcnt 0x0000000B 0x00000000
    R ESM_LtCntPre 0x0000000B 0x00003FFF
    R ESM_ErrKey 0x0000000B 0x00000000
    R ESM_ShdwStat2 0x0000000B 0x00000000
    R ESM_IflErrPinSet4 0x0000000B 0x00000000
    R ESM_IflErrPinClr4 0x0000000B 0x00000000
    R ESM_IntEnaSet4 0x0000000B 0x00000000
    R ESM_IntEnaClr4 0x0000000B 0x00000000
    R ESM_IntLvlSet4 0x0000000B 0x00000000
    R ESM_IntLvlClr4 0x0000000B 0x00000000
    R ESM_STAT4 0x0000000B 0x00000000

    TIA (提前感谢)。

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

    组1的 ESM 通道6:FMC -可纠正的错误:总线1和总线2接口(不包括到组 EEPROM 的访问)
    2.组3的 ESM 通道7:FMC -不可纠正的错误:总线1和总线2接口(不包括地址奇偶校验错误和 EEPROM 组访问错误)。 此错误导致 nERROR LED 亮起(ErrPinStat 被清除)

    您可以手动写入
    1. 0x00000040至 ESM_STATUS1
    2. 0x00000080至 ESM_STATUS3
    将0x05添加到勘误表寄存器、
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    Val (0xFFFFFF518、0)= 0x00000040;//stat1
    Val (0xFFFFFF520、0)= 0x00000080;//stat3
    Val (0xFFFFFF534、0)= 0x00003FFF;//LT_CNTR_PRE
    Val (0xFFFFFF538、0)= 0x05;//Err Key

    #define val (addr、reg)(*(uv32*)(addr|reg))

    我已添加上述代码、位于代码的开头。 这是写入 ESM 寄存器的方式吗?

    如果没有,如何"手动"写入寄存器?

    此外、

    我使用 UniFlash 擦除处理器闪存、错误 LED 熄灭。 之后、当我转储一个除 while (1)外没有任何其他内容的简单代码时、它会正常运行。 当我暂停 CCS 时、代码不会中止、它会在 while (1)处暂停。

    在 PCB 中、我的 TMS570通过 TMS 的 EMIF 总线连接到 Artix 7 FPGA。 当我转储主代码时、处理器卡在 EMIF 相关组件的初始化中。 如何调试 EMIF 相关问题是在 TMS 侧还是在 FPGA 侧?

    此致、
    J V

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

    JV、您好、

    您可以使用这些代码清除状态寄存器1和3:

       esmREG->SR1[0]= 0x00000040U;

       esmREG->SR1[2]= 0x00000080U;

       esmREG->EKR = 0x00000005;

    您可以在寄存器窗口中手动清除状态寄存器:

    我们需要知道导致问题的 EMIF 初始化中的代码。

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

    我能够通过 CCS 清除寄存器。 因此错误 LED 不再亮起。 此外、事实证明 FPGA 的时钟接收引脚是干焊料。 因此、当处理器尝试初始化通过 EMIF 总线连接到 FPGA 的组件时、它不接收响应。 因此、代码正在中止。

    现在、我已经从另一个引脚获取了 FPGA 中的时钟、我的系统工作正常。

    此致、
    J V