树莓派 加时钟模块DS3231


1. 去淘宝买RTC3231 (有两种, 一种是几块钱的(DS3231,5个孔的单排插座), 一种是30多的(红色板,双排插座的), 我买的前者,后者不知道为什么能卖那么贵。。。)

2. 树莓派关电,准备设置:

2.0 把模块插到树莓派3B的GPIO1,3,,5,7,9脚;RTC模块插座已经对应好的,别插反了, 电池朝着CPU就对了。

2.1 控制台运行 raspi-config : 打开树莓派的i2c接口

    sudo raspi-config 

Advanced Option-->I2C, 选择打开。

2.2  安装工具i2c-tools:  sudo apt-get install i2c-tools (这个工具作用是能管理I2C总线设备)


2.3 修改两个文件:

    a. 设备文件 sudo vi /etc/modules : 

写上i2c-dev , i2c-bcm2708 .

    b. 启动文件 vi /etc/rc.local 将以下内容加入“exit 0”行之前

        sudo modprobe i2c-dev  

        sudo modprobe i2c-bcm2708
        echo "ds3231 0x68" | sudo tee  /sys/class/i2c-adapter/i2c-1/new_device

sudo hwclock -r

sudo hwclock -s

 说下作用(个人理解), 

第1第2行是加载i2c总线设备;

第3行是指定驱动给0x68这个地址(也就是RTC模块的I2C地址0x68,驱动名称是ds3231.为什么呢? 

先用lsmod查看到rtc_ds1307已经加载 (这里需要修正:先手动执行了命令才能看到: 

sudo echo "ds3231 0x68" | sudo tee  /sys/class/i2c-adapter/i2c-1/new_device


然后用modinfo rtc_1307可以看到驱动对应的别名: alias i2c:ds3231 ===》故驱动是ds3231;  然后用  i2cdetect 1可以看到RTC占用地址 (输入Y, 然后出来一个map:68 位置就是RTC,不相信可以拔掉RTC看看);然后就是这样了)

第4行 ,纯粹打印RTC时间看看;

第5行是把RTC时间覆盖系统时间;


3. 另外: 有用的几个RTC操作指令:要用sudo 管理员权限运行

  

sudo hwclock -r 读取RTC时间

sudo hwclock -s 把RTC时间写入系统

sudo hwclock -w 把系统时间写入RTC

sudo hwclock --set --date="2017-01-13 11:00:11" 修改RTC时间为任意值


4. 关闭系统对时(我没这样做,国外的文章, 可以参考)


We can also disable the ntp daemon and fake-hwclock during boot. (关闭网络对时)

sudo update-rc.d ntp disable
sudo update-rc.d fake-hwclock disable

That's it. Pretty easy.

You can still sync the system time from the internet using... (复制网络时间到RTC)

sudo ntpd -gq
sudo hwclock -w

折腾了一天,终于知道如何把RTC时间设置到树莓派了。我这里没关闭ntp对时。另外注意一点,不要热插拔i2c RTC 模块,否则会有时间错乱。。。

我也是小白, 参考了众多资料, 微雪那篇文章  http://www.waveshare.net/study/article-623-1.html  ,做不到自动把RTC 对到树莓派系统,  大家就看着办了,反正我测试是不行的。







你可能感兴趣的:(linux硬件)