How many widgets can we reliably connect to the I2C bus while having a decent max bus length and a respectable data transfer rate?
Lets first make some assumptions:
1) MAX DATA RATE = 100K Baud
2) Max current that a PIC will have to sink =
3) Supply voltage =
4) Assuming TTL logic
5) Capacitance of CAT5 wire = 20pF / FT (Many web sites state value 17 of less. 20pF is a conservative value.)
6) Resistance of CAT5 wire = 28.6 Ohms/1000 ft or 0.0286 Ohms/ft
7) Max length of bus: 50 FT
8) Max number of widgets = 25
9) Capacitance of a widget = 20pF (May be greater when you factor in the connectors)
First, lets compute the total capacitance of the network assuming are devices are connected together.
Sanity check. In order to operate at “high speed mode”, (1.7Mb/s) the total capacitance must be less than 400pF. We are over 4 times that value. So at our very best, we should not push 400 Kbps.
Now, we need to determine what the minimum resistance can be in order for our network to function correctly. In order to make this calculation, we first need to determine what the value of t will be.
Our bit rate is 100Kbps or 100Khz. This yields in a period of 10uS, or a half period of 5uS. What we want to pick now is a constraint on how fast the waveform must rise. Lets assume a tight rise time where the signal reaches in a tenth of a half period. (This value is very pessimistic. We might be able to relax this constraint based on what the specs say.) Thus, we pick = 0.5uS
We know that can not exceed 0.5 uS. In other words, the product of Rt and Ct cannot exceed 0.5uS. So, lets callinstead “RC MAX”
RC MAX = 0.5uS
This implies that our resistance cannot exceed
Back to our circuit. We can simplify the model of the system as that below:
Where Rt is to total resistance of the network and Ct is the total capacitance of the network. The total resistance is at least equal to 220 Ohms, or that of the pull-up resister. Including the resistance of the wire (0.0286ft * 50 = 1.43 Ohm), we get 221.5 ohms. Lets be pessimistic and choose
So, 230 is less than 334 Ohm. What does this mean? It means that our network should operate with the following configuration:
- Max network wiring length of 50 ft
- A max number 25 widgets
- A bus speed of 100Kbps
In theory, any of these parameters could be increased by as much as 230/330 of 70%. (IE, we would extend the total network cable length to 85ft.) I only recommend doing this if necessary. After all, my assumptions could be wrong!