I2C Bus Length and No of Slave connection

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

I2C Bus Length and No of Slave connection

3,608 Views
krunalshah
Contributor I

Dear Sir/Madam

We have designed one system where we are using 7bit I2C address and connecting 30 slave boards to the Master board(Using imx6ul or imx6ull) on same I2C Bus. My master and Slave boards are connected with PCB or Rigid+Flex PCB.

Attached is the I2C waveform which we captured after we connect 10, 20 & 30 Slave to the BRAIN/Master. Brain/master and each slave using 4.7k pull up resistor with 3.3V & each slave is generating its own 3.3V and GND is common in the whole system.

If we connect more slave to the same I2C bus, will it be allow me to connect on the same bus without any problem, based on the attached waveform? Can you please guide how we can check and verify the same? The newer slave will be same as earlier 10/20/30 slaves and will have the pull up of 4.7k

In nut shell if we use 7bit/10bit I2C address and BRAIN is connected with 125/1020slaves(BRAIN and Slaves connected with PCB and connector, no cables used to connect them) what parameter we need to check and how so can be sure that i can physically do the same. Please help/guide so we can expand the system.

Thanks

Krunal Shah

Labels (2)
Tags (1)
0 Kudos
Reply
7 Replies

3,351 Views
igorpadykov
NXP Employee
NXP Employee

Hi Krunal

with increasing bus length one needs to take into consideration

overall capacitive load and rising times as defined in sect.4.12.6

I2C module timing parameters i.MX6UL Datasheet

http://cache.freescale.com/files/32bit/doc/data_sheet/IMX6ULCEC.pdf

Also parallel connection many devices with 4.7k pull-ups each will

produce small total resistance and Low-Level input voltage (0.3*OVDD max.)

may be affected as defined in Table 24. Single Voltage GPIO DC Parameters.

Small resistance may cause processor heating.

Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos
Reply

3,351 Views
krunalshah
Contributor I

Dear Igor

We have one question, what will be the maximum sink current of the each

PIN of the NVCC_UART Port, we have used UART4_TX_DAT(G17) and

UART4_RX_DAT(G16) for the I2C communication.

We are planning to do calculation based on below equations so that we

can determine maximum no of slaves connected to the master.

Thanks

Krunal Shah

0 Kudos
Reply

3,351 Views
igorpadykov
NXP Employee
NXP Employee

Hi Krunal

for current one can check sect.4.8.1 Single voltage GPIO output buffer impedance

i.MX6UL Datasheet

http://cache.freescale.com/files/32bit/doc/data_sheet/IMX6ULCEC.pdf

Best regards
igor

0 Kudos
Reply

3,351 Views
krunalshah
Contributor I

Dear Igor

If we use I2C buffer or repeater, can you suggest any part which we can use?

Thanks

Krunal Shah

Syntrons Technologies Pvt. Ltd

404, Arista Business Space,

Near Armieda,

Sindhu Bhavan Road,

Bodakdev,

Ahmedabad-380054

Call: +91-9427961799

E-mail: krunal@syntronstech.com

0 Kudos
Reply

3,351 Views
igorpadykov
NXP Employee
NXP Employee

Hi Krunal

one can look at MAX7310 used on Sabre AI board SCH-27142 (p.17)

Schematics (5)
Design files for i.MX 6Quad and i.MX 6DualLite CPU1 Cards
Design files for Base Board (REV E)

http://www.nxp.com/products/software-and-tools/hardware-development-tools/sabre-development-system/s...

Best regards
igor

0 Kudos
Reply

3,351 Views
krunalshah
Contributor I

Dear Igor

Can we use TCA9517DGKR so what we will do after every 30/60 slaves we

will put these buffer iC, so my block will be like

Master ->I2C_A....->30th/60th Slave->I2C_B....->30th/60th Slave->I2C_C....

Thanks

Krunal Shah

Syntrons Technologies Pvt. Ltd

404, Arista Business Space,

Near Armieda,

Sindhu Bhavan Road,

Bodakdev,

Ahmedabad-380054

Call: +91-9427961799

E-mail: krunal@syntronstech.com

0 Kudos
Reply

3,351 Views
krunalshah
Contributor I

Dear Igor

Thanks for the reply, earlier we have the case where we have not added

4.7k pull on each slave and at that time we were not able to connect

more then 20 slave with the master.

We though that we need to add pull for each slave, and we have added

4.7k pull up on each slave and communication is working properly.

All pull up are using their own 3.3V supply and GND is common in the

system. Please note here there are uC on each slave which are getting

message from Master and use that message to display something on LEDs

which are connected with Microconroller.

We have checked the capacitance of the trace using PCB design tool and

its saying its 22pF for one Slave, so if we connect 30slave bus

capacitance will be 660pF so ideally it should not work as I2C can

support up to maximum 400pF of Bus capacitance. But there is no

delay/voltage drop in the I2C bus after 30 slave,

we just wanted to know how we can determine that what is the Maximum

limit of how many slaves are connected with Master., any other parameter

or testing we need to do because as per waveforms which we shared are

the identical (Of Brain and OF 30th Slave). Can you please guide what we

can check and share the result that help you as well to support us.

Thanks

Krunal Shah

0 Kudos
Reply