0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何使用Adafruit FRAM存储器

454398 来源:网络整理 作者:网络整理 2019-11-13 17:19 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

第1步:构建测试板

我使用了带有IC2 FRAM突破口的5V Arduino Mini Pro,因为我的相机滑条上的处理器和FRAM芯片可以使用3.3v或5v逻辑。请注意,用于驱动I2C的A4和A5引脚在Mini芯片的边缘上不可用,但位于芯片的中央。您将需要添加电线来访问这些电线(或仅使用Uno进行测试)。

接线很简单。将Arduino上的A4连接到FRAM上的SDA,将A5连接到SCL。添加接地和5V(Vcc)的连接,即可开始编程

注意:仅仅因为您正在使用I2C作为存储芯片,并不意味着您也不能使用它来驱动LCD屏幕和/或电动机护罩。只要确保每个程序集的地址都不同即可。如果您都是从同一制造商那里购买的,则可能还可以。否则,您可能需要更改地址。大多数董事会都有一种相当容易做到这一点的方法。

第2步:编程Arduino

在此处下载并安装库Adafruit库,并查看其示例。

FRAM库附带的示例非常简单,但是您可能需要运行它以显示一切正常。确定可以正常工作之后,您可以上传我的草图进行尝试。

我添加的两个函数负责保存值并检索它们。 writeMem()函数将要保存的值和保存地址作为输入。接下来,将该值除以256。该数字(MSB =最高有效字节)和余数或模(LSB =最低有效字节)存储在2个单独的存储器地址中。传递函数的地址(在我的示例中,我使用地址10)和下一个顺序地址11存储2个字节。如果要传递多个值进行存储,请确保跳过它们之间的地址,以免覆盖第一个数字的第二个字节。

readMem()是使用2地址中的第一个调用的。同样,我的示例使用地址10。通过将MSB乘以256并将其添加到LSB,可以检索MSB和LSB,并重新构造完整值。

不需要二进制或十六进制数学。。..将其存储并检索。..就是这样!

步骤3:运行示例

在我的示例中,我使用for循环将值存储到一对地址,然后检索这些值,重新构造原始值,然后显示它。然后,我增加该值并再次执行此操作。我将存储并检索的第1000个值发送到串行监视器,因此请打开监视器以查看发生了什么。根据Adafruit的说法,该芯片上的内存可延长其读写寿命。这与Arduino的内存不同,后者具有有限的R/W周期。

我设计的方法最多只能保存65355的值。如果将for循环中的值更改为65355以上,将会看到会发生什么。

问题之一我遇到的是处理各种可变数据类型及其限制。重构后的值一直认为它是整数,因此在滚动到负数之前,它将仅容纳未签名整数的一半。通过编写函数并来回传递值,我发现我的数据类型发生了意外的变化,因此在处理数据时要格外小心。

我在草图中保留了Adafruit的内存转储示例,但发挥了作用。如果您希望它运行,请取消注释草图顶部附近的“//#define dumpMemory”行,它将以16进制的速度将内存缓慢地转储到监视器中。

责任编辑:wv

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 存储器
    +关注

    关注

    39

    文章

    7716

    浏览量

    170932
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    双口SRAM静态随机存储器存储原理

    在各类存储设备中,SRAM(静态随机存储器)因其高速、低功耗和高可靠性,被广泛应用于高性能计算、通信和嵌入式系统中。其中,双口SRAM静态随机存储器凭借其独特的双端口设计,在高带宽和多任务场景中表现尤为出色,成为提升系统效率的重
    的头像 发表于 11-25 14:28 151次阅读

    芯源的片上存储器介绍

    片上FLASH 闪存由两部分物理区域组成:主FLASH 存储器和启动程序存储器。 ●● 主 FLASH 存储器,共 64KB,地址空间为 0x0000 0000 - 0x0000 FFFF。该区
    发表于 11-12 07:34

    ​​富士通FRAM宽电压设计简化LED显示电源方案​

    富士通256Kbit FRAM MB85RS256BPNF-G-JNERE1为LED显示系统提供高速、高耐久性数据存储方案,支持纳秒级写入与10^12次擦写,解决传统存储器延迟高、寿命短问题,适用于智能交通、户外广告等严苛环境,
    的头像 发表于 09-11 09:45 412次阅读
    ​​富士通<b class='flag-5'>FRAM</b>宽电压设计简化LED显示电源方案​

    简单认识高带宽存储器

    HBM(High Bandwidth Memory)即高带宽存储器,是一种基于 3D 堆叠技术的高性能 DRAM(动态随机存取存储器)。其核心设计是通过硅通孔(TSV)和微凸块(Microbump
    的头像 发表于 07-18 14:30 2507次阅读

    揭秘非易失性存储器:从原理到应用的深入探索

      非易失性存储器是一种应用于计算机及智能手机等设备中的存储装置(存储器),其特点是在没有外部电源的情况下仍能保存数据信息。本文将介绍非易失性存储器的类型、特点及用途。 什么是非易失性
    的头像 发表于 02-13 12:42 2281次阅读
    揭秘非易失性<b class='flag-5'>存储器</b>:从原理到应用的深入探索

    存储器的分类及其区别

    初学者要了解SDRAM需要先了解存储器分类。按照存储器存储功能划分,可将其分为RAM 和 ROM 两大类。
    的头像 发表于 02-08 11:24 3816次阅读
    <b class='flag-5'>存储器</b>的分类及其区别

    闪速存储器属于RAM还是ROM,闪速存储器一般用来做什么的

    在数字存储技术的快速发展中,闪速存储器(Flash Memory)以其独特的性能和广泛的应用领域,成为了连接随机存取存储器(RAM)与只读存储器(ROM)之间的重要桥梁。本文将深入探讨
    的头像 发表于 01-29 16:53 1586次阅读

    闪速存储器属于RAM还是ROM,闪速存储器有哪些功能和作用

    本文旨在深入探讨闪速存储器的归属问题,即它是否属于RAM或ROM,同时详细阐述闪速存储器的功能与作用。
    的头像 发表于 01-29 15:21 1512次阅读

    闪速存储器的闪速是指什么,闪速存储器的速度比内存快吗

    闪速存储器之所以得名“闪速”,主要源于其擦除操作的高效性。传统的EPROM(可擦除可编程只读存储器)和EEPROM(电可擦除可编程只读存储器)在擦除数据时,往往需要较长的时间,且操作相对繁琐。而闪速
    的头像 发表于 01-29 15:14 1313次阅读

    闪速存储器是u盘吗,闪速存储器一般用来做什么的

    在信息技术飞速发展的今天,闪速存储器(Flash Memory)以其高速度、大容量和非易失性的特性,成为数据存储领域的重要成员。而U盘,作为闪速存储器的一种常见应用形式,更是凭借其便携性和易用性,在
    的头像 发表于 01-29 15:12 1378次阅读

    高速缓冲存储器是内存还是外存,高速缓冲存储器是为了解决什么

    高速缓冲存储器(Cache)是内存的一种特殊形式,但它与通常所说的主存储器(RAM)有所不同。在计算机存储体系中,Cache位于CPU和主存储器之间,用于
    的头像 发表于 01-29 11:48 3185次阅读

    舜铭存储FRAM SF24C512(MB85RS512)用于工程机械仪表

    舜铭存储FRAM SF24C512(MB85RS512)用于工程机械仪表
    的头像 发表于 12-26 09:48 809次阅读
    舜铭<b class='flag-5'>存储</b><b class='flag-5'>FRAM</b> SF24C512(MB85RS512)用于工程机械仪表

    EMMC存储器故障检测及解决方案

    随着技术的发展,EMMC存储器因其高速、大容量和低功耗的特性,已经成为移动设备和嵌入式系统的首选存储解决方案。然而,任何技术都有可能出现故障,EMMC存储器也不例外。 一、EMMC存储器
    的头像 发表于 12-25 09:39 7312次阅读

    EMMC存储器应用场景分析

    EMMC存储器概述 EMMC存储器是一种基于NAND闪存技术的存储卡,它集成了闪存芯片和控制,提供了一种即插即用的存储解决方案。与传统的N
    的头像 发表于 12-25 09:26 3880次阅读

    MSP430存储器编程用户指南

    电子发烧友网站提供《MSP430存储器编程用户指南.pdf》资料免费下载
    发表于 12-19 15:34 0次下载
    MSP430<b class='flag-5'>存储器</b>编程用户指南