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

时间:2013-02-13 13:52:33

标签: c linux raspberry-pi i2c

我在我的一个项目中使用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中配置它)。 有人可以通过简单的步骤向我解释如何做到这一点吗?

谢谢, 阿德里安。

5 个答案:

答案 0 :(得分:2)

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

https://github.com/robotrovsky/rpi_i2c_bit_banging

答案 1 :(得分:1)

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

答案 2 :(得分:0)

如前所述,你可以试试bitbanging。如果您在焊接方面经验丰富,那么当第二个I2C总线位于相机接口上时,您可以“硬件破解”pi。

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

Page 4 S5

答案 3 :(得分:0)

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

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

答案 4 :(得分:-1)

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