怎样用Arduino读取和写入外部EEPROM的数据

您需要的东西
eeprom - 24lc512
atmega328p-pu
16 mhz crystal
面包板
电阻器4.7k ohmx 2
电容器22 pfx 2
故事
eeprom 代表 e lectrically e rasable p 可编程 r ead- o nly m emory。
eeprom非常重要且有用,因为它是一种非易失性的内存形式。这意味着即使电路板断电,eeprom芯片仍然保留写入的程序。因此,当您关闭电路板然后重新打开电源时,可以运行写入eeprom的程序。所以基本上,无论如何,eeprom都存储并运行程序。这意味着您可以关闭设备,将其关闭3天,然后返回并打开设备,它仍然可以运行其中编程的程序。这就是大多数消费电子设备的工作方式。
该项目由lcsc赞助。我一直在使用lcsc.com的电子元件。 lcsc致力于以最优惠的价格提供各种真正的高品质电子元件,并通过遍布200多个国家的全球运输网络。
eeprom也非常高效传统eeprom中的各个字节可以独立读取,擦除和重写。在大多数其他类型的非易失性存储器中,这是不可能做到的。
像microchip 24系列eeprom这样的串行eeprom器件允许您为任何可以说i²c的器件添加更多存储器。
eeprom基础知识
microchip 24lc2512芯片可以采用8引脚dip封装。 24lc512上的引脚非常直接,包括电源(8),gnd(4),写保护(7),scl/sda(6,5)和三个地址引脚(1,2,3)。
rom的简史
早期的“存储程序”类型的计算机 - 例如桌面计算器和键盘解释器 - 开始以二极管矩阵rom的形式使用rom。这是一个由分散的半导体二极管组成的存储器,放置在特殊组织的pcb上。随着集成电路的出现,这让位于mask rom。掩模rom很像二极管矩阵rom,只是它的实现规模要小得多。然而,这意味着你不能只用烙铁移动几个二极管并重新编程。掩模rom必须由制造商编程,此后不可更改。
不幸的是,mask rom价格昂贵并且需要很长时间才能生产,因为每个新程序都需要一个由铸造厂生产的全新设备。然而,在1956年,这个问题通过prom(可编程rom)的发明得以解决,prom允许开发人员自己编写芯片。这意味着制造商可以生产数百万个相同的未编程设备,使其更便宜,更实用。但是,prom只能使用高压编程设备写入一次。在编程prom器件之后,无法将器件恢复到未编程状态。
1971年随着eprom(可擦除可编程rom)的发明而改变了 - 除了在首字母缩写词中添加另一个字母 - 带有擦除设备的能力,并使用强大的紫外光源将其恢复到“空白”状态。那是对的,你必须在ic上发出明亮的光线才能重新编程,这有多酷?好吧,事实证明它非常酷,除非你是一个开发固件的开发人员,在这种情况下,你真的希望能够使用电子信号重新编程设备。随着eeprom(电可擦除可编程rom)的发展,这终于在1983年成为现实,我们到达了当今笨拙的首字母缩略词。
eeprom的怪癖
eeprom作为一种方法存在两个主要缺点数据存储。在大多数应用中,优点超过了缺点,但在将eeprom纳入下一个设计之前,您应该了解它们。
首先,使eeprom工作的技术也限制了它的可用次数被重写。这与电子被困在构成rom的晶体管中并累积直到“1”和“0”之间的电荷差异无法识别有关。但不用担心,大多数eeprom的最大重写次数为100万或更多。只要你没有连续写入eeprom,你就不可能达到这个最大值。
其次,如果你从中断电源,eeprom将不会被删除,但它不能保留在你的数据无限期。电子可以漂移出晶体管并通过绝缘体,随着时间的推移有效地擦除eeprom。也就是说,这通常会在几年内发生(虽然它可以通过加热加速)。大多数制造商表示,在室温下,您的数据在eeprom上安全10年或更长时间。
在为项目选择eeprom器件时,还应记住一件事。 eeprom容量以位而不是字节来度量。 512k eeprom将保存512k位数据,换句话说,只有64kb。
arduino硬件连接
好了,现在我们知道了什么是eeprom,让我们挂起来看看它能做些什么!为了让我们的设备说话,我们需要连接电源和i²c串行线。该器件特别在5vdc下运行,因此我们将它连接到arduino uno的5v输出。此外,i²c线路需要上拉电阻才能正常通信。这些电阻的值取决于线路的电容和您想要通信的频率,但非关键应用的一个好的经验法则就是将其保持在kω范围内。在本例中,我们将使用4.7kω上拉电阻。
此器件上有三个引脚用于选择i²c地址,这样就可以在总线上有多个eeprom,并以不同的方式对它们进行寻址。您可以将它们全部接地,但我们将对它们进行布线,以便我们可以在本教程的后面部分使用更高容量的设备。
我们将使用面包板将所有内容连接在一起。下图显示了大多数i²ceeprom器件的正确连接,包括我们销售的microchip 24系列eeprom。
阅读和写作
大多数情况下,当您将eeprom与微控制器结合使用时,您实际上不需要同时查看存储器的所有内容。您只需根据需要在此处读取和写入字节。但是,在这个例子中,我们要将整个文件写入eeprom,然后将其全部读回,以便我们可以在计算机上查看。这应该让我们对使用eeprom的想法感到满意,并让我们感觉有多少数据可以真正适合小型设备。
写点东西
我们的示例草图将简单地取出任何字节串行端口并将其写入eeprom,跟踪我们写入内存的字节数。
将一个字节的内存写入eeprom通常分三步进行:
发送要写入的内存地址的最高有效字节。
发送要写入的内存地址的最低有效字节。
发送您想要存储在此位置的数据字节。
可能有一些关键词可以解释:
记忆地址
如果你想象512 kbit eeprom中的所有字节从0开始排成一行到64000 - 因为一个字节有8位,因此你可以在512 kbit eeprom上安装64000字节 - 然后一个存储器地址就是你找到一个特定字节的位置。我们需要将该地址发送到eeprom,以便它知道放置我们发送的字节的位置。
最重要和最不重要的字节
因为256 kbit eeprom中有32000个可能的位置 - 并且因为255是可以在一个字节中编码的最大数字 - 我们需要以两个字节发送该地址。首先,我们发送最高有效字节(msb) - 在这种情况下的前8位。然后我们发送最低有效字节(lsb) - 第二个8位。为什么?因为这是设备期望接收它们的方式,所以就是这样。
页面写作
一次写一个字节很好,但是大多数eeprom设备都有一个叫做“页面写缓冲区”的东西,可以让你写多个每次字节的方式与单个字节的方式相同。我们将在示例草图中利用这一点。
eeprom使用内部计数器,它会在接收到的每个后续数据字节时自动增加内存位置。一旦发送了内存地址,我们就可以使用最多64个字节的数据。 eeprom(正确地)假定地址312后跟10个字节将在地址312处记录字节0,在地址313处记录字节1,在地址314处记录字节2,依此类推。
读取东西
从eeprom读取基本上遵循与写入eeprom相同的三步过程:
发送要写入的存储器地址的最高有效字节。
发送要写入的内存地址的最低有效字节。
询问该位置的数据字节。

村田宣布明年1至4月MLCC不涨价
废旧电池种类归纳
三星供应OLED面板,任天堂计划推出Switch游戏主机
电源开关轻触开关拨动开关集成库合集
正弦波发生电路原理
怎样用Arduino读取和写入外部EEPROM的数据
Tina Linux图形系统开发指南
德索fakra线束耐高压性能要采取的4个措施
比特币价格飙升单价突破2000美元 全因勒索病毒助力?
三星华为暂停向高通支付专利费 要求重新谈判费率
整流二极管在电子电路中的主要作用
三星发布百万QLED 8K电视 8K电视启蒙爬升期已经降临
选购消费级路由器技巧!
基于数之能工业数据云平台实现数据监控与智能管理
利用业内首个16位分辨率的双通道器件提高准确性
华为又来新机华为nova2曝光:新一代麒麟660+双摄 PK骁龙660!
三星电视将在2021年配备太阳能遥控器
小基站:5G最具特征的接入场景
江苏丰海荣获2018年度中国电力优质工程奖
博威合金出席CSPT2022,推出半导体封测铜合金优质解决方案