icexiong 发表于 2017-1-3 10:44:44

STC15W系列单片机IO口低电平输出时,输出电压范围是多少?

如题:当使用STC15W系列单片机,5V供电,IO口输出低电平时,输出电压是多少,我测量我的是0.85V~0.9V

icexiong 发表于 2017-1-3 10:45:46

在和某些芯片对接时,某些芯片的输入电压低于0.5V时,才认为是低电平

cocom 发表于 2017-1-3 12:24:25

手册上应该有IO口输出曲线,不过这个好象是全球最大的什么厂出的,可能没有曲线。

小李非刀 发表于 2017-1-6 23:19:58

空载的话,基本接近0V,最多有几个或十几mV。如果有上拉的负载,则电流越大,压降也越大,但是解释到15mA,电压一般也不会超过0.5V。

xiaobendan 发表于 2017-1-7 07:54:57

灌入电流越大,电压越高啊,你都不说你负载多大,你灌入个2000MA直接烧了吧

icexiong 发表于 2017-1-7 08:50:50

小李非刀 发表于 2017-1-6 23:19
空载的话,基本接近0V,最多有几个或十几mV。如果有上拉的负载,则电流越大,压降也越大,但是解释到15mA, ...

没有负载,悬空,并且发现高电平也不正常(空载,悬空),比电源电压也低0.8V左右,IO口的输出模式是推挽输出。给我感觉好像灌电流和拉电流都串着二极管似的。

icexiong 发表于 2017-1-7 08:51:58

xiaobendan 发表于 2017-1-7 07:54
灌入电流越大,电压越高啊,你都不说你负载多大,你灌入个2000MA直接烧了吧 ...

没有负载,悬空,并且发现高电平也不正常(空载,悬空),比电源电压也低0.8V左右,IO口的输出模式是推挽输出。给我感觉好像灌电流和拉电流都串着二极管似的。

xiaobendan 发表于 2017-1-7 10:37:19

icexiong 发表于 2017-1-7 08:51
没有负载,悬空,并且发现高电平也不正常(空载,悬空),比电源电压也低0.8V左右,IO口的输出模式是推挽 ...

这不对。表有问题

icexiong 发表于 2017-1-7 10:52:10

xiaobendan 发表于 2017-1-7 10:37
这不对。表有问题

表有问题?什么表?万用表?换了一个万用表一个样,并且,万用表测同是地平面的其它点之间可是零毫伏。

xiaobendan 发表于 2017-1-7 11:37:17

这很奇怪,上示波器吧

su33691 发表于 2017-1-7 11:52:30

I/O口外接一个NPN三极管试试,在输出低电平时NPN三极管导通,说明I/O口有问题。否则就是你的问题。

su33691 发表于 2017-1-7 12:01:56

另外IO悬空,你还把IO口的输出模式是推挽输出。还说IO口有问题,我看你是鸡蛋里面挑骨头,闲的蛋疼。{:titter:}{:titter:}

icexiong 发表于 2017-1-7 12:56:21

su33691 发表于 2017-1-7 12:01
另外IO悬空,你还把IO口的输出模式是推挽输出。还说IO口有问题,我看你是鸡蛋里面挑骨头,闲的蛋疼。{:titt ...

注意,蛋疼的是你,没有仔细看帖子,我是在有负载(外接芯片)的时候,出问题,然后,考虑可能跟负载有关,于是就将负载焊掉,此时芯片引脚悬空,还是没有改变,并且,我还将MCU重新换了一片都不行。

icexiong 发表于 2017-1-7 13:46:19

superAFE 发表于 2017-1-7 13:26
用示波器测试一下吧,低电平输出有0.8V肯定不正常的。注意看IO的波形是否有尖峰出现。 ...

如果有尖峰代表什么呢?

icexiong 发表于 2017-1-7 13:58:31

superAFE 发表于 2017-1-7 13:56
如果你的程序期望控制IO一直输出低电平,但出现了尖峰,出现就说明该IO的电平被未知因素改变了。未知因素 ...

嗯,好的,谢谢诶

icexiong 发表于 2017-1-7 14:00:55

superAFE 发表于 2017-1-7 13:56
如果你的程序期望控制IO一直输出低电平,但出现了尖峰,出现就说明该IO的电平被未知因素改变了。未知因素 ...

芯片复位,程序跑飞,应该不可能,其它部分程序运行正常,只能看中断里有没有操作了,但是记得中断里没有操作,再看看吧

su33691 发表于 2017-1-7 14:46:13

既然你严重怀疑mcu的IO口问题,那就敲几行代码测试一下。如果还有问题,那就退货,改用高大上的ARM。{:titter:}{:titter:}{:titter:}

icexiong 发表于 2017-1-7 18:32:51

su33691 发表于 2017-1-7 14:46
既然你严重怀疑mcu的IO口问题,那就敲几行代码测试一下。如果还有问题,那就退货,改用高大上的ARM。{:titt ...

试过了,白搭

weavr 发表于 2017-1-7 19:49:30

icexiong 发表于 2017-1-7 18:32
试过了,白搭

我手上有STC15W4K48S4,理论上空载用万用表测量应该是0V,楼主把测试程序发来我帮你试一下,哪个IO。

icexiong 发表于 2017-1-7 22:31:01

weavr 发表于 2017-1-7 19:49
我手上有STC15W4K48S4,理论上空载用万用表测量应该是0V,楼主把测试程序发来我帮你试一下,哪个IO。 ...

怎么给你

icexiong 发表于 2017-1-7 22:33:22

weavr 发表于 2017-1-7 19:49
我手上有STC15W4K48S4,理论上空载用万用表测量应该是0V,楼主把测试程序发来我帮你试一下,哪个IO。 ...

p2口都不行,程序里是p2.4,其实其他口没测,但是我估计也不行

icexiong 发表于 2017-1-7 22:33:58

weavr 发表于 2017-1-7 19:49
我手上有STC15W4K48S4,理论上空载用万用表测量应该是0V,楼主把测试程序发来我帮你试一下,哪个IO。 ...

#define MAIN_Fosc   11059200L   //定义主时钟
#include        "STC15Fxxxx.H"

/*************        功能说明        **************

程序使用P4.7 P4.6 P1.6 P1.7 来演示跑马灯,输出低驱动。

******************************************/

voiddelay_ms(u8 ms);

sbit out1 = P2^4;
sbit out2 = P2^6;
sbit out3 = P2^5;
sbit out4 = P4^5;
sbit out5 = P2^7;
sbit out6 = P4^6;

sbit out7 = P2^1;
sbit out8 = P2^0;
sbit out9 = P2^3;
sbit out10 = P2^2;

/******************** 主函数 **************************/
void main(void)
{
        P0M1 = 0;        P0M0 = 0;        //设置为准双向口
        P1M1 = 0;        P1M0 = 0;        //设置为准双向口
        P2M1 = 0;        P2M0 = 0xff;        //设置为准双向口
        P3M1 = 0;        P3M0 = 0;        //设置为准双向口
        P4M1 = 0;        P4M0 = 0;        //设置为准双向口
        P5M1 = 0;        P5M0 = 0;        //设置为准双向口
        P6M1 = 0;        P6M0 = 0;        //设置为准双向口
        P7M1 = 0;        P7M0 = 0;        //设置为准双向口

        while(1)
        {
                out1 = 0;
                delay_ms(250);
                delay_ms(250);
                delay_ms(250);
                delay_ms(250);
               
                out1 = 1;
                delay_ms(250);
                delay_ms(250);
                delay_ms(250);
                delay_ms(250);

                out1 = 0;
                delay_ms(250);
                delay_ms(250);
                delay_ms(250);
                delay_ms(250);

                out1 = 1;
                delay_ms(250);
                delay_ms(250);
                delay_ms(250);
                delay_ms(250);
               
                out1 = 0;
                delay_ms(250);
                delay_ms(250);
                delay_ms(250);
                delay_ms(250);
        }
}

//========================================================================
// 函数: voiddelay_ms(u8 ms)
// 描述: 延时函数。
// 参数: ms,要延时的ms数, 这里只支持1~255ms. 自动适应主时钟.
// 返回: none.
// 版本: VER1.0
// 日期: 2013-4-1
// 备注:
//========================================================================
voiddelay_ms(u8 ms)
{
   u16 i;
       do{
              i = MAIN_Fosc / 13000;
                  while(--i)        ;   //14T per loop
   }while(--ms);
}

weavr 发表于 2017-1-8 09:19:38

icexiong 发表于 2017-1-7 22:33
#define MAIN_Fosc   11059200L   //定义主时钟
#include        "STC15Fxxxx.H"



试了这个程序,P2.4低电平0V,5V或3.3V供电P2.4高电平都是低于电源0.01V以内,设置为推挽或弱上拉都是一样,P2.4空载。

modbus 发表于 2017-1-8 09:27:44

这种问题,如果换个芯片还不行,要么是程序问题,要么是测量方法问题

icexiong 发表于 2017-1-8 11:45:52

weavr 发表于 2017-1-8 09:19
试了这个程序,P2.4低电平0V,5V或3.3V供电P2.4高电平都是低于电源0.01V以内,设置为推挽或弱上拉都是一 ...

谢谢,跟使用内部晶振,内部复位有关系吗,内部晶振是11.05926M

weavr 发表于 2017-1-8 13:36:13

本帖最后由 weavr 于 2017-1-8 13:37 编辑

icexiong 发表于 2017-1-8 11:45
谢谢,跟使用内部晶振,内部复位有关系吗,内部晶振是11.05926M

之前是用内部11.0592MHz测的结果,刚试了一下外部11.0592M晶振,对IO电压没有影响,复位是用的芯片内部复位,复位脚设置做为IO使用。这是我测试P2.4一直拉低的程序,你可以试一下
void main()
{
        P0M1=0x00;
        P1M1=0x00;
        P2M1=0x00;
        P3M1=0x00;
        P4M1=0x00;
        P5M1=0x00;

        P0M0=0x00;
        P1M0=0X00;
        P2M0=0X00;
        P3M0=0x00;
        P4M0=0X00;
        P5M0=0x00;

        P24=0;
        while(1);
}
你的芯片也是15W4K48S4吗

weavr 发表于 2017-1-8 13:45:10

icexiong 发表于 2017-1-8 11:45
谢谢,跟使用内部晶振,内部复位有关系吗,内部晶振是11.05926M



P2.4一直低的HEX

icexiong 发表于 2017-1-8 18:51:21

weavr 发表于 2017-1-8 13:45
P2.4一直低的HEX

谢谢给的回复,我的问题解决了,问题是我的电源和地引脚接错了,电源和地是14和16,我接到13和15上了,拿两个IO口供电了。呵呵,还没有把芯片烧掉。。。

sfes 发表于 2017-1-8 21:32:16

icexiong 发表于 2017-1-8 18:51
谢谢给的回复,我的问题解决了,问题是我的电源和地引脚接错了,电源和地是14和16,我接到13和15上了,拿 ...

牛人,以后电源脚都可以省了,找两管脚供电就行
页: [1]
查看完整版本: STC15W系列单片机IO口低电平输出时,输出电压范围是多少?