这次来分享最近经常用到的知识点----FLASH
初学者会疑惑,有了EEPROM为什么还要用W25Q64呢?(笔者一开始就百思不得其解)
答:
EEPROM和W25Q64都是用于数据存储的存储器,它们各有优缺点,需要根据具体应用场景选择适合的存储器。
EEPROM(Electrically Erasable Programmable Read-Only Memory)是一种非易失性存储器,可以实现对少量数据的读写,例如存储一些配置参数、校准系数等。EEPROM的主要优点在于:
-
低功耗:EEPROM的进行数据读写时消耗的功耗比较低。
-
容量小:EEPROM的容量相对较小,一般在几千字节到几十KB之间。
-
随机访问:EEPROM可以随机访问任意地址的数据。
-
数据可靠性高:由于EEPROM是非易失性存储器,所以它的数据可以长时间保持,并且不会因为断电或者其它故障导致数据丢失。
而W25Q64是一种闪存存储器,它主要用于存储大量数据,例如程序代码、文件系统等。W25Q64的主要优点在于:
-
大容量:W25Q64的容量通常达到数MB甚至数十MB。
-
快速读写:W25Q64的读写速度比EEPROM快很多,能够满足更高速度的数据存储需求。
-
顺序读写:W25Q64的操作基于页面(page)而不是字节,所以它的读写速度比EEPROM更快。
因此,如果您需要存储大量数据或者实现更高速度的数据存取,那么W25Q64是一个更好的选择。反之,如果您只需要存储少量数据并且需要随机访问这些数据,那么EEPROM可能会更适合。
注:上面的问Chatgpt的回答。
下面来大致的认识一下它,我们看下 SPI 内部结构简易图,如下图所示:
SPI 接口一般使用 4 条线通信,事实上只需 3 条线也可以进行 SPI 通信(单向传输时),其中 3 条为 SPI 总线(MISO、MOSI、SCLK),一条为 SPI 片选信号线(CS)。它们的作用如下:
MISO:主设备输入/从设备输出引脚。主机从这条信号线读入数据,从机的数据由这条信号线输出到主机,即在这条线上数据的方向为从机到主机。
MOSI:主设备输出/从设备输入引脚。主机的数据从这条信号线输出,从机由这条信号线读入主机发送的数据,即这条线上数据的方向为主机到从机。
SCLK:时钟信号线,用于通信数据同步。它由主机产生,决定了通信的速率,不同的设备支持的最高时钟频率不一样,如 STM32 的 SPI 时钟频率最大为fpclk/2,两个设备之间通讯时,通讯速率受限于低速设备。
CS:从设备选择信号线,常称为片选信号线,也称为 NSS 或 CS。
SPI 使用 MOSI 及 MISO 信号线来传输数据,使用 SCK 信号线进行数据同步。 MOSI 及 MISO 数据线在 SCK 的每个时钟周期传输一位数据,且数据输入输出是同时进行的。数据传时, MSB 先行或 LSB 先行并没有作硬性规定,但要保证两个 SPI 通讯设备之间使用同样的协定,一般都会采用 MSB 先行模式。
SPI 主要特点有:可以同时发出和接收串行数据;可以当作主机或从机工作;提供频率可编程时钟;发送结束中断标志;写冲突保护;总线竞争保护等。
与 I2C 总线相比它的缺点是:没有指定的流控制,没有应答机制确认是否接收到数据。
待续...