5773浏览
查看: 5773|回复: 0

给RIoTboard添加RTC备用电池

[复制链接]
RIoTboard和大多数低成本ARM开发板一样,都有片上RTC,但是板子的设计者并没有提供连接备用电池的方法,这让片上RTC几乎没有什么意义。因为每次你关闭电源,数据和时间都会丢失,再次打开电源后,板子的日期会回到45年前。
这显然是个问题,因为很多事情都需要有一个有效的日期和时间。比如有时我们需要定时打开和关闭某些东西,或者根据时间来记录传感器的数据。因此有一个基本准确的日期和时间非常重要。

有几个不同的方法来获取我们需要的日期和时间信息。
1.        用Internet NTP服务器同步时间
2.        用GPS接收器同步时间
3.        每次启动手动设置时间
4.        用电池供电的RTC来保持本地时间

这些方法都可以使用。但是方法1-3有一些缺点。假如遇到大范围停电,在电力恢复时交换机启动、DSL线路重新同步等,到恢复Internet连接可能需要一些时间。与之类似,GPS也可能需要时间来重新锁定卫星。最后如果我们是手动设置时间,那么最好在我们工作的时候永远不要断电。
当然并不是说第4种方法可以解决所有的问题,但是它能够在断电后直到恢复时间同步这段时间起作用。
在其他板子上,比如CubieBoard,BeagleBone Black,Sabre-Lite等,设计者倾向于将RTC后备电源引脚直接连接到主电源层上。这让我们完全失去了添加电池的机会。
当第一次看到RIoTboard的原理图时,我又燃起了希望

给RIoTboard添加RTC备用电池图2


看起来可以去掉R30- 假如能在板子上找到的话 – 然后添加一个电池!
但是最终我们没有必要这样做。
RIoTboard有一个Freescale MMPF100电源管理芯片。该芯片的数据手册指明了芯片有一个针对纽扣电池的输入,并且能够帮我们处理细节上的事情。当然另一个问题是,电源管理芯片上的纽扣电池输入是否被简单的连接到主电源上?
幸好不是,下面是证据:

给RIoTboard添加RTC备用电池图3


好了,现在找到板子上的C75,旁边有标注。

给RIoTboard添加RTC备用电池图4


元件确实很小。
现在用放大镜和烙铁把连线焊接到上面,以便连接电池。
下面是焊接好的样子。

给RIoTboard添加RTC备用电池图5


扩展接口的pin3是接地 – 焊接这里比焊接C75的另一面更容易。这些连线看起来很粗,其实这些铜绞线非常细。
连线的另一端连接电池座,像这样

给RIoTboard添加RTC备用电池图1


现在可以启动板子并设置时钟了。
root@riotboard:~# date -s "2014-06-02T16:58"
Mon  June  2 16:58:00 UTC 2014
root@riotboard:~# hwclock -u -w
root@riotboard:~# hwclock
2014-06-02 16:58:16 UTC   -0.942526 seconds

然后断开所有电源,去喝一杯饮料,等半个小时再回来。
如果你用的3.15版内核,那么在重新上电后,在内核日志中会发现以下信息:
[    1.484102] snvs_rtc 20cc034.snvs-rtc-lp: setting system clock to 2014-06-02 15:08:08 UTC (1401721688)

你的时钟应该从RTC获取设置信息。如果你用的Debian,那么还需要进行一些调整来避免断电时的时钟覆盖RTC提供的时钟。

更多关于RIoTboard的信息,请访问英蓓特官方网站。


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail