OrangePi Lite 外部硬件时钟同步系统时间

linux / 2019年04月10日 14时57分 / 7858人浏览
DS1307串行实时时钟是一种低功耗,完整的二进制编码的十进制(BCD)时钟/日历加56位字节的NV SRAM。地址和数据通过IIC串行传输,双向总线。 时钟/日历提供秒、分、时、日、星期、月和年的信息。月的最后一天自动调整月的日数少于31天,包括闰年的修正。时钟运行24小时或者12小时格式与AM/PM指标 引脚说明: 名称 描述 SDA I2C SDA SCL I2C SCL 5V 电源5V GND 地 注意:此模块并不支持热插拔,启动系统前需要确保硬件连接正确。 1.根据引脚,把外部时钟接入OrangePi Lite 开发版 2.安装检测工具
sudo apt-get update
sudo apt-get install i2c-tools python-smbus
sudo reboot
#重启后
sudo i2cdetect -y 0
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- UU -- -- -- -- -- -- -- 
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- 68 -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- -- 
0x68为 ds1307 地址 检看 DS1307的数据手册,发现DS1307的7位地址的确是0x68。注意,如果忘了为时钟模块安装纽扣电池这里可能读取不到。 3.加载ds1307
modprobe i2c-dev
echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-0/new_device
加载之后再检测
 sudo i2cdetect -y 0
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- UU -- -- -- -- -- -- -- 
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- UU -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- --  
此时UU 代表系统已经识别。
#此时/dev/下出现 rtc1
#设置硬件时间
hwclock -w -f /dev/rtc1
#读取硬件时间
hwclock -r -f /dev/rtc1
#系统时间同步硬件时间
hwclock -s -f /dev/rtc1
4.设置开机时间同步
#设置开机同步
vim /etc/rc.local 
#将以下内容加入“exit 0”行之前
modprobe i2c-dev
echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-0/new_device
hwclock -r -f /dev/rtc1
hwclock -s -f /dev/rtc1