Linux AT24C256芯片 数据手册解读
文章目录
- AT24C256 地址
- AT24C256页
- AT24C256写操作
- AT24C02读操作
- 注意
AT24C256 地址
前四位(1010)是固定的,A2, A1, A0 与硬件连接有关系,外部输入电压为高时是1,外部电压输入为低是0。
本设计中A2, A1, A0都是接地,所以我的设备地址是1010000X,也就是10100000 或10100001。
最后一位R/W是读写位,读操作时为0,写操作时为1。
对于linux IIC子系统,读写位驱动会自动添加,实际设备地址位高七位 1010000B 也就是0x50。
AT24C256页
这里需要特别注意EEPROM的页操作,在24C256中,存储空间是 64bytr * 512page = 32768 byte, 其中它被分为512页,每页 64 byte。
在进行页操作的时候,word address的低6位用来表示页内的地址,其它所有高位表示页地址。
比如word address =0 0000 0001 000001B,表示第1页的第一个地址。现在如果往0 0000 0001 000001B的存储地址写入64个数值:1,2,3,… ,64,当写到数值63时,第一页已经写满,那么64会被写到第一页的0地址位置。这时会把第一页0位置的信息被覆盖。
关于IIC EEPROM 页写问题
无论从那个地址连续写,不能超过(跨过)一整页。
AT24CXX 系列的 EEPROM 为了提高写效率,提供了页写功能,内部有个一页大小的写缓冲RAM,地址范围当然就是从00到一页大小,发生写操作时,开始送入的地址对应的页被选中,并将其内容映像到缓冲RAM,数据从低端地址对应的缓冲RAM地址开始修改,超过这个地址范围就回到00,写完后,就会把开始确定的 EEPROM 页擦除,再把一整页RAM数据写入。所有写数据都发生在开始写地址时确定的页上。
如页容量为128,一页都是从00开始按128字节分成一个个的页,0页就是0~ 7F,1页就是80~ FF,类推,边界就是128字节的整数倍地址。页RAM的地址范围为7位00~ 7F,写入时高端地址就是页号。发生写操作,开始送入的地址对应的页被锁存,后续不论写多少,都在这个页中,只是一个页内的地址进行加一,超过就归零开始。从F0开始写32个字节,那么开始送入的地址为F0,就会锁定在1号页(第2个页)上,底端7位页内部地址开始从70H开始写,到达7F时回到00再到10H,也就是写在了F0FF,808F。也就是,从01开始写也只能到7F,再往80写就跑到00上去了,这就是写操作的翻卷,datasheet上都有说明。就是从边界前写两个字节也要分两次写。
页是绝对的,按整页大小排列,不是从开始写入的地址开始算。
读没有页的问题,可以从任意地址开始读取任意大小数据,只是超过整个存储器容量时地址才回卷。但一次性访问的数据长度也不要太大。
所以分页的存储器要做好存储器管理,尽量同时读写的数据放在一个页上。
AT24C256写操作
写操作分为一个字节写和分页写,时序如下图。
一个字节写时序:
发送开始信号
->发送设备地址
->等待ACK
->发送需要写入的地址
->等待ACK
->发送需要写入的数值
->等待ACK
->发送停止信号。
分页写时序与写一个字节基本相同,只是在发送第一个需要写入的数据之后不发送停止信号,继续发送数据,直到数据发送完之后再发停止信号。
AT24C02读操作
读操作分为:从当前地址读;随机地址读;连续地址读;
解析:
当前地址读:24c256内部的data word address 会保存上次读或是写的存储地址,当执行当前地址读时,读取的是data word address counter + 1地址上的指。这里需要主要,在页尾时会出现地址翻转,实际会读取到该页的第一个字节数据。与上面提到的也写操作中的一样。data word address 中保存的值掉电就会丢失。
随机地址读取:注意上图中的Dummy Write。随机读实际上是通过写入一个地址改变eeprom里面data word address 的值,然后再进行当前地址读。
连续读:
连续读由当前地址读和随机地址读启动,只要给eeprom 一个应答信号,他的data word address 就会增加,主控器就可以继续读数据,直到data word address 增加到一个页的末尾后,又回到该页的起始位置地址。当接收到IIC的停止信号的时候结束传输。
注意
最后eeprom 还有一个WP 控制引脚。该引脚为低电平的时候,可以正常的读写数据。当该引脚为高电平的时候。eeprom进入写保护模式。这时数据是写不进去的。
Linux AT24C256芯片 数据手册解读相关推荐
- SPI Flash芯片W25Q32英文版数据手册解读(三)---------程序编写,电路应用
一.序言 序言对这篇文章进行一个总体的说明: 1.这部分是根据手册写程序,因此采用手册截图+程序截图的形式,对图片不进行标号,而且对重点部分进行颜色标注. 2.考虑到很多读者(包括我),使用手机看文章 ...
- CH438Q芯片详细解读
CH438Q芯片详细解读 提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 目录 CH438Q芯片详细解读 文章目录 前言 一.CH438Q简介 1,简介 2,特点 3,引脚 ...
- RK3399_PCIe芯片手册解读
RK3399_PCIe芯片手册解读 文章目录 RK3399_PCIe芯片手册解读 参考资料: 一. AXI总线 1.1 连接方式 1.2 五个通道 1.3 信号线 1.4 PCIe控制器 二. 地址空 ...
- 掌握这几个关键点,玩转IC芯片数据手册和检测攻略
掌握这几个关键点,玩转IC芯片数据手册和检测攻略 小小的一颗芯片,内部却是复杂的电路网络.作为应用各种电子器件的工程师,完全清楚芯片内部的运行有点困难,所以在选型时,需要借助芯片原厂提供的数据手册,参 ...
- 大神教芯片数据手册怎么读
题目:大神教芯片数据手册怎么读 [摘要]数据手册怎么看? 先看芯片特性.应用场合.内部框图,有一个宏观的了解. 重点关注芯片参数,同时参考手册给出的参数图. 选定器件后,研究管脚定义.推荐的PCB l ...
- 蓝桥杯单片机组——榨干选手资源包(芯片数据手册)
文章目录 前言 DS18B20 原理图 1-Wire协议简介 赛场技巧 DS1302 原理图 SPI协议简介 赛场技巧 AT24C02 原理图 IIC协议简介 赛场技巧 PCF8591 原理图 赛场技 ...
- linux的rwx权限解读
linux的rwx权限解读: 我们输入指令 : ls -l 会看到类似我这样的语句 d rwx -xr -x- 我们可以这样解读: 首字母:文件类型 d: d开头的是文件夹 -:文件 l:连接(快捷方 ...
- SPI Flash芯片W25Q32英文版数据手册解读(一)---------引脚功能,工作模式
W25Q32芯片是一个可以通过SPI(串行外围设备接口)操作的flash存储器,这篇文章备忘和总结一下英文版数据手册的一些解读.有关时序及具体用STC单片机编写程序的内容等下一篇文章. 一.芯片引脚功 ...
- SPI Flash芯片W25Q32英文版数据手册解读(二)---------存储器知识,寄存器
接着上一篇文章,由于W25Q32芯片是一个存储器芯片,先对这个芯片有关存储器的一些概念进行解读. 一.存储器相关知识 1.存储器的三个单位: 存储器三个等级:页(Page),扇区(sector),块( ...
最新文章
- Tomcat单向Https验证搭建,亲自实现与主流浏览器、Android/iOS移动客户端安全通信
- CSRF(Cross-site request forgery)跨站请求伪造
- 关闭PdfReader右侧工具栏的方法
- powergrep linux版本,PowerShell实现简单的grep功能
- js删除数组中的某一个元素
- WebPart中的ReplaceTokens 方法
- PAT_B_1086_Java(15分)
- redhat yum 安装 mysql_Redhat 7 下Mysql8.0.19安装配置图文详解(配合使用 centos YUM源)...
- 光端机的分类有哪些?
- oracle11区分大小写,修改Oracle11g用户密码不区分大小写
- 【FFMPEG】【ARM-Linux开发】 ffmpeg 静态库使用,undefined reference错误
- WPF中ToolTip的自定义
- 计算机专硕报考专业代码,什么是报考专业代码 考研专业代码到底是什么意思...
- weka mac安装
- matlab陷波带阻滤波器,matlab陷波滤波器 陷波滤波器器应放在系统的闭环吗
- 大数据工程应用 数据分析_大数据工程的方式
- 三日月くるみ - 魔法みたいな恋したい
- 搭建大型分布式服务(二十五)如何将应用部署到TKE容器集群?
- 小白成长记第2期:简单易操的YouTube美金项目,get!
- Linux内核分析2:一个简单的时间片轮转多道程序内核代码分析