== TA01 RTC 时间丢失原因及潜在问题解释 == === 问题描述 === 客户遇到的 RTC 时间丢失,客户一直产生1970年1月1日的问题是由于硬件设计中的一个重要缺陷引起的。在设计中,RTC(实时时钟)硬件包含了一个充电电路,但却配备了不可充电的电池。这导致了以下问题和潜在风险: ==== 不可充电电池与充电电路的不匹配 ==== * 使用不可充电电池在含有充电电路的系统中会导致电池过度充电。 * '''这可能会导致电池性能下降,甚至可能发生泄漏或爆炸,从而造成安全隐患'''。 ==== 潜在 RTC 芯片质量疑虑 ==== * 如果RTC电池恢复3V以上供电后, RTC 芯片仍然经常丢失时间,这可能表明芯片本身质量存在问题。 * 质量不佳的 RTC 芯片可能会导致不准确的时间保持,进而影响整个系统的性能。 ==== 只使用了MCU自带的RTC ==== 在某些 PCBAs(印刷电路板组件)上,没有使用专门的 RTC 电路,而是直接利用单片机MCU来保持时间。这种设计选择有以下影响: * 在没有专门的 RTC 电路的情况下,时间每天会有几分钟的误差。 * 如此设计的机器中,电池可能在'''一年内耗尽''',需要更频繁地更换电池。 === 解决方案和建议 === 针对上述问题,我们建议进行以下修改: * '''重新设计 RTC 电路:''' 使用适合充电电路的可充电电池,或更改电路设计,以避免使用充电电路。 * '''返厂维修/重新生产:''' 对RTC电路方面,进行电路改进,更换电池,或直接给客户提供新的机器。 * '''评估替代设计:''' 对于使用单片机的 PCBAs,评估是否有必要增加专门的 RTC 电路,或使用更好的RTC电路,以减少电池消耗和更换频率。 == TA01 用户数据移植指南 == 拷贝数据 /var/lib/asclepius/data/ 至里一台机器中,从而迁移用户数据。 === 准备工作 === * 确保两台机器可以互相访问。 * 检查目标机器(root@192.168.x.x)的软件版本是否相对一致。 * 确认源机器上的 /var/lib/asclepius/data/ 目录中存在 `.db` 文件。 === 使用 SCP 进行数据迁移 === # 打开源机器的终端。 # 执行以下命令: scp /var/lib/asclepius/data/*.db root@192.168.x.x:/var/lib/asclepius/data/ 默认密码为: novote.ch # 等待命令执行完成。这会将 .db 文件从源机器复制到目标机器的相应目录。 === 注意事项 === * '''文件覆盖警告:''' 如果目标目录中已存在同名文件,将会被覆盖。请提前备份重要数据(目标机器数据将会被清楚)。 * '''软件版本兼容性:''' 如果两台机器的软件版本不一致,可能导致 `.db` 文件不兼容。迁移前请确认软件版本是否相同,或者了解已知的兼容性问题。 === 重启和测试 === # 完成数据迁移后,使用以下命令重启目标机器: sudo reboot # 重启后,检查应用是否能正常运行并访问新的 .db 文件。 === 最终检查 === * 在执行操作前,请确认网络连接和文件权限。 * 通过命令行输入 date,检查是否为当前时间。 * 如果对 Linux 或 SCP 命令不熟悉,建议在有经验的专业人员指导下进行操作。 ==硬件维修方案== [[File:Ta09_rtc.png|thumb|right|400px|RTC电池电路部分]] * 目前去除D9 电阻。 * 更换 RTC 电池。 * 更换 RTC 芯片。 维修后,检查是否时间正常。