打印
[ZLG-MCU]

关FM25CL64读写问题

[复制链接]
3651|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
linhai1986|  楼主 | 2009-4-5 19:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我在SPI总线上挂了四片Flash,一片铁电FM25CL64,使用相同的程序读写Flash都正确,写铁电就是无法读出,我用示波器也观看波形,发送数据的时序波形都正确,可是读数据总是0xFF,芯片也换过了,问题依旧,大家看看最有可能出问题的是哪啊,谢谢!  

相关帖子

沙发
Again_gyf| | 2009-4-5 19:52 | 只看该作者

SPI有四种模式,记得FM只支持0和3

使用特权

评论回复
板凳
linhai1986|  楼主 | 2009-4-6 23:26 | 只看该作者

这个应该没问题,我都是按要求设置的

使用特权

评论回复
地板
xiaoxin1986| | 2009-4-7 00:06 | 只看该作者

能把你的相关代码贴一下吗?

使用特权

评论回复
5
liqindz| | 2009-4-8 22:41 | 只看该作者

你先写一个数进去在读 falsh默认是0XFF

使用特权

评论回复
6
linhai1986|  楼主 | 2009-4-9 00:41 | 只看该作者

使用的是MCU是CF8051F340。这是部分代码

FramReadStatus(4,&status);

 

char FramReadStatus(unsigned char  ChipNo,unsigned char *status)
{
    unsigned int i;
 SelectFlash(ChipNo,1);             //片选
 SpiWriteByte(0x05);
 SpiReadByte(status);
 SelectFlash(ChipNo,0);
 return TRUE;
}

char SpiWriteByte(unsigned char dat)
{
 while(TXBMT==0);
   SPI0DAT=dat;
   while(SPIF==0);
   SPIF=0;
 return TRUE;
}

char SpiReadByte(unsigned char *dat)
{
 SPI0DAT=0x00;
   while(SPIF==0);
   *dat=SPI0DAT;
   SPIF=0;
   return TRUE;
}

使用特权

评论回复
7
xiaoxin1986| | 2009-4-10 00:17 | 只看该作者

至少有两个原因:

看看子地址的操作方式是不是一样的,有些是双子地址,有些是三地址的。
看一看有没有引脚写保护。
看一看工作电压是不是一样。
 
还有
可以用编程器把数据写出来看一看。

使用特权

评论回复
8
linhai1986|  楼主 | 2009-4-10 21:33 | 只看该作者

写保护了,电压也一样,就是地址那个没注意

使用特权

评论回复
9
xiaoxin1986| | 2009-4-12 23:19 | 只看该作者

呵呵

使用特权

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

本版积分规则

172

主题

1451

帖子

0

粉丝