在许多设备中,一个开/关按键可开启或关断电源。一般情况下,不管微控制器或 DSP 电路正在处理的是处理功能还是负载,在按下按键时,系统都会关断。图 1所示的小型电路可用来使微控制器或 DSP 电路控制这一开/关功能。这样,系统就可先完成各种必需完成的作业,如数据处理、数据存储等,然后再发出指令关断电源。图 2 示出了它的定时图。虽然最终的设备是与电源断开的,但开关直接与直流电源或电池连接。因此,所有的
电容器都会放电。最困难的工作就是使图 1 中的两个 D 触发器都进入所需的“关”状态。
图 1 中的反相器 IC
1B通过二极管 D
4 使 D 触发器 IC
2B 复位。
由 R
10、R
11 和 C
4 组成的阻容网络,与反相器IC
1B 的输入端连接,并产生约 4.7ms的延迟时间。这一时间间隔保证在经过约 4.7 ms延迟后,D 触发器能解除复位状态。延迟时间过去后,IC
2B 的复位输入引脚因R7 接地而R 从高电位变为低电位。同时,IC
2B 的输出引脚Q 也转换到低电平,而 引脚 转为高电平。 IC
2B 的 D 输入节点因与输出引脚 连接而也从高电平变为低电平。由 R
1 和 C
3 组成的阻容网络与反相器 IC
1A 一起,产生约 47ms的延迟。这一被延迟的输出连接到D触发器(IC
2A)置位引脚。置位引脚保持 47ms的高电平后变为低电平。
在置位引脚变为低电平后,D 触发器 IC
2A 将其在Q引脚的输出电平变为高电平,而把其在Q脚的输出电平变为低电平,Q的反馈信号连接至D输入节点。Q(SHTDN)引脚的高电平连接至 DC/DC 转换器或低压差稳压器的使能引脚,使系统保持关断状态。D 触发器 IC
2A 此时处于关断状态。从这时起,两个 D 触发器均处于一种已知的状态。在这个初始化过程中,DSP 的I/O 引脚处于低电平,因为没有为 DSP 电路供电。R
15 保证了上电期间 DSP的 I/O 引脚电平为低电平。初始化阶段过后,SHTDN为有效高电平。如果你把它连接到 DC/DC 转换器或低压差稳压器的使能引脚,则SHTDN可保持系统处于关断状态。当你按下按键时,由于开关使按键节点的上拉电阻短路到地, IC
1B 的输入引脚就从高电平变为低电平。在此期间,IC
1B 的输出引脚相应地由低电平变为高电平。
D 触发器 IC2A 的 CLK 输入引脚通过 R14 和 D1 被触发,输出引脚 Q 的状态由低电平转变成高电平。这一状态使得低压差稳压器或 DC/DC 转换器开始工作。连接到R2的 3.3V 或 5V 电源为晶体管 Q1 供电,从而改变D 触发器 IC2A 的 CLK 输入引脚的逻辑电平。这一动作保证系统在你按下开/关按键时不受假信号的影响。该电路中DSP的I/O引脚连接到 DSP 电路或微控制器的 I/O 引脚之一。你应在上电和复位状态解除后将 DSP 电路或微控制器的 I/O 引脚配置成输入引脚。只要你按下开/关按键时,晶体管 Q2 就保持导通状态,使DSP 电路的 I/O 引脚变为低电平。你应对 DSP 电路或微控制器进行编程,使 DSP 电路在松开按键之前停止执行代码,而 DSP I/O 引脚由低电平转为高电平。D 触发器 IC2B 再次通过 D4 复位,但由于应用程序正在运行,所以这次复位不会改变输出状态。
你再次按下开/关按键时,DSP的 I/O 引脚呈现低电平。DSP 电路或微控制器此时应检测到这一输入电平变化,并产生一个中断。这一中断应能起动一个关机程序。D 触发器 IC2B 通过 D4 变为复位模式,因此在 CLK 引脚有效的切换信号不会影响输出状态。此时你可以松开开/关按键。D 触发器 IC2B 经过约 4.7ms的延迟后解除复位模式,而在复位延迟时间过去前Q2和Q4改变电平,并保持 CLK 脚为低电平。延迟过后,微控制器或 DSP 电路检测到 I/O 引脚为高电平,然后开始运行关机程序。
此时,DSP 电路或微控制器有时间保存任何关键数据。你必须为微控制器或 DSP 电路的 I/O 引脚编程,使之成为置为低电平的输出引脚。Q4 失去驱动电压后, D 触发器 IC2B 的 CLK 引脚状态从低电平转为高电平。D 触发器 IC2A 通过输出引脚 Q 和 D3 来改变输出状态。Q和Q引脚使SHTDN引脚的状态变为低电平,从而系统关机。同时,D 触发器 IC2B 通过 Q3 和比较器 IC1C 复位。这一复位使 IC2B 回到前面所述的第一次按下开/关键以前的初始状态。