打印
[STC单片机]

今天遇到的问题:准双向口受到干扰

[复制链接]
2647|20
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 熊猫烧香 于 2017-1-18 13:07 编辑

P1.1口作为按键输入口,按键按下去为低电平。P1.2口作为输出口,接芯片U8的复位脚(低电平复位),  P1.2用10K的电阻上拉到3.3V。程序中只有while(1)空转,什么也不执行,默认不配置IO口,都是准双向口。

现象1:按键按下去的一瞬间,有50%的概率会影响到P1.2口,把U8复位
现象2:P1.2设置成推挽输出,按键按下去不会影响P1.2口,U8不会复位
现象3:u8的复位脚不接P1.2,只接P3.7,P3.7默认是准双向口,按键按下去不会影响P3.7口,U8不会复位

请问这种现象正常吗?


*********************************************************************************************
补充一下:感谢songchenping提醒
TPS3808G09DBVR内部有一个90k的电阻上拉到3.3V,而我又在外部加了一个10k的上拉电阻,实际并联换算后的电阻是9k,
电阻减小,吸收的电流增大,增加了隐患
官方手册说明:Note that if the logic signal driving MR does not go fully to VDD, there will be
some additional current draw into VDD as a result of the internal pull-up resistor on MR. To minimize current draw, a logic-level FET can be used a illustrated in Figure 13
如果MR逻辑电平没有完全到达VDD,就会有额外的电流吸入。并建议用FET管子驱动MR脚(减小电流吸入)



相关帖子

沙发
NE5532| | 2017-1-16 21:27 | 只看该作者
画个图吧,好难想象啊。

使用特权

评论回复
板凳
熊猫烧香|  楼主 | 2017-1-16 22:01 | 只看该作者
NE5532 发表于 2017-1-16 21:27
画个图吧,好难想象啊。

现画,有问题还请指出!

使用特权

评论回复
地板
NE5532| | 2017-1-17 08:47 | 只看该作者
用示波器抓MCU_RST上的波形,看是标准的脉冲还是半截子电平,有MCU内部某些引脚使用同一个电源系统,相互影响的先例(我在PIC16上遇到过)。

另外需要怀疑自己没有对端口进行配置,端口实际所处的状态是否真的在“准双向口”上。

使用特权

评论回复
5
dirtwillfly| | 2017-1-17 08:57 | 只看该作者
stc啊

使用特权

评论回复
6
songchenping| | 2017-1-17 11:03 | 只看该作者
楼主的功能需求不明确啊。到底复位芯片要监测哪个电压啊。
还有芯片内部已经有上拉电阻,R224是否多余,还有你的SENSE管脚为何要接分压后的电压,而且你要看看芯片内部SENSE信号进入后也要分压,是否能达到你的预期效果啊

使用特权

评论回复
7
songchenping| | 2017-1-17 11:06 | 只看该作者
还有楼主你的复位芯片型号是否正确啊,你标的型号是供电为0.9V的,

应该选TPS3808G33.

使用特权

评论回复
8
熊猫烧香|  楼主 | 2017-1-17 11:13 | 只看该作者
NE5532 发表于 2017-1-17 08:47
用示波器抓MCU_RST上的波形,看是标准的脉冲还是半截子电平,有MCU内部某些引脚使用同一个电源系统,相互影 ...

谢谢!不管是用示波器还是万用表在MCU_RST上测量,现象是不会出现复位情况,示波器和万用表本身好像会影响干扰信号的测量,但是只在u8的1脚CPU_PORz上测量的的确确会有一个标准的复位脉冲信号。另外程序上明确把MCU_RST脚配置成准双向口,现象确实是会复位

使用特权

评论回复
9
熊猫烧香|  楼主 | 2017-1-17 11:27 | 只看该作者

是STC的,但一般不会轻易去怀疑是量产片子的问题,大多数还是自己设计的问题!像这种两个独立IO设置成准双向口,造成干扰,如果是芯片bug,那太低级,太匪夷所思

使用特权

评论回复
10
dirtwillfly| | 2017-1-17 11:30 | 只看该作者
熊猫烧香 发表于 2017-1-17 11:27
是STC的,但一般不会轻易去怀疑是量产片子的问题,大多数还是自己设计的问题!像这种两个独立IO设置成准 ...

不稀罕的,参见底板楼层的回复

使用特权

评论回复
11
熊猫烧香|  楼主 | 2017-1-17 12:05 | 只看该作者
songchenping 发表于 2017-1-17 11:03
楼主的功能需求不明确啊。到底复位芯片要监测哪个电压啊。
还有芯片内部已经有上拉电阻,R224是否多余,还 ...

感谢您看的这么仔细
需求:
1:tps3808g09dbvrg4电压监控芯片5脚sense监控1.5V(是DDR3L的电源),正常情况sense脚在1V样子,当1.5V电源下降,使得sense脚低于0.84V时触发复位。对于型号选择和分压电阻选择有待商榷。但正常使用没有问题。
2:单片机检测到按键按下时,根据按下去的时间会执行不同的功能,其中一项功能就是通过MCU_RST脚来进行复位。tps3808g09dbvrg4的MR脚内部是有90K的上拉电阻,多谢提醒,我会试着把10k的上拉电阻去掉,再做一下实验

使用特权

评论回复
12
ningling_21| | 2017-1-17 12:05 | 只看该作者
熊猫烧香 发表于 2017-1-17 11:27
是STC的,但一般不会轻易去怀疑是量产片子的问题,大多数还是自己设计的问题!像这种两个独立IO设置成准 ...

换个管脚是不是按键都会有干扰

使用特权

评论回复
13
xmar| | 2017-1-17 14:10 | 只看该作者
11脚、12脚可能有焊锡粘连。

使用特权

评论回复
14
熊猫烧香|  楼主 | 2017-1-17 14:49 | 只看该作者
ningling_21 发表于 2017-1-17 12:05
换个管脚是不是按键都会有干扰

其实P3.7就是换个管脚试的,但也可以再换一个管脚再试试,现象我已经补充了,应该算是找到一些原因了

使用特权

评论回复
15
熊猫烧香|  楼主 | 2017-1-17 14:50 | 只看该作者
xmar 发表于 2017-1-17 14:10
11脚、12脚可能有焊锡粘连。

多谢提醒,这个原因已经排除,两个管脚间的电阻有几十K

使用特权

评论回复
16
NE5532| | 2017-1-17 21:35 | 只看该作者
熊猫烧香 发表于 2017-1-17 11:13
谢谢!不管是用示波器还是万用表在MCU_RST上测量,现象是不会出现复位情况,示波器和万用表本身好像会影 ...

示波器和万用表都相当于一个大电阻,这个基本肯定是你这个端口处于高阻抗输入状态,而不是什么准双向口状态,不信你挂个mA表到GND测下上拉有电流出来没?

使用特权

评论回复
17
熊猫烧香|  楼主 | 2017-1-17 23:18 | 只看该作者
NE5532 发表于 2017-1-17 21:35
示波器和万用表都相当于一个大电阻,这个基本肯定是你这个端口处于高阻抗输入状态,而不是什么准双向口状 ...

如果这个端口处于高阻状态,相当于断路,再接个ma表到地测量电流,那理论上有电流且电流值就等于3.3V/上拉电阻值。如果这个端口处于准双向口,再接个ma表到地测量电流,相当于这个口也被拉低了,我想有一部分电流会通过ma表到地,另一部分电流会通过io口,再经过芯片的地流出(准双向口可以吸收较大的灌电流)。

假如io口处于高阻状态,但外部已接上拉电阻,其电平也是固定的,似乎也不好解释干扰现象。不知道理解的对不对?但是实验可以做一下

使用特权

评论回复
18
baoren| | 2017-1-18 09:03 | 只看该作者
这种量产的CPU不可能出现这种问题吧,楼主还是再找一下自己的原因

使用特权

评论回复
19
NE5532| | 2017-1-18 09:16 | 只看该作者
熊猫烧香 发表于 2017-1-17 23:18
如果这个端口处于高阻状态,相当于断路,再接个ma表到地测量电流,那理论上有电流且电流值就等于3.3V/上 ...

你本来外面有个10k电阻,照理说不会这么脆弱,你先测了电流看了再说,越奇怪的问题,原因可能越低级。

使用特权

评论回复
20
熊猫烧香|  楼主 | 2017-1-18 10:34 | 只看该作者
本帖最后由 熊猫烧香 于 2017-1-18 11:23 编辑
NE5532 发表于 2017-1-18 09:16
你本来外面有个10k电阻,照理说不会这么脆弱,你先测了电流看了再说,越奇怪的问题,原因可能越低级。 ...

测试时10k上拉电阻已经去掉,默认是U8芯片内部90K上拉电阻 3.3V/90K≈36.7uA
且看测试结果:          断开P12脚 ma表电流38uA
//        P1M1 |= 0x04;//P12 高阻  ma表电流38uA   与断开P12脚测试一致
//        P1M0 &= 0xfb;
        
//        P1M1 &= 0xfb;//P12 推挽 ma表电流320uA 说明芯片内部的拉电流为282uA
//        P1M0 |= 0x04;                                                     
        
        P1M1 &= 0xfb;//P12 准双向口 ma表电流44uA    说明芯片内部的拉电流为6uA
        P1M0 &= 0xfb;

如果把P12换成P10测试并不会出现复位现象:
测试电流结果如下:
//        P1M1 |= 0x01;//P10 高阻  ma表电流38uA
//  P1M0 &= 0xfe;
       
//        P1M1 &= 0xfe;//P10 推挽 ma表电流11ma  这个芯片内部差异还挺大的
//         P1M0 |= 0x01;


//        P1M1 &= 0xfe;//P10 准双向口 ma表电流 44uA
//        P1M0 &= 0xfe;

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

24

帖子

0

粉丝