TP-Link703(ar71xx)增加实时时钟(RTC ds1307)
RTC通讯GPIO
选取openwrt pcb板上相应空闲GPIO端口,作为与I2C芯片通讯端口。
通过GPIO模拟I2C总线时序来实现与扩展I2C芯片通讯。
若无法确定当前GPIO端口,参考openwrt GPIO官方wiki确定连接的GPIO。
内核开启RTC支持
编辑target/linux/ar71xx/Makefile,添加
1 | -FEATURES:=squashfs jffs2 targz |
vi target/linux/ar71xx/config-3.3
1 | CONFIG_RTC_CLASS=y |
vi .config
1 | CONFIG_RTC_SUPPORT=y |
删除openwr编译工程目录下的tmp文件夹
之后执行make,编译完成后,需要手动加载rtc驱动
挂载相关驱动
参考WRTnode添加i2c支持,添加I2C驱动。
i2ctools package也需要安装,可通过i2ctool来检测器件是否正常挂载
SDA = 20,SCL = 19。根据自己实际连接状况进行替换。
1 | root@openwrt:~# insmod i2c-gpio-custom bus0=0,20,19 |
若无错误提示,通过i2ctool工具检测ds1307是否挂载成功
1 | root@openwrt:~# i2cdetect -y 0 |
如上所示,ds1307挂载成功。
通过以下指令设置同步rtc时钟
openwrt系统时间->rtc时钟芯片
hwclock -w
rtc时间->openwrt系统时间
hwclock -s
参考连接中,给出了自动挂载内核模块和时钟同步脚本,稍加修改即可完成上电同步
相关参考链接
Using an i2c RTC with the Carambola2