MYQQ2018 发表于 2019-4-30 20:57:20

STC8A8K64S4A12 I/O接独立按键,按键按下重启

如图所示,三个I/O接了三个独立按键,只要按下按键,大概率系统重启,按下4、5次系统就会重启,三个按键现象一致,单片机换了,故障依旧,I/O各种模式试了一遍,什么内部上拉使能等等都试了;最后实在不行,把那三个电容拆下来,问题解决;虽然貌似找到问题并解决了,感觉不可思议呀,这种电路用了好多年了呀,从AT89C51时代就在用,没出过这种问题呀;简单分析,在按键没有按下的时候,电容上有储能(很小吧),按键按下的时候,电容对地放电,这个过程能把单片机搞重启?
日了狗了,诡异的事情年年有,今年特别多

jeoo8888 发表于 2019-4-30 23:32:09

可能是这几个电容看不起这STC。

xunke 发表于 2019-4-30 23:35:42

建议把3个电容去掉。

JohnsonTan 发表于 2019-5-1 00:11:34

程序有问题,看门狗开启了吧

p4s5j6 发表于 2019-5-1 00:25:42

本帖最后由 p4s5j6 于 2019-5-1 00:28 编辑

输入误设置成输出了?

cocom 发表于 2019-5-1 00:29:06

诡异的按键接法。

wuha 发表于 2019-5-1 03:59:09

能想到的是不是端口设置成推挽输出高了?否则其他设置都不至于啊?希望楼主给出后续

MYQQ2018 发表于 2019-5-1 08:00:00

xunke 发表于 2019-4-30 23:35
建议把3个电容去掉。

谢谢;已经去掉了

MYQQ2018 发表于 2019-5-1 08:00:29

JohnsonTan 发表于 2019-5-1 00:11
程序有问题,看门狗开启了吧

谢谢;没开看门狗,只要不按按键就没问题

MYQQ2018 发表于 2019-5-1 08:01:10

p4s5j6 发表于 2019-5-1 00:25
输入误设置成输出了?

谢谢;51默认是准双向口,各种模式试了一遍都不行

MYQQ2018 发表于 2019-5-1 08:01:52

cocom 发表于 2019-5-1 00:29
诡异的按键接法。

谢谢;愿闻其详

MYQQ2018 发表于 2019-5-1 08:04:10

wuha 发表于 2019-5-1 03:59
能想到的是不是端口设置成推挽输出高了?否则其他设置都不至于啊?希望楼主给出后续 ...

谢谢;51默认是准双向口,然后各种模式试了一遍都不行,后续就是把电容拆了就好了,想不明白原理才咨询大家的

MYQQ2018 发表于 2019-5-1 08:05:12

superAFE 发表于 2019-5-1 04:06
这个问题我在别的产品上面也遇见过,跟你这个一毛一样,当时用示波器去测量vdd的波形,也看不异样。
   lz ...

谢谢;接电阻能想到,不想划线飞线的,带学生做实验也没有量,不是啥正式产品

Jach 发表于 2019-5-1 09:57:03

重啟是發生在按下還是放開時? 由於按鍵的彈跳, 這試驗不太好做

modbus 发表于 2019-5-1 10:01:04

CPU电源管脚的去耦电容是多大

foxpro2005 发表于 2019-5-1 10:24:35

2楼回复, 完全正确! {:lol:}

hefq 发表于 2019-5-1 10:51:28

STC8 在弱上拉模式下时,IO输出由0到1的瞬间会有两个时钟的强上拉,这个好像是为了加快IO翻转速度,但这时候如果IO外部接到了地,IO在这两个时钟内就相当于短路而拉低电源电压导至复位,这种情况一般只出现在IO输入输出复用的时候,比如扫描键盘时就要注意时序

MYQQ2018 发表于 2019-5-1 17:02:54

modbus 发表于 2019-5-1 10:01
CPU电源管脚的去耦电容是多大

104的,电源入口处是104+470uf的

MYQQ2018 发表于 2019-5-1 17:06:15

hefq 发表于 2019-5-1 10:51
STC8 在弱上拉模式下时,IO输出由0到1的瞬间会有两个时钟的强上拉,这个好像是为了加快IO翻转速度,但这时 ...

这个地方设计的是独立按键,不是那种矩阵键盘,我都是直接读的,没有写操作;另外我还试过,软件里面完全不读按键,我就在那里瞎按,系统也会重启

modbus 发表于 2019-5-1 20:43:46

MYQQ2018 发表于 2019-5-1 17:02
104的,电源入口处是104+470uf的

可以在CPU电源管脚处再并一个10uf的电容试试

MYQQ2018 发表于 2019-5-1 21:16:09

modbus 发表于 2019-5-1 20:43
可以在CPU电源管脚处再并一个10uf的电容试试

刚试了,并了一个10uf的电容,然后再把其中一个按键的104补上,故障依旧

lcw_swust 发表于 2019-5-1 21:38:47

不妨把程序传上来

weavr 发表于 2019-5-2 09:55:10

好奇试了一下,没有出现复位,用的是STC8A8K64S4A12 LQFP64,3个按键并104电容,一端分别接到P2.0、P2.1和P2.2,另一端接到GND。5V和3.3V供电都没出现,使用芯片内部时钟24M和11.0592M也都试过。写了一个简单的程序,没有去检测按键,P3上有指示灯,如果复位能观察到:
        P3=0X00;
        delay();
        P3=0XFF;
        while(1);

XTXB 发表于 2019-5-2 10:43:50

会不会是板子的电源回路虚焊?

weavr 发表于 2019-5-2 11:35:55

weavr 发表于 2019-5-2 09:55
好奇试了一下,没有出现复位,用的是STC8A8K64S4A12 LQFP64,3个按键并104电容,一端分别接到P2.0、P2.1和P ...

GND不接,只接AGND,单片机可以工作,但是按按键会出现楼主描述的情况,楼主可以看一下是不是GND没接触好。

MYQQ2018 发表于 2019-5-2 19:53:09

感谢楼上几位,这几天出来玩了,等回去后做验证再回复

小李非刀 发表于 2019-5-2 23:24:35

1、按键时电容通过按键放电,怎么会影响到MCU呢?所以建议楼主检查硬件是否有问题,比如AGND与GND的连接,AVCC与VCC的连接,还有排版。

2、按键直接短路104电容的做法是不合理的,电容瞬间放电电流大(串联0.1欧姆电阻用示波器测量可看到瞬间电流),很可能使按键快速损坏。

HXDZ-AAA 发表于 2019-5-4 09:36:12

上班了,正好有块STC8的板子按照楼主提供的原理图做实验,没有出现所反映的情况。芯片是STC8A8K64SA12 LQFP44封装,内部晶振11.0592M,电压5V,程序容量32K.    STC的单片机在使用时一定把他的操作手册看一下,特别是端口配置那部分,楼主不执行按键处理程序带着电容按几次键就导致单片机复位,电源虚接的可能性很大。因为100nF的电容在电源虚接的情况下充放电,电压降是有所反应的,用万用表或示波器看一下.

MYQQ2018 发表于 2019-5-4 17:35:37

统一回复楼上各位吧
板子不是什么正式产品,就是带学生做实验的类似于开发板的东西,通过牛角端子接了一个ST7920 12864的液晶,就是从液晶的显示上判断系统重启的;接了一个TLC1563的DA芯片,两个电阻串联分压接到了其中一个AD口上,板载了两个独立的LED,引出了串口,既用于下载程序又可以打印信息,还引出了两个SIP6的端子,主要是把AD和PWM以及外部中断的引脚引出来了,目前这两个SIP6的端子没接任何东西,基本都是通用IO的应用,所以布线上是怎么方便怎么布的,为了方便学生实验使用DIP40封装,还不是使用的普通座子,使用的锁紧座,芯片时间是1810,F版本;过孔最小的是16/30mil的,线间距10mil,线宽最小12mil;嘉立创5元PCB做的;软件上没有任何东西,就是把上面的功能走一遍,验证功能是好的,然后while(1)里面检测按键,在液晶的某个位置显示个什么东西
这个按键电路确实用了很多年,但我没有什么量产产品的经验,基本都是带学生实验,曾经在一个小公司兼职过几年,做的东西很杂,但每样东西能生产几十套都算量大的了
仔细想想这次到底与以前有什么不同,记得以前都是1117、7805或者2596再接单片机,这次直接使用一个mini USB的座子连接电脑或者手机充电器,我电源端本来引出来了一个SIP2的座子,接到台式电源上测试故障依旧
用万用表仔细确认了一下电源和地引脚,没发现问题,上电用万用表和示波器也看不出问题;至少有一点,以后肯定再不会这么设计了
下面的截图是PCB,我仔细看了一下,好像芯片的电源脚一个电容都没有,不过我补焊过一个10uf的电容测试过,故障依旧

887799 发表于 2019-5-10 22:01:22

哈哈电路的布线有很严重的问题,是电路布线引起的。{:titter:}{:titter:}{:titter:}。

MYQQ2018 发表于 2019-5-10 22:39:33

887799 发表于 2019-5-10 22:01
哈哈电路的布线有很严重的问题,是电路布线引起的。。 ...

愿闻其详,谢谢

饭桶 发表于 2019-5-11 10:26:05

兰州交通大学

wkman 发表于 2019-5-11 10:35:27

IO--加1K电阻---接104电容--按键K            {:titter:}才是有推挽io的标准接法
                     |                     |
                      ---                   ---
                     地                  地

weavr 发表于 2019-5-11 12:10:54

MYQQ2018 发表于 2019-5-10 22:39
愿闻其详,谢谢

没看到有问题,现在很好奇是什么原因

makesoft 发表于 2019-5-11 12:19:27

肯定不是电路板问题,CPU不会那么脆弱,怀疑程序或者编译器使用不当造成的。

1a2b3c 发表于 2019-5-11 15:50:07

现在DIP40的51芯片第40脚不是电源脚了?

MYQQ2018 发表于 2019-5-11 20:21:57

1a2b3c 发表于 2019-5-11 15:50
现在DIP40的51芯片第40脚不是电源脚了?

这个型号的确实不是

lswood 发表于 2019-5-12 17:18:27

根据经验,这个锅必然是楼主自己背,stc不背。
页: [1]
查看完整版本: STC8A8K64S4A12 I/O接独立按键,按键按下重启