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.

TCA4311A Startup problem

Other Parts Discussed in Thread: TCA4311A, TPS2459, LM3S2965

I am using TCA4311A I2C bus Buffer and i am facing problem in power on startup of this device i.e. the buffer_ready output does not go high.

I have checked the voltages on all pins and the following is observed:

VCC = 3.3V

SDAOUT = 3.3V

SCLOUT = 3.3V

EN = 3.3V

But BUFF_REady output is still 0V... :) and it should have gone high i.e. 3.3V.

Also i observed voltages on 

SDAIN= 1.1V

SCLIN= 1.1V

As the buffer does not let the incoming I2C lines to be connected to outgoing I2C lines untill buffer_ready is high, i am not able to connect the master to slave at all. 

Please suggest me a solution.

Thanks ,

Ankit Kumar



  • Hi Ankit,

    The 1.1V you're seeing on the input side is from the TCA4311A precharging the input bus through a very weak pull-up.  This indicates that there is a problem w/ the SDAIN/SCLIN side external pull-ups.  Please confirm that the external pull-ups are populated and that  the external pull-up supply has been enabled.

    Best Regards,
    Jim

  • Thanks a lot sir..The pull up resistors for SDAIN and SCLIN  are at backplane and i had not inserted the card in backplane while measuring the voltages.

    Now it is confirmed that the buffer is working absolutely fine; also input and output lines are connected.

     Now  the acknowledge comes from TPS2459 but i am not able to write to the register of TPS2459....

    Problem Descritption:

    I have one master card with Stellaris LM3S2965 as I2C master and it is connected to TPS2459 power supply hot hot swap controller ( slave) on I2C Bus  in backplane 

    I am trying to write to the register of TPS2459 but the data is not getting written....although i am able to receive the acknowledgement of the address...

     I doubt the following:

    TPS2459 datasheet suggests 2.2K pull up on SDA line only (not on SCL line). 

    But i have used TCA4311A buffer between controller and the TPS2459.

    And therefore i have used 10K pull ups on both side of TCA4311A

    [not 2.2K pull up on SDA line only..instead 10K on both SDA and SCL (as suggested in datasheet of TCA4311A ) of TPS2459]

    Whether this is the reason for unsuccessful data send/register updating


    The following is the status of registers related to I2C of LM3s2965 in debugger:

    MCR = 0X0010

    MSA = 0X0018

    MCS = 0X0020 

    DATACK, ADRACK, BUSBSY, ERROR , BSY .........ALL THESE BITS ARE RESET

    BUT MDR= 0X0000....I DONT KNOW WHY? 

    Please help.


  • Hi Ankit,

    Just as a sanity check, please confirm that the slave address matches that of the TPS2459.  According to your MSA register, the slave address being written to is "0001100"  (after removing the r/w bit).  This would correspond to A2=L, A1=NC, and A0=NC for the TPS2459.

    If the address is definitely correct and you're not reading back the correct data that you programmed in, then the next step is to confirm that the data on the bus matches the expected data using a scope on both SDA and SCL.  With a repeater on the line, you'll need to look at the waveforms on both sides (i.e. what the master puts on the bus and what the slave actually sees).  One possibility, especially if you're using the max I2C clock frequency, is that the time of flight through the repeater might affect the setup/hold times seen by the master/slave.

    Hope this helps.

    Best Regards,

    Jim

  • Thanks alot...

    I was sending data in single send mode and that is why TPS2459 was not getting written...

    But when i sent in Burst Mode .....it got written...

    Thanks again...