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.

TCA9548A: Pull Up

Part Number: TCA9548A

Hi team,

Do I have chance to use 1 pair pull up resistors for all I2C outputs of the TCA9548A or do I have to use pull up resistors for each outputs individually?

I'm not going to use those outputs at the same time. After one transaction complated i will switch next output so on.. 

(Voltage levels will be 3.3V for each I2C outputs.)

Thank You.

  • Hello Mett,

    Figure 13 of the datasheet shows an example of how to use the TCA9548A.

    The main SDA/SCL lines are seperated from the other channels with a pass FET so the other sides do not see the main SDA/SCL pull up resistors. You will need to have a pair of pull up resistors on each channel even if you are turning them on one at a time.

    Thanks,
    -Bobby
  • Thanks for reply TRX Bobby,

    I understand that I will use a pair of pull up resistors for main I2C, so this answer solves my input side of the circuit. But there are 8 output channels and are those can be pulled high with a pair of pull up resistors? If it is not what is the main reason of populating individual pull-up resistors for each channel?

    Regards.
  • Hey Mett,

    "there are 8 output channels and are those can be pulled high with a pair of pull up resistors?"

    Below is figure 13, you can see that all the channels have pull up resistors.

    "what is the main reason of populating individual pull-up resistors for each channel?"

    This is how I2C works. I2C is a open drain architecture which means the master/slave has the ability to drive the lines low but CANNOT pull the line high by itself. The high signal is generated by a pull up resistor.

    If you did not populate a pull up resistor on any of the channels then they would be floating and can drift low or high depending on noise in the environment or on the PCB (cross talk/GND shifts/ ect.). Any Slave on the bus may see a rising/falling edge on the clock line as a pulse and you could get a glitched slave.

    Lets assume you do populate pull ups on the main channel and enable channel 1 and do not have pull ups on channel 1. When the channel 1 drifts low enough, the pull up on the main channel would supply current to Channel 1 and pull the signal up BUT only until VGS=Vth of the pass FET (this is how pass FETs work). That means Channel 1 would always see a high voltage of Vcc-Vth.I think this device has a Vth of around 1.1V. In your example your I2C slave would see 2.2V (3.3-1.1) as the high level however the I2C standard states ViH is 0.7*Vcc which in your case is 2.31V (3.3*0.7) while it is only seeing 2.2V...... This means your slave will never see a logic high and would only interpret the line as LOW the entire time. When you disable CH 1, the high voltage will likely float back down to GND.......

    Simply put, if you do not populate pull up resistors on the channels, you should not expect the slave devices on the other channels to work. The main channel with the pull up resistors could work but you may see the high logic on the main channel to float between Vcc and Vcc-Vth as well because it has supply current to enabled channels when they drift below Vcc-Vth.

    Thanks,

    -Bobby