6345| 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的原理图时,我又燃起了希望 看起来可以去掉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的信息,请访问英蓓特官方网站。 |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed