Diy Prop shield - LM48310 Amplifier Shorting at higher volumes

Status
Not open for further replies.

Waterme11on

Active member
Hey guys,

I've been developing my own pcb that is a circuit comprising of the Teensy 3.2, Pjrc Prop shield, and Sparkfun 5v/1A boost converter (to power the Audio amplifier - LM48310).

I'm using the Teensy audio library to send audio to a single 4 Ohm speaker.

The problem I'm having is with my custom pcb, when i go over 0.7 gain with a saw wave at 160hz, the audio amplifier (or potentially the capacitors connected to it) shorts out and completely breaks. The circuit will only function again after i disconnect the broken amplifier , and until then the entire circuit is unresponsive. Everything works perfectly underneath a gain of 0.8, I have also tested full volume on the premade boards and it works without issue.

When the amp died after going up to 0.8 gain, I actually saw the board spark out of the corner of my eye , but I'm not sure exactly where the spark was, other that it was in the area of the audio amplifier.

The only thing I can think of is that my capacitors are placed incorrectly, and running high power through them is causing a short to happen through the air.

I'm attaching screenshots of my pcb design and schematic, if anyone can comment that would be an amazing help!
The board is 2 layers, with a ground pour on the bottom. The audio amplifier has a heat dissipating ground pour on the top layer too.

kicad_2019-10-04_15-27-04.jpgkicad_2019-10-04_15-26-30.jpgkicad_2019-10-04_15-26-40.jpg71502053_2564662050263161_7548444227181477888_n.jpg
 
Does the PJRC Prop Shield also fail this way when it's powered by the Sparkfun board?

If so, that's a pretty sure sign that voltage boosting board may have issues.

If not, I'd try making another rev of your board with the 4.7uF capacitor located right next to the LM48310, as it is on the prop shield. Even though they're fairly close, the positive side routes though a trace and 2 vias before reaching the chip, and the GND side looks like it has to make a path upward away from the chip before reaching the ground pour/plane the chip uses. The capacitor should be located right next to the amp chip with short traces on the same layer.

But my gut feeling is to suspect that Sparkfun board. It has a pretty high switching frequency it's PCB layout doesn't seem to have much consideration for the ground return path between the input and output capacitors. I would not be surprised if it works well under most conditions but goes unstable for certain types of loads. It might end up producing an output of rather high voltage pulses if its control loop goes unstable.

Or if you've integrated that Sparkfun design onto your PCB... well, the placement and routing on the input and output capacitors is critical for success with those sorts of boost converters!
 
Thank you for the advice Paul!
I'm sketching up another revision now, i'll post it here before I go ahead and order more boards.

Is it possible that i could get a gerber view of the prop shield layout so i can replicate it on my board? So far i've been going off visual inspection, but I'm not too sure where the power traces go since the prop shield seems to be a 4 layer board?

Also I had the same thought, that the 5v power supply would be the cause.
However i've been using it with the pjrc prop shield for years now without issue in my prototypes, and after a series of tests wiring up the pjrc boards in conjunction with my board I believe it isn't responsible. eg, i was able to run the teensy and pjrc prop shield from the 5v boost circuit on my pcb without fault. it was only when using my version of the amplifier circuit that the fault occurs.
I've never had any pjrc prop shields fail on me in the same way. You did well on the design :)
 
Okay so I've tried to make it look more like the layout on the prop shield, Is there anything I could improve upon here?

Oh and I was wondering, does the proximity of the 3.3nF capacitors to the 1.0uF input capacitors have to be a consideration?

kicad_2019-10-05_00-46-27.jpgkicad_2019-10-05_00-46-43.jpg
 
Is it possible that i could get a gerber view of the prop shield layout so i can replicate it on my board? So far i've been going off visual inspection, but I'm not too sure where the power traces go since the prop shield seems to be a 4 layer board?


Sure, why not?

Here's just the top and bottom, layers 1 and 4.

1.png

This adds the GND plane, layers 1, 2, 4.

2.png

This adds the power plane, layers 1, 3, 4.

3.png

Hopefully no big surprises there?
 
That is a massive help! Everything looks good, i've managed to replicate the placement pretty well it seems.
The only thing i don't understand is why you have vias on both sides of the 4.7uF cap?
 
So i got my new board revision, make a test circuit on it consisting of only the Audio amplifier, input caps, and the resistors that connect to AGND, DAC, and Pin 5, to which i then connected a Teensy 3.2. Both my pcb and the Teensy 3.2 were powered by a Sparkfun 5v/1A board connected to a 3.7v Lipo. The full circuit was like this: Lipo -> 5v1/A -> Teensy -> My pcb with Audio amp.

This time I was able to go up to 0.9 gain outputting a saw wave, but still when I went to full volume (gain 1.0) the speaker makes a pop sound and the amplifier dies.


For reference this is the code i'm using. when i test the board i increment the mixer gain by 0.1 each time.

#include <Audio.h>
#include <Wire.h>
#include <SPI.h>
#include <SD.h>
#include <SerialFlash.h>

// GUItool: begin automatically generated code
AudioSynthWaveform waveform1; //xy=232,229.00000381469727
AudioMixer4 mixer1; //xy=391,324
AudioOutputAnalog dac1; //xy=545.0000076293945,245.00000381469727
AudioConnection patchCord1(waveform1, 0, mixer1, 0);
AudioConnection patchCord2(mixer1, dac1);
// GUItool: end automatically generated code

void setup() {
// Turn on amp
AudioMemory(60);
dac1.analogReference(EXTERNAL); // much louder!
delay(50); // time for DAC voltage stable
pinMode(5, OUTPUT);
digitalWrite(5, HIGH); // turn on the amplifier
delay(10); // allow time to wake up

waveform1.begin(WAVEFORM_SAWTOOTH);
waveform1.frequency(160);
waveform1.amplitude(1);

mixer1.gain(0, 0.1);
}

void loop() {
}

Note that if i replace my audio Amp board with the Pjrc prop shield this code works up to a gain of 1.0 with no issues.

Here's the layout of my current board:
kicad_2019-10-12_17-23-42.jpgkicad_2019-10-12_17-23-18.jpg


Honestly i'm not sure what to do at this point, Other than trying a new amplifier. I was looking at the TPA2013D1 as an alternative since it has an inbuilt 5v regulator which would lower my part count and also reduce the chance that my 5v regulator is causing the issue. (which I believe it's not).
 
One last quick thought... what type of capacitor are you using right next to the amp chip? If it's a low quality Y5V or Z5U type, try using a X5R or X7R type. I believe the one we use on the PJRC prop shield is X5R type. Also get one rated for at least 16V. The lower voltage rated capacitors decline in capacitance with DC voltage much worse. All of them only have their full rated capacitance at 0 volts DC, but some are much better than others with DC voltage applied. PJRC uses high quality capacitors on all our boards. :)

Other than that, and the obvious suggestion to go to 4 layers and exactly copy the PJRC prop shield layout, I'm running out of suggestions. There must be *some* reason it doesn't work the same way, but what exactly, very hard to say by troubleshooting over the internet!
 
That was it! It works now!
I desoldered the capacitor off an old prop shield i had and put it on my board and it worked! All the way to max volume! So happy right now haha :)

This is the capacitor I was using. It's a Y5V type and is rated for 10V So I guess it couldn't handle the load.

Time to order some new capacitors and crank out these boards!

Paul, thanks again for the troubleshooting, super grateful for the help!
I wouldn't be where I am today without your products and the wonderful community here :)
 
Status
Not open for further replies.
Back
Top