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.

MSP430G2955 内部时钟问题

Other Parts Discussed in Thread: MSP430G2955, MSP-GANG

我现在使用MSP430G2955, 使用内部时钟,发现有些芯片正常, 有些芯片时钟不对, 时钟使能串口,不正常的串口接收数据错误,但是能收到数据! 暂时就是只用了定时器及串口,请问有什么因素影响这些参数

  • 请问您是否有使用TI例程来测试一下呢?结果如何?

    dev.ti.com/.../node

    “ 使用内部时钟,发现有些芯片正常, 有些芯片时钟不对,”

    能否请您详细说明一下呢?另外您的芯片是在何处购买的呢?
  • if (CALBC1_8MHZ==0xFF) // If calibration constant erased
    {
    while(1); // do not load, trap CPU!!
    }
    不正常的,这个地方不能通过,请问是什么造成的?
  • 请您不要对information memory segA 和 segB进行操作,里面留有TLV和DCO校准时钟。

    在示例代码中一般会有下面的语句

    if (CALBC1_1MHZ ==0xFF || CALDCO_1MHZ == 0xFF)

    {
    while(1);// If calibration constants erased
    // do not load, trap CPU!!
    }
    BCSCTL1 = CALBC1_1MHZ; // Set range
    DCOCTL = CALDCO_1MHZ; // Set DCO step + modulation */

    在启动时都先检查DCO1MHZ的校准值是否为0xFF,是则进入while(1)死循环。

    若是DCO数据被擦除,一般的解决办法有两种

    1 利用Timer捕捉外部的32.768K晶振或是时钟源,然后得到1M,8M或是12Mhz之类的DCO的数值,然后在直接写入segment flashA里面

    2 可以通过类似于MSP-Gang之类的工具,它具有校正DCO的功能选项

    在下面的链接也有相关的例程

    dev.ti.com/.../node

    此代码重新编程F2xx DCO校准常数。一种软件FLL机制用于根据外部设置DCO32kHz参考时钟。每次校准后,会读取时钟系统并将其存储在一个临时变量中。

    另外请您检查CCS工程, Properties ->TI Debug Settings -> Target -> Download Options. 您可能选择了 "erase main and information memory".
  • 谢谢! 确实被烧了!
  • 谢谢您的反馈!