BCSCTL1 = CALBC1_1MHZ;
DCOCTL = CALDCO_1MHZ;
我查看了BCSCTL1是个8位的寄存器啊,但是查看CALBC1_1MHZ是 (0x10FFu),这是怎么给他赋值的呢?还有这两句话分别的意思是什么?
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.
BCSCTL1 = CALBC1_1MHZ;
DCOCTL = CALDCO_1MHZ;
我查看了BCSCTL1是个8位的寄存器啊,但是查看CALBC1_1MHZ是 (0x10FFu),这是怎么给他赋值的呢?还有这两句话分别的意思是什么?
CALBC1_1MHZ 和 CALDCO_1MH 是一个宏,你看到的0x10FFu是一个地址,是information memory Segment A中的一个位置,其内容在你的单片机里面恰好是0x86和0xE0。
在g2553单片机中的information memory中,有几个位置存储的是出厂前DCO的校准结果,包括了1Mhz、8Mhz、12Mhz的等等,把里面的值赋给BCSCTL1和DCOCTL后,DCO输出频率就恰好是你想要的频率结果。
因此不同的g2553单片机CALBC1_1MHZ的内容可能是不一样的。
另外在擦除flash的时候,要小心,不要擦除information memory Segment A的内容,除非有其他的需要。
Hi Lina
有一个问题,BSL读取操作在输入错误的Password后,会生成一次Mass Erase(使用BSL写入新程序前,常常会使用这种方法来批量清除原来的code),这个Mass Erase会不会对Information Memory Segment A进行擦除?
我在对G2553的BSL进行实验操作的时候,Information Memory Segment A无缘无故的清除了,不知道是不是这个步骤造成的。
(FR系列BSL 造成的Mass Erase并不会清除Segment A,这个我倒是已经确认了)
Felix Jiang,
MSP430G2xx系列的BSL 属于Bootloader Protocol – 1xx, 2xx, and 4xx Families, 其对应的Mass Erase是擦除整个Memory的, main memory plus information memory,具体可以查看文档“MSP430™ Programming With the Bootloader (BSL) User's Guide”对应“2.4.4.4 Mass Erase ”。link如下。
http://www.ti.com/lit/ug/slau319l/slau319l.pdf
这里面解释的很清楚,谢谢啦!
Lina Lian 说:Felix Jiang,
MSP430G2xx系列的BSL 属于Bootloader Protocol – 1xx, 2xx, and 4xx Families, 其对应的Mass Erase是擦除整个Memory的, main memory plus information memory,具体可以查看文档“MSP430™ Programming With the Bootloader (BSL) User's Guide”对应“2.4.4.4 Mass Erase ”。link如下。
http://www.ti.com/lit/ug/slau319l/slau319l.pdf