== 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 芯片。
维修后,检查是否时间正常。