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.

[参考译文] rm46L430:如何正确修整 HF LPO 振荡器

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/594838/rm46l430-how-to-correctly-trim-the-hf-lpo-oscillator

器件型号:RM46L430
主题中讨论的其他器件:HALCOGEN

《RM46参考手册》SPNU514B–2015年4月、调整 HF LPO 振荡器的第10.4.6节规定:

'在器件测试期间、一个修整值被写入闪存存储器(OTP)的一次性可编程部分、地址0xF008_01B4。'

它还说:

'当铣削 HF LPO 时、建议步进修整值、以便不对任何修整设置进行大改动。'

HalCoGen 示例代码:

  • 检查16位修整值是否为'0xFFF'、在这种情况下它不适用。

  • 不会逐步更改修整值。

我在 SafeTI 库/安全手册中找不到任何有关 LPO TRIM 的信息、或在之前的社区帖子中找到任何相关信息、因此我的问题是:

  1. 如果 OTP 读取为0xFFFF、是否需要使用零的修整值?

  2. 建议的最大步长是多少?

  3. 建议在步骤之间暂停什么?

  4. 在哪里可以找到指定这些要求的文档?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Mark、您好!

    [引用用户="Mark Kingst"]如果 OTP 读取为0xFFFF、是否需要使用零的修整值?[/quot]

    不需要。如果 OTP 读取为0xFFFF、则无需使用修整值0。 如果 OTP 修整值读取为0xFFFF、则它处于默认的擦除状态、这很可能表示器件制造测试过程中错过了过程步骤。 如果 读取校准值0xFFFF、强烈建议抑制该器件/汇编并将器件返回 TI 进行故障分析/故障确定和纠正措施。

    根据 Halcogen 提供的 LPO Trim 代码、 有机会在其中一个用户代码段中添加一个 LPO Trim = 0xFFFF 校验以通过输入一个 while (1)或强制一个 nERROR 引脚状态来隔离器件、或者通过使用与 OSCIN 进行比较来添加代码来确定一个定制的 Trim 值 DCC。 如上所述、我建议进入安全状态并强制发出 nERROR 通知。

    [引用用户="Mark Kingstin"]

    • 建议的最大步长是多少?

    • 建议在步骤之间暂停什么?

    • 在哪里可以找到指定这些要求的文档?

    [/报价]

    遗憾的是、我们没有添加任何有关要使用的步骤类型的详细信息。 一般来说、当修整值发生很大变化时、这是一个问题。 由此产生的问题是、由于 HF LPO 时钟的快速变化、时钟监视器电路中出现故障。 当一些早期器件未编程修整值(0xFFFF)并且代码正在将0xFFFF 值加载为 HF LPO 修整时、就会发现此问题。 这导致了 LPO 频率的急剧变化、并导致时钟监视器故障。

    此外、一般来说、我们在 Halcogen 生成的代码领域中没有发现问题。 我认为这是因为每个器件上所需的修整值相对较小。

    第二种方法是在更新修整值时禁用时钟监控功能。 这可以使用时钟测试寄存器来完成。 为了在修正值更新期间简要禁用 LPOCLKMON 操作、可使用 RANGEDETENASSEL 和 RANGEDETCTRL 域。 一旦 LPOCLKMON 电路被禁用、修整可被更新、并且无论修整变化的大小如何、突然变化都不会导致一个故障。 可在 Halcogen 生成的 LPO Trim 函数内的用户代码部分中添加禁用 LPOCLKMON 并在修整更新后重新启用它的代码。

    注意:我还将此问题提交给了我们的文档团队和我们的 Halcogen 团队、以便在文档和 Halcogen 代码库中正确解决。