DIY USB 电流表(9):Flash 模拟 EEPROM 存储累计电量

DIY USB 电流表(9):Flash 模拟 EEPROM 存储累计电量

💡 原文中文,约3000字,阅读约需8分钟。
📝

内容提要

介绍了使用CH32V003的代码存储区域来模拟EEPROM保存数据的方法,包括Flash的擦写时间和擦写寿命等特性。通过Flash模拟EEPROM的相关库方法,完成EEPROM的加载、读取和写入操作。设计外壳使DIY USB电流表更像一个正式产品。

🎯

关键要点

  • 介绍了使用CH32V003的代码存储区域模拟EEPROM保存数据的方法。
  • CH32V003拥有16KB的用户代码区域,固件占用约12K空间,可以利用剩余空间模拟EEPROM。
  • Flash擦写时间为2~3毫秒,擦写寿命有限,需控制数据保存频率。
  • 每分钟保存一次数据在20W充电情况下,丢失的数据占比不到1%。
  • 可采取额外保存策略,如在总消耗电量无变化时不写入Flash。
  • CH32V003的Flash支持标准编程和快速编程,适合保存累计电量数据。
  • 实现了Flash模拟EEPROM的相关库方法,包括加载、读取和写入操作。
  • 定义了变量以确定数据保存策略,并在系统启动时加载之前保存的数据。
  • 测试后确认累计电量数据能够正确保存和重新加载。
  • 完成DIY USB电流表固件开发,支持数据测量、历史曲线和数据保存功能。
  • 设计外壳使DIY USB电流表更像正式产品,防止短路风险。
  • USB电流表所有资料已开源,提供固件代码、PCB生产文件和外壳STL文件。
➡️

继续阅读