当前位置: 首页 > news >正文

开发板适配之I2C-RTC

rx8010时钟芯片挂载在I2C1总线上,并且集成在主控板上。

硬件原理

IOMUX配置

rx8010时钟芯片挂载在I2C1总线上,I2C1数据IIC1_SDA和时钟IIC1_SCL,分别对应的PAD NAME为,UART4_TX_DATA、UART4_RX_DATA。

在arch/arm/boot/dts/imx6ul-pinfunc.h中找到它们的宏定义,分别如下:

MX6UL_PAD_UART4_TX_DATA__I2C1_SCLMX6UL_PAD_UART4_RX_DATA__I2C1_SDA

然后打开设备树文件arch/arm/boot/dts/imx6ull-elf1-emmc.dts,我们看到原来的设备树文件已经添加了pinctrl_i2c1子节点,而且选择的引脚与UART4_TX_DATA、UART4_RX_DATA一致,所以此处无需修改,

效果如下:

添加设备节点

查看arch/arm/boot/dts/imx6ull-elf1-emmc.dts文件,添加如下内容:

       rx8010:rtc@32{compatible = "epson,rx8010";reg = <0x32>;};

添加后效果如下:

添加rx8010驱动

一、将ELF 1开发板资料包\02-Linux 源代码\ 02-Linux 源代码\02-1 驱动源码\13_rx8010\rtc-rx8010.c拷贝到内核源码的drivers/rtc/路径下:

、修改Kconfig:

elf@ubuntu:~/work/linux-imx-imx_4.1.15_2.0.0_ga$ vi drivers/rtc/Kconfig

添加以下内容:

config RTC_DRV_RX8010tristate "Epson RX-8010SA/NB"helpIf you say yes here you get support for the EpsonRX-8025SA/NB RTC chips.This driver can also be built as a module. If so, the modulewill be called rtc-rx8010.

添加后效果如下:

、修改Makefile:

elf@ubuntu:~/work/linux-imx-imx_4.1.15_2.0.0_ga$ vi drivers/rtc/Makefile

添加以下内容:

obj-$(CONFIG_RTC_DRV_RX8010)    += rtc-rx8010.o

添加后效果如下:

、将rx8010驱动编译进内核:

使用make menuconfig打开图形化配置界面:

elf@ubuntu:~/work/linux-imx-imx_4.1.15_2.0.0_ga$ make menuconfig

找到以下位置,我们可以在这里选择Y编译进内核,或者M编译成模块,或者N选择不编译。选择编译进内核:

Device Drivers-> Real Time Clock

、替换配置文件

通过make menuconfig修改的内容写入到了.config文件,当使用make imx6ull_elf1_defconfig配置内核源码时,.config文件会被覆盖,因此,需要替换原有的imx6ull_elf1_defconfig。

elf@ubuntu:~/work/linux-imx-imx_4.1.15_2.0.0_ga$ cp .config arch/arm/configs/imx6ul\l_elf1_defconfig

编译测试

编译内核和设备树并拷贝到开发板:

elf@ubuntu:~/work/linux-imx-imx_4.1.15_2.0.0_ga$ ./build.shelf@ubuntu:~/work/linux-imx-imx_4.1.15_2.0.0_ga$ scp arch/arm/boot/zImage   root\@172.16.0.175:/run/media/mmcblk1p1/elf@ubuntu:~/work/linux-imx-imx_4.1.15_2.0.0_ga$ scp arch/arm/boot/dts/imx6ull-elf\1-emmc.dtb root@172.16.0.175:/run/media/mmcblk1p1/

进行sync操作后重启开发板:

使用以下命令进行测试,设置系统当前时间:

root@ELF1:~# date 072216162021.00                   //设置软件时间Thu Jul 22 16:16:00 CST 2021

读取RTC芯片时间:

root@ELF1:~# hwclock -r                                    //显示硬件时间Mon Mar 15 10:52:17 2021  0.000000 seconds

设置系统时间到RTC芯片时间,再读取RTC芯片时间:

root@ELF1:~# hwclock -wu                   //将软件时间同步到硬件时间root@ELF1:~# hwclock -r                              //显示硬件时间Thu Jul 22 08:16:43 2021  0.000000 seconds

然后给板子断电再上电,进入系统后使用命令date读取系统时间,可以看到时间已经同步。

http://www.lryc.cn/news/536847.html

相关文章:

  • vuedraggable固定某一item的记录
  • 我的新书《青少年Python趣学编程(微课视频版)》出版了!
  • 前端开发入门一
  • Linux(Centos 7.6)命令详解:head
  • HTTP请求X-Forwarded-For注入
  • 《生息之地》入围柏林主竞赛,总制片人蒋浩助力青年导演走向国际
  • 实践记录--电脑故障的问题定位和处理回顾--磁盘故障已解决
  • uni-app 学习(一)
  • Ubuntu 22.04 Desktop企业级基础配置操作指南
  • QILSTE H4-105LB/5M高亮蓝光LED灯珠 发光二极管LED
  • 【Elasticsearch】Elasticsearch检索方式全解析:从基础到实战(一)
  • 封装neo4j的持久层和服务层
  • 基于Spring Boot的宠物爱心组织管理系统的设计与实现(LW+源码+讲解)
  • error: conflicting types for ‘SSL_SESSION_get_master_key’
  • 测试狗参加国家超级计算成都中心2024年度用户大会
  • 从2025年起:数字化建站PHP 8.1应成为建站开发的基准线
  • 飞牛OS与昔映OS深度对比
  • vscode本地和远程对应分支没有同步提交数量
  • 通过docker启用rabbitmq插件
  • DeepSeek计算机视觉(Computer Vision)基础与实践
  • 哪些专业跟FPGA有关?
  • 【STM32系列】利用MATLAB配合ARM-DSP库设计IIR数字滤波器(保姆级教程)
  • Java每日精进·45天挑战·Day18
  • C# 中用于比较两个字符串的方法string.Compare
  • 进阶数据结构——树状数组
  • 键盘启用触摸板-tips
  • 信息安全之网络安全
  • 成都国际数字影像产业园布局者树莓集团,亮相宜宾翠屏招商签约
  • opencascade 获取edge起始点 会出现终点与实际不同的情况
  • 掌握正则表达式_模式匹配的艺术