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.

TLV320AIC3254: How to mute during stoping I2S data from master?

Part Number: TLV320AIC3254

Dear Technical Support Team,

 

I have some questions about AIC3254.

 

Q1.)

I'd like to mute DACs if I2S input data is nothing from master.

Could you suggest the way with music_detect on pure path?

My idea is below. I think music_detect's output connects GPIO and host CPU/MCU receives it.

Then host should control volume mute register of AIC3254 through I2C.

The volume component doesn't have mute port , so I didn't connect music_detect's output to volume directly.

If  you have more better solution, please let me know.

 

I worry about unexpected behavior like hung up,

because Master sometimes stops and restarts I2S on some condition of system.

 


 

Q2.)

If I2S data from master stops, then BCLK and WCLK stops ,too.

What clocks are used for miniDSP? For example, music_detect needs to operate during I2S stops(BCLK and WCLK stop).

Dose miniDSP operate with MCLK then ?

 

Best Regards,

ttd

  • Hi,

    A1.) I agree with your idea. The GPIO1 should be enough to send a pulse/interruption to your MCU when music is / is not detected. In that way, the MCU can send an I2C command to mute the device until the music is detected again.

    A2.) The miniDSP clock may be generated from BCLK or MCLK. If the BCLK and WCLK stop, you would need to generate the miniDSP clock from the MCLK. Please take a look at the clock distribution tree for details (ADC_CLK and DAC_CLK are used as miniDSP clocks).


    www.ti.com/.../slaa408a.pdf

    Best regards,
    Luis Fernando Rodríguez S.
  • Hi Luis Fernando Rodríguez S,

     

    Thank you for your reply.

    I tried music_detect with GPIO_Output.

    Following scope is GPIO_Output.

    It is always this behavior, play music or not.

    I expect that "play music GPIO High" and "not play music ⇒ GPIO Low".

     


     


     

    ■Purepath Project File

    If possible, could you check the pure path project?

    3326.AIC3254.zip

     

    Best Regards,

    ttd

  • Hi, ttd,

    The GPIO interruption doesn't work in that way. The GPIO sends an interrupt of 2ms approx or multiple pulses of 2ms until the flag is read.

    You would need to configure Page 0 / Registers 48 - 49 (INT1 and INT2 respectively) in order to use a high interrupt of 1 pulse of approx 2ms duration or a train pulses.

    Best regards,
    Luis Fernando Rodríguez S.
  • Hi Luis Fernando Rodríguez S,

    Thank you for your reply.

    I expected that "play music ⇒ GPIO High" and "not play music ⇒ GPIO Low" based on music_detect,

    but in fact, I understood your comment that GPIO output is interruption behavior.

    When CPU/MCU gets this GPIO interruption(2ms of 1pulse or 2ms of pulse train),

    what register should CPU/MCU read to get condition of playing music or not through I2S?

    I guess it should read music_detect below, but I don't what register is for its "Output(3.xx format)"

    Best Regards,

    ttd

  • Hi, ttd,

    I would recommend to use the GPIO as interrupt to enable or unmute the analog outputs. You may use the Page 1 / Register 9 to power down or up the outputs. This will reduce the power consumption.

    Best regards,
    Luis Fernando Rodríguez S.