附件

  • 浏览量:1017
  • 下载量:0
  • 资料大小:0 B
  • 日期:2015-12-17
  • 上传者:蒙娜丽石
  • 分享
  • 评论
  • 举报
  • 收藏

资料描述

    c(inter-integrated circuit)总线是一种由philips公司开发的两线式串行总线,用于连接微控制器及其外围设备。它是由数据线sda和时钟scl构成的串行总线,可发送和接收数据。在cpu与被控ic之间、ic与ic之间进行双向传送,原子哥手册上写的高速是400k应该是手误,iic 数据传输速率有标准模式(100 kbps)、快速模式(400 kbps)和高速模式(3.4 mbps)


     


    因为所有的iic器件都支持低速,但却未必支持另外两种速度,手册上查到at24c02是可以支持400khz的,也就是说实际程序产生的时序必须小于等于 400k的时序参数,也就是要求scl的高低电平持续时间都不短于1.25us(一个周期1/400k=2.5us),下图也是显示兼容400khz,所以原子哥代码有些地方使用4us延时有些地方使用2us延时应该是出于对数据稳定接收的考虑,所以代码的延时是完全没有问题的。如下图


    在硬件上,iic总线是由时钟总线scl和数据总线sda两条线构成,连接到总线上的所有器件的scl都连到一起,所有sda都连到一起。iic总线是开漏引脚并联的结构,因此外部要添加上拉电阻。对于开漏电路外部加上拉电阻,就组成了线“与”的关系。总线上线“与”的关系就是说,所有接入的器件保持高电平,这条线才是高电平,而任何一个器件输出一个低电平,那这条线就会保持低电平,因此可以做到任何一个器件都可以拉低电平,也就是任何一个器件都可以作为主机,如下图的两个上拉电阻



    eeprom


    在实际的应用中,保存在单片ram中的数据,掉电后就丢失了,保存在单片机的flash 中的数据,又不能随意改变,也就是不能用它来记录变化的数值。但是在某些场合,又确实需要记录下某些数据,而它们还时常需要改变或更新,掉电之后数据还不能丢失,比如家用电表度数,电视机里边的频道记忆,一般都是使用 eeprom 来保存数据,特点就是掉电后不丢失。板子上使用的这个器件是 24c02,是一个容量大小是2kbits,也就是256个字节的eeprom。一般情况下,eeprom拥有30万到100万次的寿命,也就是它可以反复写入30-100万次,而读取次数是无限的。


     

    下面是iic的总线时序图


    程序方面只要根据这个时序来进行编写就好了
评论(0)

登录后可评论,请 登录注册

   
相关资料
换一换