找回密码
 立即注册
查看: 1872|回复: 10

EEPROM一个页,掉电写不全,如何解决

[复制链接]

1

主题

5

回帖

41

积分

新手上路

积分
41
发表于 2023-7-17 15:56:31 | 显示全部楼层 |阅读模式
请教个问题,STC15W4K48S4 单片机,断电存储数据到EEPROM,设置低压检测电压4.08v存储数据每次只能存二百七十左右个字节,这种有没有办法提高写入速度,实现一个页都写全?

掉电延时图

掉电延时图

电压门限设置

电压门限设置
回复

使用道具 举报 送花

1

主题

5

回帖

41

积分

新手上路

积分
41
发表于 2023-7-17 16:03:30 | 显示全部楼层
在掉电中断函数里调用以下写函数,

void write(void)
{
         u16 i=0;
                for(i=0;i<512;i++)
                {
                        STC_WriteByte(0x0400+i,0x81); ////20230711 test
                }
}

上电读取数据打印出来就只写入这么多
81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF

点评

你确定断电一瞬间需要写这么多数据吗? 断电一瞬间时间比较短,一般是写最关键的数据。 下面的几个方案你可试试看: 1、断电瞬间,立即停掉ADC、比较器、高速PWM等耗电的外设,可让电掉得慢一点 2、目标EEPROM扇区  详情 回复 发表于 2023-7-17 18:21
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:38
  • 最近打卡:2025-04-30 14:38:57

25

主题

977

回帖

3599

积分

超级版主

积分
3599
发表于 2023-7-17 18:21:14 | 显示全部楼层
lg*** 发表于 2023-7-17 16:03
在掉电中断函数里调用以下写函数,

void write(void)

你确定断电一瞬间需要写这么多数据吗?
断电一瞬间时间比较短,一般是写最关键的数据。

下面的几个方案你可试试看:
1、断电瞬间,立即停掉ADC、比较器、高速PWM等耗电的外设,可让电掉得慢一点
2、目标EEPROM扇区的擦除动作可以在断电之前先完成,断电瞬间只单纯执行EEPROM写动作
3、IAP_TPS可适当减少一点点(比如24M系统速度可设置IAP_TPS为22试试看),可减少EEPROM的编程等待时间
    (注意: 第3点是实在没有办法时才可尝试,风险极大,等待时间不够可能无法保证数据正确写入,官方不建议
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:55
  • 最近打卡:2025-05-02 08:32:59

717

主题

1万

回帖

1万

积分

管理员

积分
15617
发表于 2023-7-17 19:41:46 | 显示全部楼层
用比较器做外部掉电检测
1.png

2.png

回复 支持 反对

使用道具 举报 送花

1

主题

5

回帖

41

积分

新手上路

积分
41
发表于 2023-7-20 09:57:25 | 显示全部楼层
zh*** 发表于 2023-7-17 18:21
你确定断电一瞬间需要写这么多数据吗?
断电一瞬间时间比较短,一般是写最关键的数据。

感谢回复。1.需要保存的数据有322个字节。2.EEPROM扇区的擦除动作已经在上电读取数据后便执行了,掉电只进行写操作。3.STC15W单片机貌似没有IAP_TPS寄存器呢。
回复 支持 反对

使用道具 举报 送花

1

主题

5

回帖

41

积分

新手上路

积分
41
发表于 2023-7-20 10:11:42 | 显示全部楼层
神*** 发表于 2023-7-17 19:41
用比较器做外部掉电检测

感谢回复。
1.后续改版会考虑加上掉电检测电路。
2.目前STC15W单片机低压检测电压最高设置到4.08v,这个电压还能设置提高么?我看STC15F的能到4.6v。
3.昨天测试还发现,偶尔会出现这种情况:存储的数据中第一个字节是对的,后面十几个字节数据是错的,之后的数据又是对的了,不知道啥原因
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:55
  • 最近打卡:2025-05-02 08:32:59

717

主题

1万

回帖

1万

积分

管理员

积分
15617
发表于 2023-7-20 12:09:40 | 显示全部楼层
STC15W单片机貌似没有IAP_TPS寄存器呢====老产品,无这个寄存器

用上比较器检测外部电压是唯一正解
回复 支持 反对

使用道具 举报 送花

1

主题

5

回帖

41

积分

新手上路

积分
41
发表于 2023-7-20 17:29:58 | 显示全部楼层
神*** 发表于 2023-7-20 12:09
STC15W单片机貌似没有IAP_TPS寄存器呢====老产品,无这个寄存器

用上比较器检测外部电压是唯一正解

STC15W单片机低压检测电压最4.08v,这个电压还能设置高点么?
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:55
  • 最近打卡:2025-05-02 08:32:59

717

主题

1万

回帖

1万

积分

管理员

积分
15617
发表于 2023-7-20 18:47:57 | 显示全部楼层
无其他选项了
1.png

回复 支持 反对

使用道具 举报 送花

1

主题

5

回帖

41

积分

新手上路

积分
41
发表于 2023-7-21 10:48:28 | 显示全部楼层

那就目前来看,我想存储322个字节就只能通过增加外部掉电检测电路来实现了?
或者我存储的数据减少些,咱这STC15W单片机无外部掉电检测电路,使用掉电存储,电压设到4.08v,最多存多少数据,有推荐值么?
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 09:04 , Processed in 0.159511 second(s), 111 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表