我喂自己袋盐 发表于 2025-3-26 20:15

GD25Q64ESIG四线读写失败问题

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);
//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]
查看完整版本: GD25Q64ESIG四线读写失败问题