虽然说使用EEPROM保存参数很有效,但操作及使用次数均有一下限制。当我们的一些参数需要不定时修改或存储时,使用FRAM就更为方便一点。这一节我们就来设计并实现FM24xxx系列FRAM的驱动。
1、功能概述
我们首先说一下铁电随机存取存储器,F-RAM是非易失性的,其读写操作与RAM类似。它提供了151年的可靠数据保存,同时消除了由EEPROM和其他非易失性内存引起的复杂性、开销和系统级可靠性问题。
1.1、硬件描述
FM24xxx系列FRAM存储器拥有从4K到1M的各种容量。虽然不同型号的FM24xxx系列FRAM存储器内部存储矩阵存在差异,但都采用了相同的封装和引脚排布。具体的引脚分布如下图:

FM24xxx系列FRAM存储器与EEPROM不同,F-RAM以总线速度执行写操作。没有发生写延迟。数据在每个字节成功传输到设备后立即写入内存数组。下一个总线循环可在不需要进行数据轮询的情况下开始。此外,与其他非易失性存储器相比,该产品具有较强的写持久性。此外,F-RAM在写期间的功耗比EEPROM低得多,因为写操作不需要在内部提高写电路的电源电压。F-RAM能够支持10的14次方个读/写周期,或比EEPROM多1亿倍的写周期。
这些功能使得FM24xxx系列FRAM存储器非常适合非易失性内存应用程序,因为它需要频繁或快速的写操作。例如,数据日志记录(写入周期的数量可能至关重要)和严格的工业控制(EEPROM的长写入时间可能导致数据丢失)。这些特性的组合允许更频繁地编写数据,同时减少系统的开销。
1.2、通讯接口
FM24xxx系列FRAM存储器采用I2C通讯接口。其设备地址的前4位固定为1010b,后3位则用于设备地址或页面地址,所以若后3为均用于设备地址则在同一条I2C总线上最多可以带8个同类设备。其与主机之间的连接是以图如下所示:

FM24xxx系列FRAM存储器采用8位或者16位内存地址,对于不同的存储容量,寻址的最终范围当然是不同的,其寻址范围为从512到131072不等。关于设备地址与内存地址的分配不同型号和容量的FM24xxx系列FRAM存储器是不一样的。具体分配如下图所示:

从上表我们很容易明白,设备地址的低3位的定义决定了在同一条I2C总线上,最多可以挂载多少个FM24xxx设备。有3位用于设备地址则最多可挂载8个设备;有2位用于设备地址则最多可挂载4个设备;有1位用于设备地址则最多可挂载2个设备;有0位用于设备地址则最多可挂载1个设备。需要注意的是,不同定义的位的设备混用于同一总线时,相同的定义位必须一样,否则用作寄存器地址的位可能让总线上的总线无法识别。
2、驱动设计与实现
我们在前面一节已经简要的描述了FM24xxx FRAM存储器的读写操作方式,在这一节我们将设计并实现FM24xxx FRAM存储器的驱动程序。
2.1、对象的定义
在使用一个对象之前我们需要获得一个对象。同样的我们想要FM24xxx FRAM存储器就需要先定义FM24xxx FRAM存储器的对象。

本文详细介绍了FM24xxx系列FRAM存储器的硬件特性和通讯接口,以及如何设计和实现其驱动程序。FM24xxx采用I2C通讯,具有高速写入和长久的读写周期,适用于需要频繁修改和存储数据的场景。驱动设计包括对象定义、初始化、写操作和读操作,还包括休眠模式操作。通过实例展示了如何声明、初始化对象并进行读写操作。
最低0.47元/天 解锁文章
1164





