tonyp7 / TAS5806M-Audio-Amplifier

A simple board for Texas Instrument's TAS5806M Stereo, 23-W stereo Class-D Amplifier
MIT License
21 stars 2 forks source link

TAS5805M #2

Closed tjacobs closed 3 years ago

tjacobs commented 3 years ago

Hi again Tony,

Thanks for the response last time on your TAS5805M project.

I have an issue with my TAS5805M based project - the amp works fine, when it works; but often, it doesn't start up correctly.

When it doesn't work, it's detected via I2C fine, and I'm sending it the data fine, but no sound comes out. But - I've found that when I short pin 25 (BST_A+) to ground briefly, it starts playing! This fixes it most every time. And if not I just do it again and it does. This happens on three different revisions of the PCB I've done. I've had to connect that pin to a button that the user can press to make the thing start working. But I don't want that to be the solution. 👎 :-) I could connect that pin to a FET to drive it low from the MCU on startup, but I don't really want that to be the solution either. I'm using the recommended 4x 0.22uF ("CAP CER 0.22UF 16V X7R 0603") as the boost capacitors, close to the chip.

Any ideas why the amp would do this? Is it not getting that voltage boosted up enough do drive the internal output FETs? Or is it getting into some broken state that is fixed by shorting that, that resets it?

I noticed that when it's playing fine, that pin is at 10.3V (I run the amp on 13V), and when it's stopped, it's at 4.5V. And most importantly, when I'm feeding the amp data and it should be playing but isn't, that pin stays at 4.5V.

Spec sheet just says put capacitors there: https://www.ti.com/lit/ds/symlink/tas5805m.pdf

tonyp7 commented 3 years ago

To be honest I did have the kind of problems you mention on the TAS5805M where sometimes the sound didnt start. I would just reset the board but I have not tried to short one of the BOOST trace.

I assume the chip is just very picky compared to some other amps. You should definitely read the error register because there should be something in there. Check 70h to 74h you should see a pin set.

For what it's worth, I haven't had an issue with the TAS5806M. Maybe this chip is more mature and less prone to this. I think the layout plays a big role too.

tjacobs commented 3 years ago

ooh, ok, i'll check the error register, thanks

ah, ok, i'll have to spin yet another board for the 06................

tjacobs commented 3 years ago

Are you kidding me! Yes it looks like basically you have to clear analog faults on startup, as most if the time it starts up in a both channels overcurrent error; perhaps something to do with how it detects it as power is applied or caps are charging.

https://www.ti.com/lit/ds/symlink/tas5805m.pdf i2c_read: 0x70: I got value 3 (= Left channel over current fault + Right channel over current fault)

added: // Must clear overcurrent faults on startup i2c_write(0x78, 1 << 7); if (i2c_read(0x70))printf("Fault starting speaker amp.\n");

And it took it from not working state to working! Yay. Thanks so much!

tonyp7 commented 3 years ago

Thanks for sharing the solution!