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
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!
-----------------------------------------------------------------------------------------------------------------------
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
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
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
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)
Best regards
igor
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
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