[ZLG-MCU] 关FM25CL64读写问题

[复制链接]
4619|8
 楼主| linhai1986 发表于 2009-4-5 19:50 | 显示全部楼层 |阅读模式
我在SPI总线上挂了四片Flash,一片铁电FM25CL64,使用相同的程序读写Flash都正确,写铁电就是无法读出,我用示波器也观看波形,发送数据的时序波形都正确,可是读数据总是0xFF,芯片也换过了,问题依旧,大家看看最有可能出问题的是哪啊,谢谢!&nbsp;&nbsp;<br /><br />
Again_gyf 发表于 2009-4-5 19:52 | 显示全部楼层

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

  
 楼主| linhai1986 发表于 2009-4-6 23:26 | 显示全部楼层

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

  
xiaoxin1986 发表于 2009-4-7 00:06 | 显示全部楼层

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

  
liqindz 发表于 2009-4-8 22:41 | 显示全部楼层

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

  
 楼主| linhai1986 发表于 2009-4-9 00:41 | 显示全部楼层

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

FramReadStatus(4,&status);<br /><br />&nbsp;<br /><br />char&nbsp;FramReadStatus(unsigned&nbsp;char&nbsp;&nbsp;ChipNo,unsigned&nbsp;char&nbsp;*status)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;int&nbsp;i;<br />&nbsp;SelectFlash(ChipNo,1);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//片选<br />&nbsp;SpiWriteByte(0x05);<br />&nbsp;SpiReadByte(status);<br />&nbsp;SelectFlash(ChipNo,0);<br />&nbsp;return&nbsp;TRUE;<br />}<br /><br />char&nbsp;SpiWriteByte(unsigned&nbsp;char&nbsp;dat)<br />{<br />&nbsp;while(TXBMT==0);<br />&nbsp;&nbsp;&nbsp;SPI0DAT=dat;<br />&nbsp;&nbsp;&nbsp;while(SPIF==0);<br />&nbsp;&nbsp;&nbsp;SPIF=0;<br />&nbsp;return&nbsp;TRUE;<br />}<br /><br />char&nbsp;SpiReadByte(unsigned&nbsp;char&nbsp;*dat)<br />{<br />&nbsp;SPI0DAT=0x00;<br />&nbsp;&nbsp;&nbsp;while(SPIF==0);<br />&nbsp;&nbsp;&nbsp;*dat=SPI0DAT;<br />&nbsp;&nbsp;&nbsp;SPIF=0;<br />&nbsp;&nbsp;&nbsp;return&nbsp;TRUE;<br />}<br />
xiaoxin1986 发表于 2009-4-10 00:17 | 显示全部楼层

至少有两个原因:

看看子地址的操作方式是不是一样的,有些是双子地址,有些是三地址的。<br />看一看有没有引脚写保护。<br />看一看工作电压是不是一样。<br />&nbsp;<br />还有<br />可以用编程器把数据写出来看一看。
 楼主| linhai1986 发表于 2009-4-10 21:33 | 显示全部楼层

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

  
xiaoxin1986 发表于 2009-4-12 23:19 | 显示全部楼层

呵呵

  
您需要登录后才可以回帖 登录 | 注册

本版积分规则

172

主题

1451

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部