案例:逻辑器件输入端上拉太弱造成带电插拔监测功能失败
问题:如下图的业务板热插拔监控电路,主控板通过业务板的在位信号PRESENT判断业务板插入或拔出的状态。主控板能检测到插入,却有时检测不到拔出。
当业务板插入时,主控板A端直接通过业务板接地,为低电平,CPU_GPI2输出低电平,通知CPU;但业务板拔出时,PRESENT为高电平,CPU_GPI2输出高电平。
问题就在于,业务板拔出时,有时CPU_GPI2不会输出高电平。导致无法识别到拔出。即,输入端发生变化时,输出端无法检测到变化。
74AVCAH164245是一种具有总线保持(Bus Hold)功能的驱动器,对电平翻转时的电流有一定要求。由具体参数定义。插入时,接地,符合要求;拔出时,电流过低,无法提供足够的能量实现翻转,所以无法实现功能。
在此设计中,将电阻从10kΩ改为1kΩ,就能恢复正常。
拓展:Bus Hold
该案例中的逻辑器件具体总线保持功能。
总线保持的应用背景
常用的逻辑器件,如74LV、74AC、74ACH、74HC等系列,都属于CMOS器件。CMOS器件的输入端如图所示。低电平输入时,PMOS管导通,输出高电平;高电平输入时,NMOS管导通,输出低电平。在理想状态下,两个MOS管不会同时导通。
(//下次把cmos这一块数电的基础整理一下)
需要注意的是,在高低电平转换,存在一段非稳态区间,即两个MOS管都会部分导通,导致输出端发生振荡波形。
三种情况导致输入端处于非稳态 :
1、边沿不可能是理想的90°跳变,存在非稳态区间,需要提高边沿爬升速率来调整;这一点必然存在;
2、发现总线冲突,导致在同一个信号有多个驱动源,需要改进设计;可以避免;
3、 输入信号没有驱动源,即完全浮空的情况。
情况3有多种解决方法:
a、输入无信号源时,使逻辑器件使能引脚处于无效状态,关闭对应的输出; -需要外部逻辑电路配合;
b、总线上挂有多个器件,且可以均等地申请总线的控制权。使得在最后一个控制总线的器件完成工作后,仍然保持对总线的驱动,直到下一个器件申请总线的控制权,才释放总线。这使得在任何时刻都有一个器件作为总线驱动者,不会产生浮空。PCI总线就采用了这样的机制。--需要总线协议支持;
c、上拉电阻。在输入引脚增加一个上拉到电源Vcc的电阻,当输入端失去驱动源时,通过上拉电阻,Vcc可直接作为输入端的驱动端,需要满足:信号的上升沿爬升时间 t 应满足逻辑器件的要求R = t / (2.2 X C X N) (c 输入引脚寄生电容,n 并联器件数目);上拉电阻消耗的功率应该尽量小,两者折中考虑。
d、总线保持(Bus Hold)(千呼万唤始出来)
原理:将输出信号通过电阻Rf反馈回输入端,如图:
假设初始状态为输入端和输出端均为高电平,反馈电路没有电流流过。如果输入端的驱动源停止驱动,输入端可凭借反馈电路保持高电平,反馈电路上流过的电流为漏电流(IOZ),一般仅为几毫安。(对应前面提到的最低电流要求 的参数)
输入端可由内部反馈电路保持输入端最后的确定状态,可以防止因输入端浮空的不确定而导致器件振荡自激损坏;输入端无需外接上拉或下拉电阻,节省了空间,降低了器件成本和功耗
最简单,无需外加原件和辅助电路。
Finish!!