打印

28335的外部FLASH擦除成功后写入不了

[复制链接]
2163|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
在28335上使用外扩的FLASH芯片,按照研旭给的程序写了一下,擦除没有问题,从0x180000以后都变成0xFFFF,但是往里写的过程,从第一个数就写不进去,为什么?请大佬指点:
Uint16 ChipErase(void)
{
  Uint16 Data;
  Uint32 TimeOut,i;

  *(FLASHStart0 + 0x5555) = 0xAAAA;
  *(FLASHStart0 + 0x2AAA) = 0x5555;
  *(FLASHStart0 + 0x5555) = 0x8080;
  *(FLASHStart0 + 0x5555) = 0xAAAA;
  *(FLASHStart0 + 0x2AAA) = 0x5555;
  *(FLASHStart0 + 0x5555) = 0x1010;


  for(i=0;i<0x40000;i++)
  {
          Data = *(FLASHStart0 + i);
          if(Data!=0xFFFF)
                  return(EraseErr);
  }
  return(EraseOK);
}

Uint16 FlashWrite(void)
{
Uint32 i ;
Uint16 Data;
for(i=0;i<0x3FFFF;i++)
{
        *(FLASHStart0 + 0x5555) = 0xAAAA;
        *(FLASHStart0 + 0x2AAA) = 0x5555;
        *(FLASHStart0 + 0x5555) = 0xA0A0;

        *(FLASHStart0 + i) = i;

  }
        for(i=0;i<0x3FFFF;i++)
        {
                Data = *(FLASHStart0 + i);
                if(Data!=i) return(VerifyErr);
        }
        return(WriteOK);

}

相关帖子

沙发
jiabinjingyu|  楼主 | 2019-3-17 15:24 | 只看该作者
求告知

使用特权

评论回复
板凳
zhangmangui| | 2019-3-17 20:46 | 只看该作者
擦出是需要一些命令的    写入应该是直接可以写  不需要特殊操作
是不是还是没有擦完成啊

使用特权

评论回复
地板
jiabinjingyu|  楼主 | 2019-3-18 09:23 | 只看该作者
zhangmangui 发表于 2019-3-17 20:46
擦出是需要一些命令的    写入应该是直接可以写  不需要特殊操作
是不是还是没有擦完成啊  ...

是这样的版主,我按照FLASH的dataset给的命令,擦除操作里是有判断的,如果擦除不完成,会报错返回,擦除没有报错,我从去看地址上,也都是0xFFFF,问题就在写入的时候,会直接跳出去,说明没写进去,我去看地址上,数据也没有变,写的那三行命令是datasheet上有的,28335书上也说需要严格遵守,下面几张图是我用的擦除程序,写程序,还有主程序,会在第二个“asm”跳出,以及擦除后地址上的数据,还有命令表

使用特权

评论回复
5
zhangmangui| | 2019-3-18 23:07 | 只看该作者
jiabinjingyu 发表于 2019-3-18 09:23
是这样的版主,我按照FLASH的dataset给的命令,擦除操作里是有判断的,如果擦除不完成,会报错返回,擦除 ...

看着命令是对的啊     具体不好说了  如果能擦除    芯片及总线肯定是没问题的

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

17

帖子

0

粉丝