打印

为什么一手动复位E2PROM就会烧坏?

[复制链接]
2131|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
dinner620|  楼主 | 2007-9-12 16:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我公司一批产品,刚开始运行正常,可是一手动复位就出现死机现象.更换EEPROM后又会正常.电路使用的是PIC24FJ128GA010芯片.请对这类芯片比较熟悉的大侠指点这是为什么啊?是硬件问题还是软件的问题啊?望能给出几点可能原因,以便修改调试...
EEPROM电路如下.
https://bbs.21ic.com/upfiles/img/20079/2007912162048889.rar

程序上电复位后,会对EEPROM进行初始化,代码如下:

void EEDataInit(void)
{
unsigned char i;
unsigned int j;

AT24_WP_TRIS = 0;


if(AT24EERadomRead(EE_TEST)!=0X55)
{
        AT24EEByteWrite(EE_TEST,0X55);

Delayms(10);

if(AT24EERadomRead(EE_TEST)!=0X55)
        {    

        if(I2C2STATbits.BCL)
            {
            I2C2CON=0x0000;
            
            PORTAbits.RA2=0;
            Delayms(5);
            PORTAbits.RA2=1;
            Delayms(5);
            PORTAbits.RA2=0;    
            Delayms(5);
            PORTAbits.RA2=1;
            
            __asm__ volatile ("RESET");
            
            }
        
        else
    
            {
            unsigned char i;    
            
            for(i=0;i<4;i++)
                SHOW_LED=0x00;
            InitShow();
            Show();
            
            while(1)
            {
            
            DataToDisplay();
            KEYScan();    
    
            CommtoPC();    
            }
            }
        
        }

else
{
j=FANG_AN1;
for(i=0;i<8;i++)
    {
    if(AT24EERadomRead(j)>16)
        AT24EEByteWrite(j,0x00);    
        
    j++;
        
    }
......//其它相似程序段

}
}

WORK_STATE = AT24EERadomRead(EE_WORK_STATE);

......//其它相似语句

}

void main (void)
{
InitializeSys();

while(1)
     {
            
      DataToDisplay();
      KEYScan();    
    
      CommtoPC();    
      }
}

相关链接:https://bbs.21ic.com/upfiles/img/20079/2007912162048889.rar
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

29

帖子

0

粉丝