神农鼎 发表于 2023-3-9 16:21:31

EEPROM的使用 请 配合比较器做掉电检测

EEPROM的使用 请 配合比较器做掉电检测
EEPROM中的本次上电后可能要改的数据,上电后读到 SRAM中,
电源正常时操作SRAM, 掉电时及时写回 EEPROM






要保证时间足够,就是调整外部电压偏低检测中断的提前量,如
1, 交流220V, 7805稳压电路前端输入是 11V;
2, 交流210V, 7805稳压电路前端输入是 10.5V;
3, 交流200V, 7805稳压电路前端输入是 10V;
4, 交流190V, 7805稳压电路前端输入是 9.5V;
5, 交流180V, 7805稳压电路前端输入是 9V;
6, 交流170V, 7805稳压电路前端输入是 8.5V;
7, 交流160V, 7805稳压电路前端输入是 8V;
===你这个要提前的量放在
      11V/10.5V/10V/9.5V/9V/8.5V ?
===哪个电压点产生外部电压偏低检测中断,
      确保时间充分要通过实践测试来选择







神农鼎 发表于 2023-12-10 12:06:39



完整的系统设计参考原理图@STC8H8K64U, @STC32G12K128 - 电源/复位/省电模式/外部晶振/内部时钟/对外时钟输出/PLL-144MHz时钟 - 国芯论坛-STC全球32位8051爱好者互助交流社区 - STC全球32位8051爱好者互助交流社区 (stcaimcu.com)







LFB 发表于 2023-3-17 12:02:28

问一下,操作EEPROM(FLASH模拟)时,关总中断EA是不是必须的?
===必须

32位8051 发表于 2023-3-17 13:23:28

LFB 发表于 2023-3-17 12:02
问一下,操作EEPROM(FLASH模拟)时,关总中断EA是不是必须的?

不是必须的。有些例程里面关了中断,是为了防止在中断跟主循环里同时调用EEPROM操作函数,产生自己嵌套自己的现象。

梁工 发表于 2023-6-26 15:13:47

LFB 发表于 2023-3-17 12:02
问一下,操作EEPROM(FLASH模拟)时,关总中断EA是不是必须的?

最好关一下总中断EA=0;因为触发命令要连续执行:
ISP_TRIG = 0x5A;
ISP_TRIG = 0xA5;
这两条触发命令要连续执行,不能被中断,也就说说,这两条命令之间不能有其余命令。如果不关中断,则有可能执行第一条送0x5A后,进入中断,再回来发0xA5,则本次操作无效。
除非保证不会被中断,比如在最高优先级的中断中操作EEPROM,则可以不关总中断。

Nanger 发表于 2023-7-18 11:15:03

梁工 发表于 2023-6-26 15:13
最好关一下总中断EA=0;因为触发命令要连续执行:
ISP_TRIG = 0x5A;
ISP_TRIG = 0xA5;


操作 EE时关中断,怎么没看见说明书里提过呢,我这里操作 EE的时候也是没有关中断的

梁工 发表于 2023-7-18 11:33:42

13668840876 发表于 2023-7-18 11:15
操作 EE时关中断,怎么没看见说明书里提过呢,我这里操作 EE的时候也是没有关中断的 ...

基于上述原因,不关中断,则可能会在两条触发命令之间响应中断,此次操作就会无效。

飞捷 发表于 2023-8-24 16:28:43

梁工 发表于 2023-6-26 15:13
最好关一下总中断EA=0;因为触发命令要连续执行:
ISP_TRIG = 0x5A;
ISP_TRIG = 0xA5;


工程有用到很多中断 ,如PCA ,时间定时器,通讯等,如果程序在运行过程,操作工人想更改数据,为了不影响设备的运行,又能把数据完好保存存下来。想问一下,STC单片机,EEPROM 保存数据保存1KB的数据,22。1184的内部晶振,需要多少时间完成?

飞捷 发表于 2023-8-24 16:30:12

梁工 发表于 2023-7-18 11:33
基于上述原因,不关中断,则可能会在两条触发命令之间响应中断,此次操作就会无效。 ...

可否在两条触发命令之后再启动中断,一边中断,一边处理EEPROM,这样可以吗?

飞捷 发表于 2023-8-24 17:28:00

梁工 发表于 2023-7-18 11:33
基于上述原因,不关中断,则可能会在两条触发命令之间响应中断,此次操作就会无效。 ...

EA=0;
ISP_TRIG = 0x5A;
ISP_TRIG = 0xA5;
EA=1;

梁工 发表于 2023-8-24 17:43:47

飞捷 发表于 2023-8-24 17:28
EA=0;
ISP_TRIG = 0x5A;
ISP_TRIG = 0xA5;


EA=0;
_nop_();
_nop_();
ISP_TRIG = 0x5A;
ISP_TRIG = 0xA5;
EA=1;
页: [1] 2 3 4 5 6
查看完整版本: EEPROM的使用 请 配合比较器做掉电检测