This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TCA9544A: TCA9544A

Part Number: TCA9544A

Tool/software:

"I have developed four PCB boards and connected them through cables, with the master on one board, from where I am performing I2C communication."
"Also, a GPIO expander on one PCB board controls two 4-channel multiplexers on one board and one 4-channel multiplexer on another PCB board."

"Each channel is connected to a single I2C device."

  • hi ,

    "I have developed four PCB boards and connected them through cables, with the master on one board, from where I am performing I2C communication."
    "Also, a GPIO expander on one PCB board controls two 4-channel multiplexers on one board and one 4-channel multiplexer on another PCB board."

    "Each channel is connected to a single I2C device."

    Each slave connected to the main bus is given a 4.7kΩ pull-up resistor, and each channel connected to the MUX has a 4.7kΩ pull-up resistor."

    "While communicating over I2C, read and write operations fail, but they work after restarting the circuit 2–3 times."
     

    regeards
    syam

  • Hi Syam,

    Happy to help here.

    "While communicating over I2C, read and write operations fail, but they work after restarting the circuit 2–3 times."

    1.When you say restarting are you saying that you need to power down the circuit and power it back up multiple times to get it working?

    I recommended taking a look at this app note that talks about debugging I2C but because restarting the circuit clears the issue I think the issue is either in the master, slave or the i2c master has a bug that leads to incorrect communication. The issue should not be with the TCA9544A and commonly a simple restart will not fix a communication issue if the  hardware setup of a I2C system is the problem.( Your system error is likely in the software)

    2.Is the repeating failure you are seeing a NACK Bit?( Using a Oscilloscope to see this is the best method)

    Please let me know if any other assistance is needed with the TCA9544A here or I am misunderstanding something

    Regards,

    Kameron

  • Hi kameron,

    I have two multiplexers on my board, with one proximity sensor connected to each channel.
    Right now, no sensors are connected to the channels of the multiplexers; only the multiplexers are soldered, and the channels are connected to a data analyzer.

    The waveforms of Channel 0, Channel 1, and Channel 2 data pins are the same.
    However, the waveforms of the main data pin and Channel 3 data pin are also the same.

    Because of this, I am facing an issue where the main SDA pin suddenly goes low after some time, especially when I connect an I2C device to Channel 3.
    I have used a 4.7kΩ pull-up resistor.

    Regards
    syam

  • Hi syam,

    Looking at what you are saying. I think you are doing something called hot plug/hot swapping with the i2c device you are plugging into channel 3.

    When you hotplug the i2c device onto your already active bus that is what is likely pulling down the SDA.

    Is there a reason why the switch and I2C bus is active when you decide to hot plug the i2c device onto channel 3.

    Ideally you would need to have the mux disabled and plug your i2c device onto channel 3 before you activate your i2c bus.( Here is a app note I think might help here)

    Is there a reason why you aren't doing this?

    In general I think this can help you in the right direction but I do want to let you know that the TCA9544A is likely not a issue here as it cannot pull the line high or low and the problem is likely due to how the hot plug/hot insertion you are doing in the design.

    Regards,

    Kameron

  • Hi Kameron

    I am supplying power through a charger and using a buck converter for a constant voltage. I keep enabling and disabling it after a set time. I am using the same voltage for the main bus and the MAX channel. Why is this issue occurring only on channel 3 and not on channels 0, 1, or 2, despite using the same voltage?

     Regards

    syam

  • Hi syam,

    Are you saying that you are seeing the SDA  in your system  line pull down even when the VCC of the mux is unpowered?(This shouldn't happen because all the channels of the switch are unpowered and Hiz when VCC is 0V.

    ( Basically if the mux is unpowered there shouldn't be a way for the SDA line to be pulled low from the downstream channels of the mux)

    Are you plugging in the same i2c device that is causing the issue  on channel 3 onto channels 0-2 as well?

    Are there waveforms and a schematic I can see to help more here?(This might be a system level design problem but I can take another look to confirm if the mux is the problem)

    Please let me know 

    Regards,

    Kameron

  • Hi kameron,

    I hope you are doing well. I am working with two TCA9544A 4-channel I2C multiplexers on the same board, with the multiplexers located at different positions on the board. Additionally, my microcontroller is positioned farther away from both multiplexers.

    I have configured the system as follows:

    • I have placed pull-up resistors (4.7kΩ) on the SDA and SCL lines only on the microcontroller side.
    • The two TCA9544A multiplexers are positioned farther from the microcontroller and do not have pull-up resistors on the SDA or SCL lines on their side.

    Given this setup, I have a few questions:

    1. Are the pull-up resistors on the microcontroller side sufficient for both I2C multiplexers, or do I need to add additional pull-ups on the multiplexer side, even though they are located farther from the microcontroller?

    Channel Pins (CH0-CH3): Should I add pull-up or pull-down resistors to the channel selection pins (CH0-CH3), or is it acceptable to leave them connected directly to the logic levels (high or low) from the microcontroller?

    Regards
    Syam

  • Hi Syam,

    1.Yes you need to add pullup resistors on all SDA and SCL lines of the multiplexer. In I2C communication the pull up resistors on the SDA and SCL lines are important to produce the logic High Signals. Here is a app note that explains this principle in i2c.

    2.The Channel pins also need to be connected to pull up resistors as the help produce the correct Logic High signals for communication between a i2c master(controller) and( target) slave

    This is a example of how your system should look with a i2c switch/multiplexer.

    Please let me know if any other assistance is needed here.

  • Hi kameron

    I designed it like this, and I gave the same pull-up resistor value for every slave and the master side as well

  • Hi Syam,

    This schematic looks correct and if there are any problems with the TCA9544A  please let me know and I can assist.

    Regards,

    Kameron

  • Hi kameron

    I have put in master side only pullup resistor but not connected any pull resistor to Slaves but my circuit works

  • Hi Syam,

    Great to here your circuit is working now!

    I am not sure if I am following here but are you saying you did not connect pull up resistors on the SDA0,SCL0 through SDA3,SCL3 lines?

    I2C Communication cannot work properly if both i2c masters and slaves do not have pull up resistors.

    This is because I2C slaves and masters are open drain and need pull up resistors to send Logic High signals. 

    If you have any other questions or help needed on the TCA9544A please let me know

    Regards,

    Kameron