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

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

3天内不再提示

树莓派怎样连接多个I2C设备

454398 来源:网络整理 作者:网络整理 2019-11-13 09:27 次阅读

步骤1:一些Shell命令

树莓派怎样连接多个I2C设备

树莓派使用时连接您的i2c设备之一,启动树莓派并运行

sudo i2cdetect -y 1

您将看到一个表格,如图所示。我已经安装了BMP280温度和气压传感器。根据表,i2c地址为0x76。请记下该地址。

对所有i2c设备执行此操作。

步骤2:案例1:I2c设备具有相同的地址

这始终是有问题的情况。 i2c总线可以处理多个设备,但是它们应具有不同的i2c地址。有些i2c设备具有用于设置其他i2c地址的跳线,但许多设备却没有。在这种情况下,您可以使用i2c多路复用器硬件)来旋转i2c SDA(数据)和SCL(时钟),也可以创建其他i2c总线或更多。

我将创建两个附加总线, nl总线3和4

打开cli并运行

cd/boot

sudo nano config.txt

添加以下代码行,最好在启用spi和i2c的部分中。

dtoverlay = i2c-gpio,bus = 4,i2c_gpio_delay_us = 1, i2c_gpio_sda = 23,i2c_gpio_scl = 24

此行将在GPIO 23上以SDA和GPIO 24形式在SCL上创建一个附加的i2c总线(总线4)(GPIO 23和24为默认值)

还添加以下行以创建i2c总线3

dtoverlay = i2c-gpio,bus = 3,i2c_gpio_delay_us = 1,i2c_gpio_sda = 17,i2c_gpio_scl = 27

GPIO 17将是i2c总线4的SDA,而GPIO 27将是SCL。

Tipe控件X退出。

关于总线编号和顺序的说明:

从不使用总线0和2,它用于其他的东西像帽子上的eprom这样的板子

对于2019年4月发布的Raspbian版本:

您应该始终从config.txt中的最高总线(在这种情况下为4总线)开始,一直运行到最低总线(3总线)。

最低的总线必须始终是3总线。

如果您需要5条额外的总线,则这些总线必须双向接入7,6,5,4,3的顺序

最初编写此Instructable时,此总线顺序上的问题不存在。似乎对内核进行了更改。

关闭PI,将其关闭。将您的i2c设备连接到总线4(SDA到GPIO 23和SCL到GPIO 24),另一个连接到i2c总线3(SDA到GPIO 17和SCL到GPIO 27)。

打开pi。

运行:

sudo i2cdetect -l(小写L)

现在您将看到i2c总线3和4是也列出了。同时运行:

sudo i2cdetect -y 3

sudo i2cdetect -y 4

现在,您可以用您的编程语言使用传感器。记住要指定正确的i2c总线。

附件是流行的BMP280温度和压力传感器的一个示例。没有多路复用器可以如此快速地读取2个BMP280。

还附带了2个Sensirion SDP 810传感器的示例。再次以比过去使用的多路复用器更快的速度工作

我创建了python代码来从adafruit中读取两个新的BMP388。

将来我可能还会在https:/中添加其他传感器/github.com/JJSlabbert/Raspberry_PI_i2C_conficts

步骤3:案例2:不同的I2c地址。

简单。 i2c是一辆公共汽车。总线的目的是与多个设备通信。将设备并行连接到同一i2c总线。您可以使用总线一。

运行:

sudo i2cdetect -y 1

您将看到列出的设备。
责任编辑:wv

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

    关注

    28

    文章

    1486

    浏览量

    123631
  • 树莓派
    +关注

    关注

    116

    文章

    1707

    浏览量

    105610
收藏 人收藏

    评论

    相关推荐

    树莓传感器使用方法 树莓 Raspberry Pi 4优缺点

    开发和物联网应用。以下是一些基本的树莓传感器使用方法: 1. 连接传感器 GPIO引脚 :树莓的GPIO(通用输入/输出)引脚允许直接
    的头像 发表于 12-06 10:35 362次阅读

    I2C总线为什么要接上拉电阻

    I2C为什么要接上拉电阻?因为它是开漏输出。 为什么是开漏输出? I2C协议支持多个设备多个设备
    的头像 发表于 11-20 10:07 448次阅读
    <b class='flag-5'>I2C</b>总线为什么要接上拉电阻

    RISC V的I2C操作

    。tsuData中,1代表10ns;Timeout中,1表示10nstLow和tHigh的1代表10ns10.1.3 软件部分(Risc V)l  I2C通信主要包括以下几个部分:1、主设备发送起始位(Start
    的头像 发表于 11-01 11:06 198次阅读

    物联网嵌入式软件中的I2C总线设计详解

    基本概念、特点、通信协议,以及在不同场景下的高级应用和最佳实践。I2C接口只有2根信号线,总线上可以连接多个设备,硬件实现简单,可扩展性强。
    的头像 发表于 09-29 16:21 373次阅读
    物联网嵌入式软件中的<b class='flag-5'>I2C</b>总线设计详解

    I2C基本指南

    电子发烧友网站提供《I2C基本指南.pdf》资料免费下载
    发表于 09-10 09:40 0次下载
    <b class='flag-5'>I2C</b>基本指南

    使用C2000 I2C模块连接EEPROM

    电子发烧友网站提供《使用C2000 I2C模块连接EEPROM.pdf》资料免费下载
    发表于 08-27 09:53 0次下载
    使用<b class='flag-5'>C</b>2000 <b class='flag-5'>I2C</b>模块<b class='flag-5'>连接</b>EEPROM

    简单认识I2C通信协议

    I2C(Inter-Integrated Circuit)通信协议是由飞利浦公司(现为恩智浦半导体)开发的一种简单、双向二线制同步串行总线协议。自1982年发布以来,I2C协议因其高效、灵活和易于实现的特点,在电子设备间的数据交
    的头像 发表于 07-25 18:06 1437次阅读

    I2C总线协议的工作原理和寻址格式

    I2C(Inter-Integrated Circuit)总线协议,即集成电路总线协议,是一种用于连接微控制器及其外围设备的串行总线协议。I2C总线以其简单的两线制
    的头像 发表于 05-27 15:47 1733次阅读

    I2C通讯为什么要用开漏输出和上拉电阻?

    每个设备都可以将线拉低(Ground),但不能将线拉高(Vcc)。这种设计使得多个设备可以共享同一条总线,以进行通信。二、I2C接口接外部上拉电阻的原因
    的头像 发表于 05-16 08:10 6483次阅读
    <b class='flag-5'>I2C</b>通讯为什么要用开漏输出和上拉电阻?

    SPI和I2C通信协议:应用与区别

    /DAC芯片等场合。SPI和I2C连接方式、传输速率和设备支持等方面有显著差异,但随着物联网和智能设备的发展,它们都将在嵌入式系统中发挥重要作用。
    的头像 发表于 04-22 16:45 1809次阅读

    逼真动画展示I2C、SPI、UART的通信过程

    串行通信协议,通常用于连接低速设备,如传感器、存储器和其他外设。它使用两根线(SCL和SDA)来实现双向通信,具有地址定向性和主从模式。优点:多设备支持:I2C
    的头像 发表于 04-12 08:27 980次阅读
    逼真动画展示<b class='flag-5'>I2C</b>、SPI、UART的通信过程

    什么是I2C协议 I2C总线的控制逻辑

    在实际使用过程中,I2C比较容易出现的一个问题就是死锁 ,死锁在I2C中主要表现为:I2C死锁时表现为SCL为高,SDA一直为低。
    发表于 03-12 09:17 1056次阅读
    什么是<b class='flag-5'>I2C</b>协议 <b class='flag-5'>I2C</b>总线的控制逻辑

    GD32 MCU硬件I2C不可靠不如软件I2C?来看看红枫开发版的硬件I2C驱动如何做到稳得一批

    在一个评论中,看到网友对硬件I2C的讨论,硬件I2C Busy找不到原因、软件I2C稳得一批。
    的头像 发表于 02-23 09:37 2783次阅读
    GD32 MCU硬件<b class='flag-5'>I2C</b>不可靠不如软件<b class='flag-5'>I2C</b>?来看看红枫<b class='flag-5'>派</b>开发版的硬件<b class='flag-5'>I2C</b>驱动如何做到稳得一批

    什么是I2C接口?什么是I3C接口?I2CI3C的区别

    I2C接口是一种串行通信协议,全称为Inter-Integrated Circuit,即集成电路间总线。它是一种双向、两线制(SCL和SDA)的串行通信接口,主要用于连接微控制器和其他外围设备,如传感器、存储器、显示器等。
    的头像 发表于 02-17 14:39 6271次阅读
    什么是<b class='flag-5'>I2C</b>接口?什么是<b class='flag-5'>I3C</b>接口?<b class='flag-5'>I2C</b>与<b class='flag-5'>I3C</b>的区别

    树莓主板如何连接电脑

    连接树莓派到电脑是一个非常有用的功能,它可以让我们在电脑上进行树莓的操作和管理。本文将详细介绍如何连接
    的头像 发表于 01-07 15:40 1945次阅读