ATmega328P-PU + VS1053 Based MP3 Player
Created: Nov 19, 2016
No description available.
The MPEG-1 or MPEG-2 Audio Layer III (MP3) is an audio coding format used to shrink the size of a large audio file into a smaller one (about 8.33% of the original file size), without affecting its sound quality. It is the most popular audio format downloaded and played on most digital audio players. Digital audio players basically use a digital signal processor (DSP) and a digital-to-analog converter (DAC) to play an MP3 file. The DSP processes the MP3 data and sends it to the DAC to convert it into an analog signal that can be heard if inserted into an audio amplifier with a loudspeaker.
The design shown in this project is an MP3 player that is based on ATmega328P-PU and VS1053B devices. The ATmega328P-PU microcontroller acts as a system master, while the VS1053B and the microSD memory card inserted at the Molex microSD connector or socket (5045280892) act as system slaves. The ATmega328P-PU reads the microSD memory card to obtain the data of the MP3 file stored on it. The data obtained is passed to the VS1053B device over the SPI bus. The data received by the VS1053B device is decoded by the internal DSP and then passed to the internal DAC through a digital volume control. After the conversion process in the DAC stage, the output analog signal of the DAC is passed to the internal stereo earphone driver. This internal stereo earphone driver has its outputs connected to the LEFT and RIGHT pins of the VS1053B device. These pins are connected to the 3.5mm headphone jack and serve as outputs that will be connected to the stereo audio amplifier’s input.
The whole system uses three voltage supply levels. A 5V supply is needed for the ATmega328P-PU microcontroller, while the 3.3V and the 1.8V supplies are used to power the VS1053B device, the microSD memory card and the 74HC4050 level shifter. The 74HC4050 device is used in this design to shift the 5V level outputs of the ATmega328P-PU microcontroller, since the VS1053B and the microSD memory card can only accept 3.3V level inputs. The capability of this circuit to pull MP3 files from a microSD card and play them makes it ideal to be used in applications or projects that require music or sound effects.