Difference between revisions of "I2c bus"

From BITPlan Wiki
Jump to navigation Jump to search
 
(3 intermediate revisions by the same user not shown)
Line 1: Line 1:
= Wiring =
+
= Wiring - Raspberry =
 
<pre>
 
<pre>
 
Color  i2cbus Raspberry Pi
 
Color  i2cbus Raspberry Pi
Line 7: Line 7:
 
Black  GND    GND (Pin 6)
 
Black  GND    GND (Pin 6)
 
</pre>
 
</pre>
 +
= Software - Raspberry =
 +
Example with both a {{Link|target=SSD1306}} and {{Link|target=PCA9685}} on the bus
 +
<source lang='bash' highlight='1,3'>
 +
sudo raspi-config
 +
# enable i2c in Interfacing options
 +
sudo i2cdetect -y 1
 +
    0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
 +
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
 +
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
 +
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
 +
30: -- -- -- -- -- -- -- -- -- -- -- -- 3c -- -- --
 +
40: 40 -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
 +
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
 +
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
 +
70: 70 -- -- -- -- -- -- --                       
 +
</source>
 +
 
= How many devices on the bus? =
 
= How many devices on the bus? =
 
https://www.bluedot.space/tutorials/how-many-devices-can-you-connect-on-i2c-bus/
 
https://www.bluedot.space/tutorials/how-many-devices-can-you-connect-on-i2c-bus/
 
= Pull up resistor calculation =
 
= Pull up resistor calculation =
 +
It seems recommendations go from 1kΩ (maximize speed) to 10kΩ (minimize power consumption) 4.7 kΩ is a compromise
 
== Stackoverflow ==
 
== Stackoverflow ==
 
* https://electronics.stackexchange.com/questions/1849/is-there-a-correct-resistance-value-for-i2c-pull-up-resistors
 
* https://electronics.stackexchange.com/questions/1849/is-there-a-correct-resistance-value-for-i2c-pull-up-resistors
 +
Most upvoted answer:
 +
''I include 4K7 resistors in the kit which seems like a reasonable compromise for most users.''
  
 
== Ti.com ==
 
== Ti.com ==

Latest revision as of 11:20, 7 February 2020

Wiring - Raspberry

Color  i2cbus 	Raspberry Pi
yellow SCL     	GPIO 3 / SCL (Pin 5)
orange SDA 	GPIO 2 / SDA (Pin 3)
Red    VCC / V 	3,3V (pin 1)
Black  GND     	GND (Pin 6)

Software - Raspberry

Example with both a SSD1306 and PCA9685 on the bus

sudo raspi-config
# enable i2c in Interfacing options
sudo i2cdetect -y 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- -- 3c -- -- -- 
40: 40 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: 70 -- -- -- -- -- -- --

How many devices on the bus?

https://www.bluedot.space/tutorials/how-many-devices-can-you-connect-on-i2c-bus/

Pull up resistor calculation

It seems recommendations go from 1kΩ (maximize speed) to 10kΩ (minimize power consumption) 4.7 kΩ is a compromise

Stackoverflow

Most upvoted answer: I include 4K7 resistors in the kit which seems like a reasonable compromise for most users.

Ti.com

Therefore,we can selectany available resistor value between 966.667Ωand 1.77kΩ. The valueof the pull up resistor can be selected basedon the trade-off for the power consumption and speed. load PDF