首页
|
新闻
|
新品
|
文库
|
方案
|
视频
|
下载
|
商城
|
开发板
|
数据中心
|
座谈新版
|
培训
|
工具
|
博客
|
论坛
|
百科
|
GEC
|
活动
|
主题月
|
电子展
注册
登录
论坛
博客
搜索
帮助
导航
默认风格
uchome
discuz6
GreenM
»
嵌入式技术
» 稳定可靠的I2C通信的设计计算
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
稳定可靠的I2C通信的设计计算
发短消息
加为好友
forsuccess
当前离线
UID
871057
帖子
6281
精华
0
积分
3141
阅读权限
90
在线时间
282 小时
注册时间
2012-2-21
最后登录
2015-6-23
论坛元老
UID
871057
性别
男
1
#
打印
字体大小:
t
T
forsuccess
发表于 2012-12-13 23:21
|
只看该作者
稳定可靠的I2C通信的设计计算
供应商
,
存储器
,
通信
许多系统需要可靠的非易失性存储,对于这些系统,可选择EEPROM存储器技术。EEPROM技术具有稳定可靠的架构,供应商较多,并且经过了多年的改进。EEPROM器件可用于各种工业标准串行总线,包括I2C™、SPI、Microwire和UNI/O®总线。其中,I2C总线在单片机和其他芯片组中具有广泛的硬件支持,并且信号传递方式简单,可采用极小的硅片有效实现,因此占据了非易失性存储器市场约70%的份额。但是,I2C总线拓扑要依赖于阻值合适的上拉电阻才能实现稳定可靠的通信。电阻值选择错误不仅会造成电能浪费,还可能导致总线状态和传输过程由于噪声、温度变化、工作电压变化以及器件间的制造差异而出错。
I2C是二线同步总线,使用总线主器件SCL线上产生的信号作为时钟。SDA线用于双向数据传输。当时钟处于特定状态时可修改数据线,以指示传输的开始和停止,从而避免使用更多的线。I2C总线以集电极开路输出为基础,其中,器件可通过接地晶体管拉低线的电平,如图1所示。这样便可轻松对总线控制进行仲裁,从而在一条数据线上实现双向通信以及多主器件支持。如图1所示,每条线都有一个外部电阻连接至Vdd,该电阻可在释放总线或总线空闲时拉高线的电平。
图1 I2C™总线拓扑
确定上拉电阻值(Rp)时需要考虑三个因素:
• 电源电压(Vdd)
• 总线总电容(CBUS)
• 高电平总输入电流(IIH)
以下面的条件为例计算理想的上拉电阻值:
• 电源电压(Vdd)为5V
• 时钟频率为400kHz
• 总线电容为100pF
电源电压(Vdd)
I2C规范将低于VIL或低于电源电压30%的电压定义为逻辑低电平,同样,将高于VIH或高于电源电压70%的电压定义为逻辑高电平,如图2所示。这两个电平之间的电压属于不明确的逻辑电平。实际上,引脚会将该范围内的电平读为逻辑高电平或逻辑低电平,但在器件间可能不同,因为温度、电压、噪声源和其他环境因素会影响逻辑电平。
图2 指定为逻辑高电平和逻辑低电平的电压电平
电源电压限制了可允许总线拉低的最小Rp值。过强的上拉会阻止器件充分拉低线的电平,导致无法确保逻辑低电平能被检测到。这是由上拉电阻与接地晶体管的导通电阻之间形成的分压器产生的,如图3所示。通常不会指定晶体管的导通电阻。相反,会给定使晶体管上的电压降低于输出逻辑低电压电平(VOL)的最大灌电流(IOL)。使用欧姆定律得出公式1。
图3 集电极开路拓扑和等效电路
对于Microchip的I2C EEPROM器件,规定在IOL为3mA时,VOL最大为0.4V,其他制造商的器件的范围与其相似。
公式1:允许总线电压拉低的最小上拉电阻。
如果总线上有多个器件,最小Rp由灌电流最低的器件决定。
总线总电容(CBUS)
在SCL和SDA线上,所有引脚、连接、PCB走线和导线都会引入电容。这些电容结合在一起称为总线电容,对于长走线和长连接来说,总线电容可能很大。集电极开路拓扑需要外部电阻才能在总线释放时拉高线的电平。上拉电阻(与总线电容耦合)具有一个RC时间常数,该常数限制了上升时间。随着时钟频率的增加,该常数愈发重要,因为需要更少的时间升高线的电平。如果所选电阻值过高,线的电平在下一次拉低之前可能无法上升到逻辑高电平。对于一条总线上具有多个器件的设计(通常具有较大的总线电容)来说,这是重要的考虑因素。
总线电容可通过PCB走线长度和引脚分布电容计算,也可以使用电容探头或智能镊子量表进行测量。如果不能准确计算或测量总线电容,应高估最坏情况读数以提供安全的最大电阻值。
公式2是用于确定充电电容负载两端电压(与时间成函数关系)的一般公式。这可以计算在特定上拉电阻和总线电容下,总线电压上升到特定值所需的时间。
公式2:通过电阻对电容进行充电的一般公式。
重新排列
之后,我们可计算电压上升至VIL的时间(T1)、上升至VIH的时间(T2)以及精确计算这两个电平之间的时间(TR),如图4所示。由于VIL和VIH都是由Vdd产生的,因此该公式与电源电压无关,因为Vdd项已抵消。
图4 逻辑低电平转换为逻辑高电平的充电时间
求解求解
各种工作电压的最大上升时间由I2C标准指定,并通过上拉电阻确定。根据该时间和总线电容,我们可以计算允许的最大上拉电阻(Rp)。当电压为5V,时钟频率为400kHz时,给定总线电容CBUS为100pF,则规定的最大上升时间(TR)为300ns。
公式3:符合I2C上升时间标准的最小上拉电阻。
高电平总输入电流(IIH)
即使没有器件拉低线的电平,线仍处于逻辑高电平时,电流仍会继续流过上拉电阻。该电流由总线上器件的数字输入的泄漏产生,也可能是质量较差的PCB材料以及焊接残留物所导致。其中一些因素是无法预见的,但采用高质量材料和良好的制造工艺时,输入引脚泄漏是主要原因。
根据图2,没有器件拉低总线电平时,线的电平需要高于VIH才能被视为逻辑高电平。泄漏电流会限制Rp的最大值,这样其两端的电压降不会阻止线的电平被拉高至VIH以上。对于VIH规范,还应谨慎留出一些保护裕量,以防止噪声尖峰将电压拉低至VIH电平以下。要在高噪声环境下稳定工作,I2C规范建议采用0.2 Vdd作为高出VIH的适当裕量。
公式4:逻辑高输入电平上的额外裕量。
通常会在器件的数据手册中给出数字输入的泄漏电流,对于Microchip的I2C EEPROM器件,最大输入泄漏电流(IlIEE)为1μA。组成系统的最少元件是单片机I2C主器件和I2C从器件。对于本例,采用一个输入泄漏电流(IlIMCU)为1μA的单片机和四个I2C EEPROM器件,允许100%裕量,IIH为10μA。
公式5:已定义总线的引脚泄漏产生的泄漏电流。
应用欧姆定律,我们可以确定符合这些规范的Rp最大值。
公式6:确保逻辑高电平的最小上拉电阻值。
电阻值计算
通过计算电源电压、总线电容和泄漏电流,我们可以得出RP值的范围。
可以忽略由泄漏电流产生的 50KΩ(最大值),因为总线电容起主导作用。因此,可接受的电阻值的范围为:
设计人员应选择范围中间附近的值,以尽可能提供较大的保护带。对于本例,2.2KΩ的上拉电阻较为理想。
总线速度与功耗
收藏
分享
评分
回复
引用
订阅
TOP
返回列表
电商论坛
Pine A64
资料下载
方案分享
FAQ
行业应用
消费电子
便携式设备
医疗电子
汽车电子
工业控制
热门技术
智能可穿戴
3D打印
智能家居
综合设计
示波器技术
存储器
电子制造
计算机和外设
软件开发
分立器件
传感器技术
无源元件
资料共享
PCB综合技术
综合技术交流
EDA
MCU 单片机技术
ST MCU
Freescale MCU
NXP MCU
新唐 MCU
MIPS
X86
ARM
PowerPC
DSP技术
嵌入式技术
FPGA/CPLD可编程逻辑
模拟电路
数字电路
富士通半导体FRAM 铁电存储器“免费样片”使用心得
电源与功率管理
LED技术
测试测量
通信技术
3G
无线技术
微波在线
综合交流区
职场驿站
活动专区
在线座谈交流区
紧缺人才培训课程交流区
意见和建议