打印

给RIoTboard添加RTC备用电池

[复制链接]
242|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
kaloulin|  楼主 | 2018-8-24 21:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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的原理图时,我又燃起了希望







看起来可以去掉R30- 假如能在板子上找到的话 – 然后添加一个电池!

但是最终我们没有必要这样做。

RIoTboard有一个Freescale MMPF100电源管理芯片。该芯片的数据手册指明了芯片有一个针对纽扣电池的输入,并且能够帮我们处理细节上的事情。当然另一个问题是,电源管理芯片上的纽扣电池输入是否被简单的连接到主电源上?

幸好不是,下面是证据:







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







元件确实很小。

现在用放大镜和烙铁把连线焊接到上面,以便连接电池。

下面是焊接好的样子。







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

连线的另一端连接电池座,像这样







现在可以启动板子并设置时钟了。

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的信息,请访问英蓓特官方网站。








RIoTboard, RTC, 电池, 英蓓特

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

439

主题

448

帖子

0

粉丝