TAS2781: TAS2781 Audio Output Issue: SPI vs I2C Communication

Part Number: TAS2781


Hi TI Team

Currently, I am encountering an issue with the TAS2781. When using SPI communication, I am unable to produce any sound. However, after switching the communication method to I2C, the device works normally and outputs sound through I2C communication. What could be the reason for this?

On the hardware side, regardless of whether it is configured for SPI or I2C, I have confirmed that the communication is functioning correctly because the values I write to the registers can be read back as modified. Additionally, the configuration I applied to the TAS2781 is based on the content from the datasheet, as provided below:
image.png
image.png
Best Regards
keith

  • Hi Keith, 

    the same register writes should be working in the SPI mode. 

    A few items we can try/ check

    • Can you once readback the value of register 0x02 on book0 page 0 to ensure the device is in active mode?
    • Can you try setting register 0x0A bits 5:4 = 0x1 or 0x2. this will check if the device is trying to read audio data from an incorrect slot. 
    • Can you try just reading all the book 0 page 0 registers in both I2C and SPI mode and checking the difference?
    • Can you try with just a very simple Register configuration. like only writing register 0x02 = 0x00? This should be sufficient to get some audio playback. and it may help us isolate the problem as Hardware issue or configuration issue. 

    Are you using the EVM? or is this some custom board?

    Regards,
    Arthur

  • Hi Arthur

    Thank you for your suggestions. I am using custom board.

    1. Yes, I can read back register 0x02 in book0, page0. Its default value is 0x1A, and after I complete the initialization, the readback value becomes 0x00.

    2. Okay, I tried writing 0x1A or 0x2A to register 0x0A, but in neither case could I get audio output.

    3. Hmm, that is precisely what I was planning to verify next. I intend to use the EVM for validation, which will likely take some time. I would like to confirm with you first: on the EVM, is simply changing the J19 setting to connect pins 2<->4 sufficient to enable control of the TAS2781 via the 1.8V SPI interface?

    4. On the EVM, I tried using I2C to write only 0x02=0x00, which did not produce sound. However, sound was achieved after simultaneously writing the following registers:
      w 70 00 08 #Page 0x08
      w 70 18 00 00 00 00 #0dB volume
      w 70 28 40 00 00 00 #Unmute
      Therefore, sound can be produced using just the following commands:
      w 70 02 00
      r 70 02 01
      w 70 00 08 #Page 0x08
      w 70 18 00 00 00 00 #0dB volume
      w 70 28 40 00 00 00 #Unmute
      However, writing these same registers via SPI to my boardstill yields no audio output.

    Additionally, I encountered a strange phenomenon. When I use the SPI interface to attempt reading a register on page 8, for example, to read address 0x28, I found that after sending the read command [(0x28 << 1) + 1] followed by a dummy byte, the value returned is not 0x40, but 0xFF. The correct value 0x40 is only received after sending a second dummy byte. This seems rather odd. This phenomenon should not be normal. Do you have any comments or insights regarding this behavior? 

    Best Regards
    keith

  • Hi Keith,

    Apologies for the delay, Arthur is OOO. 

    Regards,

    Sebastian