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欧的也不行,还是复位。