Part Number:MSP430I2041Other Parts Discussed in Thread:UNIFLASH,
请问如何操作时,仅对该芯片内FLASH中1K(information memory)内局部擦除而不会影响其他部分校准且受保护的信息。
目前,由于误擦除,已经造成好几个芯片不能正常工作。请问什么原因引起?
yujing zhou:
使用的是内部时钟,本来想擦除一段,结果过了,显示:
if (*CSIRFCAL_CONST==0xFF) // If calibration constant erased { while(1); // do not load, trap CPU!! }
,
yujing zhou:
能只擦除一部分,不影响CSIRFCAL_CONST
,
yujing zhou:
看资料里不是可以分段擦除吗?
,
Ben Qin:
你好,你是如何擦除的?
可以使用uniflash来进行特定位置的擦除。
,
yujing zhou:
用的库函数FlashCtl_eraseSegment,应该只擦除一段,不知道怎么就多了
,
yujing zhou:
uniflash是怎么用,刚开始用这个芯片,不太懂
,
yujing zhou:
MSP430I2041资料里没有找到说明
,
Ben Qin:
如果你要烧录程序的话,一般来说直接连接芯片和电脑CCS,选择工程然后直接烧录就可以了
,
yujing zhou:
我从别的芯片读出来,再写到这个芯片可以吗
,
yujing zhou:
可能程序有问题
,
yujing zhou:
问提已解决
,
Ben Qin:
好的
,
yujing zhou:
再问一下,什么情况flash无法擦除?我试了试,不能擦除数据就不能再写入了
,
yujing zhou:
擦除程序:
FCTL3 = FWKEY; //Clear LOCK FCTL1 = FWKEY + ERASE; *Flash_ptr = 0; delay_ms(10); while ((FCTL3 & BUSY)==BUSY); FCTL3 = FWKEY + LOCK; 地址设置的0x1000
,
Ben Qin:
你可以参考下TI的例程:
msp430i20xx_flashwrite_01.c (ti.com)
,
yujing zhou:
里面没有擦除的例程,只有写入的例程
,
Ben Qin:
参考下下面这篇帖子:
(+) CCS/MSP430I2041: How to erase flash memory – MSP low-power microcontroller forum – MSP low-power microcontrollers – TI E2E support forums