我用MSP430单片机控制PMOS场效应管的开启与关闭

MSP430F449的P6.3口通过一个1K 电阻连接到PMOS的G极,PMOS的S极接电源3V,而D极接负载,我是想通过单片机的P6.3口来控制PMOS的开启与关闭从而实现对负载是否上电,也就是把PMOS作为开关用。我的操作如下:P6DIR|=BIT3//P6.3设置为输出
P6OUT|=BIT3//P6.3输出高电平,关闭PMOS管
P6OUT&=~ BIT3//P6.3输出低电平,开启PMOS管
但当程序执行到 P6OUT&=~ BIT3//P6.3输出低电平,开启PMOS管时,430单片机就会复位,很奇怪。如果我改成如下操作:
P6OUT|=BIT3//输出为高电平
P6DIR&=~BIT3//p6.3口设置为输入,这时P6.3口是低电平,开启PMOS
P6DIR|=BIT3//p6.3设置为输出,这时P6.3口是高电平,关闭PMOS
执行以上操作430单片机不会复位,但是PMOS开启关闭的速度很慢。
不知道哪位高手遇到过这样的问题没,令我很头疼,如果能得到各位大侠的帮助我将万分感谢!
我并没有在程序中不停的开启关闭,这里是把程序中与PMOS有关的操作集中起来写了,实际电路中PMOS的D极接的是温度压力采集部分电路,也就是说温度压力采集电路不是一直供电的,是靠单片机IO口通过控制PMOS的开启关闭来控制的,初始化中执行P6DIR|=BIT3,P6OUT|=BIT3//P6.3输出高电平,关闭PMOS管省电,之后开启PMOS:P6OUT&=~ BIT3//P6.3输出低电平,开启PMOS管,然后进行温度压力测量,测量完成后关闭PMOS。我最开始是用三极管做开关的,很好用,但是因为开启时的功耗大了点,所以我想节省功耗,所以换成PMOS看看,程序没有变动,用三极管时也是P6.3高电平时截至,低电平时导通,可是换成PMOS(FND304P)后当开启PMOS时单片机就复位,我用的PMOS是低阈值的(-1.5V就可开启),当P6.3口输出低电平时,VGS=-3,应该足可以开启的,我怕串联的1K电阻太大,换成100欧的也不行,还是复位。

pmos有个阀值,不知道单片机输出通过1k电阻后的值还够不够,另外pmos管的Vgs和阀值都要是负值,可能和造成重启有关其,另外上拉电阻太大会引起输出电平的延迟,建议你用nmos管方便点

你用的语言是c么?我用汇编对c不太熟悉,不太好判断

从pmos本身的特性来说它充放电慢,器件夸导也小,所以工作速度是挺慢的
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-07-26
P6DIR|=BIT3//P6.3设置为输出
端口配置只需要写在程序初始化的时候。你在程序中不停地更改端口的输入输出当然会使运行的时钟增加,导致看到MOS管开关速度变慢。
至于你说的导致430复位可能是MOS管的电流干扰的原因,你可以在IO口到MOS管之间串一个电阻,或者加一个二极管或加稳压二极管保护一下。
第2个回答  2010-07-28
药师其工作在可靠的开关状态需要栅极驱动电流足够大,所以你直接用单片机驱动可能不行,另外最好用单片机先驱动一个三极管的基极,然后用三极管的集电极去驱动MOS管。
另外你这种接法的话,一旦开启之后,要考虑负载的特性,以防止短路本回答被提问者采纳
第3个回答  2010-07-27
pmos有个阀值,不知道单片机输出通过1k电阻后的值还够不够,另外pmos管的Vgs和阀值都要是负值,可能和造成重启有关其,另外上拉电阻太大会引起输出电平的延迟,建议你用nmos管方便点
相似回答