0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

I2C推挽结构和开漏结构

麦辣鸡腿堡 来源:嵌入式Linux系统开发 作者:嵌入式Linux系统开 2023-07-25 09:52 次阅读

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管击穿电压。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 电压
    +关注

    关注

    45

    文章

    5608

    浏览量

    115873
  • I2C
    I2C
    +关注

    关注

    28

    文章

    1489

    浏览量

    123897
  • GPIO
    +关注

    关注

    16

    文章

    1205

    浏览量

    52146
收藏 人收藏

    评论

    相关推荐

    I2C总线的基本结构

      引言:我们将讨论一些用于实施I2C硬件的关键设计参数,利用简单、稳健的低成本协议在IC之间进行通信,同时尽可能减少引脚数量。随着外设部件的种类日益增多,I2C能够给系统设计人员带来的好处显而易见
    发表于 06-02 10:16 3389次阅读
    <b class='flag-5'>I2C</b>总线的基本<b class='flag-5'>结构</b>

    Linux内核中描述I2C的四个核心结构

    I2C核心维护了i2c_bus结构体,提供了I2C总线驱动和设备驱动的注册、注销方法,维护了I2C总线的驱动、设备链表,实现了设备、驱动的匹
    的头像 发表于 09-04 09:35 1550次阅读
    Linux内核中描述<b class='flag-5'>I2C</b>的四个核心<b class='flag-5'>结构</b>体

    I/O结构有哪几类

    目前想到的I/O结构有如下几类:基本输入结构推挽电路结构
    发表于 11-03 09:08

    I/O结构有哪几类

    目前想到的I/O结构有如下几类:基本输入结构推挽电路结构
    发表于 02-08 07:47

    i2c总线ppt(I2C总线器件应用)

    I2C总线器件应用第一节 I2C总线器件应用概述I2C总线工作原理I2C总线系统结构I2C总线系
    发表于 08-13 17:34 0次下载

    I2C总线的结构介绍

    内容摘要:介绍了I2C总线的结构、工作原理、数据传输方式,讨论了基于I2C总线的多机通信软硬件设计,实现了程控交换多机通信调度指挥系统。
    发表于 02-29 15:44 6次下载

    I2C总线的结构、工作时序和模拟编程

    I2C总线的结构、工作时序和模拟编程
    发表于 10-24 14:34 13次下载
    <b class='flag-5'>I2C</b>总线的<b class='flag-5'>结构</b>、工作时序和模拟编程

    STM32 I2C硬件的结构

    我们可以看见STM32的硬件I2C有两个和数据有关的寄存器“数据寄存器(Data register)”(DR)和“数据移位寄存器(Data shift register)”(DSR),我们的软件写入的是DR, DSR用于I2C数据的移位发送和接收
    的头像 发表于 04-30 15:00 7346次阅读
    STM32 <b class='flag-5'>I2C</b>硬件的<b class='flag-5'>结构</b>

    MCU---I/O基本结构

    目前想到的I/O结构有如下几类:基本输入结构推挽电路结构
    发表于 10-28 13:36 4次下载
    MCU---<b class='flag-5'>I</b>/O基本<b class='flag-5'>结构</b>

    MCU---I/O基本结构

    目前想到的I/O结构有如下几类:基本输入结构推挽电路结构
    发表于 12-05 09:51 4次下载
    MCU---<b class='flag-5'>I</b>/O基本<b class='flag-5'>结构</b>

    I2C上拉电阻计算公式

    I2C一般为漏结构,需要在外部加上拉电阻,常见的阻值有1k、1.5k、2.2k、4.7k、5.1k、10k等。
    的头像 发表于 09-02 09:49 4230次阅读

    I2C设备驱动的两个数据结构

    设备驱动 I2C 设备驱动重点关注两个数据结构i2c_client 和 i2c_driver。i2c_client 就是描述设备信息的,
    的头像 发表于 07-22 15:49 847次阅读
    <b class='flag-5'>I2C</b>设备驱动的两个数据<b class='flag-5'>结构</b>

    I2C子系统几个主要的结构

    I2C Data Structure 我们要搞懂一个 Linux 子系统,必须研究它的数据结构,搞懂每个结构体存储了什么东西,才能梳理清楚该子系统的架构。 I2C 子系统有几个主要的
    的头像 发表于 07-22 16:04 862次阅读
    <b class='flag-5'>I2C</b>子系统几个主要的<b class='flag-5'>结构</b>体

    I2C中什么是线与功能

    就会通过两个MOS管直接接地,由于MOS管导通电阻不大,会导致电流很大,直接损坏这两个GPIO口,因此,推挽输出不支持线与。 推挽结构在这种情况下会损坏GPIO口。 漏:假如很多GP
    的头像 发表于 07-25 09:57 6400次阅读
    <b class='flag-5'>I2C</b>中什么是线与功能

    I2C总线能挂多少设备 I2C架构

    ,所以会有一个限制。实际设计中经验值大概是不超过 8 个器件。 总线之所以规定电容大小是因为,I2C 使用的 GPIO 为漏结构
    的头像 发表于 09-28 14:20 2950次阅读
    <b class='flag-5'>I2C</b>总线能挂多少设备 <b class='flag-5'>I2C</b>架构