Board logo

标题: EEPROM&FLASH的问题!!! [打印本页]

作者: sunsetman    时间: 2007-6-4 22:25     标题: EEPROM&FLASH的问题!!!

我写的EEPROM的程序在写入程序后在没有关闭电源时可以读回数据(仅是重启动),但是在关闭电源后数据基本是随机的,无法读回数据了。检查EEPROM是PROGRAMMED,不知道是什么原因,我用的是16mhz晶振。ECLKDIV设为4A,是根据芯片资料推算的。
作者: strongchen    时间: 2007-6-5 09:59

什么芯片?看起来是你的EEPROM区还是被RAM覆盖了。
作者: sunsetman    时间: 2007-6-5 21:22

是S12128DG,我是在0X400-0X800写数据的
作者: strongchen    时间: 2007-6-6 10:04

DG128的RAM的上电缺省地址为0x0000~0x1FFF。如果不移走的话,就把EEPROM覆盖掉了。
作者: tonmey    时间: 2007-6-7 21:12

谢谢了,我现在用FLASH试了以下,但是为什么我的FLASH不写入呢?程序基本和EEPROM的一样,只是把寄存器名字改了,做整体擦除时芯片还会上锁。我是按照芯片资料给的顺序写的,寄存器也检查完成了FLASH动作,只是没有写入。不知道是什么原因。
我的程序是这样的:
void FLASH_WR(word data,volatile word* FLASH_Addr) {
if(!FCLKDIV_FDIVLD) FCLKDIV=0x4a;
FSTAT=0x30;
*FLASH_Addr=data;
// PPAGE=(FLASH_Addr>>16); Do not have to set between 4000-7fff
FCMD=0x20;
FSTAT_CBEIF=1;
if(FSTAT_PVIOL)FSTAT_PVIOL=1;
else if(FSTAT_ACCERR)FSTAT_ACCERR=1;
else if(!FSTAT_CBEIF){
while(!FSTAT_CCIF);
}
}
请教高手是什么原因??调用时是这样写的:FLASH_WR(a,(volatile word*)(0x4000));
作者: strongchen    时间: 2007-6-8 10:03

把整个project贴出来看看吧。
作者: wf_car    时间: 2007-6-9 20:37

上电缺省地址为0x0000~0x1FFF。如果不移走的话,就把EEPROM覆盖掉了。
请问如何移走?
作者: seuafu2005    时间: 2007-6-11 14:00

设定相应的寄存器INITRM, INITEE等,给ram或eeprom设定不同的地址空间
可以看相应的数据手册
作者: zhudongpo    时间: 2007-6-12 10:48

请问在设定相应的寄存器INITRM, INITEE等,给ram或eeprom设定不同的地址空间后,
PRM文件需要改动吗?应该如何修改呢?
谢谢了。

作者: zhudongpo    时间: 2007-6-12 17:40

http://bbs.chinaecnet.com/uploadImages/INITRM.rar
使用DP512因为EEPROM和RAM有重叠区域,现想将RAM映射到0x4000处,可是在使用RTI后,
程序就不能运行了,麻烦各位给看看,什么地方有问题。谢谢了
作者: zhudongpo    时间: 2007-6-14 10:38

顶一下
作者: seuafu2005    时间: 2007-6-14 14:50

注意设置后,各个空间区域不要有重叠





欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0