• Resolved

TAS5805M: Current reduction when entering in Sleep, Hiz and Deep Sleep Modes is less than expected

Intellectual 860 points

Replies: 18

Views: 164

Part Number: TAS5805M

Hi.

I am using TAS5805MEVM to play audio through SPI from a CC1310 MCU.

My setup is:

- Device B (0x5A I2C address) in Mono 1.0 PBTL mode using left channel with AGL/OTFB activated

- 4ohm 40W speaker

- Process Flow 3-Band DRC & FIR (1.0 48k) with manual fs (44.1kHz) and BCK ratio (32·fs) selection

- Hybrid Mode with PVDD=22V

- PWM Switching Frequency=384k and Class D Loop Bandwidth=80kHz

- I2S clocks normally stopped. Clocks are ON only when playing audio

When I make TAS5805M enter in Deed Sleep mode I only see a 7mA reduction: from 64mA in Play Mode (with no audio, nor clocks) to 57mA in Deep Sleep Mode. The current is measured from the 22V PVDD supply.

From the 7.5 Electrical Characteristics of the TAS5805M datasheet I expected a reduction in order of 18mA:

a) Icc on DVDD (3.3V): Play Mode (18mA) - Deep Sleep Mode (0.75mA) = 17mA approx -> From the PVDD (22V): 2mA approx

b) Icc on PVDD (13.5V): Play Mode (16.5mA) - Deep Sleep Mode (120uA) = 16mA approx -> From the PVDD (22V): more than 16mA

Why this difference?

Moreover, I don't see any reduction when I make TAS5805M enter in Hiz or Sleep Modes: current from the 22V PVDD supply is always 64mA as in Play Mode (with no audio, nor clocks)

Why this unexpected behaviour?

  • Hello Juan,

    Can you provide the script where the customer is trying to enter the device in hi-z/sleep modes.

    Best regards,

    Luis

  • In reply to Luis Fernandes de Pina:

    Hi, Luis.

    I follow the procedure described in 9.4.5 Device State Control of the TAS5805M datasheet:

    Enter/Exit in Sleep Mode:

    w 5A 00 00 #Go to page 0
    w 5A 7f 00 #Change the book to 0x00
    w 5A 03 01 #Change the device into Sleep Mode
    ----------------------------------------------
    w 5A 00 00 #Go to page 0
    w 5A 7f 00 #Change the book to 0x00
    w 5A 03 03 #Change the device into Play Mode

    Enter/Exit Hiz Mode:

    w 5A 00 00 #Go to page 0
    w 5A 7f 00 #Change the book to 0x00
    w 5A 03 02 #Change the device into Hiz Mode
    ----------------------------------------------
    w 5A 00 00 #Go to page 0
    w 5A 7f 00 #Change the book to 0x00
    w 5A 03 03 #Change the device into Play Mode

    Enter/Exit Deep Sleep Mode:

    w 5A 00 00 #Go to page 0
    w 5A 7f 00 #Change the book to 0x00
    w 5A 03 02 #Change the device into Hiz Mode
    w 5A 03 00 #Change the device into Deep Sleep Mode
    ----------------------------------------------
    w 5A 00 00 #Go to page 0
    w 5A 7f 00 #Change the book to 0x00
    w 5A 03 02 #Change the device into Hiz Mode
    w 5A 03 03 #Change the device into Play Mode

    Regards,

    Juan Pablo Novo

  • In reply to Juan Pablo Novo:

    Hello Juan,

    When you readback the registers do you see it correctly updates.

    I will collect some data on the EVM by tomorrow.

    Best Regards,

    Luis

  • In reply to Luis Fernandes de Pina:

    Hi, Luis.

    Yes, when I readback the DEVICE_CTRL_2 Register (0x03) after writing the new state I get correct values. And while in Sleep, Hiz and Deep Sleep Modes I don't get audio in speaker, so it seems not to be in Play Mode as expected.

    But I have notice something strange while reading the POWER_STATE Register (0x68): When I return to Play mode (from any other state) this register shows 0x02 (Hiz) instead of 0x03 (Play), although I get audio in the speaker and all seems to work Ok. When I change to Sleep, Hiz or Deep Sleep Mode, this register shows correct values.

    ---------------------

    Edited:

    POWER_STATE Register (0x68) shows correctly 0x03 value while in Play Mode when I start clocks and send audio thought SPI.

    So I suppose TAS5805M enters automatically in Hiz Mode while I am not playing audio and keep clocks stopped.

    That explain why there is no current reduction when I force entering in Hiz Mode: TAS5805M was already in Hiz mode!

    And that also explains the low current reduction when entering in Deep Sleep Mode: From Hiz Mode to Deep Sleep Mode the current reduction should be about 10mA. Although I get only 7mA, it makes more sense now.

    But this 3mA gap that exists from expected current reduction value when it changes from Hiz to Deep Sleep Mode, is the same 3mA gap that should occur (and doesn't) when going from Hiz to Sleep Mode. This is the only thing that remains unexplained...

    Perhaps, TAS5805M actually is in Sleep Mode while no clock are on, although POWER_STATE Register shows Hiz Mode?

    Regards,

    Juan Pablo Novo

  • In reply to Juan Pablo Novo:

    Hello Juan,

    Can you try using the state control in the TAS5805 GUI as highlighted in this and redo the current measurements for the different states. It should be more inline for your expectations in current reductions.

    Best regards,

    Luis

  • In reply to Luis Fernandes de Pina:

    Hi, Luis.

    I have just test changing the state from the GUI and the results are the same as if I change it programming with the MCU or switching the registers directly with PPC3 via PC:

    a) From auto Hiz Mode to Sleep Mode: 0mA

    b) From auto Hiz Mode to Deep Sleep Mode: 7mA

    I have tried it in both devices (A and B) with same results.

    In your tests do you see a current reduction changing from Hiz to Sleep modes?

    Regards,

    Juan Pablo Novo

  • In reply to Juan Pablo Novo:

    Hello Juan,

    When i tested on the EVM, where PVDD is powering the whole system. I saw an overall 6mA current reduction from HiZ to Sleep mode, which would be ~3mA reduction for each TAS5805M.

    Best regards,

    Luis.

  • In reply to Luis Fernandes de Pina:

    Hi, Luis.

    I have been doing some more tests with interesting results. See attached spreadsheet: Current measurements.xlsx

    The basic setup is the same as stated in my first post. Additionally Device A of the EVM is kept in Deep Sleep Mode in all tests.

    I will try to explain some aspects of the table but ask me anything you find difficult to understand:

    - I2S Clocks:

    • Ready before init: Yes, when I start I2S clocks before TAS5805M initialization. No, when I start clocks after TAS5805M initialization.
    • Active: Always, when I2S clocks are running continuously. While playing, when I2S clocks are normally stopped and are activated only while playing the audio.

    - TAS5805M initialization: PPC3, when I enter Tuning and Audio Processing in PPC3 and it initializes the EVM. '.h dum file', when I use the header file generated by PPC3 Dump Current State option in the CC1310 program.

    - Mode changes by: PPC3 (Tuning GUI and registers), when I change the TAS5805M modes manually through the PPC3 interface. CC1310 programming (I2C), when I change the TAS5805M modes through CC1310 program using I2C.

    - Play (no audio) current measurement: First, while in Play Mode with no audio and before any audio output. Rest, while in Play Mode with no audio but after some audio played. In comments I explain that it is possible to return to a low Play (no audio) current state if mode is changed to Sleep/Deep Sleep and back to Play again.

    I have included some cases with I2S clocks not ready before initializing because it was my starting setup: I only started clocks just before starting playing audio and stopped them just after stopping audio.

    In all cases audio is played and listened at the same volume with no problem other than the OC fault that triggers in some of them.

    In each case I have highlighted some facts I think related:

    - Case 3, 5 and 7: If I2S clocks are not ready before the TAS5805M initialization sequence begins, there is a very big increment of the current drawn while playing audio. Moreover, that current is drawn continuously after the first audio played while in Play Mode although there is no audio playing actually. The only way to return to a low current state is to change from Play Mode to Sleep or Deep Sleep Mode and then go back to Play Mode. Hiz Mode is not an option because, after going back to Play Mode, the current drawn is the same high current.

    - Case 8 and 10: Using the header file dumped by PPC3 to initialize TAS5805M though CC1310 has the same effect as if I2S clocks were not ready before the initialization although I have made sure the clocks were running before the initialization.

    - Case 3: With fs auto mode and the I2S clock not running before TAS5805M initialization, an OCP triggers every time there is a mode change from Deep Sleep to Hiz or from Hiz to Play.

    - Case 4, 6 and 9: Setting manually fs and BCK ratio instead of auto, produce a current drawn reduction while in Play Mode.

    - Case 5: Setting manually fs and BCL ratio instead of auto, manages to avoid OC faults like in the Case 3

    - Case 6, 7 and 8: When changing modes by programming with CC1310, a minimum delay of 30ms between Deep Sleep and Hiz modes is needed to avoid an OC fault. When manually changing between modes using the PPC3 GUI (cases 1-5) I think it is not apparently needed because the time used to click into the options is bigger.

    - Case 9 and 10: If I2S clocks are activated only while playing, the OC fault only can be avoided if the delay is over 12s. Moreover, there is no difference in the current drawn between Sleep and Hiz modes (it is like if while no I2S clocks are running Hiz Mode is the same as Sleep Mode)

    The results make me think that all issues I have reported are related: "Over Current Channel Fault when playing audio after exiting Deep Sleep Mode" and "Over Current Channel Fault when using Process Flow 3-Band DRC & FIR (1.0 48k) while not providing fs and BCK ratio manually"

    The cases I need to make them work are 8 and 10, as I need to make TAS5805M be initialized by CC1310. Case 10 should be better because it has less power consumption, but case 8 could work too as my power source will not be a battery.

    In both cases I need to resolve the initialization problem. It seems like the header file generated by PPC3 does not have the same initialization sequence that PPC3 uses by its own when entering in Tuning and Audio Processing GUI. That makes a very big increment in current drawn while in Play Mode in both cases and the OC fault in the last case. I need them work as case 6: low current drawn in Play Mode and no OC fault. Could you help me to get this?

    Regards,

    Juan Pablo Novo

  • In reply to Juan Pablo Novo:

    Hello Juan,

    Can you upload the PPC3 file you are using to initialize your device/generate your header dump file. It will be helpful so I can correlate the results. Also what signal/output power is for the conditions play(with audio) in your table.

    Best Regards,

    Luis

  • In reply to Luis Fernandes de Pina:

    Hi, Luis.

    I have attached a ZIP with next files inside:

    • 0000.wav: Audio file used under play condition
    • Ampli - Modified startup sequence.h: Header file generated by PPC3 dump file utility modified with the suggested start up sequence to try to avoid OC faults
    • Ampli - Original startup sequence.h: Original header file generated by PPC3 dump file utility
    • AVJDS_flujo2.ppc3: PPC3 file with the setup used for the tests (as you probably know you must set fs and BCK Ratio manually through the Register Map page as there is no option to set this through the Tuning and Audio Processing page and then it is not saved in the PPC3 file)

    Test files.zip

    I have tried with both headers files with same results.

    I have not set a power objective for the tests, just played the audio test file with these gains (already set up in PPC3 file):

    • Analog Gain = -4dB
    • Digital Gain = 0dB
    • DAC Gain = -20dB

    Regards,

    Juan Pablo Novo