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

多个相同地址的I2C设备,如何挂载在同一条总线上

前言

(1)如果有嵌入式企业需要招聘湖南区域日常实习生,任何区域的暑假Linux驱动实习岗位,可C站直接私聊,或者邮件:zhangyixu02@gmail.com,此消息至2025年1月1日前均有效
(2)最近,在交流群里面看到一个有意思的问题。一个人问,如果四个颜色传感器挂载在一个iic总线上怎么分别读取数据?传感器地址一样的。此时不由想到我之前大一比赛的时候也遇到过类似的问题,想了很久才想出解决办法,由此记录一下。

使用继电器片选SDA

(1)我当时想到的办法很简单,四个设备的SCL都挂载在同一处,SDA线通过一个继电器连接。
(2)如果我想与其中一个设备交流,只需要通过控制继电器,使设备与SDA连接即可。这样就解决了四个地址一样的传感器挂载在一个iic总线上的问题。
(3)不过需要注意,这样就会多消耗4个引脚。

在这里插入图片描述

优化方案

(1)我将这个问题发到交流群中,发现一位大佬有了更好的解决方案:大佬是讲SDA连接在一起,SCL通过mux器件进行选择连接。
(2)这样做有什么好处呢?
<1>mux器件可以让我们明显的减少IO使用。例如上面4个传感器需要4个IO控制,而如果使用如下的mux器件,就能够减少到2个IO控制。

在这里插入图片描述

在这里插入图片描述

<2>SDA连接在一起,SCL分开的方案能够有效减少代码复杂度。模拟iic设计到gpio换向的问题,本来模拟SDA的数据帧就很麻烦,然后还要考虑继电器的事情。可能会变得更加的复杂。

参考

(1)MUX多路选择器(Multiplexer);

相关文章:

  • Ansible脚本进阶---playbook
  • Web入门笔记
  • UE5使用Dash插件实现程序化地形场景制作
  • 网关概念及java项目中用使用网关场景
  • Ubuntu系统编译调试QGIS源码保姆级教程
  • 合并两个有序链表(C++)
  • TensorRT量化实战课YOLOv7量化:YOLOv7-PTQ量化(一)
  • 【每日一题Day362】LC274H 指数 | 二分答案
  • iOS_Crash 四:的捕获和防护
  • es之null_value
  • Python——自动创建文件夹
  • 一个基于Excel模板快速生成Excel文档的小工具
  • 23种设计模式(10)——门面模式
  • 在Go中处理时间数据
  • Knife4j使用教程(一) -- 在不同版本SpringBoot,选用不同的Knife4j相关的jar包
  • 《Java8实战》-第四章读书笔记(引入流Stream)
  • 【附node操作实例】redis简明入门系列—字符串类型
  • Java反射-动态类加载和重新加载
  • MySQL几个简单SQL的优化
  • Spark in action on Kubernetes - Playground搭建与架构浅析
  • UEditor初始化失败(实例已存在,但视图未渲染出来,单页化)
  • 阿里云购买磁盘后挂载
  • 从零开始在ubuntu上搭建node开发环境
  • 第13期 DApp 榜单 :来,吃我这波安利
  • 官方新出的 Kotlin 扩展库 KTX,到底帮你干了什么?
  • 收藏好这篇,别再只说“数据劫持”了
  • 一起来学SpringBoot | 第三篇:SpringBoot日志配置
  • 原生 js 实现移动端 Touch 滑动反弹
  • 【干货分享】dos命令大全
  • ​3ds Max插件CG MAGIC图形板块为您提升线条效率!
  • # Swust 12th acm 邀请赛# [ K ] 三角形判定 [题解]
  • #git 撤消对文件的更改
  • #HarmonyOS:基础语法
  • (1)Map集合 (2)异常机制 (3)File类 (4)I/O流
  • (2)Java 简介
  • (2.2w字)前端单元测试之Jest详解篇
  • (31)对象的克隆
  • (C语言)求出1,2,5三个数不同个数组合为100的组合个数
  • (六)c52学习之旅-独立按键
  • (六)vue-router+UI组件库
  • (论文阅读32/100)Flowing convnets for human pose estimation in videos
  • (南京观海微电子)——I3C协议介绍
  • .NET MVC之AOP
  • .NET 使用 XPath 来读写 XML 文件
  • .NET/C# 反射的的性能数据,以及高性能开发建议(反射获取 Attribute 和反射调用方法)
  • .sys文件乱码_python vscode输出乱码
  • [ 隧道技术 ] 反弹shell的集中常见方式(四)python反弹shell
  • [@Controller]4 详解@ModelAttribute
  • [Android] Implementation vs API dependency
  • [android] 切换界面的通用处理
  • [BZOJ1010] [HNOI2008] 玩具装箱toy (斜率优化)
  • [C#]winform部署PaddleOCRV3推理模型
  • [CC2642r1] ble5 stacks 蓝牙协议栈 介绍和理解
  • [Excel] vlookup函数
  • [HTML API]HTMLCollection