== TA01 RTC 时间丢失原因及潜在问题解释 ==

=== 问题描述 ===
客户遇到的 RTC 时间丢失，客户一直产生1970年1月1日的问题是由于硬件设计中的一个重要缺陷引起的。在设计中，RTC（实时时钟）硬件包含了一个充电电路，但却配备了不可充电的电池。这导致了以下问题和潜在风险：

==== 不可充电电池与充电电路的不匹配 ====
* 使用不可充电电池在含有充电电路的系统中会导致电池过度充电。
* '''这可能会导致电池性能下降，甚至可能发生泄漏或爆炸，从而造成安全隐患'''。

==== 潜在 RTC 芯片质量疑虑 ====
* 如果RTC电池恢复3V以上供电后， RTC 芯片仍然经常丢失时间，这可能表明芯片本身质量存在问题。
* 质量不佳的 RTC 芯片可能会导致不准确的时间保持，进而影响整个系统的性能。

==== 只使用了MCU自带的RTC ====
在某些 PCBAs（印刷电路板组件）上，没有使用专门的 RTC 电路，而是直接利用单片机MCU来保持时间。这种设计选择有以下影响：

* 在没有专门的 RTC 电路的情况下，时间每天会有几分钟的误差。
* 如此设计的机器中，电池可能在'''一年内耗尽'''，需要更频繁地更换电池。

=== 解决方案和建议 ===
针对上述问题，我们建议进行以下修改：

* '''重新设计 RTC 电路：''' 使用适合充电电路的可充电电池，或更改电路设计，以避免使用充电电路。
* '''返厂维修/重新生产：''' 对RTC电路方面，进行电路改进，更换电池，或直接给客户提供新的机器。
* '''评估替代设计：''' 对于使用单片机的 PCBAs，评估是否有必要增加专门的 RTC 电路，或使用更好的RTC电路，以减少电池消耗和更换频率。

== TA01 用户数据移植指南 ==
拷贝数据 <code>/var/lib/asclepius/data/</code> 至里一台机器中，从而迁移用户数据。 

=== 准备工作 ===
* 确保两台机器可以互相访问。
* 检查目标机器（root@192.168.x.x）的软件版本是否相对一致。
* 确认源机器上的 <code>/var/lib/asclepius/data/</code> 目录中存在 `.db` 文件。

=== 使用 SCP 进行数据迁移 ===
# 打开源机器的终端。
# 执行以下命令：
  <code>scp /var/lib/asclepius/data/*.db root@192.168.x.x:/var/lib/asclepius/data/</code>
默认密码为：
  <code>novote.ch</code>
# 等待命令执行完成。这会将 <code>.db</code> 文件从源机器复制到目标机器的相应目录。

=== 注意事项 ===
* '''文件覆盖警告：''' 如果目标目录中已存在同名文件，将会被覆盖。请提前备份重要数据（目标机器数据将会被清楚）。
* '''软件版本兼容性：''' 如果两台机器的软件版本不一致，可能导致 `.db` 文件不兼容。迁移前请确认软件版本是否相同，或者了解已知的兼容性问题。

=== 重启和测试 ===
# 完成数据迁移后，使用以下命令重启目标机器：
  <code>sudo reboot</code>
# 重启后，检查应用是否能正常运行并访问新的 <code>.db</code> 文件。

=== 最终检查 ===
* 在执行操作前，请确认网络连接和文件权限。
* 通过命令行输入 <code>date</code>，检查是否为当前时间。
* 如果对 Linux 或 SCP 命令不熟悉，建议在有经验的专业人员指导下进行操作。


==硬件维修方案==
[[File:Ta09_rtc.png|thumb|right|400px|RTC电池电路部分]]

* 目前去除D9 电阻。
* 更换 RTC 电池。
* 更换 RTC 芯片。

维修后，检查是否时间正常。