whoyzf 发表于 2024-7-17 10:30:03

STC8A8K64D4准双向口模式下,P0的高电平电压不对?

本帖最后由 whoyzf 于 2024-7-17 10:59 编辑

STC8A8K64D4最小系统,5V供电

IO设置准双向口模式,同样的设置,实测:P0口高电压只有1V.而P2却有5V。
请问是什么问题?

测试:
将P0设置为推挽输出,P0高电平为5v
将P0设置为准双向口,P0加上拉电阻(P0PU = 0xff; )高电平为3v
高阻输入 0.6V ;   开漏 0.6V ;   


代码如下

#include "STC8A8K64D4.h"
#include "intrins.h"

sfr   VOCTRL      =   0xbb;
#define IDL             0x01                  //PCON.0
#define PD            0x02                  //PCON.1
//sbit    P34         =   P3^4;
//sbit    P35         =   P3^5;

sbit led3=P4^3;   //串口3接收指示灯 太亮,先关掉
sbit led2=P0^4;          //串口2接收指示灯 太亮,先关掉
sbit led1=P0^5;          //秒闪灯


void INT0_Isr() interrupt 0
{
//    P34 = ~P34;                                 //测试端口
}

void main()
{
      
//               P1M0 = 0x40; P1M1 = 0x00; //P16(PWR_5V) 推挽,准双向高电平为3V
      
//    VOCTRL = 0x00;                              //掉电模式时使用内部SCC模\块,功耗约1.5uA
////VOCTRL = 0x80;                              //掉电模式时使用外部SCC模块,功耗约0.15uA
//    EX0 = 1;                                    //使能INT0中断,用于唤醒MCU
//    EA = 1;
    _nop_();
    _nop_();
      

    P0M0 = 0x00; P0M1 = 0xff;
    P1M0 = 0x00; P1M1 = 0xff;
    P2M0 = 0x00; P2M1 = 0xff;
    P3M0 = 0x00; P3M1 = 0xff;
    P4M0 = 0x00; P4M1 = 0xff;
                P5M0 = 0x00; P5M1 = 0xff;         
      
          P0M0 = 0x00; P0M1 = 0x00;
    P1M0 = 0x00; P1M1 = 0x00;
    P2M0 = 0x00; P2M1 = 0x00;
    P3M0 = 0x00; P3M1 = 0x00;
    P4M0 = 0x00; P4M1 = 0x00;
                P5M0 = 0x00; P5M1 = 0x00;         
      
      


P1=0xff; P2=0xff; P3=0xff; P4=0xff;P5=0xff;

led3=1;
led2=1;
led1=1;

//    PCON = IDL;                                 //MCU进入IDLE模式
//PCON = PD;                                  //MCU进入掉电模式
    _nop_();
    _nop_();
//    P35 = 0;

    while (1);
}


DebugLab 发表于 2024-7-17 10:40:17



准双向5V 250μA,很弱,很容易就被拉下来

whoyzf 发表于 2024-7-17 10:46:04

DebugLab 发表于 2024-7-17 10:40
准双向5V 250μA,很弱,很容易就被拉下来

我这个引脚现在是悬空测的。而且同样的配置,同样的电路,同样的测试方法。为啥P4就可以呢?

DebugLab 发表于 2024-7-17 10:46:39

计算外部大概是4K的下拉,PCB上是否有其他元件或PCB有问题?所有P0口都是这样吗?

DebugLab 发表于 2024-7-17 10:46:40

计算外部大概是4K的下拉,PCB上是否有其他元件或PCB有问题?所有P0口都是这样吗?

whoyzf 发表于 2024-7-17 10:54:50

DebugLab 发表于 2024-7-17 10:46
计算外部大概是4K的下拉,PCB上是否有其他元件或PCB有问题?所有P0口都是这样吗?
...

现在这个板子,我只焊了单片机专门做测试。P01~P07,发现只有P07有5V,其余都是1V.

DebugLab 发表于 2024-7-17 10:59:16

看一下实物图和原理图
什么封装的
还有芯片版本

whoyzf 发表于 2024-7-17 10:59:36

DebugLab 发表于 2024-7-17 10:59
看一下实物图和原理图
什么封装的
还有芯片版本

更新后的硬件选项为:
. 系统ISP工作频率: 23.916MHz
. 内部IRC振荡器的频率: 11.057MHz
. 掉电唤醒定时器的频率: 35.875KHz
. 振荡器放大增益使能
. 用户EEPROM大小被设置为 0.5 K
. P3.2和P3.3与下次下载无关
. 上电复位时增加额外的复位延时
. 复位引脚用作普通I/O口
. 检测到低压时复位
. 低压检测门槛电压 : 2.00 V
. 上电复位时,硬件不启动内部看门狗
. 上电自动启动内部看门狗时的预分频数为 : 256
. 空闲状态时看门狗定时器停止计数
. 下次下载用户程序时,将用户EEPROM区一并擦除
. 下次下载用户程序时,没有相关的端口控制485
. 下次下载时不需要校验下载口令
. 内部参考电压: 1193 mV (参考范围: 1100~1300mV)
芯片出厂序列号 : F7F4C4A214CCE6

单片机型号: STC8A8K64D4
软件协议, V3.0: 7.4.3U

. 用户设定频率: 11.059MHz
. 调节后的频率: 11.057MHz ( 主时钟分频系数 = 1; )
. 频率调节误差: -0.022%

whoyzf 发表于 2024-7-17 11:02:03

本帖最后由 whoyzf 于 2024-7-17 11:03 编辑

DebugLab 发表于 2024-7-17 10:59
看一下实物图和原理图
什么封装的
还有芯片版本
LQFP44。 电路上啥都没接。原来这几个脚接LED(低电平点亮)结果发现高电平,也是微亮的。就断开led。

还有就是我测掉电模式,有400uA的电流,怀疑是不是这个片子有问题。

DebugLab 发表于 2024-7-17 11:19:55

whoyzf 发表于 2024-7-17 11:02
LQFP44。 电路上啥都没接。原来这几个脚接LED(低电平点亮)结果发现高电平,也是微亮的。就断开led。

还 ...

我感觉是焊接问题或PCB问题,IO坏不可能一排全坏了
页: [1] 2 3
查看完整版本: STC8A8K64D4准双向口模式下,P0的高电平电压不对?