Post Go back to editing

MAX98390 DSP Enable Causes Playback Issue and Overcurrent Interrupt

Thread Summary

The user encountered sound playback stopping and overcurrent (OVC) errors when enabling MAX98390 DSP features (0x23E0 register). The solution involved disabling the thermal protection (THERMAL_PROT_EN) bit, which resolved the issue. Additional checks confirmed that the problem was not related to speaker capacitance, inductance, or specific speaker models, and occurred across different sampling rates and clock sources.
AI Generated Content
Category: Hardware
Product Number: MAX98390
When I enable any of the MAX98390 DSP bits (0x23E0) — such as STEREO_BASS_EN, WBDRC_EN, EQ8_EN, BASS_EXT_EN, EXCURSION_PROT_EN, PPR_EN, or DEBUZZER_EN — the sound playback stops, and the overcurrent bit in the interrupt register is triggered (SPK_OVC_STATE in 0x2006 register).

I’ve ensured that the DSP bits are enabled before setting the DSP global enable and the global enable. noting, when the DSP bits are disabled, playback works without any issues.

What could be causing this behavior? Is there something specific I might be missing in the configuration or initialization process?

Edit Notes

editted
[edited by: AliRazavi at 10:27 AM (GMT -5) on 25 Jan 2025]
  • Hello AliRazavi,

    I am not the support person for this product but I know enough to know that we need more information. too much capacitance or inductance on the outputs can cause things like this. Please provide the schematic of what you have connected to the output and the specifications of the speaker driver. 

    I will notify the correct support engineers to help you but they will need some more info. 

    Thanks,

    Dave T

  • Hi, thanks for your response.


    1.The UVLO and OVC error bits in the 0x2006 register are triggered during the issue. Sometimes the UVLO bit, sometimes the OVC bit, and sometimes both are triggered together.

    2.If no speaker is connected, no errors appear in the 0x2006 register, suggesting that the issue is not related to the capacitance or inductance of the speaker path. (Note: There is no EMI filter in the speaker path.)

    3.I tested the setup with different speakers (1W and 5W), but the issue persisted in both cases.

    4. The issue occurs even when DSP bits such as PPR_EN or DEBUZZER_EN, are enabled which are unrelated to loudness. if the DSP bits are disabled(0x23E0), the playback works fine, even at high volume.

    5.I tested different sampling rates, including 8 kHz and 48 kHz, but the issue remained.

    6.I used different clock sources, including MCLK (12 MHz) and BCLK (256 kHz), and the issue persisted.

    this is my code:

    status = HAL_I2S_Transmit_DMA(&hi2s1, (uint16_t *)i2s_tx_buffer, NUMBER_OF_SAMPLES);
    HAL_GPIO_WritePin(GPIOC, GPIO_PIN_9, GPIO_PIN_RESET); //for reset
    osDelay(500);
    HAL_GPIO_WritePin(GPIOC, GPIO_PIN_9, GPIO_PIN_SET); //for reset
    osDelay(500);
    send_amp_command(0x2000, 0x01); //software reset (reset is auto-back)
    send_amp_command(0x201B, 0x01); //channel A0 is enabled
    send_amp_command(0x2026, 0x22); //BCLK to LRCLK ratio is 32
    send_amp_command(0x2027, 0x00); //sample rate is set to 8K 0x00 0b1000
    send_amp_command(0x2024, 0x40); //two bytes, I2S, others to default
    send_amp_command(0x2041, 0x04); //Normal Boost Operation with 7v
    send_amp_command(0x207A, 0x00);//Disable boost envelope tracker
    send_amp_command(0x203F, 0x11); //Enable speaker voltage and current measurement
    send_amp_command(0x23BA, 0x64);//set DSM volume to -30dB
    send_amp_command(0x207D, 0x2A);//set boost converter to boost mode (no automatic, no bypass)
    send_amp_command(0x2021, 0x00); //PCM channel source0

    send_amp_command(0x23E0, 0b00000100); //STREO_BASE, DRC, EQ, BASS_EXT, EXCUR, PPR, DEBUZZER,THERMAL
    send_amp_command(0x23E1, 0x01); //DSP global enable
    send_amp_command(0x23FF, 0x01);//global enable
    osDelay(500);
    recv_amp_command(0x2006, &value);//important register for checking power up success

    this my schematic and PCB

  • Hello AliRazavi,

    Suspicion is that the DSM Thermal Protection algorithm is preventing sound output.

    Recommend to try the following:

    • Enable all DSM/DSP functions *except* THERMAL_PROT_EN (LSB of 0x23E0 should be set to 0).
    • Does the sound playback work?

     

    Quick questions for you:

    • Are you using a speaker or dummy load?
    • If speaker, has the speaker been characterized properly using DSM Sound Studio? Parameter Extraction is a necessary step for proper operation using the DSP features (DSM Sound Studio --> Characterize).
    • Has the Characterization data for the speaker been initialized into the IC before performing the test?

    From the schematic review, just two comments:

    • Design overall looks very good.
    • The sense line connections should be connected to SPK1+ and SPK1-. Reason: DSM Speaker Protection algorithm needs the IV sense of the MAX98390D to be able to directly sense the voice coil resistance changes with temperature.

    Regards,

    Michael

  • It has been roughly ten months and no response back so I will assume the last answer from Michael solved the problem. 

    I will mark it as verified. 

    Thanks!

    Dave T