chenjunqi303 发表于 2013-10-18 15:47:54

MSP430 IO口控制P-MOS遇到问题 MOS 不能完全关断

如图,VCC_BA是3.3V电源,P-MOS用的是si2301DS。现在用430的P2.2引脚输出来控制mos管的打开和关闭,当P2.2输出低的时候,D端能得到3.3V电压,但是当P2.2输出高的时候,D端还是有2.3V左右的电压,这个MOS管的Vgs(th)= -0.45V,照理说IO拉高了MOS管应该关断的。另外在没有负载的情况下,就是把MOS管D端后面的线路断开后,能正常关闭,这是什么原因呢,请大家帮我分析分析

lcw_swust 发表于 2013-10-18 15:58:19

那是由于与CC2500相连的IO口给CC2500供电了。
一般芯片内IO口到VCC、GND间各有一个二极管,当IO电压高于VCC时,就有可能对VCC形成供电。

wmm20031015 发表于 2013-10-18 16:06:30

GS加1M电阻,

chenjunqi303 发表于 2013-10-18 16:42:12

lcw_swust 发表于 2013-10-18 15:58 static/image/common/back.gif
那是由于与CC2500相连的IO口给CC2500供电了。
一般芯片内IO口到VCC、GND间各有一个二极管,当IO电压高于VCC ...

我把单片机跟CC2500所有相连的IO口(si,so,sclk,csn,GDO0,GDO2)都设置为输入,然后再测,MOS的D端仍然有电压。然后在都设置为输出并且拉低后也还是有电压。

chenjunqi303 发表于 2013-10-18 16:48:05

wmm20031015 发表于 2013-10-18 16:06 static/image/common/back.gif
GS加1M电阻,

我手里只有个10M的电阻 可以接吗

68336016 发表于 2013-10-18 16:51:08

io口么内部有钳位二极管?

mandey 发表于 2013-10-18 16:57:24

以前我们用PMOS关GPS模块电源也这样,后来也没管,反正模块会掉电,那个电压只是浮空电压。

wmm20031015 发表于 2013-10-18 17:06:14

chenjunqi303 发表于 2013-10-18 16:48 static/image/common/back.gif
我手里只有个10M的电阻 可以接吗

10M的并两个也可以

chenjunqi303 发表于 2013-10-18 17:10:54

mandey 发表于 2013-10-18 16:57 static/image/common/back.gif
以前我们用PMOS关GPS模块电源也这样,后来也没管,反正模块会掉电,那个电压只是浮空电压。 ...

CC2500 2.3V也能工作,所以他一直在耗电流,我是电池供电吃不消啊

chenjunqi303 发表于 2013-10-18 17:13:29

68336016 发表于 2013-10-18 16:51 static/image/common/back.gif
io口么内部有钳位二极管?

内部没有钳位2级管

68336016 发表于 2013-10-18 17:16:12

chenjunqi303 发表于 2013-10-18 17:13 static/image/common/back.gif
内部没有钳位2级管

相连就那几根数据线,也看不到其他地方,自己量下看看

chenjunqi303 发表于 2013-10-18 17:18:31

68336016 发表于 2013-10-18 17:16 static/image/common/back.gif
相连就那几根数据线,也看不到其他地方,自己量下看看

我把单片机上与他相连的相应引脚全都设置为了输入,测量各个引脚得到SI 引脚一直是高电平,其他都是低电平

chenjunqi303 发表于 2013-10-21 15:23:23

本帖最后由 chenjunqi303 于 2013-10-21 15:27 编辑

问题解决了,我把MOS管G端的下拉电阻去后,程序中CC2500的工作模式都设置为空闲模式后mos就能正常关闭了P2OUT &= ~0x04;                                        //RFTransceiverPowerOn
                delay(65530);
                CC2500_INIT();
                //TI_CC_SPIReadBurstReg(0x31,RecvArray,1);
                TI_CC_SPIStrobe(TI_CCxxx0_SIDLE);      //设置CC2500为空闲模式
                RFSendPacket(SendArray,2);
                TI_CC_SPIStrobe(TI_CCxxx0_SIDLE);      //本来没有这句的时候,mos关不断,加上这句后就可以关断了
                P2OUT |= 0x04;                                                //RFTransceiverPowerOff问题应该就是lcw_swust说的单片机IO口给CC2500供电了,等任务完成后我再回头来研究到底是什么原因造成的,谢谢各位热心帮主,哈哈
页: [1]
查看完整版本: MSP430 IO口控制P-MOS遇到问题 MOS 不能完全关断