[原创]树莓派CM4配置GPIO复用为i2c
1.简介
- 项目中需要控制各种外设的电源,正常应该是通过GPIO进行控制,但是树莓派CM4的GPIO管脚有限,因此需要使用i2c扩展IO
- 查阅CM4-datesheet发现
GPIO22
和GPIO23
可以复用为i2c,当然也有其它的GPIO可以复用为i2c,这里只是选用了i2c-6
- 本次调试使用的镜像为
raspios-arm64-lite.img
,也使用过ubuntu 18.04
进行调试,调试方法相同
2. 启用i2c-6
2.1 启用i2c协议
- 默认情况下,树莓派并没有启用i2c,参考下面的链接,使用raspi-config开启i2c
2.2 修改/boot/config.txt
- 在/boot/config.txt中添加如下内容
dtparam=i2c_vc=on
2.3 将GPIO22
和GPIO23
复用为i2c
- 在/boot/config.txt中添加如下内容,表示将GPIO22复用为i2c-6的
SDA
,GPIO23复用为i2c-6的SCL
dtoverlay=i2c-gpio,bus=6,i2c_gpio_sda=22,i2c_gpio_scl=23
- 添加完成后重启设备
2.4 验证是否配置成功
- 查看所有i2c,正常情况下能够看到多出了一个i2c-6
i2cdetect -l
- 使用i2cdetect进行检测,结果如下,i2c-6就是GPIO复用而来的
- 查看dmesg信息,进一步确认,可以明确看到SDA对应GPIO22,SCL对应GPIO23
- 至此i2c-6配置成功,同样的方法可以开启其他GPIO复用的i2c
3. 读写i2c器件寄存器测试
3.1 挂载i2c器件
- 手头上正好有一个带24c04芯片扩展板
- 器件地址:
0x50h
3.2 扫描i2c-6上的器件
i2cdetect -y 6
- 可以看到成功识别到了地址为
0x50h
的器件
3.3 读写寄存器测试
- 24C02就是个存储芯片,就随便读写一片地址进行测试吧,这里以
0x10h
为例 - 设置
0x10
寄存器值为0x55
,测试正常
## 设置0x10寄存器值 0x55
i2cset -f -y 6 0x50 0x10 0x55
## 读取0x10寄存器,正常
i2cget -f -y 6 0x50 0x10
NOTES
- 本人原创文章,转载请注明出处
- 禁止转载到CSDN!!!
[原创]树莓派CM4配置GPIO复用为i2c的更多相关文章
- 树莓派Zero W GPIO控制
作者:陈拓 chentuo@ms.xab.ac.cn 2018.06.09/2018.07.05 0. 概述 本文介绍树莓派 Zero W的GPIO控制,并用LED看效果. 0.1 树莓派GPIO编 ...
- Linux 内核层和 用户层 配置 GPIO 引脚
Linux BSP 开发的基础就是和GPIO打交道, 下面总结下这几天对某家开发板的GPIO控制的知识. 公司的开发板用的是 DTB 模式 ,首先,进入 dts,dtsi文件查看关于GPIO 的模块 ...
- 【.NET 与树莓派】使用 GPIO 库
上回老周在说准备工作的时候,提到过树莓派用金属盒散热的事情.有朋友会说,加了金属盒子接线不方便,就算用了"T"形板,毕竟是把导线延长了的.其实扩展板就是把原有的引脚引出(类似于延长 ...
- 在4418平台上如何配置GPIO口的状态
硬件 ------------------------------------------------------------------------------------------------- ...
- 树莓派4硬件---GPIO篇
树莓派拿到手已经两个多月了,其实从最开始的期待安装好ROS,到前几天完成了ROS的源码编译安装,对linux的调教也时花了些时间的.现在终于想起来,树莓派上还有GPIO,还没有用过了.说干就干,开始. ...
- STM32配置GPIO前须先打开其时钟,否则配置失败
@2018-5-9 17:11:38 STM32配置GPIO前须先打开其时钟,否则配置失败
- 树莓派进阶之路 (012) - 关于Raspberry Pi树莓派无线网卡配置
Raspberry Pi树莓派无线网卡配置[多重方法备选] 要想让树莓派方便操作,肯定需要配置无线网卡,这样可以大大增强树莓派的移动性和便利性,其实配置无线网卡基本就是和普通linux平台下配置无线网 ...
- 树莓派 Learning 003 --- GPIO 001 --- 点亮LED
树莓派 Learning 003 - GPIO 001 - 点亮LED 我的树莓派型号:Raspberry Pi 2 Model B V1.1 装机系统:NOOBS v1.9.2 树莓派 Learni ...
- 树莓派 Learning 003 --- GPIO 000 --- GPIO引脚图
树莓派 Learning 003 - GPIO 000 - GPIO引脚图 我的树莓派型号:Raspberry Pi 2 Model B V1.1 装机系统:NOOBS v1.9.2 Raspberr ...
随机推荐
- 研讨会回放视频:如何提升Jenkins能力,使其成为真正的DevOps平台
"如何实现集中管理.灵活高效的CI/CD"在线研讨会精彩分享 演讲嘉宾:杨海涛 在2022年3月29日举办的"如何实现集中管理.灵活高效的CI/CD"在线研讨会 ...
- stm32F103RCT6使用FFT运算分析波形详解(非常新手)
最近学校电赛院队招新,出的招新题就是低频示波器的.之前一直没有弄懂FFT,借着这次机会实现了一下. FFT原理详解 FFT,就是快速傅里叶变换,这个操作能够将时域信号转化成频域信号,然后对信号进行分析 ...
- SoftPool:基于Softmax加权的池化操作 | 2021新文
SoftPool使用softmax进行加权池化,能够保持特征的表达性并且是可微操作.从性能和准确率来看,SoftPool是目前的常规池化方法的一个不错的替代品 来源:晓飞的算法工程笔记 公众号 论 ...
- Git 使用心得 & 常见问题整理
开源Linux 回复"读书",挑选书籍资料~ Git 流程图 Workspace:工作区 Index / Stage:暂存区 Repository:仓库区(或本地仓库) Remot ...
- 攻防世界web进阶题—unfinish
攻防世界web进阶题-unfinish 1.看一下题目提示SQL 2.打开题目看一下源码,没有问题 3.查一下网站的组成:php+Apache/2.4.7+Ubuntu 4.扫一下目录,扫到一个注册页 ...
- 【拖拽可视化大屏】全流程讲解用python的pyecharts库实现拖拽可视化大屏的背后原理,简单粗暴!
"整篇文章较长,干货很多!建议收藏后,分章节阅读." 一.设计方案 整体设计方案思维导图: 整篇文章,也将按照这个结构来讲解. 若有重点关注部分,可点击章节目录直接跳转! 二.项目 ...
- Git命令行提交代码步骤
先进入对应的项目目录 1.拉取服务器代码,避免覆盖他人代码 git pull 2.查看当前项目中有哪些文件被修改过 git status 具体状态如下: 1:Untracked: 未跟踪,一般为新增文 ...
- 706. Design HashMap - LeetCode
Question 706. Design HashMap Solution 题目大意:构造一个hashmap 思路:讨个巧,只要求key是int,哈希函数选择f(x)=x,规定key最大为100000 ...
- SpringBoot进阶教程(七十四)整合ELK
在上一篇文章<SpringBoot进阶教程(七十三)整合elasticsearch >,已经详细介绍了关于elasticsearch的安装与使用,现在主要来看看关于ELK的定义.安装及使用 ...
- AWD平台搭建及遇到的问题分析
1.安装docker环境 a.使用的是ubuntu系统,通过sudo apt install docker.io进行docker得安装,此方式会自动启动docker服务. b.通过curl -s ht ...