AT24C02驱动讲解PPT_第1页
AT24C02驱动讲解PPT_第2页
AT24C02驱动讲解PPT_第3页
AT24C02驱动讲解PPT_第4页
AT24C02驱动讲解PPT_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

I2C总线器件的扩展 一 扩展电路 1 基于IIC总线的E2PROM AT24C02 2 特性与400KHzIIC总线兼容1 8到6 0伏工作电压范围低功耗CMOS技术写保护功能当WP为高电平时进入写保护状态页写缓冲器自定时擦写周期1 000 000编程 擦除周期可保存数据100年8脚DIPSOIC或TSSOP封装温度范围商业级工业级和汽车级 3 串行E2PROM典型产品 AT24C01 128字节 128 8位 AT24C02 256字节 256 8位 AT24C04 512字节 512 8位 AT24C08 1K字节 1K 8位 AT24C16 2K字节 2K 8位 ATMEL公司的AT24C系列 4 AT24C02引脚分布 WP写保护如果WP管脚连接到Vcc所有的内容都被写保护 只能读 当WP管脚连接到Vss或悬空 允许器件进行正常的读 写操作 5 AT24C02读写时间周期 6 AT24WC01 02 04 08 16支持I2C总线数据传送协议和I2C总线协议规定 任何将数据传送到总线的器件作为发送器 任何从总线接收数据的器件为接收器 数据传送是由产生串行时钟和所有起始停止信号的主器件控制的 主器件和从器件都可以作为发送器或接收器 但由主器件控制传送数据 发送或接收 的模式 通过器件地址输入端A0 A1和A2可以实现将最多8个24WC01和24WC02器件 4个24WC04器件 仅使用A1A2地址管脚 2个24WC08器件 仅使用地址管脚A2A0 和1个24WC16器件连接到总线上 所有地址管脚A0A1A2都未用 AT24C02功能描述 7 I2C总线协议 1 只有在总线空闲时才允许启动数据传送 2 在数据传送过程中 当SCL 1时 数据线SDA必须保持稳定状态 不允许有跳变 SCL 1时 数据线SDA的任何电平变化将被看作总线的起始或停止信号 起始信号时钟线SCL保持高电平期间 数据线SDA电平从高到低的跳变作为I2C总线的起始信号 停止信号时钟线SCL保持高电平期间 数据线SDA电平从低到高的跳变作为I2C总线的停止信号 8 器件寻址 主器件通过发送一个起始信号启动发送过程 然后发送它所要寻址的从器件的地址 8位从器件地址的高4位固定为1010 接下来的3位A2A1A0为器件的地址位 用来定义哪个器件以及器件的哪个部分被主器件访问 最低位作为读写控制位 1表示对从器件进行读操作0表示对从器件进行写操作 在主器件发送起始信号和从器件地址字节后24C02监视总线并当其地址与发送的从地址相符时 响应一个应答信号 通过SDA线 24C02根据读写控制位 R W 的状态进行读或写操作 9 应答信号 I2C总线数据传送时 每成功地传送一个字节数据后 接收器都必须产生一个应答信号 应答的器件在第9个时钟周期时 将SDA线拉低 表示其已收到一个8位数据 24C02在接收到起始信号和从器件地址之后响应一个应答信号 如果器件已选择了写操作 则在每接收一个8位字节之后响应一个应答信号 当24C02工作于读模式时 在发送一个8位数据后释放SDA线并监视一个应答信号 一旦接收到应答信号 24C02继续发送数据 如主器件没有发送应答信号器件停止传送数据且等待一个停止信号 10 应答时序 主机时钟 发送器输出的数据 接收器输出的数据 11 2 写入过程AT24C系列E2PROM芯片地址的固定部分为1010 A2 A1 A0引脚接高 低电平后得到确定的3位编码 形成的7位编码即为该器件的地址码 单片机进行写操作时 首先发送该器件的7位地址码和写方向位 0 共8位 即一个字节 发送完后释放SDA线并在SCL线上产生第9个时钟信号 被选中的存储器器件在确认是自己的地址后 在SDA线上产生一个应答信号作为相应 单片机收到应答后就可以传送数据了 12 传送数据时 单片机首先发送一个字节的被写入器件的存储区的首地址 收到存储器器件的应答后 单片机就逐个发送各数据字节 但每发送一个字节后都要等待应答 AT24C系列器件片内地址在接收到每一个数据字节地址后自动加1 在芯片的 一次装载字节数 不同芯片字节数不同 限度内 只需输入首地址 装载字节数超过芯片的 一次装载字节数 时 数据地址将 上卷 前面的数据将被覆盖 当要写入的数据传送完后 单片机应发出终止信号以结束写入操作 写入n个字节的数据格式 13 写入时序 14 页写 页写操作的启动和字节写一样 不同在于传送了一字节数据后并不产生停止信号 主器件被允许再发送P 15个额外的字节 每发送一个字节数据后24C02产生一个应答位并将字节地址低位加1高位保持不变 如果在发送停止信号之前主器件发送超过P 1个字节地址计数器将自动翻转 先前写入的数据被覆盖 24C02可以一次写入16个字节的数据 接收到P 1字节数据和主器件发送的停止信号后24C02启动内部写周期将数据写到数据区 所有接收的数据在一个写周期内写入24C02 15 页写时序 16 写保护操作特性可使用户避免由于不当操作而造成对存储区域内部数据的改写 当WP管脚接高时 整个寄存器区全部被保护起来而变为只可读取 24C02可以接收从器件地址和字节地址 但是装置在接收到第一个数据字节后不发送应答信号从而避免寄存器区域被编程改写 写保护 17 读操作 24C02读操作的初始化方式和写操作时一样 仅把位置为1 有三种不同的读操作方式 立即地址读 选择读和连续读 18 立即地址读 AT24C02的地址计数器内容为最后操作字节的地址加1 也就是说 如果上次读 写的操作地址为N 则立即读的地址从地址N 1开始 如果N E 这里对24WC01 E 127 对24WC02 E 255 对24WC04 E 511 对24WC08 E 1023 对24WC16 E 2047 则计数器将翻转到0且继续输出数据 AT24C02接收到从器件地址信号后R W位置1 它首先发送一个应答信号 然后发送一个8位字节数据 主器件不需发送一个应答信号 但要产生一个停止信号 19 立即地址读时序 20 选择性读 选择性读操作允许主器件对寄存器的任意字节进行读操作 主器件首先通过发送起始信号 从器件地址和它想读取的字节数据的地址执行一个伪写操作 在24C02应答之后 主器件重新发送起始信号和从器件地址 此时R W位置1 24C02响应并发送应答信号 然后输出所要求的一个8位字节数据 主器件不发送应答信号但产生一个停止信号 21 选择性读时序 22 连续读 连续读操作可通过立即读或选择性读操作启动 在24C02发送完一个8位字节数据后 主器件产生一个应答信号来响应 告知24C02主器件要求更多的数据 对应每个主机产生的应答信号 24C02将发送一个8位数据字节 当主器件不发送应答信号而发送停止位时结束此操作 从24C02输出的数据按顺序由N到N 1输出 读操作时 地址计数器在24C02整个地址内增加 这样整个寄存器区域在可在一个读操作内全部读出 当读取的字节超过E 这里对24WC01 E 127 对24WC02 E 255 对24WC04 E 511 对24WC08 E 1023 对24WC16 E 2047 计数器将翻转到零并继续输出数据字节 23 连续读时序 24 小结读出过程单片机先发送该器件的7位地址码和写方向位 0 伪写 发送完后释放SDA线并在SCL线上产生第9个时钟信号 被选中的存储器器件在确认是自己的地址后 在SDA线上产生一个应答信号作为回应 然后 再发一个字节的要读出器件的存储区的首地址 收到应答后 单片机要重复一次起始信号并发出器件地址和读方向位 1 收到器件应答后就可以读出数据字节 每读出一个字节 单片机都要回复应答信号 当最后一个字节数据读完后 单片机应返回以 非应答 高电平 并发出终止信号以结束读出操作 25 大赛24C02部分电路图 26 sbitSCL P2 0 sbitSDA P2 1 用单片机的两个I O口模拟I2C接口 voidiic start void SDA 1 释放SDA总线somenop SCL 1 somenop SDA 0 somenop definesomenop nop nop nop nop nop 起始信号 开始信号SCL在高电平期间 SDA一个下降沿则表示启动信号 27 voidiic stop void SDA 0 somenop SCL 1 somenop SDA 1 somenop 终止信号 停止SCL在高电平期间 SDA一个上升沿则表示停止信号 sbitSCL P2 0 sbitSDA P2 1 definesomenop nop nop nop nop nop 28 voidiic ack bitackbit if ackbit SDA 0 第9个周期拉低 表示应答elseSDA 1 第9个周期拉高 表示非应答somenop SCL 1 somenop SCL 0 SDA 1 释放数据总线 单片机向24C02的应答信号 单片机 24C02 I2C总线数据传送时 每成功地传送一个字节数据后 接收器都必须产生一个应答信号 应答的器件在第9个时钟周期时 将SDA线拉低 表示其已收到一个8位数据 形参ackbit 1表示应答 0表示非应答 29 bitiic waitack void SDA 1 释放总线somenop SCL 1 somenop if SDA SCL 0 iic stop return0 无应答else SCL 0 return1 有应答 单片机等待来自24C02的应答信号 单片机 24C02 SCL在高电平期间 SDA被从设备拉为低电平表示应答 30 voidiic sendbyte unsignedcharbyt unsignedchari for i 0 i 8 i if byt 单片机向从机发送一个字节 每次程序的开始都默认SCL 0 因此程序最后要将SCL 0SCL低电平期间才可以写数据 31 unsignedchariic recbyte void unsignedcharda unsignedchari for i 0 i 8 i SCL 1 somenop da 1 if SDA da 0 x01 SCL 0 somenop returnda 单片机从从机读取一个字节 每次程序的开始都默认SCL 0 因此程序最后要将SCL 0SCL高电平期间才可以读数据 32 voidwrbyte 24c02 unsignedcharadd unsignedchardat DeviceAddress1010000R Wiic start 启动iic sendbyte 0 xa0 发送从设备地址iic waitack 等待从设备的响应iic sendbyte add 发出芯片内地址iic waitack 等待从设备的响应iic sendbyte dat 发送数据iic waitack 等待从设备的响应iic stop 停止 单片机向从机的add地址上 写入char型的数dat 33 unsignedcharrdbyte 24c02 unsignedcharadd DeviceAddress1100000R Wunsignedcharda iic start 启动iic sendbyte 0 xa0 发送发送从设备地址写操作iic waitack 等待从设备的响应iic sendbyte add 发送芯片内地址iic waitack 等待从设备的响应iic start 启动iic sendbyte 0 xa1 发送发送从设备地址读操作iic waitack 等待从设备的响应da iic recbyte 获取数据iic ack 0 可省去iic stop 停止returnda 单片机从24C02的add地址上读取一个数 34 temp rdbyte 24c02 0 x00 从24C02的0 x00地址上读取一个字节到temp中 主程序调用 wrbyte 24c02 0 x00 a 0 向24C02的0 x00地址写入a 0 的内容 35 voidwrbyte 24c02 ucharadd uchardat0 uchardat1 DeviceAddress1010000R Wiic start iic sendbyte 0 xa0 iic waitack iic sendbyte add iic waitack iic sendbyte dat0 iic waitack iic sendbyte dat1 iic waitack iic stop delay 10 单片机向24C02的add开始的地址上 依次写入多个char型的数 依此方法 还可以一次性写很多个 36 unsignedcharda 0 0 0 iic start iic sendbyte 0 xa0 iic waitack iic sendbyte add iic waitack iic start iic sendbyte 0 xa1 iic waitack da 0 iic recbyte iic ack 1 da 1 iic recbyte iic ack 1 da n iic recbyte iic ack 0 iic stop returnda 单片机从24C02的add开始

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论