Raspberry PI,如何将其他GPIO配置为I2C

Raspberry PI,如何将其他GPIO配置为I2C,c,linux,raspberry-pi,i2c,C,Linux,Raspberry Pi,I2c,我正在我的一个项目中使用树莓圆周率 在这个项目中,我需要两个不同的I2C接口同时运行。 我知道如何将GPIO-0和GPIO-1设置为I2C(到处都有教程,例如:) 在这个链接中,它还说任何GPIO都可以像I2C一样工作 如何将其他GPIO配置为与I2C一样工作,以便能够并行使用不同的接口。(我知道我需要添加上拉电阻器,但我不知道如何在Linux shell或C中配置它)。 有人能简单地解释一下这是怎么做到的吗 谢谢, Adrian。如果管脚没有硬件实现的I2C驱动程序,则可以使用。的概念实现软件

我正在我的一个项目中使用树莓圆周率

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

在这个链接中,它还说任何GPIO都可以像I2C一样工作

如何将其他GPIO配置为与I2C一样工作,以便能够并行使用不同的接口。(我知道我需要添加上拉电阻器,但我不知道如何在Linux shell或C中配置它)。 有人能简单地解释一下这是怎么做到的吗

谢谢,
Adrian。

如果管脚没有硬件实现的I2C驱动程序,则可以使用。

的概念实现软件实现,如前所述,您可以尝试Bitbang。如果你有焊接经验,你可以“硬件黑客”的pi作为第二个I2C总线位于相机接口


第4页S5

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

我在wiringPi上制作了一个i2c位碰撞总线接口。您可以使用任意2个GPIO引脚制作总线。它是用C++编写的,但是应该很容易移植到C。也许它需要一些润色,但至少这是一个起点


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


这应该是在这个问题上提出的,这个问题已经提出,这是正确的。尝试实现自己的I2C移位位。这没那么复杂。嗨@robotrovsky,出于某种原因,我不得不在RPi上做我自己的i2c位。。。您是否为开漏模式配置了RPi gpios?&他们用过上拉电阻吗?因为我在网上调查了一些问答,其中一些提到了这些方法。。。但我找不到如何在开放排水模式下配置RPi gpios…嗨,西格尔!I2C总线1(rpi2引脚3和5上的gpios 2和3)具有硬接线1k8上拉至3V3。单击管脚以查看规格。当您想要在其他GPIO引脚上使用i2c位碰撞时,您需要外部上拉电阻器。我没有配置其他GPIO,我只是为它们使用了外部上拉。我希望这能回答你的问题。我发现没有必要担心“配置”排水明渠模式。只要确保在需要时将SDA的gpio配置为IN/OUT,它就可以充当IN/OUT。我问这个问题的根本原因是:我忘记为连接的设备发送1个SCL周期时钟,让设备ack时钟进入!简要介绍了这两个站点上的示例代码,使我的I2CBitBang工作正常。而且,是的,如果我使用gpio2和3,就不必担心上拉电阻,如果使用其他GPIO,就需要它。反正是Thx!有时你需要每辆车以不同的时钟速度运行。请在这里分享文章的主要思想。