您好!
我尝试使用 MSP430F2272IYFFT 的工厂校准。
我使用以下代码来推算1MHz。
BCSCTL1 = CALBC1_1MHz;
DCOCTL = CALDCO_1MHz;
测得的 SMCLK 时钟为870 ~910KHz。
我认为该频率是坏的。 因为它比1MHz 慢得多。
这超出了容差范围。
其他频率相同。
我的板上没有外部晶体、因此无法校准和重写 DCO 数据。
如何在没有外部时钟源(32768Hz 晶振)的情况下校准 DCO?
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.
您好!
我尝试使用 MSP430F2272IYFFT 的工厂校准。
我使用以下代码来推算1MHz。
BCSCTL1 = CALBC1_1MHz;
DCOCTL = CALDCO_1MHz;
测得的 SMCLK 时钟为870 ~910KHz。
我认为该频率是坏的。 因为它比1MHz 慢得多。
这超出了容差范围。
其他频率相同。
我的板上没有外部晶体、因此无法校准和重写 DCO 数据。
如何在没有外部时钟源(32768Hz 晶振)的情况下校准 DCO?
下载开源代码示例(MSP430F22x2/22x4代码示例)...
http://www.ti.com/lit/zip/slac123
并使用 zip 文件中的 msp430x22x4_DCO_flashcal 重新校准 DCO。 重校准需要外部32kHz 晶体。 您可以将临时士兵晶体直接切割引脚。
如果不能使用外部32kHz 晶振、则可在定时器输入引脚上使用任何外部基准时钟。 如果我还记得、这可以在 e2e 上找到。
一段时间后、Steve Gibson 提出了一种使用有效 的1MHz 工厂校准值来确定 G2231的8MHz 校准值的方法。 他不使用外部晶体、而是使用 VLO。 VLO 不必是任何特定频率、它只需保持一致、至少在执行测试所需的10-15秒内是如此。 因此、如果即使芯片中的一个校准值良好、您在理论上也可以使用该方法从芯片中获得其他校准值。
想法是在 计时器 A 中以1MHz 的频率计数高达32K 的情况下对 VLO 振荡进行计数。 然后、您以8 MHz 的猜测运行、但将分频值更改为8、对于相同数量的 VLO 周期、如果您的猜测是正确的、则应获得与之前相同的计数。 如果不是、 您可以调整猜测并重复、直到它足够接近 -通常直到交叉速度从太慢到太快。 此时、您将信息 A 中的最新猜测保存为8MHz 校准值、Bob 是您的叔叔。
我进一步介绍了 Steve 的工作、并添加了12MHz 和16MHz 值以及逐次逼近、这使得整个过程在大约一秒钟内即可完成。 我将在 Github 上发布所有这些内容、但在那里注册后又不发布、导致垃圾邮件泛滥。 TI 是否有任何地方可以发布这样的内容。 它都是汇编器、当然还有十六进制文件、太大、无法在这里发布。 TI 显然不负责提供的代码是否有 wiki 或类似的地方、但这对客户可能很有用?