[研电赛技术支持] GD25Q64ESIG四线读写失败问题

[复制链接]
1833|9
 楼主| 我喂自己袋盐 发表于 2025-3-26 20:15 | 显示全部楼层 |阅读模式
ospi一线可以读写,但是四线读写数据错误
uint8_t status = gd25q64esig_read_status_QE(dev);
  status |= (1<<1);
  gd25q64esig_write_status_config_QE(dev,status);
  gd25q64esig_read_status_QE(dev);
  printf("device ready 0x%02x\n", dev->cmdbuf[0]);
  //gd25q64esig_erase_chip(dev);
  gd25q64esig_erase_sector(dev,0);
  gd25q64esig_write_page(dev,tx_buffer_spi1,FLASH_WRITE_ADDRESS,BUFFERSIZE_SPI);
  gd25q64esig_read_byte(dev,rx_buffer_spi1,FLASH_READ_ADDRESS,BUFFERSIZE_SPI);
不知道是不是flash需要配置什么参数?

 楼主| 我喂自己袋盐 发表于 2025-3-26 20:17 | 显示全部楼层
主芯片是gd32h759imk
stormwind123 发表于 2025-3-27 14:20 | 显示全部楼层
读写时序参数配置可能不对!
probedog 发表于 2025-3-27 15:20 | 显示全部楼层
数据长度和地址与Flash存储器的页面大小或扇区大小未对齐?
flycamelaaa 发表于 2025-3-27 16:00 | 显示全部楼层
建议检查硬件连接。
powerantone 发表于 2025-3-27 17:03 | 显示全部楼层
用示波器检查SPI信号的质量,包括时钟信号的稳定性和数据信号的完整性。
sagade 发表于 2025-3-27 19:02 | 显示全部楼层
记得官方只提供了单线和8线的驱动,4线要自己改指令数据地址模式,时序等等东西
classroom 发表于 2025-3-27 23:00 | 显示全部楼层
在更改SPI模式或配置后,对Flash存储器执行复位操作可能是一个好主意。
 楼主| 我喂自己袋盐 发表于 2025-3-28 09:10 | 显示全部楼层
已解决,四线flash读写指令和cpu这边的读写地址模式没有对应上,cpu这边用的四线指令,但是flash用的是一线指令,这个要看flash规格书确保对应上,而且flash要打开QE位。
cooldog123pp 发表于 2025-3-28 14:07 | 显示全部楼层
先恭喜楼主已经解决问题,也是学到了,下次自己做开发的时候可是要注意一下,看flash规格书确保对应上,而且flash要打开QE位。
更多操作
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

3

帖子

0

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