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-PLL:发现勘误表 EP 公告 SSWF021 #45 变通办法存在问题

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1632613/tms570lc4357-ep-found-an-issue-with-errata-hercules-pll-advisory-sswf021-45-workaround

器件型号: TMS570LC4357-TMS570LC4357 EP

大家好、我们一直在使用 TMS570LC4357-TMS570LC4357 EP 芯片组。
为了更大限度地减少设置 PLL 所产生的影响、我们应用了咨询意见 spna233b (SSWF021 #45)、此处提供了链接:
Hercules PLL 咨询 SSWF021#45 变通办法(修订版 B)  

我们发现勘误表中有一个错误:
在函数_errata_SSWF021_45_BOTH_PLLs 中、行:  

FailCode = DISABLE_PLL (SYS_CLKSRC_PLL1 | SYS_CLKSRC_PLL2) 

将覆盖由 for 循环设置的 failCode。  我们已尝试设置:

failCode |= DISABLE_PLL (SYS_CLKSRC_PLL1 | SYS_CLKSRC_PLL2) 

为了保留 failCode、但这会导致 failCode = 3、并且似乎强制 PORST 为 1

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

    勘误链接: www.ti.com/.../spna233b.pdf

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


    图像

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

    尊敬的 Donald:

    要保留 failCode、但这会导致 failCode = 3、并且似乎会强制 PORST 为 1

    对延迟的回复表示歉意!

    您是否确定在正常执行时获得此 failCode =3、通常在重试后不会发生此情况。

    我想得到下面的说明。

    1.您是否仅在上电复位时仍在执行“_errata_SSWF021_45_BOTH_PLL",“,因为、因为仅在电源复位时需要此权变措施。

    2.我修改了代码,因为你,但我没有遇到任何问题,如下图所示,我只得到 failCode 为 0。

    我来解释一下我遵循的程序。

    i) 首先、我按照您的建议修改了代码:

    ii) 然后我添加了此 while 循环作为断点、因为我不想在调试模式下执行它、因为在调试模式下、我们无法进入此 poweron_reset 情况。

    iii) 完成这些修改后、我直接构建代码并将其加载到闪存中。

    iv) 现在、我执行了一次上电复位(移除并重新插入电源)。

    v) 现在要连接电路板而不改变现有流、我做了一些其他步骤、如下面所示

    vi) 首先、我在启动配置中删除了 gel 文件、如下所示:

    vii) 之后、我启动了这个修改后的目标配置

    viii) 启动目标配置后、我连接到核心

    iX) 现在我加载的符号:

    x) 加载符号后、您可以看到我们的代码在我们创建的 while 循环中完全暂停:

    xi) 现在将此循环变量值更改为 0 以退出循环、现在我们可以在新添加的代码处设置断点

    xi) 现在您可以看到 failCode 值只是 0 而不是 3、

    它在终止功能之前也是一样的

    注意:
    我对 RM57x 进行了测试、因为我现在没有 LC4357、但这个程序应该相同、并且也适用于 LC4357。

    --
    此致、
    Jagadish。

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

    您好 Jagadish、

    以下是您问题的答案:
    是的、我们仅在上电复位事件后调用该函数。 即仅当设置了上电复位位时。 具体而言、我们通过条件进行了检查

    (0xFFFFFFE3 和 (1U <<15U))== (1U <15U)

    在调用勘误表之前已设置上电复位位位。


    在对源代码进行更多调查后、我们发现了问题:对进行了编码标准更改  errata_SSWF021_45_BOTH_PLL  我们将以下行替换为:

    /** DCC1 Clock0 Counter Seed value configuration */
    dccREG1->CNT0SEED = 138U;
    /** DCC1 Clock0 Valid Counter Seed value configuration */
    dccREG1->VALID0SEED = 10U;
    /** DCC1 Clock1 Counter Seed value configuration */
    dccREG1->CNT1SEED = 489U;


    替换为:
    /** DCC1 Clock0 Counter Seed value configuration */
    dccREG1->CNT0SEED = 0x00000138U;
    /** DCC1 Clock0 Valid Counter Seed value configuration */
    dccREG1->VALID0SEED = 0x00000010U;
    /** DCC1 Clock1 Counter Seed value configuration */
    dccREG1->CNT1SEED = 0x00000489U;
    


    我们仍然不知道这会影响编译的原因、但在恢复到旧代码后问题就消失了。
    关于这一行的评论仍然有效,我建议在这影响其他开发人员的情况下纠正该建议。

    [报价 userid=“622564" url="“ url="~“~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1632613/tms570lc4357-ep-found-an-issue-with-errata-hercules-pll-advisory-sswf021-45-workaround ]failCode |= DISABLE_PLL (SYS_CLKSRC_PLL1 | SYS_CLKSRC_PLL2)


    此外、   在调用勘误表后、强制 PORST 为 1 似乎是我们实现 PLL 锁定故障处理程序的专有代码的结果。 当勘误表的故障代码不为 0 时、它会使系统复位。

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

    经过详细讨论、种子值中的误差是由于导致的值的错误表示 0x 添加了、它将值更改为十六进制表示形式。

    代码不像建议的那样使用 138、10 和 489(十进制)、而是使用 0x138、0x10 和 0x489(十六进制)= 312、16 和 1161。

    除中之外、勘误表正确无误  failCode |= DISABLE_PLL (SYS_CLKSRC_PLL1 | SYS_CLKSRC_PLL2) 工程师

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

    尊敬的 Donald:

    代码不是按照建议使用 138、10 和 489(十进制)、而是使用 0x138、0x10 和 0x489(十六进制)= 312、16 和 1161。

    是的、您的理解是正确的。

    这些是十进制值、将其更改为十六进制会使值变得非常高、最终会导致振荡器时钟验证与基准时钟相关失败。

    勘误表中除之外是正确的  failCode |= DISABLE_PLL (SYS_CLKSRC_PLL1 | SYS_CLKSRC_PLL2) [/报价]

    感谢您指出此问题、我们将记下此问题并采取相应的纠正措施。

    --
    此致、
    Jagadish。