松翰单片机的输入口真的是施密特触发?

[复制链接]
查看8796 | 回复10 | 2011-10-20 09:38:36 | 显示全部楼层 |阅读模式
      众所周知“施密特触发器”都有二个不同的阀值电压,当电压处于二个阀值电压之间的时候输入电平信号由前一个状态决定.
      查看松翰2501b的手册,大部分输入口都为施密特触发,如果按照这样的推断,2501b普通IO的低电平阀值电压为0.3VDD,高电平阀值电压为0.7VDD,如果IO口电压从VDD往下降,直至0.3VDD之前,IO口读取电平都应该是高电平.
      如果真是这样的话,那在做电池供电的产品的时候,只需要一个IO口设置为输入模式,在IO口外分配好二个电阻,那就可以检测电池某个点的电压信号,比如电池电压下降到2.5V的时候,系统作出相应输出信号给用户(例如灯闪烁).
      往往想法是美好的,事实是残酷的.我用2501b的FP00作为输入口,FP10作为输出口,当FP00为低电平的时FP10输出高电平,反之FP00为高电平的时FP10输出低电平,电源用稳定的DC5V供电,我在用可调电源调节的时候(共地),当在2.5V左右的时候,灯居然是闪烁的,由此我说明FP00作为输入模式的时为施密特触发是错误的.
      或许是我没有完全理解,或者在操作上有所错误,还望各位大虾指点,
hfbjjs | 2011-10-21 01:22:53 | 显示全部楼层
你提到的手册的 0.3VDD 与  0.7VDD 不是端口的施密特输入电平,而是端口输入模式时,要求输入低电平时不要>0.3VDD,而输入高电平时不要<0.7VDD .
对真实的施密特输入电平,好像 SN 芯片手册没有给出具体数值.
我刚好在弄 2318 芯片的项目,就随便使用一个 FP22 来测试一下,结果是:
供电条件:3.27V, 1/2电压=1.635V
从高到低: 大致在 1.55V 产生低电平输入有效.
从低到高:大致在 1.75V 产生高电平输入有效.
如此看来,从高到低(从低到高)与标准1/2均大致相差 0.1V左右.也就是说:芯片端口的端口施密特输入特性把通常的 1/2VDD 扩展了±0.1V .仅此而已!
那么,如果不是施密特触发的输入端口,状态翻转会就在 1/2 附近,通常差十几 uV 就会引发翻转动作,也就是通常说的"振荡"!
这种振荡,发生在模拟输入时,信号从低到高(从高到低)都要经过这个振荡区域,但是,带施密特的端口可以减少这种振荡,因为它的高电平翻转与低电平翻转有一个电压差.
至于这个电压差需要多大才合适? 是要看具体项目要求的.----如果曾经弄过三极管的施密特触发电路,并且是"回差"可以调节的,就会有很深的体会. ----- 作为单片机的端口,也不能把这种回差弄得太大---越大越不灵敏! 发生振荡就最灵敏.-----灵敏度与振荡有矛盾.需要互相兼顾.
仅供参考!
落月无声 | 2011-10-21 14:09:29 | 显示全部楼层
非常感谢“hfbjjs ”老师的指点迷津,但还有个疑问:
2501B的FP00在规格书上明确写到是施密特触发,为什么电压在1/2VDD的时候会发现振荡?
注:IC和输入端口的电源基本保持稳定.
yuan200327 | 2011-11-21 23:51:02 | 显示全部楼层
落月无声 发表于 2011-10-21 14:09 static/image/common/back.gif
非常感谢“hfbjjs ”老师的指点迷津,但还有个疑问:
2501B的FP00在规格书上明确写到是施密特触发,为什么电 ...

楼主这个问题有没有解决,我也遇到相同的问题。我连续检测1-2s输入脚是否为低电平,如果一直是低电平则判定为电池电压为低电压,当然在检测之前将该I/O口设置为输出,并输出低电平,然后转为输入。我现在的问题是转为输入后,需要延时一段(不低于2MS),才能有效检测到低电平,这里好像有些问题。还有,我不清楚上拉电阻有什么影响,我整个过程都禁止了上拉。楼主可否帮我分析分析,谢谢了!
落月无声 | 2011-11-23 09:01:16 | 显示全部楼层
问题基本解决了,比如你检测一个电压点,“hfbjjs ”老师都说得很清楚了,他会在电压点附近偏移,所以一旦检测低电平的时候就可以判定低压了,
落月无声 | 2011-11-23 09:02:49 | 显示全部楼层
当设置为输出模式后,在设置为输入模式,只需要延时几微妙就可以了(5us),这里上拉电阻是没有影响的!
fvquy | 2011-11-24 08:55:14 | 显示全部楼层
真是好东西,顶啊!











static/image/common/sigline.gif
完美人生!
低碳生活stoo.cn
娱乐网x.zsjdc.com
落月无声 | 2011-11-24 10:10:39 | 显示全部楼层
落月无声 | 2011-12-7 13:29:03 | 显示全部楼层
hfbjjs | 2011-12-8 10:44:19 | 显示全部楼层
施密特触发的真实电压是很难确定的,因为我们没有足够分析它的硬件工具.
即使 1/2*V+ 在 ±1mV 是正常的不振荡,那么, ±100uV ,±10uV ...... ±0.01uV.... 呢?
我们当然也没有必要这么精确,但是需要避开一个"振荡区域"就可以正常使用了!
例如:在 1/2*V+ 的±50mV 或 ±100mV 内,不要去停留或检测它的电平高低. 就可以"躲"开这种"误判"
仅供参考!
您需要登录后才可以回帖 登录 | 注册

本版积分规则