华邦存储器W25Q80, W25Q16, W25Q32系列的spi通讯

本文记录了华邦存储器W25Q80, W25Q16, W25Q32系列与STM32F1单片机SPI通讯的调试过程,包括SPI配置、问题排查与解决。遇到的问题包括数据读取错误,通过示波器确认波形正确,最终发现需要在写操作后清空SPI的DR寄存器以确保正确读取数据。" 96853683,8669329,C# 操作TreeView状态:保存与读取展开节点,"['C#开发', 'GUI编程', 'Windows应用', '控件操作', '数据序列化']
摘要由CSDN通过智能技术生成

华邦存储器W25Q80, W25Q16, W25Q32系列与stm32f1系列单片机的spi通讯

2020.4.9 spi通讯在配置好之后一定要开启spi使能,和串口的配置是一样的
2020.4.13 华邦存储器的spi通讯调试完成。
总结,在调试的过程中出现了两次大的问题,第一次是没法得到读到的数据,因此也无法确定写入是否正确,这个过程直如摸瞎。第二次是可以读数据了,但读回来的三个数据中第一个数有问题,但是用示波器看读入数据的波形,是正确的,但第一个数就是有问题。
第一个问题,当我遇到这个问题的时候,真的是一次次对比了华邦存储器手册的读写操作,又到网上搜索了相关的资料,然后又检查了自己配置的spi参数。先是发现自己gpio引脚配置有问题,只需把引脚设置成复用引脚就好了,不用开启复用时钟。然后又是发现spi未启动,于是使能spi外设。等配置好了引脚之后,又配置spi的相关参数,波特率分频,软片选,时钟采集设置(当开始传输时,是上升沿还是下降沿采集数据),时钟极性设置(不传输时时钟是高电平还是低电平)。都设置好了,我再开始写入数据,先从简单的开始,读取状态寄存器的值,这个读到了,确定可以写入数据并且可以收到数据了。然后开始读取某个存储地址的值。从这个时候开始就进入第二个困难了。
我发现读出的数据一点都不对,于是我开始检查我写入的数据是不是存在什么问题,一步一步的来,结合网上搜索到的资料程序(最后发现有些地方是对的,有些地方是错的),然后纠正,写使能之后要读状态寄存器判断是否可以写入操作了,整个写完动作完成后(片选引脚被拉高)

1. W25Q80 (8M-bit)、W25Q16 (16M-bit)和W25Q32 (32M-bit)串行闪存为空间、引脚和电源有限的系统提供了存储解决方案。25Q系列提供的灵活性和性能远远超过普通的串行闪存设备。他们是理想的代码隐藏到RAM,执行代码直接从双/四SPI (XIP)和存储声音,文本和数据。设备运行在单一2.7V至3.6V的电源上,电流消耗低至5mA有源,断电1a。所有的设备都提供节省空间的包装。W25Q80/16/32数组被组织成4,096/8,192/16,384个可编程页,每个页有256个字节。多达256字节可以被编程一次使用页程序指令。页面可以按16组(扇区擦除)、128组(32KB块擦除)、256组(64KB块擦除)或整个芯片(芯片擦除)擦除。W25Q80/16/32分别有256/512/1024个可擦除扇区和16/32/64个可擦除块。小的4KB扇区为需要数据和参数存储的应用程序提供了更大的灵活性。(见图2)。W25Q80/16/32支持标准串行外围接口(SPI),和高性能双/四输出以及双/四I/O SPI使用SPI引脚:串行时钟,芯片选择,串行数据I/O0 (DI), I/O1 (DO), I/O2 (/WP),和I/O3 (/HOLD)。SPI时钟频率高达80MHz的支持允许等效时钟率160MHz的双输出和320MHz的四次输出时,使用快速读双/四次输出指令。这些传输速率可与8位和16位并行闪存存储器相媲美。一个保持针,写保护针和可编程写保护,顶部或底部阵列控制,提供进一步的控制灵活性。此外,该设备支持JEDEC标准制造商和设备识别64位唯一序列号。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值