一些51的单片机P0口或者一些传感器经常会提到开漏弱上拉。查找资料经常会说没有上拉能力,提供不了高电平,听着是这道理,但是还是不情况到达是什么。我以DS18B20传感器中的弱上拉来介绍.

单个DS18B20接线方式:VDD接到电源,DQ接单片机引脚,同时外加上拉电阻,GND接地,注意这个上拉电阻是必须的,就是DQ引脚必须要一个上拉电阻DS18B20上拉电阻,首先我们要知道什么是漏极开路,首先看一下场效应管(MOSFET),如图1所示。

图1 MOSFET电路图

场效应管是电压控制型元器件,只要对栅极施加一定电压,DS就会导通。

漏极开路:MOS管的栅极G和输入连接,源极S接公共端,漏极D悬空(开路)什么也没有接,直接输出,这时只能输出低电平和高阻态,不能输出高电平。那么这个时候会出现三种情况,MOSFET内部结构图如图2所示:

图a为正常输出(内有上拉电阻):场效应管导通时,输出低电位输出低电位,截止时输出高电位。

图b为漏极开路输出,外接上拉电阻:场效应管导通时,驱动电流是从外部的VCC流经电阻通过MOSFET到GND,输出低电位,截止时输出高电位。

图c为漏极开路输出,无外接上拉电阻:场效应管导通时输出低电位,截止呈高阻态(断开)。

图2 MOSFET内部结构图

总结:

开漏输出只能输出低电平,不能输出高电平。漏极开路输出高电平时必须在输出端与正电源(VCC)间外接一个上拉电阻。否则只能输出高阻态。

DS18B20是单线通信,即接收和发送都是这个通信脚进行的。其接收数据时为高电阻输入,其发送数据时是开漏输出,本身不具有输出高电平的能力,即输出0时通过MOS下拉为低电平,而输出1时,则为高阻,需要外接上拉电阻将其拉为高电平。因此,需要外接上拉电阻,否则无法输出1。

外接上拉电阻阻值:

DS18B20的工作电流约为1mA,VCC一般为5V,则电阻R=5V/1mA=5KΩ,

所以正常选择4.7K电阻,或者相近的电阻值。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注