2016-07-06 07:46:03 softn 阅读数 281
  • 单片机控制第一个外设-LED灯-第1季第6部分

    本课程是《朱有鹏老师单片机完全学习系列课程》第1季第6个课程,主要讲解LED的工作原理和开发板原理图、实践编程等,通过学习目的是让大家学会给单片机编程控制LED灯,并且为进一步学习其他外设打好基础。

    4053 人正在学习 去看看 朱有鹏
前边似乎我们很多次提到了上拉电阻,下拉电阻,具体到底什么样的电阻算是上下拉电阻,上下拉电阻都有何作用呢?

上拉电阻就是将不确定的信号通过一个电阻拉到高电平,同时此电阻也起到一个限流作用,下拉就是下拉到低电平。

比如我们的 IO 设置为开漏输出高电平或者是高阻态时,默认的电平就是不确定的,外部经一个电阻接到 VCC,也就是上拉电阻,那么相应的引脚就是高电平;经一个电阻到 GND,也就是下拉电阻,那么相应的引脚就是一个低电平。

上拉电阻应用很多,都可以起到什么作用呢?我们现在主要先了解最常用的以下 4 点:
  1. OC 门要输出高电平,必须外部加上拉电阻才能正常使用,其实 OC 门就相当于单片机 IO 的开漏输出,其原理可参照图 9-1 中的开漏电路。
  2. 加大普通 IO 口的驱动能力。标准 51 单片机的内部 IO 口的上拉电阻,一般都是在几十 K 欧,比如 STC89C52 内部是 20K 的上拉电阻,所以最大输出电流是 250uA,因此外部加个上拉电阻,可以形成和内部上拉电阻的并联结构,增大高电平时电流的输出能力。
  3. 在电平转换电路中,比如我们前边讲的 5V 转 12V 的电路中,上拉电阻其实起到的是限流电阻的作用,可以回顾一下图 3-8。
  4. 单片机中未使用的引脚,比如总线引脚,引脚悬空时,容易受到电磁干扰而处于紊乱状态,虽然不会对程序造成什么影响,但通常会增加单片机的功耗,加上一个对 VCC 的上拉电阻或者一个对 GND 的下拉电阻后,可以有效的抵抗电磁干扰。

那么我们在进行电路设计的时候,又该如何选择合适的上下拉电阻的阻值呢?
  1. 从降低功耗的方面考虑应当足够大,因为电阻越大,电流越小。
  2. 从确保足够的引脚驱动能力考虑应当足够小,电阻小了,电流才能大。
  3. 在开漏输出时,过大的上拉电阻会导致信号上升沿变缓。我们来解释一下:实际电平的变化都是需要时间的,虽然很小,但永远都达不到零,而开漏输出时上拉电阻的大小就直接影响了这个上升过程所需要的时间,如图 9-2 所示。想一下,如果电阻很大,而信号频率又很快的话,最终将导致信号还没等上升到高电平就又变为低了,于是信号就无法正确传送了。
图 9-2  上拉电阻阻值对波形的影响
图 9-2  上拉电阻阻值对波形的影响

综合考虑各种情况,我们常用的上下拉电阻值大多选取在 1K 到 10K 之间,具体到底多大通常要根据实际需求来选,通常情况下在标准范围内就可以了,不一定是一个固定的值。
2017-01-03 22:59:34 eagle11235 阅读数 551
  • 单片机控制第一个外设-LED灯-第1季第6部分

    本课程是《朱有鹏老师单片机完全学习系列课程》第1季第6个课程,主要讲解LED的工作原理和开发板原理图、实践编程等,通过学习目的是让大家学会给单片机编程控制LED灯,并且为进一步学习其他外设打好基础。

    4053 人正在学习 去看看 朱有鹏
前边似乎我们很多次提到了上拉电阻,下拉电阻,具体到底什么样的电阻算是上下拉电阻,上下拉电阻都有何作用呢?

上拉电阻就是将不确定的信号通过一个电阻拉到高电平,同时此电阻也起到一个限流作用,下拉就是下拉到低电平。

比如我们的 IO 设置为开漏输出高电平或者是高阻态时,默认的电平就是不确定的,外部经一个电阻接到 VCC,也就是上拉电阻,那么相应的引脚就是高电平;经一个电阻到 GND,也就是下拉电阻,那么相应的引脚就是一个低电平。

上拉电阻应用很多,都可以起到什么作用呢?我们现在主要先了解最常用的以下 4 点:
  1. OC 门要输出高电平,必须外部加上拉电阻才能正常使用,其实 OC 门就相当于单片机 IO 的开漏输出,其原理可参照图 9-1 中的开漏电路。


  2. 加大普通 IO 口的驱动能力。标准 51 单片机的内部 IO 口的上拉电阻,一般都是在几十 K 欧,比如 STC89C52 内部是 20K 的上拉电阻,所以最大输出电流是 250uA,因此外部加个上拉电阻,可以形成和内部上拉电阻的并联结构,增大高电平时电流的输出能力。


  3. 在电平转换电路中,比如我们前边讲的 5V 转 12V 的电路中,上拉电阻其实起到的是限流电阻的作用,可以回顾一下图 3-8。


  4. 单片机中未使用的引脚,比如总线引脚,引脚悬空时,容易受到电磁干扰而处于紊乱状态,虽然不会对程序造成什么影响,但通常会增加单片机的功耗,加上一个对 VCC 的上拉电阻或者一个对 GND 的下拉电阻后,可以有效的抵抗电磁干扰。



那么我们在进行电路设计的时候,又该如何选择合适的上下拉电阻的阻值呢?

  1. 从降低功耗的方面考虑应当足够大,因为电阻越大,电流越小。


  2. 从确保足够的引脚驱动能力考虑应当足够小,电阻小了,电流才能大。


  3. 在开漏输出时,过大的上拉电阻会导致信号上升沿变缓。我们来解释一下:实际电平的变化都是需要时间的,虽然很小,但永远都达不到零,而开漏输出时上拉电阻的大小就直接影响了这个上升过程所需要的时间,如图 9-2 所示。想一下,如果电阻很大,而信号频率又很快的话,最终将导致信号还没等上升到高电平就又变为低了,于是信号就无法正确传送了。



图 9-2  上拉电阻阻值对波形的影响


综合考虑各种情况,我们常用的上下拉电阻值大多选取在 1K 到 10K 之间,具体到底多大通常要根据实际需求来选,通常情况下在标准范围内就可以了,不一定是一个固定的值。



来自于 微信公众号  玩转单片机

2017-11-30 00:14:55 g1fdgfgdf2_ 阅读数 5995
  • 单片机控制第一个外设-LED灯-第1季第6部分

    本课程是《朱有鹏老师单片机完全学习系列课程》第1季第6个课程,主要讲解LED的工作原理和开发板原理图、实践编程等,通过学习目的是让大家学会给单片机编程控制LED灯,并且为进一步学习其他外设打好基础。

    4053 人正在学习 去看看 朱有鹏

什么是上拉电阻?

上拉就是将不确定的信号通过一个电阻钳位在高电平,电阻同时起限流作用。下拉同理,也是将不确定的信号通过一个电阻钳位在低电平。

为什么需要上拉电阻?

一般作单键触发使用时,如果IC本身没有内接电阻,为了使单键维持在不被触发的状态或是触发后回到原状态,必须在IC外部另接一电阻。

数字电路有三种状态:高电平、低电平、和高阻状态,有些应用场合不希望出现高阻状态,可以通过上拉电阻或下拉电阻的方式使处于稳定状态,具体视设计要求而定!
一般说的是I/O端口,有的可以设置,有的不可以设置,有的是内置,有的是需要外接,I/O端口的输出类似于一个三极管的C,当C接通过一个电阻和电源连接在一起的时候,该电阻成为上拉电阻,也就是说,该端口正常时为高电平;C通过一个电阻和地连接在一起的时候,该电阻称为下拉电阻。
上拉电阻是用来解决总线驱动能力不足时提供电流的问题的。一般说法是上拉增大电流,下拉电阻是用来吸收电流。
51单片机接按键时使用上拉电阻有什么用?

P3口需要接上拉电阻,4.7K- 10K 的上拉电阻,才能保证P3口的引脚在没有按键时是高电平。


2014-01-30 13:40:47 cpp1984 阅读数 459
  • 单片机控制第一个外设-LED灯-第1季第6部分

    本课程是《朱有鹏老师单片机完全学习系列课程》第1季第6个课程,主要讲解LED的工作原理和开发板原理图、实践编程等,通过学习目的是让大家学会给单片机编程控制LED灯,并且为进一步学习其他外设打好基础。

    4053 人正在学习 去看看 朱有鹏
在数字电路中不用的输入脚都要接固定电平,通过1k电阻接高电平或接地。
1. 电阻作用: 
接电阻就是为了防止输入端悬空,减弱外部电流对芯片产生的干扰,保护cmos内的保护二极管,一般电流不大于10mA 
上拉和下拉、限流 
1. 改变电平的电位,常用在TTL-CMOS匹配 
2. 在引脚悬空时有确定的状态 
3.增加高电平输出时的驱动能力。 
4、为OC门提供电流 
那要看输出口驱动的是什么器件,如果该器件需要高电压的话,而输出口的输出电压又不够,就需要加上拉电阻。 如果有上拉电阻那它的端口在默认值为高电平你要控制它必须用低电平才能控制如三态门电路三极管的集电极,或二极管正极去控制把上拉电阻的电流拉下来成为低电平。反之, 尤其用在接口电路中,为了得到确定的电平,一般采用这种方法,以保证正确的电路状态,以免发生意外,比如,在电机控制中,逆变桥上下桥臂不能直通,如果它们都用同一个单片机来驱动,必须设置初始状态.防止直通!
2、定义:
上拉电阻的作用:6N137的的输出三极管C极,如果没有上拉电阻,则该引脚上的电平不会发生随B极电平的高低变化。原因是它没有接到任何电源上。如果接上了上拉电阻,则B极电平为高时,C极对地导通(相当于开关接通),C极的电压就变低;如B极电压为低,则C极对地关断,C极的电压就升到高电平。为就是上面说的“将通断转换成高低电平”。你说的51与此图有一定的不同,参照着去理解吧。另外,一般地,C极低电平时器件从外部吸入电流的能力和高电平时向外部灌出电流的能力是不一样的。器件输出端常有Isink和Isource两个参数,且前者往往大于后者。 
下拉电阻的作用:所见不多,常见的是接到一个器件的输入端,多作为抗干扰使用。这是由于一般的IC的输入端悬空时易受干扰或器件扫描时有间隙泄漏电压而影响电路的性能。后者,我们在某批设备中曾碰到过。 
上拉电阻的阻值主要是要顾及端口的低电平吸入电流的能力。例如在5V电压下,加1K上拉电阻,将会给端口低电平状态增加5mA的吸入电流。在端口能承受的条件下,上拉电阻小一点为好。 
提高负载能力、提高直流工作电平 
无信号是给电路提供确定的电平。 
上拉 一端接vcc,一端接在引脚上 
下拉:一端接gnd,一端接在引脚上 
上拉就是将不确定的信号通过一个电阻嵌位在高电平!电阻同时起限流作用!下拉同理! 
上拉是对器件注入电流,下拉是输出电流弱强只是上拉电阻的阻值不同,没有什么严格区分对于非集电极(或漏极)开路输出型电路(如普通门电路)提升电流和电压的能力是有限的,上拉电阻的功能主要是为集电极开路输出型电路输出电流通道。
3、为什么要使用拉电阻: 
一般作单键触发使用时,如果IC本身没有内接电阻,为了使单键维持在不被触发的状态或是触发后回到原状态,必须在IC外部另接一电阻。 
数字电路有三种状态:高电平、低电平、和高阻状态,有些应用场合不希望出现高阻状态,可以通过上拉电阻或下拉电阻的方式使处于稳定状态,具体视设计要求而定! 
一般说的是I/O端口,有的可以设置,有的不可以设置,有的是内置,有的是需要外接,I/O端口的输出类似与一个三极管的C,当C接通过一个电阻和电源连接在一起的时候,该电阻成为上C拉电阻,也就是说,如果该端口正常时为高电平,C通过一个电阻和地连接在一起的时候,该电阻称为下拉电阻,使该端口平时为低电平,作用吗:比如:当一个接有上拉电阻的端口设为输如状态时,他的常态就为高电平,用于检测低电平的输入。 
上拉电阻是用来解决总线驱动能力不足时提供电流的。一般说法是拉电流,下拉电阻是用来吸收电流的,也就是通常说的灌电流。
1、当TTL电路驱动CMOS电路时,如果TTL电路输出的高电平低于CMOS电路的最低高电平(一般为3.5V),   这时就需要在TTL的输出端接上拉电阻,以提高输出高电平的值。
2、OC门电路必须加上拉电阻,以提高输出的搞电平值。
3、为加大输出引脚的驱动能力,有的单片机管脚上也常使用上拉电阻。
4、在CMOS芯片上,为了防止静电造成损坏,不用的管脚不能悬空,一般接上拉电阻产生降低输入阻抗,   提供泄荷通路。
5、芯片的管脚加上拉电阻来提高输出电平,从而提高芯片输入信号的噪声容限增强抗干扰能力。
6、提高总线的抗电磁干扰能力。管脚悬空就比较容易接受外界的电磁干扰。
7、长线传输中电阻不匹配容易引起反射波干扰,加上下拉电阻是电阻匹配,有效的抑制反射波干扰。
上拉电阻阻值的选择原则包括:
1、从节约功耗及芯片的灌电流能力考虑应当足够大;电阻大,电流小。
2、从确保足够的驱动电流考虑应当足够小;电阻小,电流大。
3、对于高速电路,过大的上拉电阻可能边沿变平缓。综合考虑
以上三点,通常在1k到10k之间选取。对下拉电阻也有类似道理
 
浅谈上、下拉电阻的作用
上下拉电阻:

1、当TTL电路驱动COMS电路时,如果TTL电路输出的高电平低于COMS电路的最低高电平(一般为3.5V),    这时就需要在TTL的输出端接上拉电阻,以提高输出高电平的值。
2、OC门电路必须加上拉电阻,以提高输出的高电平值。
3、为加大输出引脚的驱动能力,有的单片机管脚上也常使用上拉电阻。
4、在COMS芯片上,为了防止静电造成损坏,不用的管脚不能悬空,一般接上拉电阻产生降低输入阻抗,提供泄荷通路。
5、芯片的管脚加上拉电阻来提高输出电平,从而提高芯片输入信号的噪声容限增强抗干扰能力。
6、提高总线的抗电磁干扰能力。管脚悬空就比较容易接受外界的电磁干扰。
7、长线传输中电阻不匹配容易引起反射波干扰,加上下拉电阻是电阻匹配,有效的抑制反射波干扰。

上拉电阻阻值的选择原则包括:

1、从节约功耗及芯片的灌电流能力考虑应当足够大;电阻大,电流小。
2、从确保足够的驱动电流考虑应当足够小;电阻小,电流大。
3、对于高速电路,过大的上拉电阻可能边沿变平缓。综合考虑
以上三点,通常在1k到10k之间选取。对下拉电阻也有类似道理 
阻的具体取值怎么计算的?
上拉电阻是不是应该是接Vcc再接电阻,然后接到管脚上的?
一般上下拉的电阻取值都有个特定的范围,不能太大,也不能太小.都在几K到几十K之间吧,具体的还要看电路要求.在一些单片机中,例如AVR系列单片机ATmega8L,带有内部上拉电阻Rpu,如下图所示

可以通过单片机程序控制电阻上拉与否,从而不需要外接上拉。
  一般情况下,R3取值要远大于R4,否则单片机I/O的输入电压Vpin会有低于标准输入电压VIH最低值的可能。从ATmega8L数据手册中查到Rpu取值在20kΩ~100kΩ之间,又因为VIH的最小值约为0.6VCC。因此R3/(R3+R4)>0.6,取R4=50kΩ,并取R3/(R3+R4)=0.8 ,所以R3取值应该在200kΩ左右的范围,可以根据实际工作情况来选择具体的R4取值。
至于接法,上拉电阻简单来说就是把电平拉高,通常用4.7-10K的电阻接到Vcc电源,下拉电阻则是把电平拉低,电阻接到GND地线上。所以是接电源或者接地,再接到需要拉高或者拉低电平的节点上的.
一般说来,不光是重要的信号线,只要信号在一段时间内可能出于无驱动状态,就需要处理。
比如说,一个CMOS门的输入端阻抗很高,没有处理,在悬空状况下很容易捡拾到干扰,如果能量足够甚至会导致击穿或者闩锁,导致器件失效。祈祷输入的保护二极管安全工作吧。如果电平一直处于中间态,那输出就可能是不确定的情况,也可能是上下MOS都导通,对器件寿命造成影响。
总线上当所有的器件都处于高阻态时也容易有干扰出现。因为这时读写控制线处于无效状态,所以不一定会引起问题。你如果觉得自己能够接受的话也就将就了。但是这时你就要注意到,控制线不能悬空,不然……
TTL电路的输入端是一个发射极开路引出的结构,拉高或者不接都是高电平,但是强烈建议不要悬空不接。
上拉还是下拉?要看需要。一方面器件可能又要求,另一方面,比如总线上两个器件,使能控制都是高有效,那么最好下拉,否则当控制信号没有建立的时候就会出现两个冲突,可能烧片。如果计算机总线上面挂了一个D/A,上电复位信号要对它清零或者预置,那么总线可以上下拉到你需要的数字。
至于上下拉电阻的大小,这个情况就比较多了。CMOS输入的阻抗很高,上下拉电阻阻值可以大一些,一般低功耗电路的阻值取得都比较大,但是抗干扰能力相应比较弱一些。
很多场合下拉电阻取值比上拉电阻要小,这个是历史遗留问题。如上面所说,TTL电路上拉时输入3集管基射反偏,没有什么电流,但是下拉时要能够使得输入晶体管工作,这个在TTL的手册中可以查到。
也是为了这个历史遗留问题,有些CMOS器件内部采用了上拉,这时它会告诉你可以不处理这些管脚,但是这时你就要注意了,因为下拉再用10K可能不好使,因为也许内置的20K电阻和外置的10K把电平固定在了1V左右。
有时候你会看到150欧姆或者50欧姆左右的上下拉电阻,尤其是在高速电路中会看到。
150欧姆电阻下拉一般在PECL逻辑中出现。PECL逻辑输出级是设计开路的电压跟随器,需要你用电阻来建立电压。
50欧姆的电阻在TTL电路中用的不多,因为静态功耗实在是比较大。在CML电路和PECL电路中兼起到了端接和偏置的作用。
CML电路输出级是一对集电极开路的三极管,需要一个上拉电阻来建立电平。这个电阻可以放在发送端,那么接受端还需要端接处理,也可以放到接受端,这时候端接电阻和偏置电阻就是一个。PECL电路结构上就好像CML后面跟了一个射极跟随器。
OC门也使用上拉电阻,这个和CML有一点相像,但是还不太一样。CML和PECL电路中三极管工作在线形区,而普通门电路和OC/OD门工作在饱和区。OC/OD门电路常用作电平转换或者驱动,但是其工作速度不会太快。
为什么?在OC/OD门中,上拉电阻不能太小,否则功耗会很大。而一般门的负载呈现出一个电容,负载越多,电容越大。当由高到低跳变时,电容的放电通过输出端下拉的MOS或者Bipolar管驱动,速度一般还是比较快的,但是由低到高跳变的时候,就需要通过上拉电阻来完成,R大了几十甚至上百倍,假设C不变,时间常数相应增加同样的倍数。这个在示波器上也可以明显的看出:上升时间比下降时间慢了很多。其实一般门电路上拉比下拉的驱动能力都会差一些,这个现象都存在,只不过不太明显罢了?
在总线的上下拉电阻设计中,就要考虑同样的问题了:总线上往往负载很重,如果你要电阻来提供一些值,你就必须保证电容能通过电阻在一定时间内放电到可接受的范围。如果电阻太大,那么就可能出错。
PLD可编程上下拉,还有总线保持也相当于上下拉,可以省去外接电阻。但是有一些麻烦。

一般输入端才需要上下拉,假设器件10K是一个可行的值,那么10个元件并联会等效有多大的输入上拉电阻?1K。

也就是说,如果你想给信号线预置一个低电平,可能需要200欧姆的外置下拉电阻。这种情况下,如果还有一个3门驱动这个信号,高电平的时候需要扇出15mA左右的静态电流,有点太大了。这就是附加的负载效应。

如果两个器件一个上拉一个下拉,当一个3态门驱动,输出3态时会怎么样?电平1.5V左右,两个门处于不高不低的状态,预置电平的目的没有达到,而且可能诱发震荡,对器件寿命造成影响。
内置上下拉电阻使得设计可靠的电路复杂性增加了,一个不留神就可能留下隐患,而且很难分析,使用中要非常非常小心。如果能够外接电阻,尽量还是少采用内置上下拉或者总线保持的门电路吧。
2019-10-18 20:03:44 qq_36369488 阅读数 22
  • 单片机控制第一个外设-LED灯-第1季第6部分

    本课程是《朱有鹏老师单片机完全学习系列课程》第1季第6个课程,主要讲解LED的工作原理和开发板原理图、实践编程等,通过学习目的是让大家学会给单片机编程控制LED灯,并且为进一步学习其他外设打好基础。

    4053 人正在学习 去看看 朱有鹏

学习一下STM32有关GPIO的基本知识

GPIO分类

STM32单片机的GPIO有八中模式

  1. 输入模式

    -输入浮空(GPIO_Mode_IN_FLOATING)
    可以理解为浮空对吧空的,就是在IO控悬空时不知到IO口是搞电平还是低电平,完全根据外部的电路去决定这个IO的读取的电平高低。所以在用浮空输入模式时要记得外部上拉或者下拉电阻。

    -输入上拉(GPIO_Mode_IPU)
    上拉输入,就是在单片机内部将IO口电平上拉,当悬空时读取IO口电平为高,当单片机内部有上拉的时候我们外部就不需要上拉了很多情况下这样做是会省去一个电阻的钱的,能薅羊毛为什么不呢。
    -输入下拉(GPIO_Mode_IPD)
    下拉输入,和上拉输入一样的意思只是是下拉。在这里插入图片描述
    如上按键电路的设计
    KEY_UP引脚就是典型的一个下输入,设置PA0引脚为下拉输入模式,当按键没有按下的时候读取IO口电平返回的是0当按键按下的时候读取IO口电平返回的是1;
    同理KEY0、1、2使用的是上拉输入模式,当按键没有按下的时候也就是引脚悬空的时候去读IO口读取到的是1当按键按下的时候读取IO口电平读取到的就是0;
    -模拟输入(GPIO_Mode_AIN)
    顾名思义,模拟输入嘛 就是模拟信号输入。单片机内部关闭施密特触发器施密特触发器是个什么东西呢,电路图就不看了看一下作用吧
    忽略水印在这里插入图片描述
    关闭施密特触发器以后IO口就能直接的接受到模拟信号,一般这个模式用于ADC之类的东西,采集模拟信号。

主要mark一下这些模式的应用场景,在使用的时候记得在相应的场合用上最正确的配置

  1. 输出模式

    -开漏输出(GPIO_Mode_Out_OD)
    开漏输出应该是我们可能用的比较少的一种输出方式吧,开漏输出呢,输出0就是接地,输出1时外部是悬空状态的,需要外部接上拉电阻,一般用这个模式的时候就是挂载外设外设自己带有上拉电阻这时候用开漏模式就可以了。也有人说类似于三极管的集电极一样的道理,自己电很小需要外部上拉。
    -开漏复用功能(GPIO_Mode_AF_OD)
    开漏复用,就是说这个引脚不能单独的作为纯粹的独立IO口来使用,比如用于一些片内外设功能(I2C的SCL,SDA)
    引脚已经固定到外设对应的引脚上了。
    -推挽式输出(GPIO_Mode_Out_PP)
    推挽输出应该是我们平常做输出的时候使用的最多的一种模式了,比如点亮个等什么的,做个使能引脚什么的,推挽输出输出1就是高电平输出,输出0就是接地,我们平时应该使用的比较的多。
    -推挽式复用功能(GPIO_Mode_AF_PP)
    推挽复用,就是说这个引脚不能单独的作为纯粹的独立IO口来使用,比如用于一些片内外设功能(TX1,MOSI,MISO.SCK.SS)
    引脚已经固定到外设对应的引脚上了不能作为一个独立的IO口使用的了。

单片机 通用I/O口

阅读数 836

没有更多推荐了,返回首页