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:使用内部1mH 时钟的 MSP430G2553

Guru**** 2385880 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/1026739/msp430g2553-msp430g2553-using-internal-1mh-clock

器件型号:MSP430G2553

设计

MSP430G2553 p/n、使用内部1mH 时钟、加电以确定 CALBC1_1MHz=0xFF 和 CALDCO_1MHz=0xFF、 但有些可以开始运行、有些无法开始运行、如果我不判断、系统启动后时钟误差非常大、如果 CALBC1_1MHz=0xFF 和 CALDCO_1MHz=0xFF、那么内部1M 时钟未校准?现在使用4500个时钟、并且有2100个时钟。 当我判断 ICALB1_1MHz=0xFF 和 CALDCO_1MHz=0xFF 程序无法启动和运行时、2400pcs 正常。

内部1M 时钟工厂校准、如何判断?

我的代码如下:

if (CALBC1_1MHz=0xFF|CALDCO_1MHz=0xFF)

while (1)_NOP ();      //如果校准常量被擦除

BCSCTL1=CALBC1_1MHZ;

DCOCTL=CALDCO_1MHz;

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

    您好、Honle、

    您可以参考 TI 示例代码。 希望这对您有所帮助。

    https://dev.ti.com/tirex/explore/node?node=AGCxkFqg9jdFt.4OdgeRfQ__IOGqZri__LATEST&search=MSP430G2553

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

    扩展 Allen 所说的话:

    1) 1)值0xFF 表示常数(信息段 A)已被擦除。 这是目前为止最常见的误差。 使用0xFF 会产生非常高(远远超出规格)的时钟速率。

    2) 2)对于不是0xFF 的值、如果不重新生成常量、就没有实际的方法来检查其正确性、这就是 Allen 的示例。 重新生成它需要一个外部基准时钟源;在示例中、假定一个32kHz 晶振。

    3) 3)如果您不使用校准常数、则会得到"模糊类似于"1MHz 的时钟速度。 多年来、我的(非科学)调查表明、频率范围约为0.9-1.1MHz。 这实际上对于某些/许多功能("跛行模式")来说足够好了。

    4)用户指南(SLAU144J)示例24-1建议在设置 CAL 常量之前设置 DCOCTL=0。 这与您的症状不符、但值得一试。

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

    感谢 Bruce 的解释。

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

    尊敬的,Allen 和 Bruce

    感谢您的回复、但根据提供的方法、问题仍未解决。 我需要知道原因。是因为内部1M 时钟没有校准吗?您能提供更好的建议来解决当前的问题吗?

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

    您所描述的内容与校准常量(InfoA)的擦除(0xFF)一致、但这与证明不完全相同。 我首先要做的是:

    1) 1)将其中一个故障芯片连接到调试器(或等效器件)、并读出位置0x10F8-10FF 的内容。 如果它们是0xFF、则它们已被擦除。

    2) 2)如果未擦除它们、则加载一个将 P1.4配置为 SMCLK 输出的程序、并使用示波器探测 P1.4以查看实际时钟速度。

    3) 3)检查您的编程软件/硬件是否正确配置。 我的经验是、即使采用了安全措施、也不会很难意外地擦除校准常量。 (因此、我需要设计一个32kHz 晶体。)

    我猜 TI 可能对批次代码感兴趣。 只需发布其中一个故障芯片(以及其中一个工作芯片)的照片即可。

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

    尊敬的 Bruce

    非常感谢。 已确认它是校准常数(InfoA)的擦除(0xFF)。 这是燃烧器设置的问题、已得到纠正和解决。