完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
关于I2C,对于硬件工程师来说,属于低速信号,一般也不会有什么问题,最常见的问题也就是在测试信号质量时发现I2C的上升沿过缓,不符合I2C的标准,那么一般如何解决呢?
先看下图信号要求(来自I2C标准协议) 如上图,I2C分为标准模式和快速模式 标准模式通信速率最大是100Khz,上升沿最大是1000ns,bus电容最大400pF 快速模式通信速率最大是400kHz,上升沿最大是300ns,bus电容最大400pF I2C 总线上数据的传输速率在标准模式下可达 100kbit/s 在快速模式下可达 400kbit/s。 上拉电阻取值范围来龙去脉: 1、I2C上拉电阻的下限有一个计算公式: Rmin={Vdd(max)-0.4V}/3mA (根据协议,vdd为电源的最大值,Vmax=1.1*Vdd,3mA为驱动最大电流为3mA) 在电源为1.8V时:Rmin=527Ω 在电源为3.3V时:Rmin=1.07K 在电源为5V时:Rmin=1.7K 2、那上拉电阻的上限如何确定呢? 首先我们需要明白上升沿的时间是如何来的。I2C的总线结构如下图,是一个漏极开路的结构。也就是说SDA/SCL由低电平变到高电平,是通过关闭MOS管,通过Rp上拉到电源。 而I2C总线上接入设备时,肯定是会引入电容的,接的设备越多,引入的电容也越多。所以输出高电平的过程,实际上是一个RC充电的电路,如下图,电源Vdd通过上拉电阻Rp对负载电容Cb充电的过程。 电平有0.1Vdd充到0.9Vdd(上升沿)的时间计算公式 Tr= RC*Ln[(Vdd-0.1Vdd)/(Vdd-0.9Vdd)] Tr=2.2RC 标准模式:由Tr《1000ns 得 R《1000ns/2.2C 快速模式:由Tr《300ns 得 R《300ns/2.2C 不同电路,C的值肯定是不同的,所以要根据实测信号上升沿来确定。 注意:协议中最大电阻与负载电容的曲线,对应Tr是很宽松的,应是取的Tr为0.3Vdd上升到0.7Vdd的时间(协议中低电平门限0.3Vdd,高电平门限0.7Vdd),可能与上述公式有些出入,上述公式取的是0.1Vdd上升到0.9Vdd。 综上所述,如果我们发现I2C的上升沿过缓,可以通过减小上拉电阻Rp来实现,但不应超过对应的Rmin;或者降低总线电容(减少总线上的设备数量);最后还可以通过增加器件来实现。 |
|
|
|
只有小组成员才能发言,加入小组>>
物联网工程师必备:怎么选择不同的无线连接技术,本指南帮你忙!
3285 浏览 1 评论
【DFRobot TinkerNode NB-IoT 物联网开发板试用连载】WIFI功能测试
3937 浏览 0 评论
【DFRobot TinkerNode NB-IoT 物联网开发板试用连载】Arduino的替代SublimeText3+STino
3444 浏览 0 评论
使用端口扩展器轻松高效地向IIoT端点添加具有成本效益的子节点
4008 浏览 1 评论
20683 浏览 11 评论
模组有时候复位重启后输出日志为“REBOOT_CAUSE_SECURITY_PMU_POWER_ON_RESET”的原因?
802浏览 2评论
1022浏览 2评论
1025浏览 1评论
1142浏览 1评论
381浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 00:43 , Processed in 1.017290 second(s), Total 77, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号