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.

[参考译文] MSP430G2553:缺少时钟校准

Guru**** 2577385 points
Other Parts Discussed in Thread: MSP430G2553

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/650197/msp430g2553-clock-calibration-missing

器件型号:MSP430G2553
我收到了我们的制造商提供的我一直在研发的电池充电器的原型。 我可以告诉您硬件与我的版本相同。
当运行使用16MHz 系统时钟的代码时,主板没有问题,但制造商主板似乎没有时钟校准数据:( CALBC1_16MHZ = 0xFF)
我确认我的 CCS 配置为仅擦除主存储器。
在我的代码中、我在     msp430g2553.h 中找不到任何用于 CALBC1_16MHz 或 CALDCO_16MHz 的#defines
仅此:
Inline image 1
我看到 -l msp430g2553.cmd  位于 lnk_msp430g2553.cmd 中  、但在目录中找不到.msp430g2553.cmd 文件来检查它的内容。
这只能通过外部基准进行校准吗?  
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果您使用 BSL 对电路板进行编程、则不会很难出错、这会导致它擦除 InfoA 中的时钟校准。

    该常量不在链接器(.cmd)文件中、它来自工厂。 TI 示例 msp430g2xx3_DCO_flashcal.c 将基于外部32kHz 晶振(假设它以32kHz 的频率运行、则仅 ACLK)计算并存储(存储到 InfoA 中)新常量。

    如果没有某种外部的"已知正常"时钟源、那么重新校准 DCO 的方法并不明显。 我在同一批次中从其他芯片"借用"常量方面的成功有限---- sorta-ퟣ 于实验室,而不是产品。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢 Bruce 的回复。

    如果我们在芯片发送给制造商之前已经对芯片进行了 TI 编程、那么我们应该能够避免这个问题吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我猜是这样。 (我不知道 TI 提供了该服务。) 如果有人知道这些技巧、他们就知道了。

    您是否有(访问)目标 MCU 上的任何备用引脚? flashcal.c 不会有魔力(虽然它是一个小技巧)--它根据 ACLK 波的定时器捕捉设置了一个软件 FLL。 如果您没有计时器引脚、则可以通过将外部时钟(信号发生器)连接到计时器来执行类似的操作。 即使使用普通旧的 GPIO、也可以使用引脚中断和自由运行的计时器来近似计算捕获。 只是一个想法。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的乔治:

    芯片应该已经具有存储在闪存中的 DCO 的校准常数、这是你从任何供应商那里得到的芯片本身。 正如 Bruce 所说的那样、如果使用 BSL 通过热启动加载软件(器件在 BSL 之后立即跳转到程序而不复位器件)、器件可以保持在解锁状态、从而导致错误地擦除包括校准数据在内的整个闪存。 建议通过 BSL 加载程序并进行冷启动、以防止错误地擦除校准常量。 更多详细信息可在 《MSP430闪存器件 BSL 用户指南》中找到。

    此外、正如 Bruce 所说的、如果校准常数被擦除、可使用 带有 时钟基准的 msp430g2xx3_DCO_flashcal.c 重新初始化它们。

    您是否已经由电路板制造商对电路板进行了初始编程。 您能否向他们核实他们最初是通过 BSL 冷启动对芯片进行编程的?

    谢谢、

    Ryan

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    除了冷启动之外,我想我会以不同的方式声明它:如果用户输入了错误的密码--很容易偶然发生(*)-- BSL 将发出清除 LOCKA 的批量擦除,即擦除校准常量。 这似乎被视为功能、而不是错误。 我想有人担心有人可能已将机密信息存储在 InfoA 中。 [参考:SLAU319O 第2.4.4.4节("注意")、第2.7]当我几年前整合一些 G2553 BSL 程序时、我多次进行了"演示"。

    (*)由于密码只是中断矢量的一部分、为了使用 BSL 加载新代码、通常需要知道已经加载了哪些代码。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的、我将会出错、而不是功能。 我的看法。 在任何情况下,将该空字存储在*All* G2553代码中的0xFFDE 的原因都更多。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的乔治:

    您是否能够找到有关器件初始编程方式的更多信息、以了解这是否会导致校准常量被擦除?

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

    是的、他们没有采取预防措施来执行 BSL 冷启动、因此这肯定是原因。 等待查看下一批处理中是否已修复。
    我还将把 Null 添加到 FFDE。 感谢您的建议。