Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >EEPROM的详细分析

EEPROM的详细分析

作者头像
数字积木
发布于 2021-04-15 02:46:59
发布于 2021-04-15 02:46:59
1.5K0
举报
文章被收录于专栏:数字积木数字积木

本例的EEPROM型号为AT24CM01,在电路中的引脚连接如下图所示:

1,该器件的特性如下:

  • 时钟支持标准模式(100KHZ),快速模式(400KHZ),极快速模式(1MHz)。
  • 支持标准电压(VCC=2.5v-5.5v),低压模式(VCC= 1.7v-5.5v)。
  • 工业级温度范围:-40℃至85℃。
  • 内部容量为1Mbit(131072*8bit)
  • 双向数据传输端口。
  • 256字节页写入模式。

--允许字节写入和部分页写入。

  • 随机读和按顺序读数据。
  • 内置错误检测和校正。
  • 高可靠性:

--1,000,000次写入。

--数据保持100年。

2,该芯片的引脚分布(两种不同的封装)

引脚名称

描述

NC

不连接

A1

器件地址输出1

A2

器件地址输入2

GND

电源地

VCC

电源

WP

写保护。1:开启写保护,禁止写入,0:正常写模式

SCL

串行数据线

SDA

串行数据线

如果A2,A1或WP引脚没有被外部驱动,它们在内部被拉到GND。

3,器件原理框图

从该器件的原理框图可以看出,该器件的SDA引脚是一个双向端口,并且输出端口为开漏输出,需要在引脚出接上上拉电阻才能输出高电平,组成线与逻辑。

该EEPROM的器件地址定义如下:

地址的高4位是预定义好的,值为"1010",bit3,bit2根据引脚A2,A1连接的电平来决定,在该设计中,A2,A1均为0,bit1位为寄存器地址的最高位(A16),bit0位为读写选择位。写时为0,读时为1。

该EEPROM的的寄存器地址为双字节,定义如下

首先发送寄存器地址的高8位字节地址,然后发送寄存器地址的低8位字节地址。

在一个电路中使用多个该芯片的电路连接:将各个芯片的数据线和地址线和主机的数据和地址线相连,同时外接上拉电阻。给不同的器件分配不同的器件地址(A1,A2),两个地址为最多可以分配4个地址,故一个主机IIC端口最多可以挂载4个该芯片。

器件的操作与通信:

IIC有一下操作状态:

空闲状态(IDLE):时钟和信号总线均为高。

开始信号(START):处理器让SCL时钟保持高电平,然后让SDA数据信号由高变低就表示一个开始信号。同时IIC总线上的设备检测到这个开始信号它就知道处理器要发送数据了。

停止信号(STOP):处理器让SCL时钟保持高电平,然后让SDA数据信号由低变高就表示一个停止信号。同时IIC总线上的设备检测到这个停止信号它就知道处理器已经结束了数据传输,我们就可以各忙各个的了,如休眠等。

数据传输:SDA上的数据只能在SCL为低电平期间翻转变化,在SCL为高电平期间必须保持稳定,IIC设备只在SCL为高电平期间采集SDA数据。

响应信号(ACK)单片机发完8bit数据后就不再驱动总线了(SDA引脚变输入),而SDA和SDL硬件设计时都有上拉电阻,所以这时候SDA变成高电平。那么在第8个数据位,如果外接IIC设备能收到信号的话接着在第9个周期把SDA拉低,那么处理器检测到SDA拉低就能知道外接IIC设备数据已经收到。IIC数据从最高位开始传输(小端传输)。

非应答信号(NAK):在连续读数据时,当读取完最后一个字节数据时,从机不产生响应信号。

该芯片支持字节写入和页写入(一次连续最多写入256个字节),字节写入的时序如下图所示,每写完成一个字节,从机都会有一个响应信号.

1,字节写入时序:

  1. 发送开始信号。
  2. 器件地址+写标志(0)。
  3. 等待器件应答。
  4. 写第一字节地址。
  5. 等待器件应答。
  6. 写第二字节地址。
  7. 等待应答。
  8. 写数字字节。
  9. 等待应答。
  10. 发送停止信号。

2,页写入时序图:

该器件支持3中模式的读操作:

当前地址读,

随机地址读,

顺序读取。

1,当前地址读

内部数据字地址计数器保存上次读或写操作期间访问的最后一个地址上增加一个地址。只要保持电源,此地址一直有效。被维持到这个部分。读取过程中的地址翻转是从最后一页的最后一个字节到内存第一页的第一个字节。

2,随机地址读取

3,顺序读取

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-08-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数字积木 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
STM32入门开发: 介绍IIC总线、读写AT24C02(EEPROM)(采用模拟时序)
IIC总线: STM32本身支持IIC硬件时序的,本文采用的是模拟时序,下篇文章就介绍配置STM32的IIC硬件时序读写AT24C02和AT24C08。
DS小龙哥
2022/01/12
2K0
STM32入门开发: 介绍IIC总线、读写AT24C02(EEPROM)(采用模拟时序)
利用IIC协议实现单片机对EEPROM的读和写操作
单片机的常用通信方式有IIC、SPI、UART等等。通信协议是指双方实体完成通信或服务所必须遵循的规则和约定。协议定义了数据单元使用的格式,信息单元应该包含的信息与含义,连接方式,信息发送和接收的时序,从而确保网络中数据顺利地传送到确定的地方。
飞哥
2020/07/10
2.6K0
利用IIC协议实现单片机对EEPROM的读和写操作
树莓派I2C接口技术及Python SMBus串行I2C EEPROM应用编程
文章目录 一、I2C接口技术 1.I2C总线系统组成 2.I2C总线的状态及信号 3.I2C总线基本操作 4.启动和停止条件 5.I2C总线数据传输格式 二、I2C总线上拉电阻的估算与选取 三、树莓派与AT24C02接口实验电路及Python SMBus串行I2C EEPROM应用编程 1.启动RPi串行I2C接口及安装Python SMBus库 2. 树莓派与AT24C02 EEPROM接口实验电路 3. Python SMBus库函数介绍 4. 使用I2C Tools及Python SMBus读写AT24C02 EEPROM 一、I2C接口技术 I2C接口是嵌入式系统中常用的网络接口之一,它采用串行通信方式将MCU/传感器连接到系统总线,通过主机/从机的方式协调工作。 I2C/IIC(Inter-Integrated Circuit)总线是由PHILIPS公司于1982年针对MCU/传感器等应用需求而研制的一种两线式串行总线,用于连接MCU及传感器等设备。 I2C总线的主要特点如下: (1)I2C总线最主要的优点是其简单性和有效性。 (2)由于接口直接在组件之上,因此I2C总线占用的空间非常小,减少了电路板的空间和芯片管脚的数量,降低了互联成本。 (3)I2C总线的长度可高达25英尺(约7.6m),并且能够以标准模式100Kbps的传输速率支持40个组件。新一代I2C总线还支持高速模式400Kbps传输。 (4)I2C总线的另一个优点是支持多主控(multi-mastering), 其中任何能够进行发送和接收的设备都可以成为主总线。一个主控能够控制信号传输和时钟频率。当然,在任何时间点上只能有一个主控。 1. I2C总线系统组成 I2C总线协议包含两层协议:物理层和数据链路层。 在物理层,I2C总线仅使用了两条信号线:一个是串行数据线SDA (Serial DAta line),它用于数据的发送和接收;另一个是串行时钟线SCL (Serial Clock Line)构成的串行总线,它用于指示何时数据线上是有效数据,即数据同步。MCU与被控IC之间、IC与IC之间进行双向传送,I2C标准模式最大传送速率为100kbps,I2C快速模式最大传输速率为400kbps。 在数据链路层,每个连接到I2C总线上的设备都有唯一的地址,设备的地址由系统设计者决定。在信息的传输过程中,I2C总线上并接的每一设备既是主设备(或从设备)又是发送器(或接收器),这取决于它所要完成的功能。 由I2C总线所构成的系统可以有多个I2C节点设备,并且可以是多主系统,任何一个设备都可以为主I2C;但是任一时刻只能有一个主I2C设备,I2C具有总线仲裁功能,以保证系统正确运行。主I2C设备发出时钟信号、地址信号和控制信号,选择通信的从I2C设备并控制收发。I2C总线要求:(1)各个节点设备必须具有I2C接口功能;(2)各个节点设备必须共地;(3)两根信号线必须接上拉电阻Rp。如图1所示。  图1 多I2C设备接口示意图 2. I2C总线的状态及信号 (1)空闲状态 SCL和SDA均处于高电平状态,即为总线空闲状态(空闲状态为何是高电平的道理很简单,因为它们都接上拉电阻)。 (2)占有总线和释放总线 若想让器件使用总线应当先占有它,占有总线的主控器向SCL线发出时钟信号。数据传送完成后应当及时释放总线,即解除对总线的控制(或占有),使其恢复成空闲状态。 (3)启动信号[S] 启动信号由主控器产生。在SCL信号为高时,SDA产生一个由高变低的电平变化,产生启动信号。 (4)结束/停止信号[P] 当SCL线高电平时,主控器在SDA线上产生一个由低电平向高电平跳变,产生停止信号。启动信号和停止信号的产生见图2所示。  图2 启动信号和停止信号的产生 (5)应答/响应信号[A/NA] 应答信号是对字节数据传输的确认。应答信号占1位,数据接收者接收1字节数据后,应向数据发出者发送一个应答信号。对应于SCL第9个应答时钟脉冲,若SDA线仍保持高电平,则为非应答信号(NA/ACK)。低电平为应答,继续发送;高电平为非应答,结束发送。 (6)控制位信号[R/nW] 控制位信号占1位,IIC主机发出的读写控制信号,高为读、低为写(对IIC主机而言)。控制位(或方向位)在寻址字节中给出。 (7)地址信号 地址信号为从机地址,占7位,称之为“寻址字节”(见表1)。 表1 寻址字节  下面对表1中的各字段进行说明。 器件地址(DA3-DA0):DA3-DA0是I2C总线接口器件固有的地址编码,由器件生产厂家给定,如AT24C××I2C总线EEPROM器件的地址为1010等。 引脚地址(A2、A1、A0):引脚地址由I2C总线接口器件的地址引脚A2、A1、A0的高低来确定,接高电平者为1,接地者为0。 读写控制位/方向位(R/n W):R/nW为1表示主机读,R/nW为0表示主机
用户7886150
2020/12/30
1.3K0
STM32入门开发: 采用IIC硬件时序读写AT24C08(EEPROM)
IIC总线: STM32本身支持IIC硬件时序的,上篇文章已经介绍了采用IIC模拟时序读写AT24C02,这篇文章介绍STM32的硬件IIC配置方法,并读写AT24C08。
DS小龙哥
2022/01/12
2.2K0
STM32入门开发: 采用IIC硬件时序读写AT24C08(EEPROM)
4.6 51单片机-EEPROM存储芯片(AT24C02)
实验板上的EEPROM型号是AT24C02N,通信接口是IIC,接在单片机的P2.1(SCL)和P2.2(SDA) 口上。
DS小龙哥
2022/01/10
2.8K0
4.6 51单片机-EEPROM存储芯片(AT24C02)
源码系列:基于FPGA的 IIC 设计(附源工程)
大侠好,欢迎来到FPGA技术江湖,江湖偌大,相见即是缘分。大侠可以关注FPGA技术江湖,在“闯荡江湖”、"行侠仗义"栏里获取其他感兴趣的资源,或者一起煮酒言欢。
FPGA技术江湖
2020/12/29
1.4K0
源码系列:基于FPGA的 IIC 设计(附源工程)
IIC通信协议总结(详细说明完整过程)
IIC(inter-integrated Circuit集成电路总线)总线支持设备之间的短距离通信,用于处理器和一些外围设备之间的接口,它需要两根信号线来完成信息交换。IIC的一个特殊工艺优势是微控制器只需要两个通用I/O引脚和软件即可控制芯片网络。IIC最早是飞利浦在1982年开发设计并用于自己的芯片上,一开始只允许100Khz、7-bit标准地址,1992年,IIC的第一个公共规范发行,增加了400Khz的快速模式以及10bit地址扩展。
全栈程序员站长
2022/08/15
3.5K0
IIC通信协议总结(详细说明完整过程)
【STM32】HAL库 STM32CubeMX教程十二—IIC(读取AT24C02 )
本系列教程将HAL库与STM32CubeMX结合在一起讲解,使您可以更快速的学会各个模块的使用
全栈程序员站长
2022/06/27
4.7K0
【STM32】HAL库 STM32CubeMX教程十二—IIC(读取AT24C02 )
4.8 51单片机-PCF8591(ADC/DAC)转换芯片
通过原理图得到的重要信息: PCF8591芯片地址线全部接GND。也就是当前模块的地址固定为: 1001000
DS小龙哥
2022/01/10
3.9K0
4.8 51单片机-PCF8591(ADC/DAC)转换芯片
串口通信系列(二)、I2C通信方式
IIC全称为Inter Integrated Circuit:两根通信线:一根时钟线SCL一根数据线SDA,只有一根数据线,所以是半双工通信。数据的传输速率在标准模式下可达100kbit/s,在快速模式下可达400kbit/s,高速模式下可达3.4Mbit/s。
根究FPGA
2020/06/30
3.8K0
串口通信系列(二)、I2C通信方式
从IIC实测波形入手,搞懂IIC通信
玩单片机的朋友都知道IIC通信这个工具,但好多人只是会用,内部的原理不求甚解,或是想要了解其原理,但却对抽象的时序描述一头雾水。本文将从实测的IIC波形入手,带你看到真实的IIC样子,进而去理解IIC的通信原理。
xxpcb
2020/08/04
4.7K0
IIC支持热拔插吗?(附有详细CW32 IIC协议解读)
好问题,你看见这个标题就觉得有意思是吧?我经常就想着能不能系统里面可以方便的添加硬件模块,然后系统马上就可以检测并使用。
云深无际
2025/01/07
1720
IIC支持热拔插吗?(附有详细CW32 IIC协议解读)
BH1750光照传感器超详细攻略(从原理到代码讲解,看完你就懂了)
大家好,我是架构君,一个会写代码吟诗的架构师。今天说一说BH1750光照传感器超详细攻略(从原理到代码讲解,看完你就懂了),希望能够帮助大家进步!!!
Java架构师必看
2022/08/09
2K0
BH1750光照传感器超详细攻略(从原理到代码讲解,看完你就懂了)
IIC协议长文详解-解惑版
嵌入式的世界里面有几个经典的协议:IIC,SPI,UART,CAN,1-WIRE,这些协议都是低速的,而且而是必须要掌握的内容,经常在使用和面试中出现。
云深无际
2024/08/20
4020
IIC协议长文详解-解惑版
STM32通信模拟 I2C
I²C(Inter-Integrated Circuit),常读作“I方C”,它是一种多主从架构串行通信总线。在1980年由飞利浦公司设计,用于让主板、嵌入式系统或手机连接低速周边设备。如今在嵌入式领域是非常常见通信协议,常用于MPU/MCU与外部设备连接通信、数据传输。
韦东山
2022/05/09
1.1K0
STM32通信模拟 I2C
详述I2C总线协议、时序,入门不再是难事
在生活中,经常会碰到设备掉电的情况,像手机,智能手环,电脑等等;但是存储的东西不会丢失,比如电话号码,短信消息,记事本,微信,QQ信息等等均会被保存下来;恢复出厂设置后,这些东西才会消失;
杨源鑫
2021/07/07
2.7K0
详述I2C总线协议、时序,入门不再是难事
IIC接口下的24C02 驱动分析
诺谦
2018/01/08
1.3K0
IIC接口下的24C02 驱动分析
自己动手DIY一台2.4G简易频谱仪
作为一名电子爱好者,自己动手制作一些简单的硬件小设备还是非常有趣的。我之前也是发布了《制作HackCube中的坎坎坷坷》。这次带来的是一个简易的频谱仪。
FB客服
2020/02/20
2.7K0
自己动手DIY一台2.4G简易频谱仪
MCP3421-18bit ADC 调试
MicroChip的芯片手册真的好看,恨不得都做笔记,今天这篇文章先对IIC协议进行了一个回顾,针对具体的数据手册逐位描述。
云深无际
2024/08/20
1040
MCP3421-18bit ADC 调试
三大通信协议(二):IIC通信协议
主设备和从设备进行数据传输时遵循以下协议格式。 数据通过一条SDA数据线在主设备和从设备之间传输0和1的串行数据。串行数据序列的结构可以分为,开始条件,地址位,读写位,应答位,数据位,停止条件,具体如下所示;
全栈程序员站长
2022/08/22
2K0
三大通信协议(二):IIC通信协议
推荐阅读
相关推荐
STM32入门开发: 介绍IIC总线、读写AT24C02(EEPROM)(采用模拟时序)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档