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.

TAS5721: TAS5721 does not communicate over I2C

Part Number: TAS5721

Hello, I have built custom board with TAS5721. Unfortunately I haven’t done any testing of the design before building actual PCB, and now I’m paying the price. Here’s the situation:

 - For the application schematic, I have used „2.1 System” application example from the data sheet

 - Circuit is getting all the necessary supplies: AVDD/DVDD 3.3V, PVDD 13V

 - Circuit is drawing about 40mA summary from all power supplies

 - Before any testing, i’m trying to do reset sequence (PDN low, RST high, PDN high, cycle RST low-high)

 - I can’t get the chip to communicate over I2C. I’m using Raspberry Pi i2cdetect tool (PCB is an RPi hat) which basically transmits I2C packets with addresses from 0x0 to 0x77, and checks if SDA bus is pulled low, where acknowledgment from slave should be, during transmit of subsequent packets, and registers addresses that got the ack on SDA. TAS is not pulling SDA low neither on 0x34 or 0x36 (I have tried both pull up and pull down resistor on ADDR/FAULT pin), so it seems like i2C state machine inside the chip is not working properly (or at all). In result, i2detect doesn’t show anything on 0x34/0x36 addresses.

 - I have checked I2C bus with oscilloscope - I2C transmission seems ok, SDA stays in fact high on both 0x34 an 0x36 packets where acknowledgment from slave should be - there is no response from TAS. 

I need to start from minimal application which will get TAS5721 to communicate over I2C, and my question is: what are minimal necessary parts/signals in the application to get TAS5721 to respond on I2C? I’m guessing AVDD/DVDD/PVDD all are necessary, also RST/PDN from MCU to do a proper reset sequence. Which else external components/signals should be there for I2C bus to at least acknowledge an address packet sent to TAS? Is MLCK necessary? From the data sheet i understand that one can run TAS5721 entirely without MCLK present?

Thanks,

WM

  • Hi WM,
    The first thing we need do confirm is the I2C communication. Please read the register 0x00 to see if it's '0x6c' which is the default value.
    The address 0x34 and 0x36 in the datasheet is actually 8-bit format, could you please try with 7-bit address 0x1A and 0x1B?
    Here is the min configuration:
    X1B 00 ! Factory trim
    X21 00 00 42 03 ! Set SubChannel Mixer to (L+R)/2
    X05 84 !Exit Shutdown and configure the device in 2.1 Mode
    X07 30 !Set MAster Volume to 0dB
    Best regards,
    Shawn Zheng
  • Hi Shawn, thanks for the answer. I have built yet another prototype PCB, with minimal components, and this time i am able to communicate with TAS5721 over I2C using 0x1B address. So far i have checked 0x00 register and it indeed reads 0x6c. Probably i had to make some error during assembly of first prototype. Also thanks for the example of initialization sequence - hopefully i'll be able to try it out after i'll finish assembly of second (this time working) prototype.

    Thanks again!

    WM