cjtdz 发表于 2025-8-1 21:00:31

掉电记忆问题

能不能用AI8051U或STC8051U的比较器,直接检测5V自身工作电压,来实现电压低于4.5V时,保存重要数据?电路怎么实现?

国芯人工智能 发表于 2025-8-1 21:03:00

针对“掉电记忆问题”中提到的使用AI8051U或STC8051U的比较器检测5V工作电压,并在电压低于4.5V时保存重要数据的问题,以下是专业分析与电路实现方案。

首先,AI8051U和STC8051U均为基于8051架构的单片机,具备内部比较器功能,可用于电压监测。但需注意:两款芯片的比较器通常用于模拟信号比较,而非直接用于检测系统供电电压(如5V)。因此,若要实现掉电保护功能,需结合外部电路设计,以确保在电压下降至临界值前完成关键数据的保存。

一、电压检测原理

为了检测系统供电电压(例如5V),可采用分压电阻网络将5V降至比较器可接受的范围(通常为0~3.3V或0~5V),并接入比较器输入端。当电源电压下降至设定阈值(如4.5V)时,比较器输出触发中断或控制信号,通知单片机执行数据保存操作。

二、推荐方案

1. 使用比较器检测电压
分压电路:使用两个电阻(如R1=10kΩ,R2=10kΩ)将5V分压至2.5V,作为比较器参考电压。
比较器配置:将比较器的正输入端连接至分压点,负输入端连接至基准电压(如2.5V),或通过DAC设置动态阈值。
触发逻辑:当系统电压下降至4.5V时,分压后电压约为2.25V,低于比较器设定值,触发输出信号。

2. 单片机响应机制
当比较器输出触发信号时,可通过GPIO引脚向单片机发送中断信号。
单片机接收到中断后,立即进入数据保存流程(如写入EEPROM或Flash)。
数据保存完成后,可进入低功耗模式,等待电源恢复或手动重启。

三、具体电路设计(以AI8051U为例)

1. 分压电路:
R1 = 10kΩ,R2 = 10kΩ,连接至5V电源和地。
分压点连接至比较器的正输入端(如P1.0)。

2. 比较器配置:
比较器的负输入端可设为固定参考电压(如2.5V),或通过DAC调节。
若使用AI8051U内置比较器,需配置其工作模式(如电压比较模式)。

3. 中断处理:
比较器输出连接至单片机的中断引脚(如INT0)。
设置中断优先级为高,确保快速响应。

4. 数据保存:
在中断服务程序中,将关键数据写入非易失性存储器(如EEPROM或Flash)。
可使用软件延时确保写入完成。

四、注意事项
电源稳定性:确保分压电路不会因负载变化导致误判。
响应时间:需合理设置比较器阈值和中断响应时间,避免误触发或漏触发。
电源恢复处理:在电源恢复后,需重新初始化系统并加载保存的数据。

五、结论

AI8051U和STC8051U均可通过外部分压电路配合比较器实现电压检测,从而在掉电前保存关键数据。建议采用分压+比较器+中断的方式实现该功能,并结合EEPROM/Flash进行数据存储。实际应用中需根据具体需求调整分压比和比较器阈值,确保系统稳定性和可靠性。

[本文内容由国芯人工智能辅助生成,仅供参考]

cjtdz 发表于 2025-8-1 21:19:34

是不是不用比较器,用两个电阻分压,电压略高于2.5V,接到某个引脚,当这个电压低于2.5V以下时,用中断也可以实现?可能没有用比较器可靠。

DebugLab 发表于 2025-8-1 22:14:30

cjtdz 发表于 2025-8-1 21:19
是不是不用比较器,用两个电阻分压,电压略高于2.5V,接到某个引脚,当这个电压低于2.5V以下时,用中断也可 ...

就是用比较器中断
4.5V电压已经开始下降,时间可能不够,电压下降过程中也不建议进行IAP操作
建议检测前级电源的状态,比如12V降5V给单片机供电,12V降到10V时触发比较器

vb2002 发表于 2025-8-1 22:24:50

adc也行吧

神农鼎 发表于 2025-8-1 23:37:53



EEPROM的使用 请 配合比较器做掉电检测 - EEPROM/DataFlash 国芯人工智能技术交流网站 - AI32位8051交流社区
页: [1]
查看完整版本: 掉电记忆问题