0
\$\begingroup\$

I have a circuit I designed (hobby project) that for the moment is just an audio player based around the Atmel SAM3x8e that reads from an SD card, feeds data to a VS1053b IC, which then supplies sound to a TDA7265B amplifier.

TDA7265B schematic: TDA7265B schematic

VS1053B schematic: enter image description here

ATSAM3x8EA: enter image description here

My problem is that the music suddenly stops playing. I believe the issue is probably with the ATSAM3x8EA as the VS1053B uses an interrupt pin on the ATSAM3x8EA which is HIGH after the music stops. The music will start playing all over again, however, if I hit the reset button connected to the ATSAM3x8EA in the same fashion as the Arduino Due schematic.

I know this issue isn't due to thermal protection of the voltage regulators LD1117V33-LD33V (3.3 V), ADP150AUJZ-1.8-R7 (1.8 V), or TDA7262B as they all have a heatsink with an aircooler on them and are relatively cool to the touch.

I use a 12 V, 3 A power supply which directly connects to the TDA7265B as shown in the schematic. The current usage of the entire circuit is at most 400 mA.

The oscilloscope shows that the voltage fluctuates rapidly on the 12V line while music plays and if I set the trigger low enough I will notice that it only triggers when the music suddenly stops (same on 3.3 V and 1.8 V lines of the voltage regulators).

I originally though that bypass capacitors would solve such a problem, but while the oscilloscope shows them having some effect, they don't solve the issue. I have tried a bunch of 100 nF, 1 μF, 1000 μF, and 4700 μF around the circuit, especially at the output/input of the voltage regulators and the main power supply.

What could the cause be? Would it have an effect if I increase the voltage and add a voltage regulator for the TDA7265B to get it down to 12 V?

\$\endgroup\$
3
  • 2
    \$\begingroup\$ Can you run the power amp off a different supply (only sharing GND and audio in with the main system) as an experiment? Does it fail the same way or not? \$\endgroup\$
    – user16324
    Commented Jan 29, 2022 at 14:21
  • 1
    \$\begingroup\$ I do not have an answer, but I think you should narrow down your problem more, as people might not be able to help you with such a large schematics. \$\endgroup\$ Commented Jan 29, 2022 at 16:27
  • \$\begingroup\$ @user_1818839 I have now tried the experiment you suggested. It still happens and I also see that if I turn off something in the apartment that uses a lot of current, it will cause the spike on the oscilloscope, but more importantly, the music keeps playing. This concludes that there is probably nothing wrong with the op amp part and maybe I shouldnt worry too much about what the oscilloscope reads. I will run a few experiments to see if I can narrow this problem further down. \$\endgroup\$
    – patr0805
    Commented Jan 29, 2022 at 17:52

1 Answer 1

0
\$\begingroup\$

It turns out that aside from adding a few bypass capacitors on the supply voltage there is no hardware issue to blame for this issue. The main issue seems to be the VS1053B along with the library made for it for Arduino. It seems to eventually freeze up the ATSAM3X8EA during interrupts. The moment I changed the code to send the data to VS1043B in the loop explicitly whenever the interrupt pin was high solved the issue. This is different from the examples that Adafruit provided which aims to use interrupt functionality.

\$\endgroup\$
1
  • 1
    \$\begingroup\$ I have little experience with any of the specific chips you're using here, but I wonder if the problem could be that you're trying to do too much in an interrupt service routine, and missing another interrupt as a result. \$\endgroup\$
    – Hearth
    Commented Jan 29, 2022 at 20:03

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.