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.

TAS5805M: I2C pins drive strength

Part Number: TAS5805M
Other Parts Discussed in Thread: TAS5805, TXS0102

Tool/software:

Hello there,

In one of my designs I used the TAS5805M in combination with an MCU developer board. While programming/debugging we encountered some timeouts. After lowering the clock speed to 100kHz and after an inspection with an oscilloscope, we found that the acknowledge and other zero bits sent from the TAS5805M were nowhere near 0V, the voltage level was around 500mV. According to the datasheet, a digital low is defined as low if the voltage is below 30% of the digital supply voltage (in our case 1.8V * 0.3 = 0.54V). So we assumed this caused our problem and focused on the pull-up resistors.

It turns out the pull-up resistors were 1.8kΩ and placed on the MCU developer board. According to the following TI application report (https://www.ti.com/lit/an/slva689/slva689.pdf?ts=1756190581330), the minimum pull-up resistor at 1.8V could be about 700Ω. So our pull-up resistors are well above 700Ω, which means that the TAS5805M should be able to communicate by pulling the SDA line low.

Nevertheless, we replaced the 1.8kΩ resistors with 4.7kΩ resistors. Now the voltage level (during the acknowledge and zero bits) was about 200mV, which is well below the 30% threshold. This also fixed our timeout errors. But I would like to know what the maximum sink current of the SDA pins of the TAS5805M is, so I can determine whether this permanently solves our issue or if we need to investigate further.

According to paragraph 6.5 of the TAS5805M datasheet, the "Input logic low current level for DVDD-referenced digital input pins" is -10µA, which does not seem correct for the I²C pins of the TAS5805M.

I hope you can help.

Kind regards,
Teun Noordkamp

  • Hello,

    Can you elaborate on the timeout errors? What were you observing? Do you have any thing else on this I2C line or is it jump amplifier to host? Was the output of the amp I2C in alignment with what the host expected? Was the issue only observed with TAS5805 I2C output to host or input from host? 

    It does sound to me that the pull ups were your issue. I believe the sink current for output I2C (not input current level which is 10uA), is 2mA. 

    Regards,
    Sydney Northcutt

  • Hello Sydney,

    Thanks for your reply. Today I will attach the oscilloscope again and I will place the screenshot on this forum. If the sink current is 2mA the 1.8 Kohms shouldn't be a problemen (1.8V/1800=1mA).

    Kind regards,

    Teun

  • Hello Sydney,

    Today I investigated our problem, and I found the issue. It was a combination of design choices that caused the communication error. For EMC reasons and as protection, we normally add a 1kΩ resistor in series with data lines. Because the voltage level in this application is not 3.3V but 1.8V, we changed it to 470Ω. In combination with a 1.8kΩ pull-up, this results in a digital low voltage of about 372mV.

    However, in our application we also have some 3.3V devices, so we used a TXS0102 level converter, which has an internal 10kΩ pull-up resistor. This makes the total pull-up about 1.5kΩ, which results in a voltage level of about 425mV—possibly (in our application it was) too high for a valid digital low.

    To fix this issue, I replaced our 470Ω resistor with a 0Ω resistor.

    So it turns out it was our own overly conservative design.

    Kind regards,
    Teun