关于io口上拉电阻阻值问题的讨论-第1部分
按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!
发布时间:2006年8月10日
点击次数:185
详细内容:关于I/O口上拉电阻阻值问题的讨论
关于I/O口上拉电阻阻值问题的讨论
如果是驱动led;那么用1K左右的就行了。如果希望亮度大一些;电阻可减小;最小不要小于200欧姆;否则电流太大;如果希望亮度小一些;电阻可增大;增加到多少呢;主要看亮度情况;以亮度合适为准;一般来说超过3K以上时;亮度就很弱了;但是对于超高亮度的LED;有时候电阻为10K时觉得亮度还能够用。我通常就用1k的。
对于驱动光耦合器;如果是高电位有效;即耦合器输入端接端口和地之间;那么和LED的情况是一样的;如果是低电位有效;即耦合器输入端接端口和VCC之间;那么除了要串接一个1——4。7k之间的电阻以外;同时上拉电阻的阻值就可以用的特别大;用100k——500K之间的都行;当然用10K的也可以;但是考虑到省电问题;没有必要用那么小的。
对于驱动晶体管;又分为PNP和NPN管两种情况:对于NPN;毫无疑问NPN管是高电平有效的;因此上拉电阻的阻值用2K——20K之间的;具体的大小还要看晶体管的集电极接的是什么负载;对于LED类负载;由于发管电流很小;因此上拉电阻的阻值可以用20k的;但是对于管子的集电极为继电器负载时;由于集电极电流大;因此上拉电阻的阻值最好不要大于4。7K;有时候甚至用2K的。对于PNP管;毫无疑问PNP管是低电平有效的;因此上拉电阻的阻值用100K以上的就行了;且管子的基极必须串接一个1——10K的电阻;阻值的大小要看管子集电极的负载是什么;对于LED类负载;由于发光电流很小;因此基极串接的电阻的阻值可以用20k的;但是对于管子的集电极为继电器负载时;由于集电极电流大;因此基极电阻的阻值最好不要大于4。7K。
对于驱动TTL集成电路;上拉电阻的阻值要用1——10K之间的;有时候电阻太大的话是拉不起来的;因此用的阻值较小。但是对于CMOS集成电路;上拉电阻的阻值就可以用的很大;一般不小于20K;我通常用100K的;实际上对于CMOS电路;上拉电阻的阻值用1M的也是可以的;但是要注意上拉电阻的阻值太大的时候;容易产生干扰;尤其是线路板的线条很长的时候;这种干扰更严重;这种情况下上拉电阻不宜过大;一般要小于100K;有时候甚至小于10K。
根据以上分析;上拉电阻的阻值的选取是有很多讲究的;不能乱用;具体情况比较复杂;如果你是个莱鸟;那么你尽量用小一些的;这样牺牲一些电源功耗。不过最好请教一下有关人员。
我也不是很懂。不过;我是这么想的;请老丐多指教!
假如P0口驱动的是一排(8个)发光二极管吧。
那么当二极管发光时;它两端的电压为0。7V(一般二极导通后的电压为0。7V);工作电流10mA
而我们单片机的工作电压一般为5V;那么它接的上拉电阻为:R=(5V…0。7V)/10mA=430欧。
所以我认为应该为400欧左右。不知道对不对呀。
照楼上朋友的思路;我想应该是(因发光二极管的电压一般是1。8V左右;)200欧姆左右
发光二极管正常工作时二端电压是在1。8V左右。
强调:P口仅仅适合接共阳LED;不适合接共阴;如果一定要共阴;必须先用驱动电路驱动。
能用共阳就能用共阳
其实道理一样的
当你共阳的时候电流其实也是从正电源流入P口的;
共阳接法
假设限流电阻用1K的话;那流入P口电流约是(VCC…2)/1K=3MA
共阴接法
上拉电阻也选用1K;P口高阻状态时LED是亮的;这时候流过P口电流为零
流过LED电流和上面共阳接法一样;也是3MA
当LED灭的时候;电流全部从P口流入;即3MA电流全部被P口吸收;LED不亮
既然共阳接法P口能吸入3MA电流;为什么共阴接法就不行呢!!
其实我看过很多电路图就是这样接的。。。
楼主其实没说清楚
比如驱动LED的时候;应该分二种情况
比如用共阳接法和共阴接法;
共阳的时候LED正端接正电源;负端通过一个限流电阻接P口;这时不用接上拉电阻;只要这个限流电阻取合适就可以了
发光管亮的时候电流就是从电源正——LED——限流电阻——P口;P口为低电位
发光管灭的时候没有电流流过;P口为高电位或高阻状态
共阴接法;LED负端接地;正端直接P口;这时候要接上拉电阻;这个上拉电阻是提供LED发光用的;
发光管亮的时候电流是从电源正——上拉电阻——LED——地。这时上拉电阻也是限流用的。P口为高电位或高阻状态
发光管暗的时候电流是从电源正——上拉电阻——P口;这时LED无电流流过;P口为低电位;限流电阻上流过电流全部从P口流入。
其他情况就不细分析了
要从单片机的输出驱动能力开始讲起。单片机输出驱动分为高电平驱动和低电平驱动两种方式;所谓高电平驱动;就是端口输出高电平时的驱动能力;所谓低电平驱动;就是端口输出低电平时的驱动能力;当单片机输出高电平时;其驱动能力实际上是*端口的上拉电阻来驱动的;实际测试表明;51单片机的上拉电阻的阻值在330K左右;也就是说如果*高电平驱动;本质上就是*330K的上拉电阻来提供电流的;当然该电流是非常小的;小的甚至连发光二极管也难以点亮;如果要保证LED正常发光;必须要外接一个1K左右的上拉电阻;如果是一个led还好;要是10个、20个led的话;就要接10个、20个1K的上拉电阻;接电阻的本身是可以的;问题是接了上拉电阻以后;每当端口变为低电平0的时候;那么就有10个、20个上拉电阻被无用的导通;假设每个电阻的电流为5mA计算;20个电阻就是100mA;这将造成电源效率的严重下降;导致发热;纹波增大;以至于造成单片机工作不稳;因此很少有采用高电平直接驱动led的;高电平驱动led实际上就是共阴。低电平驱动就不同了;端口为低电平0时;端口内部的开关管导通;可以驱动高达30多毫安的驱动电流;可以直接驱动led等负载;当端口为低电平0时;尽管内部的上拉电阻也是消耗电流的;但是由于内部的上拉电阻很大;有330K;因此消耗电流极小;基本上不会影响电源效率;不会造成无用功的大量消耗;因此51单片机是不能用高电平直接驱动led的;只能用地电平直接驱动led;即只能用共阳数码管;而不能直接用共阴数码管。
=
论坛中关于I/O口上拉电阻阻值问题的讨论
发布时间:2006年8月9日
点击次数:260
详细内容:论坛中关于I/O口上拉电阻阻值问题的讨论
如果是驱动led;那么用1K左右的就行了。如果希望亮度大一些;电阻可减小;最小不要小于200欧姆;否则电流太大;如果希望亮度小一些;电阻可增大;增加到多少呢;主要看亮度情况;以亮度合适为准;一般来说超过3K以上时;亮度就很弱了;但是对于超高亮度的LED;有时候电阻为10K时觉得亮度还能够用。我通常就用1k的。
对于驱动光耦合器;如果是高电位有效;即耦合器输入端接端口和地之间;那么和LED的情况是一样的;如果是低电位有效;即耦合器输入端接端口和VCC之间;那么除了要串接一个1——4。7k之间的电阻以外;同时上拉电阻的阻值就可以用的特别大;用100k——500K之间的都行;当然用10K的也可以;但是考虑到省电问题;没有必要用那么小的。
对于驱动晶体管;又分为PNP和NPN管两种情况:对于NPN;毫无疑问NPN管是高电平有效的;因此上拉电阻的阻值用2K——20K之间的;具体的大小还要看晶体管的集电极接的是什么负载;对于LED类负载;由于发管电流很小;因此上拉电阻的阻值可以用20k的;但是对于管子的集电极为继电器负载时;由于集电极电流大;因此上拉电阻的阻值最好不要大于4。7K;有时候甚至用2K的。对于PNP管;毫无疑问PNP管是低电平有效的;因此上拉电阻的阻值用100K以上的就行了;且管子的基极必须串接一个1——10K的电阻;阻值的大小要看管子集电极的负载是什么;对于LED类负载;由于发光电流很小;因此基极串接的电阻的阻值可以用20k的;但是对于管子的集电极为继电器负载时;由于集电极电流大;因此基极电阻的阻值最好不要大于4。7K。
对于驱动TTL集成电路;上拉电阻的阻值要用1——10K之间的;有时候电阻太大的话是拉不起来的;因此用的阻值较小。但是对于CMOS集成电路;上拉电阻的阻值就可以用的很大;一般不小于20K;我通常用100K的;实际上对于CMOS电路;上拉电阻的阻值用1M的也是可以的;但是要注意上拉电阻的阻值太大的时候;容易产生干扰;尤其是线路板的线条很长的时候;这种干扰更严重;这种情况下上拉电阻不宜过大;一般要小于100K;有时候甚至小于10K。
根据以上分析;上拉电阻的阻值的选取是有很多讲究的;不能乱用;具体情况比较复杂;如果你是个莱鸟;那么你尽量用小一些的;这样牺牲一些电源功耗。不过最好请教一下有关人员。
我也不是很懂。不过;我是这么想的;请老丐多指教!
假如P0口驱动的是一排(8个)发光二极管吧。
那么当二极管发光时;它两端的电压为0。7V(一般二极导通后的电压为0。7V);工作电流10mA
而我们单片机的工作电压一般为5V;那么它接的上拉电阻为:R=(5V…0。7V)/10mA=430欧。
所以我认为应该为400欧左右。不知道对不对呀。
照楼上朋友的思路;我想应该是(因发光二极管的电压一般是1。8V左右;)200欧姆左右
发光二极管正常工作时二端电压是在1。8V左右。
强调:P口仅仅适合接共阳LED;不适合接共阴;如果一定要共阴;必须先用驱动电路驱动。
能用共阳就能用共阳
其实道理一样的
当你共阳的时候电流其实也是从正电源流入P口的;
共阳接法
假设限流电阻用1K的话;那流入P口电流约是(VCC…2)/1K=3MA
共阴接法
上拉电阻也选用1K;P口高阻状态时LED是亮的;这时候流过P口电流为零
流过LED电流和上面共阳接法一样;也是3MA
当LED灭的时候;电流全部从P口流入;即3MA电流全部被P口吸收;LED不亮
既然共阳接法P口能吸入3MA电流;为什么共阴接法就不行呢!!
其实我看过很多电路图就是这样接的。。。
楼主其实没说清楚
比如驱动LED的时候;应该分二种情况
比如用共阳接法和共阴接法;
共阳的时候LED正端接正电源;负端通过一个限流电阻接P口;这时不用接上拉电阻;只要这个限流电阻取合适就可以了
发光管亮的时候电流就是从电源正——LED——限流电阻——P口;P口为低电位
发光管灭的时候没有电流流过;P口为高电位或高阻状态
共阴接法;LED负端接地;正端直接P口;这时候要接上拉电阻;这个上拉电阻是提供LED发光用的;
发光管亮的时候电流是从电源正——上拉电阻——LED——地。这时上拉电阻也是限流用的。P口为高电位或高阻状态
发光管暗的时候电流是从电源正——上拉电阻——P口;这时LED无电流流过;P口为低电位;限流电阻上流过电流全部从P口流入。
其他情况就不细分析了
要从单片机的输出驱动能力开始讲起。单片机输出驱动分为高电平驱动和低电平驱动两种方式;所谓高电平驱动;就是端口输出高电平时的驱动能力;所谓低电平驱动;就是端口输出低电平时的驱动能力;当单片机输出高电平时;其驱动能力实际上是*端口的上拉电阻来驱动的;实际测试表明;51单片机的上拉电阻的阻值在330K左右;也就是说如果*高电平驱动;本质上就是*330K的上拉电阻来提供电流的;当然该电流是非常小的;小的甚至连发光二极管也难以点亮;如果要保证LED正常发光;必须要外接一个1K左右的上拉电阻;如果是一个led还好;要是10个、20个led的话;就要接10个、20个1K的上拉电阻;接电阻的本身是可以的;问题是接了上拉电阻以后;每当端口变为低电平0的时候;那么就有10个、20个上拉电阻被无用的导通;假设每个电阻的电流为5mA计算;20个电阻就是100mA;这将造成电源效率的严重下降;导致发热;纹波增大;以至于造成单片机工作不稳;因此很少有采用高电平直接驱动led的;高电平驱动led实际上就是共阴。低电平驱动就不同了;端口为低电平0时;端口内部的开关管导通;可以驱动高达30多毫安的驱动电流;可以直接驱动led等负载;当端口为低电平0时;尽管内部的上拉电阻也是消耗电流的;但是由于内部的上拉电阻很大;有330K;因此消耗电流极小;基本上不会影响电源效率;不会造成无用功的大量消耗;因此51单片机是不能用高电平直接驱动led的;只能用地电平直接驱动le