I2C Architecture
I2C 采用的 GPIO 一般为开漏模式,支持线与功能,但是开漏模式无法输出高电平,所以需要外部上拉。Vdd 可以采用 5V、3.3V、1.8V等,电源电压不同,上拉电阻阻值也不同。
一般总线上认为,低于0.3Vdd为低电平,高于0.7Vdd为高电平。
推挽结构和开漏结构
推挽结构:使用两个三极管或MOSFET,以推挽方式存在于电路中。电路工作时,两只对称的开关管每次只有一个导通,所以导通损耗小、效率高。既可以向负载灌电流,也可以从负载抽取电流。推拉式输出级既提高电路的负载能力,又提高开关速度。
图中上面是 NPN 型三极管,下面是 PNP 型三极管。分别有以下两种情况:
输出高电平:向负载灌电流。
输出低电平:从负载拉电流。
三极管和 MOS 管效果类似,不赘述。
开漏结构(OD):对比推挽结构,开漏结构只有一个三极管或者MOS管。
之所以叫开漏,是因为MOS管分为三极:源极、栅极、漏极。漏极开路输出,所以叫开漏;如果是三极管:基极、集电极、发射极,集电极开路,所以叫开集输出(OC)。
开集输出(OC),NPN 三极管:
这个结构很好分析:Vin 高电平,三极管导通,对外输出低电平,外部被直接拉到低。Vin 低电平,集电极(C)开路,输出电平状态由外部决定。
以上分析均采用三极管,MOS管类似。
因此,推挽结构可以输出高低电平。开漏输出只能输出低电平,高电平由外部电路决定。
对比总结如下:
电平跳变速度,推挽输出由CPU控制,高低电平跳变速度快(0-》1),开漏输出由外部上拉电阻决定,上拉电阻小,反应速度快,从低电平到高电平跳变速度就快,但电阻小电流就大,功耗就高,反之亦然。
所以开漏输出的外部上拉电阻要兼顾速度和功耗。上拉电阻小,信号边沿陡峭,信号好,但是功耗高。
电平转换:推挽输出输出的高低电平只有0和Vdd,开漏输出的高电平由外部上拉电阻决定,多少V都可以,只要不超过MOS管击穿电压。
全部0条评论
快来发表一下你的评论吧 !