0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

RK3399开发板I2C4挂载EEPROM实例

飞凌嵌入式 2022-08-01 15:08 次阅读

飞凌嵌入式OK3399-C开发板预留出了I2C4引脚接口,位于P32插针引脚上,分别是I2C4_SCL和I2C4_SDA。小编将通过本篇文章为大家列举和说明如何使用I2C4挂载at24c08(EEPROM芯片

poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

修改结果

1、修改kernel/arch/arm64/boot/dts/rockchip/OK3399.dts,添加修改如下:

2、摘除at24c08模块上的上拉电阻,飞线使用1.8V给模块供电,接入I2C4_SCL和I2C4_SDA。

修改思路

我们要添加一个I2C设备的思路为:在设备树中添加描述->在设备树描述中添加对应设备驱动->设备驱动添加到内核

按照思路,首先要在设备树I2C4节点下添加at24c08的设备信息。在kernel/arch/arm64/boot/dts/rockchip/OK3399-C.dts文件,找到I2C4节点如下:

目前是disabled的状态,并且没有任何设备信息。添加设备信息如下:

如上图,通过设备树告诉内核,I2C4开始使用,并且挂载了一个EEPROM设备,名字叫at24c08@50,其使用的驱动是compatible=“”;

那么我们现在缺少这个驱动,一般的I2C设备所使用的驱动文件对应的I2C厂家会提供,如果厂家说不需要驱动等,其实不是指的真的“不需要”驱动,而是他们的设备是可以使用通用驱动的。

本文中的设备就是这样,与厂家沟通后表示没有驱动文件。那么直接在内核目录下查找eeprom、at24这样的字眼,找找看有没有对应的通用驱动文件。

可见有kernel/drivers/misc/eeprom/at24.c文件。

查看其内容是如何匹配使用这个驱动的,正常来说驱动文件中应该预留了.compatible= *** 作为设备树调用该驱动的接口,只要在设备树描述里的compatible与 驱动文件中的.compatible中描述的一致,就会匹配成功了。

但是这个at24.c中并没有.compatible,只有一个at24_ids如下其中有”24c08”:

对比同目录的at25.c文件就有.compatible没有ids。

ids中描述的也是和.compatible一样,是设备树用来识别匹配使用的,其中的三种识别匹配条件感兴趣的可以深追一下。因与本文无关,不再赘述。所以找到了对应的驱动文件,返回设备树添加描述。

现在这样是告诉了内核我要使用I2C4,我的I2C4下有个EEPROM设备,使用的是“24c08”驱动,但是还没有将”24c08”这个文件给到内核,那么接下来的目的就是把驱动编进内核。

在kernel目录下运行makemenuconfig,搜索at24,如下:

按下数字1,自动跳转到对应选项,按下y选中,保存退出。

因为makemenuconfig修改的是.config文件,而编译脚本中每次都会重新生成.config文件,所以为了让修改生效,修改编译脚本,使其不重新生成.config文件,如下:

将生成.config文件的命令注释掉,编译内核,这样就将”24c08”给到内核,也通过设备树告诉内核,I2C4下有个EEPROM设备要用“24c08”。

到此,我们的常规添加设备思路就已经完成了:在设备树中添加描述->设备树描述对应设备驱动->设备驱动添加到内核

接下来就是编译内核,烧写boot镜像到开发板,使用i2ctool的命令进行查看,这里也不赘述i2ctool命令的具体使用方法。使用命令:i2cdetect-l 、i2cdetect-y 4。

对应的地址已经被驱动注册,但是没有生成devices下的I2C4设备,说明模块可能没有正常工作,查看模块相关信息。

模块自带I2C4上拉电阻,因为OK3399-C底板上也带有上拉电阻如下图,并且是1.8V上拉,为了电平匹配,不修改底板的状态下,使用1.8V为基准,将模块带有的上拉电阻摘除,使用1.8V配置。

再次修改设备树,添加上时钟描述和设备地址描述。

编译后,烧写内核,烧写完毕启动开发板。

识别到I2C4下的设备,然后进行读写测试即可,如下命令:

echo"hello my world" > /sys/bus/i2c/devices/1-0050/eeprom

cat/sys/bus/i2c/devices/4-0050/eeprom

至此一个新的I2C EEPROM设备添加成功,对I2C设备的读写操作也可以通过开发板中带有的i2ctool相关命令操作。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • ARM
    ARM
    +关注

    关注

    134

    文章

    8740

    浏览量

    363455
  • 嵌入式
    +关注

    关注

    5020

    文章

    18505

    浏览量

    293562
  • Linux
    +关注

    关注

    87

    文章

    11031

    浏览量

    207291
收藏 人收藏

    评论

    相关推荐

    【OpenHarmony鸿蒙实战】在RK3399开发板实现智能门禁人脸识别

    基于RK3399开发板,使用OpenHarmony3.0-LTS开发的应用。通过定时获取摄像头数据,实现人脸识别比对等功能。
    的头像 发表于 03-20 17:38 714次阅读
    【OpenHarmony鸿蒙实战】在<b class='flag-5'>RK3399</b><b class='flag-5'>开发板</b>实现智能门禁人脸识别

    rk3399移植Linux内核

    RK3399是一款由中国厂商瑞芯微推出的高性能处理器芯片,被广泛用于嵌入式系统开发。在进行应用程序开发之前,我们需要将Linux内核移植到RK3399上,以支持硬件的驱动和功能。本文将
    的头像 发表于 01-08 09:56 595次阅读

    RK3399硬件设计指南

    RK3399是一款基于ARM架构的高性能处理器,常用于嵌入式系统和单板计算机。在进行RK3399硬件设计时,需要考虑多个方面,包括电源、封装、信号传输、外设接口等。本文将详细介绍RK3399硬件
    的头像 发表于 12-28 10:59 757次阅读

    标准系统:软通扬帆富设备开发板RK3399

    级别 标准系统 开发板名称(芯片型号) 软通扬帆富设备开发板RK3399) 芯片架构 瑞芯微RK3399 CPU频率 介绍(字数请控制在200字以内) 采用瑞芯微
    发表于 10-19 10:37

    Rockchip RK3399软件开发指南

    电子发烧友网站提供《Rockchip RK3399软件开发指南.pdf》资料免费下载
    发表于 10-09 14:30 7次下载
    Rockchip <b class='flag-5'>RK3399</b>软件<b class='flag-5'>开发</b>指南

    RK3588比RK3399强在哪里?如何选择

    RK3588和RK3399作为瑞芯微两款高性能的通用型SoC,有各自的特点和优势。香橙派的开发板都有采用这两款芯片,比如OrangePi5Plus用的RK3588,OrangePi
    的头像 发表于 10-09 13:48 2129次阅读
    <b class='flag-5'>RK</b>3588比<b class='flag-5'>RK3399</b>强在哪里?如何选择

    RK3399 JTAG配置指南

    电子发烧友网站提供《RK3399 JTAG配置指南.pdf》资料免费下载
    发表于 09-15 16:11 3次下载
    <b class='flag-5'>RK3399</b> JTAG配置指南

    RK3399 BOX开发板用户指南

    电子发烧友网站提供《RK3399 BOX开发板用户指南.pdf》资料免费下载
    发表于 09-15 15:37 1次下载
    <b class='flag-5'>RK3399</b> BOX<b class='flag-5'>开发板</b>用户指南

    视壮VS-RK3399六核64位高性能开发板ADC使用

    电子发烧友网站提供《视壮VS-RK3399六核64位高性能开发板ADC使用.pdf》资料免费下载
    发表于 09-15 15:37 0次下载
    视壮VS-<b class='flag-5'>RK3399</b>六核64位高性能<b class='flag-5'>开发板</b>ADC使用

    rk3399性能评测

    rk3399性能评测  RK3399 是一种由瑞芯微(Ruijie Micro)生产的超高性能、低功耗、多核 SoC(System on a chip)处理器,它采用了 ARM 公司的大臂架构
    的头像 发表于 08-21 17:32 7070次阅读

    rk3399相当于intel什么芯片

    (rockchip)开发rk3399芯片采用A72+A53六核架构,主频高达2.0GHz,并搭载了Mali-T860MP4高性能GPU,支持4K H.265/H.264/VP9解码。
    的头像 发表于 08-16 17:34 1179次阅读

    rk3566和rk3399的区别

    rk3566和rk3399的区别 Rockchip是中国芯片设计企业,其旗下产品包括rk3566和rk3399芯片,这两种芯片都具有高性能和低成本的优点,但在一些细节上还是存在一定的差
    的头像 发表于 08-15 17:44 1w次阅读

    rk3588和rk3399的区别

    rk3588和rk3399的区别 Rockchip是一家位于中国深圳的芯片设计公司,已经发布了一系列的处理器芯片。其中,Rockchip RK3588和RK3399是两款备受瞩目的芯片
    的头像 发表于 08-15 16:44 2302次阅读

    海凌科新款arm64开发板wukongPi 4B简述

    海凌科新款arm64开发板——wukongPi 4B上架,兼容树莓派,采用RK3399 SoC。
    的头像 发表于 08-07 14:53 785次阅读
    海凌科新款arm64<b class='flag-5'>开发板</b>wukongPi <b class='flag-5'>4</b>B简述

    使用CodeViser调试RK3399多核芯片的过程

    CodeViser是J&D Tech公司开发的一款JTAG仿真器,支持ARM和RISC-V等CPU 核。配套的CVD调试软件提供高效稳定的调试环境,支持源码级调试和强有力的脚本命令。本文讨论使用CodeViser 调试瑞芯微公司RK3399 多核芯片的过程,
    的头像 发表于 08-01 11:09 849次阅读
    使用CodeViser调试<b class='flag-5'>RK3399</b>多核芯片的过程