-
I2C总线为什么要接上拉电阻
2021-01-12 10:01:27I2C总线为什么要接上拉电阻 1、根据I2C总线规范,总线空闲时两根线都必须为高; 这是规定,动不了的,不然...但问题是,你要是直接接电源的来实现高的话,一旦其他器件拉低时岂不危险? 所以,这个上拉电阻有保护作用I2C总线为什么要接上拉电阻
1、根据I2C总线规范,总线空闲时两根线都必须为高;
这是规定,动不了的,不然什么叫标准呢?其实所谓的这个神圣的标准也并不是多么邪乎,你想啊,只有是高的才能拉成低的,难道谁可以把低的拉成高的吗?所以这是之所以规定空闲时必须为高的一个原因,要是保持“低”的话,那是不可能成为“多主”总线的。
2、上拉电阻的问题;
其实各个I2C接口工作时只检测高、低电平,管你有没有什么上拉电阻呢!
但问题是,你要是直接接电源的来实现高的话,一旦其他器件拉低时岂不危险?
所以,这个上拉电阻有保护作用。如果你确信直接接电源没问题(比如有短路保护等,呵呵),也可以试一试,问题的关键是主器件要能正确的拉低或置高,从器件要能明确地区分高、低就可以了,这是问题的关键,当然,还有时序问题,不能混乱!
STM32f103的I2C例程:
理论上,软件IIC可以使用任何通用引脚。
有人用PA2和PA3进行IIC通信。
3、电阻大小的问题;
最直接的,牵涉到两方面的问题,首先是功耗的问题,其次是速度的问题,二者是矛盾的!如果你想尽量提高速度,那么就牵涉到总线电容的问题,其实很容易理解,上拉电阻与总线的电容形成了RC,高速时将直接影响通讯!因为总线拉高时有个充电时间以及高电平的阀值,如果还没有充电到足以保证从器件可以识别的高电平的阀值时主器件就以为完成了一个总线动作的话,那么通讯肯定是不能进行的!
如果你想尽可能降低功耗,那么就要尽可能增大电阻以最大可能的减小电路各部分的消耗电流从而实现整体降低功耗!但不可能无限大,否则充电时间你会受不了的!备注:
I2C的上拉电阻可以是1.5K,2.2K,4.7K, 电阻的大小对时序有一定影响,对信号的上升时间和下降时间也有影响,一般接1.5K或2.2K
I2C上拉电阻确定有一个计算公式:
Rmin={Vdd(min)-o.4V}/3mA
Rmax=(T/0.874) *c, T=1us 100KHz, T=0.3us 400KHz
C是Bus capacitance
Rp最大值由总线最大容限(Cbmax)决定,Rp最小值由Vio与上拉驱动电流(最大取3mA)决定;
于是 Rpmin=5V/3mA≈1.7K(@Vio=5V)或者2.8V/3mA≈1K(@Vio=2.8V)
Rpmax的取值:参考周公的I2C总线规范中文版P33图39与P35图44
总的来说:电源电压限制了上拉电阻的最小值 ; 负载电容(总线电容)限制了上拉电阻的最大值
补充: 在I2c总线可以串连300欧姆电阻RS可以用于防止SDA和SCL线的高电压毛刺
: I2c从设备的数量受总线电容,<=400pF的限制做过I2C碰到过各种问题,多半是上拉电阻或者控制器时钟的问题。没上拉电阻或者上拉电阻过大,都会导致不稳定而出现寻址不到的问题。控制器时钟主频的话,主频667M八分频就可以
-
上拉电阻原理
2010-03-26 21:33:00上拉电阻原理上拉电阻为何能上拉在节点与正5V电源之间接个10k的上拉电阻,能把这个节点的点位拉上来。我实在不明白,要想把电位提上来,直接接电源不就行了?电源通过这个10k的电阻肯定会降压的,这样一来,岂不是把...上拉电阻原理
上拉电阻为何能上拉
在节点与正5V电源之间接个10k的上拉电阻,能把这个节点的点位拉上来。我实在不明白,要想把电位提上来,直接接电源不就行了?电源通过这个10k的电阻肯定会降压的,这样一来,岂不是把节点的点位降低了吗?往往这个节点要求应用单片机或者其他控制器件来控制它为高或低电平(即这个节点与I/O口连接)
如果单纯的想要使这点成为高电平,并且输出阻抗非常大的话,直接接电源也无妨,但是如果你单片机如果要使这个节点拉低,即单片机内部使节点接地,这样5V电源不是和地短路了么。
另外,当要求这个节点为高电平的时候,你的这个节点和地之间的阻抗一般是非常大,比如100K的阻抗,而你上拉一个10K的电阻的话,这个点的电压为(5/100+10)*100=4.5V这样也可以上高电平啊。而当要求这个节点为低电平的时候只要把它和地连就可以了,电源和地之间有一个10K的负载:)使用上拉电阻的情况:
1、当TTL电路驱动COMS电路时,如果TTL电路输出的高电平低于COMS电路的最低高电平(一般为3.5V),这时就需要在TTL的输出端接上拉电阻,以提高输出高电平的值。
2、OC门电路必须加上拉电阻,才能使用。
3、为加大输出引脚的驱动能力,有的单片机管脚上也常使用上拉电阻。
4、在COMS芯片上,为了防止静电造成损坏,不用的管脚不能悬空,一般接上拉电阻产生降低输入阻抗,提供泄荷通路。
5、芯片的管脚加上拉电阻来提高输出电平,从而提高芯片输入信号的噪声容限增强抗干扰能力。
6、提高总线的抗电磁干扰能力。管脚悬空就比较容易接受外界的电磁干扰。
7、长线传输中电阻不匹配容易引起反射波干扰,加上下拉电阻是电阻匹配,有效的抑制反射波干扰。
上拉电阻阻值的选择原则包括:
1、从节约功耗及芯片的灌电流能力考虑应当足够大;电阻大,电流小。
2、从确保足够的驱动电流考虑应当足够小;电阻小,电流大。
3、对于高速电路,过大的上拉电阻可能边沿变平缓。
综合考虑以上三点,通常在1k到10k之间选取。对下拉电阻也有类似道理
对上拉电阻和下拉电阻的选择应结合开关管特性和下级电路的输入特性进行设定,主要需要考虑以下几个因素:
1. 驱动能力与功耗的平衡。以上拉电阻为例,一般地说,上拉电阻越小,驱动能力越强,但功耗越大,设计是应注意两者之间的均衡。
2.下级电路的驱动需求。同样以上拉电阻为例,当输出高电平时,开关管断开,上拉电阻应适当选择以能够向下级电路提供足够的电流。
3.高低电平的设定。不同电路的高低电平的门槛电平会有不同,电阻应适当设定以确保能输出正确的电平。以上拉电阻为例,当输出低电平时,开关管导通,上拉电阻和开关管导通电阻分压值应确保在零电平门槛之下。
4.频率特性。以上拉电阻为例,上拉电阻和开关管漏源级之间的电容和下级电路之间的输入电容会形成RC延迟,电阻越大,延迟越大。上拉电阻的设定应考虑电路在这方面的需求。
下拉电阻的设定的原则和上拉电阻是一样的。
OC门输出高电平时是一个高阻态,其上拉电流要由上拉电阻来提供,设输入端每端口不大于100uA,设输出口驱动电流约500uA,标准工作电压是5V,输入口的高低电平门限为0.8V(低于此值为低电平);2V(高电平门限值)。
选上拉电阻时:500uA x 8.4K= 4.2即选大于8.4K时输出端能下拉至0.8V以下,此为最小阻值,再小就拉不下来了。如果输出口驱动电流较大,则阻值可减小,保证下拉时能低于0.8V即可。
当输出高电平时,忽略管子的漏电流,两输入口需200uA
200uA x15K=3V即上拉电阻压降为3V,输出口可达到2V,此阻值为最大阻值,再大就拉不到2V了。选10K可用。COMS门的可参考74HC系列
设计时管子的漏电流不可忽略,IO口实际电流在不同电平下也是不同的,上述仅仅是原理,一句话概括为:输出高电平时要喂饱后面的输入口,输出低电平不要把输出口喂撑了(否则多余的电流喂给了级联的输入口,高于低电平门限值就不可靠了) -
上下拉电阻作的作用是什么?OC,OD门是什么?
2020-07-14 18:45:29OC(open collector)是集电极开路,必须外界上拉电阻和电源才能将开关电平作为高低电平用。否则它一般只作为开关大电压和大电流负载,所以又叫做驱动门电路。 集电极开路输出的结构如图1所示,右边的那个三极管... -
USB上下拉电阻及OTG
2018-08-14 18:58:20USB OTG标准在完全兼容USB2.0标准的基础上,增添了电源管理(节省功耗)功能,它允许设备既可作为主机,也可作为外设操作(两用OTG)。USB OTG技术可实现没有主机时设备与设备之间的数据传输。例如:数码相机可以...OTG检测的原理是:
USB OTG标准在完全兼容USB2.0标准的基础上,增添了电源管理(节省功耗)功能,它允许设备既可作为主机,也可作为外设操作(两用OTG)。USB OTG技术可实现没有主机时设备与设备之间的数据传输。例如:数码相机可以直接与打印机连接并打印照片,手机与手机之间可以直接传送数据等,从而拓展了USB技术的应用范围。在OTG中,初始主机设备称为A设备,外设称为B设备。也就是说,手机既可以做外设,又可以做主机来传送数据,可用电缆的连接方式来决定初始角色(由ID线的状态来决定)。USB协议要求的,1.5K上拉在D+时表示是全速设备,在D-表示不是全速设备
有些方案里面(比如PNX5230)推荐D+/D-接下拉1M的电阻是为了提高数据传输稳定性的① usb有主从设备之分,主设备有:pc, 现在市面上的那些插u-disk即可播放mp3的“mp3”之类的,
usb 信号是差分信号,信号线为D+, D-。 在usb host 端, D+,D- 各接一个15K的下拉电阻, 而在usb device端,这时就有高速低速设备的区别了。usb1.0, 1.1,2.0协议中都有定义高低速设备以满足不同情况的需求,这些在硬件上的区别就是: 高速设备:d+ 接一个1.5K的上拉电阻,d-不接;低速设备则相反。
这样当usb device 插入到host中时,如果是高速设备, 则d+被拉高,d-不变;低速设备则与之相反。 这个上拉过程需要大概2.5us的时间,host这这个时间内便检测到了该信号,即可判断有device plug in,和该device的类型,然后开始通讯等。二、 USB OTG(on the go) 就是既可以做host又可以做client
我们一般是作为client接受PC传输数据,作为host时可以接打印机直接把手机中的照片打印出来
判别是host还是client是靠USB_ID这根pin当作为client时,USB_ID基本是悬空的(内部有上拉)
如果侦测到USB_ID被拉低,就被认为是作为host,向外输出
所以需要外部client设备把USB_ID拉低(USB ID检测到低电平则手机作为主,高电平则手机作为从)
三、关于USB的上下拉电阻,不是随便接个任意阻值的电阻就ok了。
当你的USB为主设备的时候,D+、D-上分别接一个1.5K的下拉电阻,这样可以使得在没有设备插入的时候,D+、D-上始终保持低电平;
当你的USB为从设备接口时,可以通过在上拉电阻来设置不同的传输速率,当D+接一个1.5K上拉电阻,可以工作在高速率模式如12MBPs,当D-接1.5K上拉电阻,工作在低速率模式,如1.5MPBs。
主USB自动识别从设备为高速还是低速就靠上拉电阻在D+还是D-上区别,电阻阻值的不规范会影响usb自动识别分配资源,出现不能发现硬件或使用到一般硬件发现失败等现象,所以不要随便上下拉电阻,先规范USB的硬件接口电路。
实际的USB连接线中,是没有USB_ID这根线的。 都是在接口部分直接拉死的。
对于Host端,只需将连接线的USB_ID pin和地短接即可,
对于Slave端,USB连接线的USB_ID pin是悬空的。(设备内部上拉)。(跟普通Micro USB一样) -
新手,给51单片机接数码管问题
2016-10-14 10:36:31给51单片机接一个数码管,共阳的,共阳的管脚直接接电源VCC,剩下的八个管脚都通过1K的电阻接到一组IO口上,如果是P0口,每个管脚要接上10K的上拉电阻,P1,2,3,不用上拉。为什么 -
JTAG接口20针,14针信号标准
2014-01-09 13:07:17 -
2020-08-08
2020-08-08 10:56:17上拉电阻的概念就是一端连接电源正极,一端连接到输出口,如果没有这个电阻,那么电源和输出口就没有直接连接关系。它的作用如上图,它可以避免I/O口悬空,这样就能稳定输出端的电位。 示例: 51单片机中除了P0口有... -
2020-08-07
2020-08-07 15:21:20上拉电阻的概念就是一端连接电源正极,一端连接到输出口,如果没有这个电阻,那么电源和输出口就没有直接连接关系。它的作用如上图,它可以避免I/O口悬空,这样就能稳定输出端的电位。 示例: 51单片机中除了P0口有... -
P0负载能力为 8 个 LSTTL 电路,P1-P3负载能力为4个 LSTTL 电路
2019-12-24 16:04:46因为P0口是MOS管直接接电源,带负载能力高。P1-P3口是内部电源经过内部上拉电阻,电阻分压,电流会减小所以带负载能力低 内部上拉,不是外部上拉注意 ... -
单片机程序配置成开漏输出_改变单片机IO口默认电平
2020-12-29 09:34:38P1到P3都有上拉电阻,是强上拉,可以直接驱动外部的接口电路。改变单片机IO口默认电平接上拉电阻的话就是默认高电平,输入时可以检测下降沿,接按键到地。接下拉电阻就默认低电平,输入时可以检测上升沿,接按键到... -
GPIO_OType
2019-09-28 03:43:26开漏输出就是不输出电压,低电平时接地,高电平时不接地。...这种方式可以不接上拉电阻。但如果输出端可能会接地的话,这个时候输出高电平可能引发单片机运行不稳定,甚至可能烧坏引脚。 转载于:htt... -
推挽输出和开漏输出
2019-06-29 18:05:34开漏输出就是不输出电压,低电平时接地,高电平时不接地。...这种方式可以不接上拉电阻。但如果输出端可能会接地的话,这个时候输出高电平可能引发单片机运行不稳定,甚至可能烧坏引脚。 转载于:https:/... -
STM32之IO输出方式理解
2017-10-07 09:51:26下面是开漏和推挽的区别:开漏输出就是不输出电压,低电平时接地,高电平时不接地。...这种方式可以不接上拉电阻。但如果输出端可能会接地的话,这个时候输出高电平可能引发单片机运行不稳定,甚至可能烧坏引脚。 -
因为这样的大电流会影响单片机内部工作的稳定性,io脚和直接负载之间加一个锁存器或者反相器,让io脚去提供...
2020-10-22 14:53:04接一个LED,正极接电源,加限流电阻接到单片机一个引脚上,电阻值可计算,使电流在5mA。单片机工作后,此脚拉低。LED即可发光。 楼主的接法可以,但是我不建议这样做,我们现在一般做项目的常规接法是,led灯的正极... -
使用ST-LINK下载STM32程序
2019-12-25 11:47:03接口电平参考电压,通常可直接接电源 2 Vsupply Input 电源 3 nTRST Output (可选项) JTAG复位。在目标端应加适当的上拉电阻以防止误触发。 4 GND – 接地 5 ... -
{嵌入式stm32}之关于GPIO的输入输出
2013-03-24 01:28:50如果外接上拉电阻,则在输出高电平时电压会拉到上拉电阻的电源电压。 这种方式适合在连接的外设电压比单片机电压低的时候。 开漏输出:输出端相当于三极管的集电极. 要得到高电平状态需要上拉电阻才行. 适合于... -
单片机控制GSM模块(TC35I)电路设计
2020-07-21 21:46:53由于OC门电路的输出管的集电极悬空,使用时需外接一个上拉电阻Rp到电源VCC。OC门使用上拉电阻以输出高电平,此外为了加大输出引脚的驱动能力,上拉电阻阻值的选择原则,从降低功耗及芯片的灌电流能力考虑应当足够大;... -
亚为采集卡DIO操作演示(WiFi系列采集卡为例).rar
2018-01-02 11:21:13外部上拉 (例如电源24V,上拉电阻100Ω),可驱动大功率负载 (例如照明灯泡等)。 注意:DO作为驱动输出,需要根据所需电流和功率,详细计算上拉电阻,一般是所需电流越大,上拉电阻阻值越小,对于超过50mA 的... -
一个简单的io使用错误
2012-05-14 14:40:28犯了如下错误, 将io口通过10k下拉到地,拨码开关另外一段直接接3v3,竟引起板子cpu很快发烫,看来一般的i输入口可以接地处理,但是不能随便接到电源 最多是上拉个电阻到电源 -
stm32f103 usb驱动 电脑无法识别的解决办法
2017-03-24 15:53:041.usb所使用的io口在... 3.usbp线一定要接1.5k的上拉电阻,用于电脑识别设备,官方库使用了lO口模拟了上拉电源,这样方3便软件控制断开与重新连接,直接上拉到电源也是可以的,不过需要断开和重新连接时只能手动插拔 -
单片机中的高阻态到底什么意思?
2021-01-19 18:28:41在51单片机,没有连接上拉电阻的P0口相比有上拉电阻的P1口在I/O口引脚和电源之间相连是通过一对推挽状态的FET来实现的,51具体结构如下图。 51结构图 组成推挽结构,从理论上讲是可以通过调配... -
开漏输出和推挽输出
2020-12-24 15:13:401.开漏输出(开集输出) 1.1结构 集电极开路输出的结构如图1所示,右边的那个三极管...电平转换:可以很方便的调节输出的电平,因为输出电平完全由上拉电阻连接的电源电平决定。所以在需要进行电平转换的地方,... -
汽车电子数字输入电路,模拟输入电路设计
2019-10-31 13:53:06一般开关量接上拉电阻到UBAT(电池电压)。接UBAT主要是考虑电池直接供电。如果用5V供电,考虑极端情况一直闭合,会增加5V电源供电电路的电流,则增大了5V输出电流,对芯片要求提高。 模拟量输入电路:分为温度型... -
cmos管宽长比,OC, OD门和线与逻辑,传输门,竞争冒险,三态门
2020-07-24 16:17:20管子的栅极和输入连接,源极接公共端,漏极悬空(开路)什么也没有接,因此使用时需要接一个适当阻值的电阻到电源,才能使这个管子正常工作,这个电阻就叫上拉电阻。 线与逻辑:即两个输出端(包括两个以上)直接... -
STM32入门之电路基础
2020-02-03 20:48:04上下拉电阻 拉的是某一个接口,0或者1的电平状态 平时高电平,复位时低电平,直接导通接地为0。 下拉电阻保持低电平,唤醒后触发高电平为1,忽略低电平,因为电路都是优先导通电阻最小的通路。 ... -
ESP8266入门指南——实现PC与模块通信
2015-04-08 15:43:05本文使用的是ESP8266-07串口转wifi模块。硬件连接总共要接如下几根线: ...电路图如下,可以不必像最小系统那么严格,本人电源直接使用USB串口上的3.3v,上拉,下拉电阻不接也可以使用。 启动 将串口接入电脑,模块蓝 -
VCU控制策略之车辆传感器
2020-08-26 16:59:57一、汽车传感器 (一)水温传感器 汽车水温传感器的内部是汽车水温传感器,温度愈低,电阻愈大;...水温传感器与VCU中接有上拉电阻的AD采集口进行连接,可以通过信号端的电阻分压电压得到和可 -
52单片机四种方法实现流水灯
2021-01-19 20:55:48STC89C52芯片的P0组IO口没有上拉电阻,无法输出高电平,所以要给P0组IO口接上拉排阻。 流水灯电路图 电源→限流电阻→发光二极管→74HC573输出端→单片机P1组IO口 因为单片机的IO口输出电流非常小,无法直接用IO口...