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需要配置什么参数?
主芯片是gd32h759imk 读写时序参数配置可能不对! 数据长度和地址与Flash存储器的页面大小或扇区大小未对齐? 建议检查硬件连接。 用示波器检查SPI信号的质量,包括时钟信号的稳定性和数据信号的完整性。
记得官方只提供了单线和8线的驱动,4线要自己改指令数据地址模式,时序等等东西 在更改SPI模式或配置后,对Flash存储器执行复位操作可能是一个好主意。 已解决,四线flash读写指令和cpu这边的读写地址模式没有对应上,cpu这边用的四线指令,但是flash用的是一线指令,这个要看flash规格书确保对应上,而且flash要打开QE位。 先恭喜楼主已经解决问题,也是学到了,下次自己做开发的时候可是要注意一下,看flash规格书确保对应上,而且flash要打开QE位。
更多操作
页:
[1]