Other Parts Discussed in Thread:MSP430G2955, MSP-GANG
我现在使用MSP430G2955, 使用内部时钟,发现有些芯片正常, 有些芯片时钟不对, 时钟使能串口,不正常的串口接收数据错误,但是能收到数据! 暂时就是只用了定时器及串口,请问有什么因素影响这些参数
Susan Yang:
请问您是否有使用TI例程来测试一下呢?结果如何?
dev.ti.com/…/node
“ 使用内部时钟,发现有些芯片正常, 有些芯片时钟不对,”
能否请您详细说明一下呢?另外您的芯片是在何处购买的呢?
,
user4498892:
if (CALBC1_8MHZ==0xFF)// If calibration constant erased{while(1);// do not load, trap CPU!! }
不正常的,这个地方不能通过,请问是什么造成的?
,
Susan Yang:
请您不要对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 andinformation memory".
,
user4498892:
谢谢! 确实被烧了!
,
Susan Yang:
谢谢您的反馈!