eeprom AT24C512 i2c总线的特点 来自eeleader的博客

摘要:
今天,我花了一天时间研究i2c总线的特性。因为我想用FPGA来设计i2c总线的操作时序i2c总线是一种常用的串行总线。我想操作串行eepromAT24C512。EEPROM的容量为512KBIT,内部按照每页128字节进行组织,共512页。第一点:芯片工作速度的选择:根据AT24C512手册,芯片可以在1.8V-5.0V的电压下工作;I2C总线的最大运行速度随电压水平的不同而变化。此参数与AT24C512的工作电压有关。因此,NoACK信号可用于确定内部操作是否完成。
今天花费了一天时间,研究i2c总线的特点。因为我要用FPGA设计操作i2c总线的时序.i2c总线是常用的串行总线。我要操作的串行eeprom AT24C512。该EEPROM 容量是512KBIT,内部按照每页128字节组织,总共是512页。根据我的设计构思,准备使用PAGE WIRET 和随机连续读 两种命令方式。读写准备按照页方式进行。根据我上面的要求,我仔细研读eeprom 手册。下面我分享我读书心得。
  第一点:芯片工作速度选择: 根据AT24C512手册可以知道,该款芯片的电压工作可以为1.8V-5.0V ; 不同电压等级I2C总线的最大工作速度不同。1.8V--最大工作速度fscl=100K; 2.7V----最大工作速度fscl=400K;5.0V----最大工作速度fscl=1000K. 在本案中,我要操作的AT24C512 电压等级是3.3V. 因此,我定义fscl=200K(取最大速度的一半),保证时序。
 第二点:写周期耗时间(Write Cycle Time)-Twr。 该参数也是编写FPGA程序需要特别考虑一个时间。根据DATASHEET,该参数定义了从I2C总线停止位开始到数据真正写到存储区,EEPROM内部耗时。该参数与AT24C512的工作电压有关。从DATASHEET可以看到,1.8V的芯片,该参数最大为20毫秒;2.7V和5V的芯片,该参数的最大时间为10毫秒。
 第三点:AT24C512支持读写操作方式:从DATASHEET可以看到,两种写方式和4种读操作方式。
     1. 当前地址写操作方式:
         EEPROM内部具有保持当前地址的寄存器。对当前地址进行写操作时,不需要指定地址。只要单纯给出写指令和该地址数据即可。写操作完成后,内部所保持的当前地址将自动进位。其时序图如下:
         这是指定任意的地址(8位)写人数据的方式。 起始字节的DEVSEL按照前面描述的起始数据的格式,位7~4是“1010”的固定模式,位操作(“1”)还是写操作(“0”)。如果存储器处于写保护状态(WC引脚为高电平等),则在接收地址之前一直返回ACK信号,对于之后传输的数据,则返回No-ACK信号。
  数据发送完毕后,如果检测出来自主机的结束条件,则EEP-ROM内部开始进行写入操作。根据数据手册可查出完成写入操作所需要的时间。+5V的产品需要5ms,其他的产品大约需要10ms左右的时间。
  EEPROM内部的替换周期在进行过程中,即使发送下一个指令也将返回NoACK信号。因此,利用该NoACK信号就可判断内部的操作是否完成。
    2. 页地址写操作方式
       页面写操作本身与字节写是相同的。由于在存取后地址自动进位,因而可以按序发送1页(16字节)以内的数据。实际上向存储器单元的写人操作,与字节写相同,都是在检测出结束条件后进行的,所以需要等待,直到操作结束,然后再进行下一个操作。其时序图如下:
     
eeprom AT24C512 i2c总线的特点 来自eeleader的博客第1张eeprom AT24C512 i2c总线的特点 来自eeleader的博客第2张
   3. 当前地址读操作方式
      EEPROM内部具有保持当前地址的寄存器。读取当前地址的数据时,不需要指定地址。只要单纯给出读指令就可读出数据。读取完毕后,内部所保持的当前地址将自动进位。其时序图如下:
     
eeprom AT24C512 i2c总线的特点 来自eeleader的博客第1张eeprom AT24C512 i2c总线的特点 来自eeleader的博客第4张
    4. 指定地址读操作方式(随机读)
       随机读是由主机指定任意的地址读取的。利用写指令设定地址,如果赋予读指令则可以读出当前地址。所以,与字节写操作时相同,在第1字节的数据后面给出地址。在这里,一旦发送出数据就成为写操作,在此设置开始条件,取消向写操作的迁移而发出读指令,将从事先设定的地址中读出数据。此时,DEVSEL数据(前7位数据)必须设定与最初写指令所发送的相同的值。时序图如下:
   
eeprom AT24C512 i2c总线的特点 来自eeleader的博客第1张eeprom AT24C512 i2c总线的特点 来自eeleader的博客第6张
    5.指定地址顺序读操作方式(顺序读)
     在当前地址读操作之后,如果主机返田ACK信号,则为顺序读模式,器件将准备下一个地址的数据,主机取回该数据。一旦到达要读出的最终地址,主机将返回NoACK信号,通知器件这已是最后的数据。   
   
eeprom AT24C512 i2c总线的特点 来自eeleader的博客第1张eeprom AT24C512 i2c总线的特点 来自eeleader的博客第8张
    6.指定地址顺序随机读操作方式(顺序随机读)
    当指定任意地址、希望由此连续读出数据时,可利用该模式。只要认为这是与对应于当前读的顺序读相同的模式即可。 
  顺序随机读模式与随机读同样进行读操作,接收到数据后如果是ACK应答,则器件将准各下一个地址的数据;如果是最终数据,则返回NoACK信号,结束数据的传输。时序图同上
第4点:数据传递时序。I2C总线,所有操作时序都遵循这个原则:高电平,取数据;低电平,不取数据。所有对于所有时序编程来说,要求在低电平准备好数据,然后高电平传递。时序图如下:
    
eeprom AT24C512 i2c总线的特点 来自eeleader的博客第1张eeprom AT24C512 i2c总线的特点 来自eeleader的博客第10张
第5点:IO总线操作。对应FPGA IO总线操作技巧一定要处理好。
          个人认为:掌握好以上5点,用CPU编程操作I2C总线一点是一点问题都没有!
           特别要注意一点:接收到EEPROM响应(ACK后),不要下一个时钟周期就给数据总线给高电平,这样会造成总线冲突!
  

免责声明:文章转载自《eeprom AT24C512 i2c总线的特点 来自eeleader的博客》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇安装samba服务器实现Linux mint和Windows共享文件等保2.0四级安全要求下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

git 给远程库 添加多个url地址

 目录[-] 前提 使用流程 原理解析 注意 Other 参考文章 作者:shede333主页:http://my.oschina.net/shede333 && http://blog.sina.com.cn/u/1509658847版权声明:原创文章,版权声明:自由转载-非商用-非衍生-保持署名 | [Creative Commo...

windows下添加静态路由

windows下添加静态路由.txt爱情就像脚上的鞋,只有失去的时候才知道赤脚走路是什么滋味骗人有风险,说慌要谨慎。不要爱上年纪小的男人,他会把你当成爱情学校,一旦学徒圆满,便会义无反顾地离开你。windows下添加静态路由 [ 标签:windows,静态路由 ] windows xp下如何添加静态路由呢? 涛声依旧回答:2人气:75解决时间:2009-0...

支付宝异步通知处理实现原理总结

支付宝有一个接口:实现支付请求(里面要提供一个订单号) 你有一个接口:实现支付结果的通知(通知里面会包含订单号) 后面就简单了 1)你生成订单 请求调用 支付宝接口 去支付(然后。。然后就没然后了) 2)你的接口:等着呗 支付宝会调用的接口 通知你 那个订单完成的结果 3) 支付系统的异步通知实质上是给给定的地址发送请求实现的,这个地址很可能是不会有页面而...

【存储器相关】RAM、SRAM、SDRAM、ROM、EPROM、EEPROM、Flash存储器区别

常见存储器概念:RAM、SRAM、SDRAM、ROM、EPROM、EEPROM、Flash存储器可以分为很多种类,其中根据掉电数据是否丢失可以分为RAM(随机存取存储器)和ROM(只读存储器),其中RAM的访问速度比较快,但掉电后数据会丢失,而ROM掉电后数据不会丢失。 在单片机中,RAM主要是做运行时数据存储器,FLASH主要是程序存储器,EEPROM主...

xxxx(四):接受消息hook地址分析

   今天来分析一下xxxx接受消息的call;测试的账号在虚拟机,发消息的账号在物理机;    1、老规矩:逆向分析的起点都从CE开始;给测试账号发送辨识度高的消息,这时暂时不要在测试账号打开消息。因为此时的消息刚经过网络传输,还是ASCII格式,所以千万不要勾选UTF-16,只能找ASCII码找(下面详细解释原因)!  重复发送0000000000、...

[转]HEX文件格式

Intel HEX 文件是由一行行符合Intel HEX 文件格式的文本所 构 成的ASCII 文本文件。在Intel HEX 文件中,每一行包含一 个 HEX 记录 。 这 些 记录 由 对应 机器 语 言 码 和/ 或常量 数 据的十六 进 制 编码数 字 组 成。Intel HEX 文件通常用于 传输将 被存于ROM 或者EPROM 中的程序和 数 ...