本文主要是介绍什么是微控制器中的欠压复位?如何防止误断电,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
微控制器的“掉电”是指电源电压部分暂时降低到可靠运行所需的水平以下。许多微控制器都有一个保护电路,可以检测电源电压何时低于此水平,并将设备置于复位状态,以确保电源恢复时正确启动。此操作称为“欠压复位”或 BOR。类似的功能称为低电压检测 (LVD),它更复杂,增加了对多个电压电平的检测,并且可以在触发复位之前产生中断。
BOR 通常由控制寄存器中的一位来启用。通常,当 BOR 引起复位时,状态位被设置。该状态位在复位后仍然存在(如果电源没有太低!),并允许程序检测问题并执行额外的恢复或记录事件。
如果 BOR 被禁用会发生什么?这是电源电压稳步下降的描述。也许这是电源恶化或电池放电。
V1为正常电源电压。V2 是微控制器可能无法可靠运行的点。我将 V3 显示为操作完全停止的点。V2 和 V3 之间是一个“危险区域”,可能会出现问题且运行不可靠。当电源进出危险区域时,该设备可以正常工作多年,然后,砰!,出现故障。BOR 级别设置为高于 V2,并通过设备重置替换危险区域。重置不好,但(通常)比不确定要好。
接下来,我讲述一个电源正常工作但使用 BOR 来解决不同问题的情况。
寻找欠压复位的另一种用途(困难的方法)
我设计了一个电路,该电路在一个模块中包含一个 PIC 微控制器和 18 个电压调节器,用于控制 18 个光传感器的 +5V 电源。十二个模块控制阵列中的 204 个传感器。这些模块是夏威夷莫纳克亚山大型天文望远镜自适应光学系统的一部分。这是模块的内部。
微控制器位于电路板中心附近,18 个线性稳压器安装在外壳壁上。模块和传感器安装在水冷板上,以将热量从传感器阵列上方的光具座上带走。来自光传感器的脉冲进入模块,在模块中转换为差分RS-485 信号,并在图片中上部的连接器上输出。此外,还有进入模块的 RS-485 控制信号。所有 RS-485 信号均连接至约 10 米外机箱内的电路。重要的一点是模块中的所有电路都使用相同的 +5V 电源。
这是微控制器和 RS-485 线路驱动器和接收器 的特写,它们是问题的。黑色模块化插孔是一个异步串行接口,可添加另外两个 RS-485 I/O 信号。
这些模块在工作台上经过了广泛的测试。没问题!他们在实验室进行了数月的系统测试。完美的!的事件是望远镜的首次测试。失败!当电源关闭并重新打开时,大约一半的模块失去了通信。我插入调试器,发现微控制器正在运行并执行代码,但变量已损坏,并且串行接口无法工作。很奇怪。
首先,我想说的是,在海拔 13,589 英尺(4,138 米)、气温为 40°F(4°C)的半夜调试并不好玩。不过,让我们继续前进。这是显示问题的图表。
右侧是带有连接到微控制器和+5V 电源的RS-485 线路接收器的模块。左侧是电缆另一端的线路驱动器,它们始终处于通电状态。实际上,两个方向都有驱动器和接收器,但我正在简化。当模块电源(VCC)关闭时,远程线路驱动器和接收器仍然打开(VDD)。这些信号就像电源一样,通过模块接口设备直接连接到+5V电源,或者通过微控制器引脚上的ESD保护电路。有足够的电量来防止微控制器完全断电,并且设备处于危险区域。
当模块电源打开时,微控制器没有以正常的上电复位序列启动。它开始运行但出现问题。为什么在之前的测试中没有出现这一点?还记得水冷板吗?望远镜里的冷却剂比实验室里的冷却剂冷很多。我的理论是较低的温度足以暴露某些模块中的问题。
修复很容易。我在代码中添加了一条启用BOR的语句,问题就解决了。顺便说一句,我写并说服项目经理一切都很好所花费的时间比解决问题所花费的时间要长得多。
错误断电
这是显示一般问题的图表。
当电源关闭时,电压不会一路下降。相反,其他电源将电源电压保持在危险区域。该电压的一种描述是“虚假功率”。没有 BOR 来检测这种情况并导致复位。当电源再次打开时,设备可能不会执行正常的加电顺序,因为加电复位电路可能不会被触发。后续操作不确定,因为电源电压低于值并且没有复位。
这篇关于什么是微控制器中的欠压复位?如何防止误断电的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!