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.

[参考译文] TMS570LC4357:TMS570LC4357 STC 自检查询

Guru**** 2457760 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/937186/tms570lc4357-tms570lc4357-stc-self-test-query

器件型号:TMS570LC4357

大家好、团队、

在测试完成后、清零 STC 寄存器的状态时遇到问题。 下面是我要执行的步骤:

1.执行 STC 自检并使控制器保持空闲模式。

2、控制器复位、可以通过读取 SYSESR 寄存器来验证它是否是 CPU 复位所致。

3.验证复位是否是由于 STC 自检引起后,以下步骤不起作用。 这导致无法执行 CPU 自检。

即使我向 STCSCSCR 寄存器写入0x5、也看不到 STCSCSCR 寄存器中的0x5。

即使我向 STCGSTAT 寄存器写入0x3、也看不到相应的位被清零。

您能帮助我了解导致此问题的原因吗?

谢谢、

Kalyan

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

    您好!

    应通过向 STCFSTAT 和 STCGSTAT 寄存器中的标志位写入1来清除这些标志。 写入0x5到 STCSCSCR 中的 self_check_key 是为了禁用自检、这个位字段只能在特权模式下被写入。  

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

    您好、Wang、

    感谢您的快速响应。  

    我的代码中有写入0x5的指令是 STCSCSCR 中的 self_check_key 和写入 STCGSTAT 寄存  器的0x3、但我可以看到 STCSCSCR 和 STCGSTAT 寄存器的状态位没有被清除。

    由于 STCSCSCR 和 STCGSTAT 寄存器只能在特权模式下写入、因此我在将 ARM 模式更改为监控模式(CPS #19)后尝试清除这些标志。 但未成功。

    获取您对此的输入。

    谢谢、

    Kalyan

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

    您好 Kalyan、

    我尝试了几次、将0x5写入 STCSCSCSCSCSCSCSCSCSCR[4:0](0x1A->0x05)和清除 STCGSTAT[1:0](0x3 -> 0x0)没有问题。

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

    您好、Wang、

    感谢您的回答。 当我将 STCCLKDIV 寄存器的 CLKDIV0字段从1更改为0时、问题就得到了解决。

    根据我的理解、时钟速度应该只影响电流耗散、而不应该导致测试。 您能帮助我了解原因吗?

    谢谢、

    Kalyan

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

    您好 Kalyan、

    CPU 自检的最大时钟速率为110MHz。 STCCLK 由 GCLK 时钟分频。  该分频器由 STCCLKDIV 寄存器配置。 STCCLKDIV 中的分频器只有当 STCLKDIV 寄存器(SYS2模块)的 CLKDIV 域中的值为零时才生效。

    我的理解是时钟分频器不应影响寄存器的写入。