💡
原文中文,约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文件。
➡️