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.

TAS2770: TAS2770 I2S configuration

Part Number: TAS2770

Hello,
We have a TAS2770 audio amplifier connected to the I2s output of a Nordic Nrf52832 µC.
But nothing on loudspeaker output (in green on the attached scope screen)
I've configured the Nrf52 and can see I2S signal (yellow for FSYNC, blue for LBCLK, and purple for SDIN).


I write TAS2770 registers:
I2C0_WriteReg(TAS2770_ADDRESS, TAS2770_BOOKCTL_PAGE, 0); // Page 0
I2C0_WriteReg(TAS2770_ADDRESS, TAS2770_BOOKCTL_REG, 0); // book 0
I2C0_WriteReg(TAS2770_ADDRESS, TAS2770_SW_RST, 1); // software reset
nrf_delay_ms(1);
I2C0_WriteReg(TAS2770_ADDRESS, TAS2770_TDM_CFG_REG0, 0x06); // 48KHz, Auto TDM off, Frame start Low to High
I2C0_WriteReg(TAS2770_ADDRESS, TAS2770_TDM_CFG_REG1, 0x02); // Offset = 1, Sync on SBCLK rising edge
I2C0_WriteReg(TAS2770_ADDRESS, TAS2770_TDM_CFG_REG2, 0x30); // TDM stereo, Word = 16 bit, Frame = 16 bit
I2C0_WriteReg(TAS2770_ADDRESS, TAS2770_TDM_CFG_REG3, 0x10); // Right Ch = TDM slot 1, Left Ch = TDM slot 0
I2C0_WriteReg(TAS2770_ADDRESS, TAS2770_PLAY_CFG_REG0, 0x01); // 11.5 dB gain 5.32Vpk
I2C0_WriteReg(TAS2770_ADDRESS, TAS2770_CLK_CGF, 0x08); // sblk to fs ratio = 32
I2C0_WriteReg(TAS2770_ADDRESS, TAS2770_PWR_CTRL, 0); // power up audio playback with I,V enabled

Is there a bad confuguration?

Here is the reading of the TAS 2770 registers.

TAS2770 reg 0x0 = 0x0
TAS2770 reg 0x1 = 0x0
TAS2770 reg 0x2 = 0x0
TAS2770 reg 0x3 = 0x0
TAS2770 reg 0x4 = 0x0
TAS2770 reg 0x5 = 0x0
TAS2770 reg 0x6 = 0x0
TAS2770 reg 0x7 = 0x6
TAS2770 reg 0x8 = 0x0
TAS2770 reg 0x9 = 0x8
TAS2770 reg 0xa = 0x6
TAS2770 reg 0xb = 0x2
TAS2770 reg 0xc = 0x30
TAS2770 reg 0xd = 0x10
TAS2770 reg 0xe = 0x0
TAS2770 reg 0xf = 0x2
TAS2770 reg 0x10 = 0x0
TAS2770 reg 0x11 = 0x4
TAS2770 reg 0x12 = 0x6
TAS2770 reg 0x13 = 0x7
TAS2770 reg 0x14 = 0x8
TAS2770 reg 0x15 = 0x14
TAS2770 reg 0x16 = 0x76
TAS2770 reg 0x17 = 0x10
TAS2770 reg 0x18 = 0x6e
TAS2770 reg 0x19 = 0x1e
TAS2770 reg 0x1a = 0x58
TAS2770 reg 0x1b = 0x1
TAS2770 reg 0x1c = 0x14
TAS2770 reg 0x1d = 0x4e
TAS2770 reg 0x1e = 0x0
TAS2770 reg 0x1f = 0x0
TAS2770 reg 0x20 = 0xfc
TAS2770 reg 0x21 = 0xb1
TAS2770 reg 0x22 = 0x0
TAS2770 reg 0x23 = 0x0
TAS2770 reg 0x24 = 0x0
TAS2770 reg 0x25 = 0x0
TAS2770 reg 0x26 = 0x40
TAS2770 reg 0x27 = 0x8d
TAS2770 reg 0x28 = 0x50
TAS2770 reg 0x29 = 0x79
TAS2770 reg 0x2a = 0x30
TAS2770 reg 0x2b = 0xa1
TAS2770 reg 0x2c = 0x0
TAS2770 reg 0x2d = 0xa4
TAS2770 reg 0x2e = 0x80
TAS2770 reg 0x2f = 0x2
TAS2770 reg 0x30 = 0x5
TAS2770 reg 0x31 = 0x0
TAS2770 reg 0x32 = 0x81
TAS2770 reg 0x33 = 0x0
TAS2770 reg 0x34 = 0x0
TAS2770 reg 0x35 = 0x0
TAS2770 reg 0x36 = 0x0
TAS2770 reg 0x37 = 0x0
TAS2770 reg 0x38 = 0x0
TAS2770 reg 0x39 = 0x0
TAS2770 reg 0x3a = 0x0
TAS2770 reg 0x3b = 0x0
TAS2770 reg 0x3c = 0x8
TAS2770 reg 0x77 = 0x17
TAS2770 reg 0x7d = 0x10
TAS2770 reg 0x7e = 0xdc

The register 0x77 is read at 0x17, so FS_RATE_V = error condition. Why do I have this fault? How is it triggered?


Thanks for your help.

Eric

  • Hello Eric,

    Welcome to E2E, and thank you for your interest in TAS2770

    Do you mind sharing your EVM setup? When you reply with attachment, make sure you attach the images via "insert media and not via paste. Or you send the setup to me via E2E direct message

    Here are some suggestions you can try while we debug this.

    • Have you try changing SBCLK to FSYNC ratio (perhaps to 64)?
    • If your word length is 16 bits, can you reassign the channel slots (e.g. Ch1 to slot 0 and Ch2 to slot 2)?
    • Double check the jumper setting is set correctly for external I2C and I2S/TDM

    Another work around for this issue is you can also try connect the device to PPC3, configure your device in it, and export the I2C commands. Then use the exported commands to configure the device via external I2C.

    Let me know if these steps resolve your issue. Feel free to post any questions.

    Regards,

    Jin Gao

  • Hello Jin,

    Thanks for your reply.

    After several unsuccessful tests on my card, now i plug in the eval TAS2770EVM card.

    Now I can send the I2S signal generated by the NRF52832 of my card on the EVM I2S input connector and test different configuration using PPC3.

    For the moment I have no result, I only have a crackle on the speaker output instead of a sine at 440Hz.

    I will try your suggestions and  I will give you the results.

    Best regards,

    Eric

  • Hello,

    With correct slot channel, I have a signal on the speaker output.

    For it to work properly, I must first send the I2S signal before activating the amplifier with register 0x02. when I do the reverse, there is nothing on output.

    Eric

  • Hello Eric,

    The procedure seems correct. I2S must be present before the device is enabled. If there is no clock input, the device will disable itself due to clock error. A proper procedure should be along the line of power the supply -> initialize and power up the device -> enable the device. You can initialize the the device without the clock, but the device should still be enabled last.

    Let me know if this clears your concern. Please reach out if you have further questions.

    Regards,

    Jin Gao 

  • Hello Jin,

    All is clear, thank you

    Regards,

    Eric