本实例旨在梳理W25Q128BV基本使用流程,不是涵盖其全功能,也不针对任何平台,具有通用性!
大家都知道芯片数据手册太多且太繁琐,不涉及特殊需求时而我们实际使用的仅仅是其中很小的一部分功能;
现在以W25Q128BV为例进行分析,可推广至其他芯片;
第一步:硬件初始化,即init;
这里的硬件初始化是指初始化芯片W25Q128BV,而不是MCU的GPIO初始化,MCU对应W25Q128BV GPIO初始化应该在此之前;
W25Q128BV中的初始化为reset指令,分别为0x66和0x99指令,通过SPI将这两个指令发送给W25Q128BV 即可;
好的初始化一般含有初始化反馈,通过读取状态指令可得到该结果,读取状态指令为0x05,通过SPI将这个指令发送给W25Q128BV 即可,返回值中S0位进行判断,若为1即为BUSY,若为0即为空闲;
第二步:读设备号
W25Q128BV中的读设备号指令,分别为0x90指令,通过SPI将这个指令和地址0x000000发送给W25Q128BV ,返回的数据即为ID,且大端在前;
第三步:擦除块
W25Q128BV中的擦除扇区的指令为0x20,通过SPI将这个指令和需要擦除扇区的24bit地址0xXXXXXX发送给W25Q128BV即可;
擦除是否成功,擦除过程中可能失败,失败的表现为超时,与第一步中相同还是