博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
I2C
阅读量:5377 次
发布时间:2019-06-15

本文共 981 字,大约阅读时间需要 3 分钟。

(1)I2C速度

标准模式下:100Kbps     快速模式下:400Kbps      高速模式下:3.4Mbps     串口的最高速度是115.2Kbps,和I2C的标准速度差不多。

(2)I2C结构

如上图所示:I2C是OC(集电极开路)或OD(漏极开路)输出结构。I2C总线上挂的I2C器件越多,就要求I2C的驱动能力越强,R的取值就要越小,标准模式下R选择10k,快速模式下R选取1k。实际设计中,一般是先选取4.7k上拉电阻,然后在调试的时候根据实测的I2C波形再调整R的值。

(3)I2C总线上最多能挂多少个I2C器件?

I2C器件的数量由两个条件决定:

a. I2C从设备的地址位数,I2C标准中有7位地址,2^7=128。

b. 挂在I2C总线上所有I2C器件的管脚寄生电容之和,I2C总线规范要求,I2C总线容性负载最大不能超过470pF。

(4)I2C工作原理?

空闲情况下,SCL和SDA都处于高电平状态。SCL是主设备发出的,SDA是双向数据线,主从设备都可以控制。

开始标志,SCL信号处于高电平期间,SDA信号出现一个由高电平向低电平的跳变。

结束标志,SCL信号处于高电平期间,SDA信号出现一个由低电平向高电平的跳变。

有效数据,在SCL处于高电平期间,SDA保持状态稳定的数据才是有效数据,只有在SCL处于低电平状态时,SDA才允许状态切换。只有这样才可以辨认开始和标志位,开始和结束都是在SCL处于高电平时候发生跳变

 

SLAVE ADDRESS为7bits数据,R/W=1,为读,=0,为写。DATA数据位8bits。在读的情况下,当主设备发送从地址,接收到从地址的应答信号后,马上接收数据,当不做应该时,就表示数据传输结束。

 (5)UART与I2C

a. 串口通信一对一的全双工通信。因为有固定的波特率,所以它不需要时钟的同步。串口可以配置传输bits数为6、7、8,传输格式更为灵活。依靠奇偶校验来判断接收到的数据是否正确。

b. I2C通信是一对多的半双工通信。如果也有固定波特率,相信一根线也能完成通信,但速度不固定,所以需要使用一根SCL来同步。I2C总线按字节传输,即每次传输8bits二进制数据。依靠从设备的应答来完成通信。

 

 

转载于:https://www.cnblogs.com/hunningtu/p/3327060.html

你可能感兴趣的文章
Notepad++ 连接远程 FTP 进行文件编辑
查看>>
构建之法阅读笔记03
查看>>
马士兵老师hadoop讲解总结博客地址记录(啊啊啊啊啊,自己没有保存写好的博客...)...
查看>>
No configuration found for the specified action解决办法
查看>>
四种常用FPGA/CPLD设计思想技巧
查看>>
Android使用代码消除App数据并重新启动设备
查看>>
指向“”的 script 加载失败
查看>>
[PTA] 数据结构与算法题目集 6-12 二叉搜索树的操作集
查看>>
AngularJS学习篇(十五)
查看>>
【转】Java中Synchronized的用法
查看>>
算法之道:形而之上谓之道
查看>>
软件工程进度条-第四周
查看>>
mysql 批量导出建表语句 (视图,函数同理)
查看>>
css 变量与javascript结合
查看>>
Redis 任务队列(生产者消费者)
查看>>
从关联表创建数据库
查看>>
Delphi的"Invalid pointer operation"异常的解决办法 (转)
查看>>
正则表达式整理
查看>>
#一周五# (视频) 手掌四轴Estes 4606,树莓派2和WRTNode,WinHEC 2015深圳
查看>>
第五—八章 [bx]和loop指令
查看>>