本帖最后由 ALTIUM2 于 2015-9-6 22:29 编辑
每天解决一个问题13:如何解决IO默认高电平的麻烦
在控制电路中,一般都使用高电平作为有效的控制信号,但有一些比较另类的控制逻辑,0作为有效电平。
这时如果使用MCU初始IO口默认为高电平就不是很好控制了。
下面是我实际应用中的一种很有效的控制电路。
(一)上电后配置为低电平不就行了吗?
有时候就不行,为什么,如下图。
在上图中,我们可以明显的看到在配置IO管脚前有一段不可控区,这一段电平为高,如果系统要求不高就无所谓,但是在一些苛刻的控制场合,哪怕1MS的高电平,都是不能容忍的,所以,有时候就不行了。
(二)我的方法
在下图中就是我的控制思想:
U1是一个光耦,左边是两个MCU的控制口,右边就是另类的1=R(接收),0=T(发射)的逻辑了。
当左边二极管工作时,右边才会导通,而导通的条件就是PIN_0和PIN_1之间有压差。
这时候就是思想的微妙之处了,当不可控区,两个MCU的管脚电平变化一致,即使到配置时,两者电平依旧间隔几乎为0.
当PIN0电压为高,PIN1为低时,光耦左边二极管工作,右边导通。
这种方法很微妙的避免的上电默认高电平引起的麻烦了。
|