jishugengniu 发表于 2009-11-9 19:59:31

按键导致单片机复位

使用PIC16F722,如图
http://cache.amobbs.com/bbs_upload782111/files_21/ourdev_501581.jpg
(原文件名:按键复位图.jpg)

其中Kup接单片机的RB4脚,Kdown接单片机的RB5脚。
PIC16F722的MCLR脚通过一个10K电阻接到5V电源;
5V电源 只给单片机供电,有一个100uF电解电容跟2个104电容。


现在的现象是:
按下S2键,单片机就复位,可与复位按键媲美。
如果把按键的滤波电容C25、C26拆了,按S2不会复位的。用示波器看了,按键动作对电源没有造成什么影响。

硬件比较差,请大家帮忙分析一下

jishugengniu 发表于 2009-11-9 22:19:34

为什么啊?困惑我2天了

高手们,都来看看啊。。。

foxpro2005 发表于 2009-11-9 22:44:20

对于抗干扰,一方面可以采用软件处理(建议取消C25、C26);
如果实在需要,C25、C26容量也没必要这么大,改到102以下再试试。。

bluerain 发表于 2009-11-9 23:09:52

估计你程序有问题,检查程序吧

jishugengniu 发表于 2009-11-10 10:07:05

估计你程序有问题,检查程序吧
=================================
我拆了C25、C26这2个电容后,是不会出现复位情况的。而且所有功能都正常

我也觉得这个电路这么简单,想出问题都难。可它就真出问题了,困惑啊

jishugengniu 发表于 2009-11-10 10:10:34

去掉按键的那两个滤波电容,的确可以解决问题。

可这不是咱的风格啊,像这种问题,不找出根源,俺睡不踏实啊。

snoopyzz 发表于 2009-11-10 10:16:40

程序没写好,什么怪情况都有可能发生...
你判断一下复位原因,如果是低电,上电复位,找硬件问题,如果是看门狗溢出,找软件问题吧

bluerain 发表于 2009-11-10 10:29:13

6 楼说的对,找复位原因。去掉电容问题解决,并不能说明你软件一定没问题。

380121850 发表于 2009-11-10 12:30:09

两个IO输入端加两个电阻试试

jishugengniu 发表于 2009-11-10 19:45:49

特意写了一个最简单的程序。功能为:每次复位蜂鸣器响一声。
void delay(void)
{
    unsigned char i,j;
    for(i=0; i<0xff; i++){
      for(j=0; j<0xff; j++);
    }
}
void main(void)
{
        TRISB &= 0XF0;        // RB0~RB3 Output
        TRISB |= 0X30;        // RB4/RRB5 Key input
        ANSELB &= 0X00;        // PORTB all set GPIO
        TRISA &= 0XFd;        //RA1 OUTPUT
       
        PORTA |= 0X02;       // bell on
    delay();
    delay();
        PORTA &= 0XFD;       // bell off
       
        while(1){

        }
}
结果是,每按一下,就响一次。

排除软件原因。
我再逐一把阻容器件换掉看看。

phone 发表于 2009-11-10 20:35:47

这样的电路我都用过,没发现楼主的情况,多半是程序有问题,会不会是按键采集程序处理不好,有没有开看门狗。

jishugengniu 发表于 2009-11-10 20:50:37

没有开看门狗。
如果是看门狗复位 应该是很有规律的复位。而不应该是只有我按键,才复位。

程序,我特意写了测试代码,已经最简了。


我另外焊了一块板子,没有出现按键复位的情况。我只是非常纳闷,为什么按键会导致复位呢?到底怎么引起的?

snoopyzz 发表于 2009-11-12 09:05:58

LZ写程序判断下复位原因不就清楚了(别说你的芯片没有复位标志),
目前看来,没有开看门狗,那么低电复位的可能性大,
至于到底为什么会复位,只有LZ查了才清楚了

JQ_Lin 发表于 2009-11-12 17:00:25

To 【楼主位】 jishugengniu

1. 请问,S1/S2/S3 各键实现的功能是什么?
2. RB4/RB5 等口的 INTERRUPT-ON-CHANGE(电平变化中断)使能了吗?

jishugengniu 发表于 2009-11-12 23:35:47

to 【12楼】 snoopyzz
    既然芯片已经复位,写程序如何判断?芯片复位后,程序从头开始跑过,怎么把复位原因传出来?还是其他什么办法?
请指点



==================================
to 【13楼】 JQ_Lin
    1. 我在9楼放上去的程序,是专门用来测试这个复位的完整的程序。S1/S2/S3 各键没有实现任何功能。只是把相应的口设置为GPIO输入口而已;
    2. 没有开任何中断。


=================================
感谢所有朋友,感谢阿莫

zhxzhx 发表于 2009-11-13 02:03:07

我就是 应为这个原因放弃pic单片机的,一直没有搞明白原因!!!

millwood0 发表于 2009-11-13 10:26:58

"结果是,每按一下,就响一次。 "

your main loop isn't running so it must be a hardware problem.

snoopyzz 发表于 2009-11-13 11:27:22

自己查芯片的pdf,复位状态是有寄存器标志位可以读的
通常都可以区分出是上电复位,复位脚低电平复位,看门狗复位,有些可以区分出电源低电复位

gaolf_2000 发表于 2009-11-13 13:12:39

好像在pcon寄存器里有反映上次复位原因的一些标志,你在程序中一开始可以对其进行判断,是正常的上电复位,还是欠压,阿狗,唤醒

jishugengniu 发表于 2009-11-13 22:33:34

今天下午抽空把 单片机周边的所有电阻电容都换了一遍。拆掉除蜂鸣器和按键外的 所有器件。
换了单片机,问题依旧。
之前有块板子是好的,跟现在的硬件唯一的区别就是 按键了。可惜那个板子在外地,按键也找不到。


感谢【17楼】 snoopyzz 和【18楼】 gaolf_2000 的指点。
因为板子在公司,下周我就写个程序看一下。
==================================================================

to 【15楼】 zhxzhx 一丁
我就是 应为这个原因放弃pic单片机的,一直没有搞明白原因!!!

您也遇到过类似的问题?

zhxzhx 发表于 2009-11-16 00:12:58

我可以确定的是,这两个引脚,一旦有低于地的负脉冲(不过-0.3V,箝位二极管不起作用)立刻复位,非常快,比正常复位脚还要快.
因为这个原因,速变脉冲根本不能做,一动就复位,因为我的产品不能复位,所以发现了,有的能复位的产品,没有发现也就过去了,PIC很多片子都这样,特别是和电压比较器,AD复用的引脚

millwood0 发表于 2009-11-16 08:58:56

"因为这个原因,速变脉冲根本不能做,一动就复位,因为我的产品不能复位,所以发现了,有的能复位的产品,没有发现也就过去了,PIC很多片子都这样,特别是和电压比较器,AD复用的引脚"

you really think the above is comprehensible to a reasonably intelligent person?

jishugengniu 发表于 2009-11-16 19:31:46

天气转冷,大家平时都没什么运动,注意添衣保暖呀

JQ_Lin 发表于 2009-11-16 20:49:38

【22楼】 jishugengniu
to millwood0: 请勿人身攻击。
=========================================

请楼主再仔细看看【21楼】millwood0 的那段英文回帖,真的有“人身攻击”的味道吗?
我这个原本不是学英文的人,还是看懂了那段话的意思,没有任何攻击的成分。其他真正懂得英文的朋友再瞧瞧。
millwood0 是本网站的老朋友。他一直用英文,发帖和回帖的质量挺高。他的帖子也在逼着我们不情愿地去啃啃科技英文,没有什么不好的。

jishugengniu 发表于 2009-11-17 15:07:59

最近比较忙,刚刚试了一下。
编写程序:
      1. 系统上电;
      2. 把PCON、STATUS内容发出来;
      3. PCON |= 0X03;
      4. 再把PCON值发出来;

实验结果:
1. 当系统上电时 PCON 值为0x00, 然后软件成功将其置为0x03.----与理论情况相符
2. 当MCLR复位后,PCON 仍为0x03。                        ----与理论情况相符
3. 运行过程中,按键,并发生“按键复位”后,PCON值为0x00. 即“发生过上电复位”且“发生过欠压复位”

使用FLUKE示波器,使用4.5V门限电压触发,关闭噪声滤波,观察电源,电源没有任何干扰。

应该是zhxzhx 一丁所说的那种情况。

感谢zhxzhx 一丁!

jishugengniu 发表于 2009-11-17 16:00:33

我用示波器观察了 RB4引脚电平。

当管脚负压时间 大于3us时,芯片复位。
当管脚负压时间 小于3us时,芯片正常工作。

拆除电容,无负压,不复位。

JQ_Lin 发表于 2009-11-17 16:33:27

【20楼】 zhxzhx 一丁
我可以确定的是,这两个引脚,一旦有低于地的负脉冲(不过-0.3V,箝位二极管不起作用)立刻复位,非常快,比正常复位脚还要快.
因为这个原因,速变脉冲根本不能做,一动就复位,因为我的产品不能复位,所以发现了,有的能复位的产品,没有发现也就过去了,PIC很多片子都这样,特别是和电压比较器,AD复用的引脚

【24楼】 jishugengniu
应该是zhxzhx 一丁所说的那种情况。

==========================================================

问题的原因并没有找到。

先看看 zhxzhx 一丁 所说的那种情况。
1. 在楼主的电路中,根本不存在“有低于地的负脉冲”。实际上,Kup 和 Kdown 两点最低电平比地电平(0V)还要高一些。
2. 两个104的电容接在那里,使得按键动作产生的上升沿变得更缓慢了(下降沿变化不大),怎么会有“速变脉冲”呢?

再看看楼主的试验结果。
3. 【5楼】jishugengniu 的试验结果——“去掉按键的那两个滤波电容,的确可以解决问题。”——上升沿和下降沿恢复原样(陡峭)了,而问题却消失了。这不是恰恰否定了一丁的“速变脉冲”作用的观点吗?
4. 楼主在【24楼】的试验结果本身,也丝毫没有反应出 zhxzhx 一丁 所说的那种情况。

所以我说,问题的原因并没有找到。
请楼主和一丁不要见怪。我其实在这里说的就是一个分析问题、解决问题的思路和方法。

JQ_Lin 发表于 2009-11-17 18:07:23

【25楼】 jishugengniu
我用示波器观察了 RB4引脚电平。
当管脚负压时间 大于3us时,芯片复位。
当管脚负压时间 小于3us时,芯片正常工作。
============================================================

我发出【26楼】的帖子后,又见到楼主在【25楼】关于观察负压波形的新帖子。
出乎我的意料,所以对这个观察结果很感兴趣。

不怀疑楼主观察到的现象,只是想知道楼主的测试条件。
1. 示波器输入通道采用哪一种输入方式——是直流(DC)耦合,还是交流(AC)耦合?
2. 观察到的“负压”的幅度是多少伏?给个最大值即可。
如有条件,拍个完整的示波器前视图片。

jishugengniu 发表于 2009-11-17 18:44:44

http://cache.amobbs.com/bbs_upload782111/files_22/ourdev_504240.jpg
(原文件名:图像002.jpg) 没带相机,手机拍的不是很清楚。
硬件电路如楼主位。

被测点为单片机 RB5口,即楼主位中 的Kdown点。
示波器为DC COUPLING,采用下降沿触发,触发点设为2.5V,单次触发。
纵轴为:1V每大格,时间轴为:5us每大格。

millwood0 发表于 2009-11-17 19:22:13

but how could it have possibly generated a negative pulse?

jishugengniu 发表于 2009-11-17 19:47:33

这个反压是很奇怪。
我在按键与二极管间串了510欧电阻。如下:
http://cache.amobbs.com/bbs_upload782111/files_22/ourdev_504257.jpg
(原文件名:按键串电阻.jpg)

结果是没有负压了,曲线很漂亮,也不复位了。
http://cache.amobbs.com/bbs_upload782111/files_22/ourdev_504258.jpg
(原文件名:图像005.jpg)

astudent 发表于 2009-11-17 19:54:57

用过pic18f66j60,按键直接连在引脚和地之间,二极管、上拉全都没有加,没有发现什么问题。

astudent 发表于 2009-11-17 19:56:07

可能并不是单片机的问题。

JQ_Lin 发表于 2009-11-17 20:13:15

To 【28楼】 jishugengniu

1. 零电平的确切位置无法得知,所以无法知道图像002“负压”的幅度是多少伏。
2. 本来“负压”已经令我不可思议,而根据图像002,下降沿幅度落差竟达6.4V,也令我不可思议。因而我怀疑示波器的垂直灵敏度设置不在标准位置上(可能处于可调区域)。

3. 不论从理论角度出发,还是在实际上,因为二极管的存在,Kup 和 Kdown 两点最低电平无论如何都不会低到地电平,而是比地电平高出一个结电压。所以,不应当有负的尖脉冲出现。

4. 不妨改作交流耦合,对比观察一下,以确认你的示波器的直流耦合是否正常。
5. 确认直流耦合正常后,请在偏下方调好零电平基准位置,输入5V直流电压,跳跃5格高度并维持不变,以确认垂直轴的灵敏度为1V/大格。
6. 然后再测。时间轴为5us每大格,除此之外,再搞几个1ms、100ms每大格的,试试看。

jishugengniu 发表于 2009-11-17 20:17:45

【33楼】 JQ_Lin响应号召,我重新标一下零点。

红色圈圈那个黑色标志。
http://cache.amobbs.com/bbs_upload782111/files_22/ourdev_504281.JPG
(原文件名:图像002_零点.JPG)

jishugengniu 发表于 2009-11-17 20:21:22

【31楼】 astudent
用过pic18f66j60,按键直接连在引脚和地之间,二极管、上拉全都没有加,没有发现什么问题。
==========================================================================================
你说的属实。
我把电容去掉就OK.


这个问题的原因如一丁、以及我上面所说。

再次感谢一丁

zhxzhx 发表于 2009-11-17 20:36:59

【33楼】 JQ_Lin
    002图上 AA点就零点,这个负脉冲式电容的微分产生的,速度很快,加电阻可以限制电容充电的速度,可以消去负脉冲,可是干扰依然可以在引脚上感应出负信号,并不能解决问题.
    速变脉冲,是指速变脉冲群测试(EFT),是仪器可靠性测试的一种指标

快速瞬变脉冲群的基本要求是:
脉冲的上升时间(指10%~90%):5ns±30%;
脉冲持续时间(上升沿的50%至下降沿的50%):50ns±30%;
脉冲重复频率:5kHz或2.5kHz;
脉冲群的持续时间:15ms;
脉冲群的重复周期:300ms;
发生器的开路输出电压(峰值):(0.25~4)kV;
发生器的动态输出阻抗:50Ω±20%;
输出脉冲的极性:正/负

试验方法
(1)对电源线的试验(包括交流和直流),用共模方式,在每个电源端子与最近的保护接地点之间,或与参考接地板之间加试验电压。
(2)对控制线、信号线及通信设备,用共模方式,通过电容耦合夹子来施加试验电压。
(3)对于设备的保护接地端子,试验电压加在端子与参考接地之间。
试验每次至少要进行1min,而且正/负极性都属必须。

我的设计要过4级,就是4kV电压的

vipcff 发表于 2009-11-17 20:37:59

我也有同样的问题
参考我在picpic.cn的帖子:
http://www.picpic.cn/bbs/viewthread.php?tid=4638&highlight=%2Bvipcff

http://www.picpic.cn/bbs/viewthread.php?tid=4639&highlight=%2Bvipcff
那段时间研究过
现在也晕乎乎的,也不知道具体什么原因

zhxzhx 发表于 2009-11-17 20:54:26

【31楼】 astudent
并不是所有PIC单片机,所有引脚是这样的,有的引脚就没事!

millwood0 发表于 2009-11-18 08:09:25

"这个负脉冲式电容的微分产生的,速度很快,加电阻可以限制电容充电的速度,"

but where is this capacitor?

the only capacitor is being DISCHARGED when you push the button.

if anything, parasitic inductance on around switch might have caused it but the switch isn't conducting when it is not pushed so there is no current for the parasitic inductance to maintain.

there is something weird about this whole set-up.

I have never ever encountered something like this, in the digital or analog world.

zhxzhx 发表于 2009-11-18 19:32:16

【39楼】 millwood0

http://cache.amobbs.com/bbs_upload782111/files_22/ourdev_504647.JPG
注意电容两端的波形,负压就是这样来的 (原文件名:cap.JPG)

这一点不奇怪,你看这

JQ_Lin 发表于 2009-11-18 20:37:00

【36楼】 zhxzhx 一丁

    002图上 AA点就零点,这个负脉冲式电容的微分产生的,速度很快,加电阻可以限制电容充电的速度,可以消去负脉冲,可是干扰依然可以在引脚上感应出负信号,并不能解决问题.   
    速变脉冲,是指速变脉冲群测试(EFT),是仪器可靠性测试的一种指标
=================================================================================

知道零点的位置了。
也谢谢一丁关于速变脉冲群测试(EFT)的介绍。

我们现在要讨论的是楼主的电路为何出来了负脉冲,暂且不谈外界施加的干扰,在这里不存在“引脚上感应出负信号”的情况。仅就那个简单的电路进行分析讨论,当弄清自身负脉冲的来源之后,或许会使得许多和我一样的人,当去应对外界速变脉冲群的干扰测试时,能在这一点上做到心中有数。

zhxzhx 发表于 2009-11-18 21:14:47

你楼上的图就是负脉的来源
问题是,楼主电路的负脉冲可以避免,而速变脉冲群的负脉冲几乎不可避免

这个负脉冲的产生,也是有用的,加上绝对值电路,再展宽脉冲就是倍频电路,而且这还是典型的倍频电路之一
加高速比较器,就是一个窄脉冲电路
.....

zhxzhx 发表于 2009-11-18 21:22:25

负电压的产生,不是关键,负电压带来饿危害才是关键

gaolf_2000 发表于 2009-11-18 21:29:14

这个帖子很有趣,楼主十分好学也十分勤奋哦,帮忙试一下:c25和c26 的地飞两根粗线到左侧按键地,看看还复位不!

jishugengniu 发表于 2009-11-19 10:45:18

按键在另外一块小板上,通过约15cm的排线进行连接。
c25和c26 2个电容焊在MCU边上,且有大面积敷铜。

to gaolf_2000 :
1. 电容地与MCU地 通过大面积敷铜联接。
2. 在电容地与按键地 加焊0.75mm的导线,还有负脉冲。

zhxzhx 发表于 2009-11-19 12:51:10

负脉冲必然要产生的,因为电容不能立刻放电,原来的电荷还在,这样就相当一个电源,叠加在地上,那是电容的正常作用,不要在深究这个了.
    问题是怎么避免负电位对PIC的影响!因为电磁干扰,产生负电位太容易了

zhxzhx 发表于 2009-11-19 13:06:41

jishugengniu

你的电容离PIC的引脚一定很近吧,把它移远一点看看

看看PIC引脚端的波形,在看看电容端的波形

astudent 发表于 2009-11-19 14:10:20

为何要用电容?

millwood0 发表于 2009-11-19 19:57:25

"注意电容两端的波形,负压就是这样来的 (原文件名:cap.JPG)


这一点不奇怪,你看这"

ask yourself two questions:

1) what's the mechanism that created the negative pulse in your schematic?

2) is the same mechanism present in the circuit discussed by the original poster?

after you have gone through it, you would know why the mechanism in your schematic could not have created a negative pulse in the circuit discussed by the original poster.

millwood0 发表于 2009-11-19 19:57:50

"为何要用电容?"

debouncing.

astudent 发表于 2009-11-20 07:58:17

LS,消抖可以通过软件来做.

jishugengniu 发表于 2009-11-20 11:35:25

【51楼】 astudent LS,消抖可以通过软件来做.
==================================================
软件有消抖。
加电容的初衷是用来消抖,没想到搞得更麻烦。

不过,祸兮福之所倚,长见识了。

zhxzhx 发表于 2009-11-20 20:04:08

【49楼】 millwood0

这里看这个问题,要考虑电容不是理想电容,而导线也不是超导体,必须考虑他们的电感特性,才能分析出来,

所以.当你加150电阻,限制了电容的充电速度后,这个现象没有了因为信号的变化率已经降低了

这里实际是按高频电路来分析的,把导线一起分析进去,把他们当成电阻看待(等效于感抗)

millwood0 发表于 2009-11-20 20:35:26

"这里看这个问题,要考虑电容不是理想电容,而导线也不是超导体,必须考虑他们的电感特性,才能分析出来, "

sure. run the numbers and scenarios and tell us under what conditions you can create that negative pulse.

xiaobendan 发表于 2009-11-20 20:40:25

是否这个问题:电容的下端离开关比较近,而离CPU的脚比较远,由于开关通过二极管放电速度太快使电容下端的点位相对于比较远的CPU的脚产生一个高脉冲这个高脉冲是加到CUP的GND上的,相对于IO来说就是一个低脉冲了,试试看把电容直接焊到CUP脚上,再测试。

zhxzhx 发表于 2009-11-20 23:16:22

【54楼】 millwood0
      你想知道什么条件下产生这个负脉冲?这是电容和等效电感产生的谐振,是一个交流信号叠加在地上,当这个信号快速衰减的时候,你就能看到楼主的示波器照片中的波形

zhxzhx 发表于 2009-11-20 23:19:02

http://cache.amobbs.com/bbs_upload782111/files_22/ourdev_505421.JPG
这是仿真的图形,L是导线的等效电感 (原文件名:未命名.JPG)

millwood0 发表于 2009-11-21 04:39:09

"这是仿真的图形,L是导线的等效电感"

try to put a switch in place of the signal generator - your switch is a passive component.

can you generate that negative pulse then?

jishugengniu 发表于 2009-11-21 09:59:28

所以.当你加150电阻,限制了电容的充电速度后,这个现象没有了因为信号的变化率已经降低了
这里实际是按高频电路来分析的,把导线一起分析进去,把他们当成电阻看待(等效于感抗)
==========================================================================================

是的,之前有一块板子。按键不发生复位,仅仅是按键不同。应该就是这个原因

按键的质量不同,导致按键动作后,下降沿的斜率不同。

zhxzhx 发表于 2009-11-21 15:05:06

【58楼】 millwood0
    我的仿真示波器没有触发功能,按键的波形不能捕获,在按键电路里,这个能量来源于按键没有按下时电阻对电容的充电,当按键接通的时候,电容对电感放电,电感为抵消这个趋势会产生一个反电动势,就是这个电势使IO端的地电势降低了,当电容放完电后,电感把电能转变成了磁能,这个磁能也要转换成电能,这时也会产生一个正电动势,这个电势可以使IO端的地电势升高,同时这个对电容充电,如果没有损耗,这个过程会一直进行下去,不断地完成磁电的交替转换过程,但实际上能量是有损耗的,所以这个过程会快速衰减,只形成形成一个或几个负的尖峰脉冲,如果损耗能得到补充,这就是一个LC振荡器.
    要形成这个现象,还有一个条件,就是信号的下降沿要足够的陡,这样才能包含足够高的谐波,和LC的回路形成谐振.
    这个现象也可以用驻波的原理来理解.
    这个现象,也是为什么EMI要求不能有快速变化的信号输出,和485,CAN,同轴通讯线等要加终端电阻或吸收回路的内在原因.
    如果要完整了解这部分知识,可以参考高频电路的振荡器这部分.

jishugengniu 发表于 2009-11-21 23:01:19

如果没有损耗,这个过程会一直进行下去,不断地完成磁电的交替转换过程,但实际上能量是有损耗的,所以这个过程会快速衰减,只形成形成一个或几个负的尖峰脉冲,

说一个现象,曾经怀疑二极管。
我把二极管短接,然后观察按键按下的波形,是有明显的震荡。周期大概是1us,每个周期大约衰减50%
==================================

毕业后,我做了2年CAN总线,不过主要是单片机方面。现在换了单位,不用CAN了,55

CAN. 485的终端电阻是 用来减少信号反射的(主要是电缆终端,阻抗发生了突变)。这个波形,我也观察过。
据说这个 反射 类似于光线从空气 进入到水面。光线的一部分就发生了反射,一部分是折射。

JQ_Lin 发表于 2009-11-22 20:46:23

To 【60楼】 zhxzhx 一丁

来自:辽宁沈阳,看来我们的距离不算远啊。
请一丁朋友仔细阅读和领会 millwood0 的多个回复帖子,会更有助于真正搞清楚楼主原帖的问题,学到知识。

zhxzhx 发表于 2009-11-23 02:43:21

【62楼】 JQ_Lin

millwood0根本就不明白,到现在还糊涂着,这个问题我和Microchip直接沟通过,他们也是无解.

JQ_Lin 发表于 2009-11-23 22:40:13

【63楼】 zhxzhx 一丁
millwood0根本就不明白,到现在还糊涂着, ......
========================================================================================

  科学是讲理的;科学是容不得半点虚假的。

  我在【62楼】的回复的目的,就是希望你,在 millwood0 的提问的启发下,多问自己几个为什么,让自己清醒一些。
  你说,“millwood0根本就不明白,到现在还糊涂着, ......”。是吗?我真没有想到你会如此说。
  我干脆也招了吧,关于你对“楼主的示波器照片中的波形”的多种解释,我一定比 millwood0 还糊涂。

  据我看,前面所有的回复帖子中,唯有 millwood0 朋友的回复最有质量。millwood0 在【29楼】、【39楼】、【49楼】和【58楼】以到位的提问方式,准确地指出了你的错误或漏洞。你是否太小看 millwood0 了?有空的时候,多看看 millwood0 的帖子吧。

  本想发了【62楼】的帖子后走人,但是考虑到,我在前面已经介入这个帖子的讨论,我自己仍有不理解的问题;知道楼主技术耕牛对一些解释已经确信无疑,信以为真;特别是又见到【63楼】zhxzhx 一丁朋友的回复,觉得还是有必要继续参加一阵子讨论。

  只是这些天我很忙,帮朋友家修理高三孩子急用的计算机。稍后,我再继续说说我的疑问和看法。

zhxzhx 发表于 2009-11-24 02:58:54

【64楼】 JQ_Lin

    你的看法是什么?这个负脉从不存在?因为millwood0没有看到过?

你可以搭个电路自己看看,这个电路不复杂.

    我现在认为就是电容和引线的电感行成的谐振,原来认为是电容拉低了地电位,现在看不是.

    你的看法和解释是什么?不要说这个脉冲不存在,这个肯定有,并且已经引起了PIC的复位.

millwood0的帖子我看了,好象没有和这个相关的.

laosun123 发表于 2009-11-25 12:52:16

我这样理解: 把510欧电阻当成1微亨电感(长线的分布电感),当按下开关,电容与电感形成一个高q 谐振回路,电容两端电压下降,当电容
放电完成,电感对电容反响充电,形成方向过冲.因为电容本身有分布电感,反向过冲的波头比较高.因为二极管的作用,没有观察到正弦波形.过冲后的缓升波形应该是上拉电阻和104电容的时间常数形成的,增加的510电阻则降低了回路阻尼,使谐振快速衰减了.

jishugengniu 发表于 2009-11-26 19:48:52

【64楼】 JQ_Lin
知道楼主技术耕牛对一些解释已经确信无疑
=================================================
我对你称呼我为“技术耕牛”很感兴趣。
为什么不是“jishugengniu”?

jishugengniu 发表于 2009-11-26 19:56:15

JQ_Lin
负脉冲 客观存在、并且引起了PIC的复位,这些都是事实。科学要尊重事实。
至于负脉冲怎么产生的,我不知道。
而且,我觉得它属于模拟电路的范畴。我主要单片机,我没有这个水平、也不想去研究这个负脉冲是怎么产生的。下面的图片,提供你们参考。

http://cache.amobbs.com/bbs_upload782111/files_22/ourdev_507809.jpg
(原文件名:电容移到按键侧,远离IO口约20cm。不复位.jpg)

http://cache.amobbs.com/bbs_upload782111/files_22/ourdev_507810.jpg
(原文件名:有按键、有二极管,每次按键都复位.jpg)

http://cache.amobbs.com/bbs_upload782111/files_22/ourdev_507811.jpg
(原文件名:有电容,短接二极管引起的震荡.jpg)

http://cache.amobbs.com/bbs_upload782111/files_22/ourdev_507812.jpg
(原文件名:有电容,短接二极管时间长.jpg)

JQ_Lin 发表于 2009-11-26 21:00:59

回复【68楼】jishugengniu

负脉冲 客观存在、并且引起了PIC的复位,这些都是事实。科学要尊重事实。
至于负脉冲怎么产生的,我不知道。
而且,我觉得它属于模拟电路的范畴。我主要单片机,我没有这个水平、也不想去研究这个负脉冲是怎么产生的。下面的图片,提供你们参考。
====================================================================

  1.我在【27楼】说到,“见到楼主在【25楼】关于观察负压波形的文字帖子(你的图片尚未发出),出乎我的意料,所以对这个观察结果很感兴趣。”——这话的意思,就是想知道负脉冲怎么产生的。
  2.我在【27楼】还没有见到你发的波形图片(在【28楼】)的情况下,就说过,“不怀疑楼主观察到的现象,只是想知道楼主的测试条件。”——已经表明了我的尊重你所观察到的现象的事实的态度。这是一个尊重人格的预先声明。
  3.谢谢你又提供了这么清晰的图片。
  4.我还想请你再发几张同样测试条件下(同一输入通道、同样垂直灵敏度档、同样水平扫描速度档)的、没有电容器时的波形图片,先谢谢了。

jishugengniu 发表于 2009-11-27 15:54:03

http://cache.amobbs.com/bbs_upload782111/files_22/ourdev_508153.jpg
(原文件名:按键移到IO口边,无电容 006.jpg)

http://cache.amobbs.com/bbs_upload782111/files_22/ourdev_508154.jpg
(原文件名:无电容,20cm长连线连接按键.jpg)

http://cache.amobbs.com/bbs_upload782111/files_22/ourdev_508155.jpg
(原文件名:有电容,按键移到IO口边 005.jpg)

JQ_Lin 发表于 2009-11-27 23:47:08

非常感谢楼主 jishugengniu 又提供了新的图片。
无电容,20cm长连线,也出现负过冲,又增加了需要考虑的新内容。

有三个不明的地方:
  1.楼上的(原文件名:按键移到IO口边,无电容 006.jpg) 和【28楼】的(原文件名:图像002.jpg),这两个波形的起始电平都比5V低了一些,不知何故。请楼主注意一下。
  2.每次测试时,示波器探头的钩子和地线夹子都始终固定在哪个部位?奇怪的波形是我不得不考虑这样的细节,还有5V电源正负极的接入点等。
  3.【楼主位】说过,按下S2键,单片机就复位,可与复位按键媲美。再多余地问一下,按下S1键或S3键,无论如何,单片机都不复位,是吗?

jishugengniu 发表于 2009-11-28 09:40:11

JQ_Lin
你很细心啊,佩服。
1. 单片机电源是电池12V电源,经78L05供的电,78L05只给单片机供电,无其他负载。我焊了2块板子,他们都会发生按S2键复位。为了偷懒(焊接、拆卸电容)所以,你指出的那两幅图,是另一块板子的波形。是78L05输出电压的不一致;
2. 我在2块测试的板子 的同一个地方上焊了一个地线的插针,每次都把示波器探头夹在那里。有大面积铺地,MCU、测试地、电源输入地可认为电阻极小;
3. 有加104电容,使用20cm连接线时。发生复位的概率为:按S1键约10%,按S2键90%,按S3键约50%。

如果您很感兴趣,我可以寄板子给你测试。

zhxzhx 发表于 2009-11-28 13:44:06

【71楼】 JQ_Lin

我很奇怪,你怎么老认为这个波形很奇怪呐?

只要你导线有一定长度,这个波形肯定出现,20CM导线即是寄生电感,又是寄生电容.

JQ_Lin 发表于 2009-11-28 16:31:03

【73楼】 zhxzhx 一丁
我很奇怪,你怎么老认为这个波形很奇怪呐?
=======================================

哈哈,一丁朋友恨铁不成钢啊。
你的解释不止一种,而且还在变化着呢。
当搞清楚它的缘由后,我理解了,我就不会再感到奇怪了。
我的一种解释已经仿真验证。但考虑到楼主几个波形的测试条件,我仍存疑问,故暂不能公布。

JQ_Lin 发表于 2009-11-28 17:13:49

【72楼】 jishugengniu
如果您很感兴趣,我可以寄板子给你测试。
======================================

不在测试现场,相距3300公里的火车里程,是干着急也没有办法的事情。
未求而得,非常高兴。太感谢楼主了。
请向 jq_lin圈163典com 发件,我将地址发给你,你的电邮不必公开。
谢谢。

(另,请看你的较早关于电流检测的问题的帖子,那里有我的一个回复。)

zhxzhx 发表于 2009-11-28 20:12:37

【74楼】 JQ_Lin

我的认识也有过程,这个波形我看到过很多,从来没有考虑过怎么来的.

其实,我不关心波形,我关心负压PIC复位的解决,为这个我损失惨重(过5位数了),我想知道这个到底有没有解决的办法.

你可以自己搭个电路,100%有这个现象.

zhxzhx 发表于 2009-11-28 20:16:01

【74楼】 JQ_Lin

你在哪里?和LZ3300公里,和我就不会太远!

xiaobendan 发表于 2009-11-28 22:03:13

我用M48做过一个东西,也有这种接法的,没有发现什么问题,所以也没有研究波形。我也习惯用104的电容

JQ_Lin 发表于 2009-11-28 23:54:42

To 【楼主】jishugengniu

  我还需要一种波形的图片——探头钩子直接挂到示波器自带的标准方波信号源上,分别在1V每大格和其上(例如2V每大格)、下(例如0.5V每大格)等几个垂直灵敏度档上显示出来。目的是了解你使用的示波器的高频显示特性,对我来说,很重要。
  麻烦你了。谢谢。

jishugengniu 发表于 2009-11-30 09:22:17

很抱歉,我使用的是FLUKE 199示波表,没有找到标准方波输出接口。

这个示波表用的是原装的探头,最高采样率2.5G,带宽200M。对FLUKE我还是很信赖的。
在这里采uS级的波形,我想应该还是可以的。

JQ_Lin 发表于 2009-12-1 01:44:37

相信你的示波器的质量一定很好,我只是意在排除意外因素。
如果有条件测到另外的示波器或其它信号源的标准方波,也可以。
就是想看看波形前后沿的表现。没有条件或者不方便就算了吧。

zhxzhx 发表于 2009-12-6 01:21:33

JQ_Lin 研究的怎样了?交流啊

jishugengniu 发表于 2009-12-6 20:53:12

tozhxzhx 一丁

JQ_Lin 让我先给他拍一下“示波器自带的标准方波信号”,我的示波表没有此接口,就没有拍,板子也没有寄给他。


其实随便找个洞洞板焊一下就可以看到了。

zhxzhx 发表于 2009-12-7 01:02:11

【83楼】 jishugengniu
这个东西,就是信号里的过冲,很常见的现象。在高速电路设计里,很讨厌的东西。

qingzhou 发表于 2009-12-7 01:28:46

mark

JQ_Lin 发表于 2009-12-8 16:40:12

To 【83楼】 jishugengniu

我这里的波形,早就看过了,连洞洞板也没有用。只是我手里的示波器不是数字记忆存储的,难以拍摄示波管余辉的图像。
板子不用寄了,谢谢你。即使寄来,我还得找人借示波器去。

提出以下几个办法,你来试试:

1.如果允许,减小电容值试试,无效就再减小;
2.如果允许,减小接电源的电阻阻值试试,无效就再减小;
3.若以上都不允许,则将二极管串入一低值电阻再接按键,几十欧姆,无效就再增大,有效可以再减小。

务必在同一位置检测波形,例如,I/O端口或电容两端。
效果如何,回个话吧。

jishugengniu 发表于 2009-12-8 21:41:28

1.如果允许,减小电容值试试,无效就再减小;
2.如果允许,减小接电源的电阻阻值试试,无效就再减小;
3.若以上都不允许,则将二极管串入一低值电阻再接按键,几十欧姆,无效就再增大,有效可以再减小。
===================================================================================================
1. 去掉电容的图在70楼。 如果按键通过20CM导线连,有负脉冲;如果按键靠近IO口,没有负脉冲;
2. 按键的上拉电阻用1K 和10K试过,一样;
3. 请看30楼波形,就是串了电阻的,很漂亮。

JQ_Lin 发表于 2009-12-8 22:04:00

To 【87楼】 jishugengniu

请看30楼波形,就是串了电阻的,很漂亮。
===============================================

30楼串接510欧姆,阻值太大了,波形下降沿质量太差。
应当再大大地减小,可以做到即没有负过冲,又很陡峭。

zhxzhx 发表于 2009-12-9 03:35:22

JQ_Lin
    你的意见,都是针对按键这个特殊电路的,这个的负脉冲很好解决,但是,干扰信号引入的负脉冲怎么办?这个才有研究的意义,
我不是说过,有一种试验,就是人为引入干扰,PIC的单片机100%复位,做检验的人都告诉我,用PIC的就不要做了,他们检验,PIC还没有通过的先例,包括德国进口的设备,用PIC的控制器,也是一加干扰,100%复位。

ly499463215 发表于 2009-12-12 13:45:15

问一句:这个负脉冲为什么会导致PIC单片机复位呢?是因为PIC内部结构的原因么?如果是,设计人员为什么不在内部做一些保护或者优化呢?如果单纯在外部电路上做优化,防止负脉冲,好像很困难啊?

millwood0 发表于 2009-12-12 19:28:55

"是因为PIC内部结构的原因么?"

if you look at the pin block diagram, you will see that the inputs are clamped to ground (and Vdd) by two diodes. so the most you can put a pin is 0.7v below ground or 0.7v above Vdd.

I have never ran into the situation described here by the original poster.

this is from 16f684's datasheet and is typical of a pic io pin.

how do you put the io pin hugely negative?

http://cache.amobbs.com/bbs_upload782111/files_23/ourdev_513610.PNG
(原文件名:pic pin block.PNG)

catwill 发表于 2009-12-13 21:44:02

从头看到尾,整个帖子很精彩^_^
负压是不是可以理解为“电容两端电压不可突变”造成的啊?
正如
zhxzhx 一丁
所言:
“这个的负脉冲很好解决,但是,干扰信号引入的负脉冲怎么办?这个才有研究的意义,”

ly499463215 发表于 2009-12-13 23:20:36

To【91楼】 millwood0
我觉得你从始至终一直都是把元器件当做了理想状态来分析,但实际应用中,理想模型往往是靠不住的,如图二极管的伏安特性曲线,并不是说二极管两端电压一定是固定的,大于0.7V的导通电压是存在的,只是在二极管导通之后,电压的增大会使电流迅速增大,长时间如此,二极管肯定会烧坏,短时间大于导通电压就是楼主的拍摄的示波器波形:图像002.jpg。

但是我的问题是:IO管脚的电压是怎样传递到MCLR的呢?

http://cache.amobbs.com/bbs_upload782111/files_23/ourdev_514161.jpg
二极管伏安特性曲线 (原文件名:二极管伏安特性曲线.jpg)

jishugengniu 发表于 2009-12-16 12:32:17

ly499463215 :但是我的问题是:IO管脚的电压是怎样传递到MCLR的呢?
=============================================================================
请看24楼。
发生“按键复位”后,PCON值为0x00. 即“发生过上电复位”且“发生过欠压复位”,因此不能说是 有复位信号传到了 MCLR。

xiaobendan 发表于 2009-12-16 14:22:04

如89楼所说,为什么PIC是传说中抗干扰最好的呢?

ly499463215 发表于 2009-12-16 16:52:56

To【94楼】 jishugengniu

看帖不仔细,没认真分析,罪过罪过。
那就是说发生了欠压复位,在【28楼】“图像002.jpg”中,负电压导致电流从地向IO口,而且电流还很大,这导致芯片内部Vcc和地的回路中出现一个噪声,使芯片内部的Vcc降低,以至于发生了欠压复位,不知道我的分析对不对?
如果对的话,只有当这个负脉冲大于二极管的导通电压时才会发生欠压复位吧?

可是在【20楼】 zhxzhx 一丁
“我可以确定的是,这两个引脚,一旦有低于地的负脉冲(不过-0.3V,箝位二极管不起作用)立刻复位,非常快,比正常复位脚还要快.
因为这个原因,速变脉冲根本不能做,一动就复位,因为我的产品不能复位,所以发现了,有的能复位的产品,没有发现也就过去了,PIC很多片子都这样,特别是和电压比较器,AD复用的引脚”

如果-0.3V就可以使其复位,那【91楼】 millwood0 给出的图“pic pin block.PNG”中,管脚的保护二极管就应该是锗管了吧?

ly499463215 发表于 2009-12-16 16:57:31

还有【95楼】 xiaobendan 仲跻东 说的也是个问题啊

ly499463215 发表于 2009-12-17 20:03:39

【96楼】说的锗管错了,是肖特基二极管,汗~~~,那-0.3V就很好理解了

millwood0 发表于 2009-12-18 07:31:42

go to the electric characteristics section of the datasheet and check out the absolute maximum voltage and clamp current on an input pin, and compare it vs. the scope shots posted here earlier and ask yourself if you can reconcile the two.
页: [1] 2
查看完整版本: 按键导致单片机复位