OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 19631|回复: 9

关于写W25Q64的问题,麻烦大家帮看下

[复制链接]

36

主题

195

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
313
金钱
313
注册时间
2014-10-27
在线时间
34 小时
发表于 2015-5-5 14:05:22 | 显示全部楼层 |阅读模式
5金钱

昨天遇到个蛋疼的问题,项目的板子是学原子哥的战舰板画的,SD卡和25Q64共用的SPI2。原理图如下:

原先正常没问题,字库存在W25Q64中,中文显示也没问题。昨天突然中文显示不了了,然后我就换W25Q64,下载字库,发现还是不行,最后我单独把原子哥的读写W25Q64的程序下载进去,发现应该是写不进去:


const u8 TEXT_Buffer[]={"WarShipSTM32 SPI TEST"};

if(key==4)//KEY_DOWN按下,读取字符串并显示
  {
    LCD_ShowString(40,170,200,16,16,"Start Read W25Q64.... ");
   SPI_Flash_Read(datatemp,FLASH_SIZE-100,SIZE);    //从倒数第100个地址处开始,读出SIZE个字节
   printf("%s\r\n",datatemp);
   LCD_ShowString(40,170,200,16,16,"The Data Readed Is:  "); //提示传送完成
   LCD_ShowString(40,190,200,16,16,datatemp);

通过串口打印出来是22个问号,??????????????????????.

这个为什么会写不进去呢,程序是移植原子哥的,原先是可以的,现在读芯片ID可以,仿真SPI_Flash_ReadID()出来是0XEF16,是对的,我做了两块PCB,原先都是可以的,现在都不行了,麻烦各位帮看看,谢谢!

最佳答案

查看完整内容[请看2#楼]

回复【9楼】正点原子: --------------------------------- 我买了几片W25Q64FVS,都可以了。看来要么次品,要么不兼容。。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

36

主题

195

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
313
金钱
313
注册时间
2014-10-27
在线时间
34 小时
 楼主| 发表于 2015-5-5 14:05:23 | 显示全部楼层
回复【9楼】正点原子:
---------------------------------
我买了几片W25Q64FVS,都可以了。看来要么次品,要么不兼容。。
回复

使用道具 举报

36

主题

195

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
313
金钱
313
注册时间
2014-10-27
在线时间
34 小时
 楼主| 发表于 2015-5-5 17:25:56 | 显示全部楼层
我都换了4片W25Q64了,都是一样的,估计不是W25Q64的问题。
回复

使用道具 举报

0

主题

133

帖子

0

精华

初级会员

Rank: 2

积分
169
金钱
169
注册时间
2014-12-21
在线时间
1 小时
发表于 2015-5-5 18:44:12 | 显示全部楼层
用51单片机写一个DEBUG,就是向w25q64写00~ff,读出来如果是正确的,让灯常亮,如果不正确,把读取后的数据输出到串口。确认是W25Q64产生了坏块还是stm这边程序异常。这样才好查。反复擦写某一扇区是很容易写坏的,可能你买到的就是已经被用的差不多快坏了的。也可以用逻辑分析仪看io波形是不是符合SPI,用KEIL DEBUG 看写进去和读出来的分别是什么。
流过汗水才能代表自己真的学会了如何不流汗。
回复

使用道具 举报

36

主题

195

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
313
金钱
313
注册时间
2014-10-27
在线时间
34 小时
 楼主| 发表于 2015-5-5 20:14:23 | 显示全部楼层

我是换了4片了,都是这个问题,但是读芯片ID是可以的。应该是写不进去,我是直接拿的原子SPI的例程。

我尝试了个死循环:while(1) {SPI2_ReadWriteByte(0x88);}  量出来的MOSI波形与开发板中的MOSI波形一致,就是波形不漂亮,不知道是实际波形还是我的示波器频率限制。SPI为18M,周期约55ns,和图能对应上,另外我在论坛里面看到好多人都有和我一样的问题,就是在The Data Readed is:下面就没了。都说可能是W25Q64坏了,但我都换了4片了。。。。。

回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-5-5 22:17:55 | 显示全部楼层
回复【4楼】善良的二哥:
---------------------------------
感觉你的电路有问题多一点
万用表查查电路。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

44

主题

186

帖子

4

精华

金牌会员

Rank: 6Rank: 6

积分
1260
金钱
1260
注册时间
2012-9-1
在线时间
67 小时
发表于 2015-5-6 11:59:04 | 显示全部楼层
写之前调用以下函数试试
//芯片去除写保护
void SPI_Flash_baofu(void)   
{   
SPI_FLASH_Write_Enable();      //SPI_FLASH写使能
SPI_FLASH_Write_SR(0);                 //写SPI_FLASH状态寄存器       
    SPI_Flash_Wait_Busy();       //等待芯片擦除结束  
}
回复

使用道具 举报

36

主题

195

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
313
金钱
313
注册时间
2014-10-27
在线时间
34 小时
 楼主| 发表于 2015-5-6 15:39:29 | 显示全部楼层
回复【6楼】ye781205:
---------------------------
好的,我试试看,谢谢解答!
回复

使用道具 举报

36

主题

195

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
313
金钱
313
注册时间
2014-10-27
在线时间
34 小时
 楼主| 发表于 2015-5-6 15:42:10 | 显示全部楼层
回复【5楼】正点原子:
---------------------------------
原子哥,我把自己买的焊到战舰上发现The Data Readed Is:下面就没了,再把战舰原先的flash焊接上去又可以,我怀疑我买的flash有问题。
还有一种可能是战舰上的是W25Q64FVS,而我买的是W25Q64BVS,是不是不兼容的原因?
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-5-6 23:02:36 | 显示全部楼层
回复【8楼】善良的二哥:
---------------------------------
没问题的。
看看你是不是买到次品了。。。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-22 18:24

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表