【问题标题】:Raspberry PI, How to configure other GPIO to work as I2CRaspberry PI,如何将其他 GPIO 配置为 I2C
【发布时间】:2013-02-13 13:52:32
【问题描述】:

我将 Raspberry PI 用于我的一个项目。

在这个项目中,我需要两个不同的 I2C 接口同时运行。 我知道如何将 GPIO-0 和 GPIO-1 设置为 I2C(到处都有教程,例如:one of the tutorials how to enable I2C in raspberry)。

同样在这个链接中RPi Low-level peripherials它说任何GPIO都可以作为I2C工作。

如何将其他 GPIO 配置为也可以作为 I2C 工作,这样我就可以并行使用不同的接口。 (我知道我需要添加上拉电阻,但我不知道如何在 Linux shell 或 C 中配置它)。 有人可以简单地向我解释一下这是如何完成的吗?

谢谢, 阿德里安。

【问题讨论】:

标签: c linux raspberry-pi i2c


【解决方案1】:

我在wiringPi 上做了一个i2c bit banging 总线接口。您可以使用任何 2 个 GPIO 引脚制作总线。它是用 C++ 编写的,但应该很容易移植到 C 中。无论如何,大多数函数都是 C。也许它需要一些润色,但至少这是一个起点。

https://github.com/robotrovsky/rpi_i2c_bit_banging

【讨论】:

  • 嗨@robotrovsky,出于某种原因,我还必须在 RPi 上进行自己的 i2c 位敲击,...您是否将 RPi gpios 配置为开漏模式? & 为他们使用了上拉电阻?因为我一直在网上调查一些问答,其中一些提到了这些方法……但我找不到如何在开漏模式下配置 RPi gpios……
  • 嗨西格尔! I2C 总线 1(rpi2 引脚 3 和 5 上的 gpios 2 和 3)具有到 3V3 的硬接线 1k8 上拉电阻。 pinout.xyz/pinout/pin3_gpio2 点击引脚查看规格。当您想在其他 GPIO 引脚上使用 i2c-bit-banging 时,您需要外部上拉电阻。我没有配置其他gpios,我只是为它们使用了外部上拉。我希望这能回答你的问题。
  • 我发现无需担心“配置”开漏模式。只要确保将 SDA 的 gpio 配置为 IN/OUT,当我们需要它作为 IN/OUT 时。以及为什么我问这个问题的根本原因:我忘记为连接的设备发送 1 个 SCL 周期时钟以让设备确认时钟!在这 2 个站点上简要遵循的示例代码让我的 i2cbitbanging 工作。 elinux.org/RPi_GPIO_Code_Samplesen.wikipedia.org/wiki/…。而且,是的,如果我使用 gpio2 和 3,则无需担心上拉电阻,如果使用其他 GPIO,则需要它。无论如何谢谢!
【解决方案2】:

如果引脚没有硬件实现的 I2C 驱动程序,则可以使用bit-banging 的概念实现软件实现。

【讨论】:

  • 没错。尝试实现自己的 I2C 移位。没那么复杂。
【解决方案3】:

如前所述,您可以尝试 bitbanging。如果您有焊接经验,则可以“硬件破解” pi,因为第二个 I2C 总线位于相机接口上。

http://www.raspberrypi.org/wp-content/uploads/2012/10/Raspberry-Pi-R2.0-Schematics-Issue2.2_027.pdf

第 4 页 S5

【讨论】:

    【解决方案4】:

    为什么需要两条 i2c 总线? 您可以在同一 i2c 总线上运行多个设备,只要它们具有不同的地址。大多数组件都允许您通过焊接两个焊盘来更改地址。

    【讨论】:

    • 有时您需要每条总线以不同的时钟速度运行。
    【解决方案5】:

    您可以在任何 gpio 引脚上创建额外的 i2c 总线

    https://www.instructables.com/id/Raspberry-PI-Multiple-I2c-Devices/

    【讨论】:

    • 请在这里分享文章的主要思想。
    猜你喜欢
    • 2016-12-14
    • 2021-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-08
    • 1970-01-01
    相关资源
    最近更新 更多