Kategorie: AVR Atmega Projekte
Zugriffe: 13125

AVR-MP3-Player mit dem MP3 Dekoder VS1011

..... in Kürze kommt hier mehr.

Dies sind meine ersten SD-Karten und MP3-Dekoder Versuche.
Der VS1011 und der SD-Karten-Slott hängen beide an der gleichen SPI-Schnittstelle vom Prozessor und der SPI-Busstakt beträgt 4 MHz.
Die SD-Karte muss mit FAT16 formatiert sein und alle Audiodateien müssen im Root-Verzeichnis abgelegt sein. Dies ist notwendig um nicht so viele Resourcen vom Prozessor zu belegen.

Bis jetzt habe ich das Audiomodul mit MP3-Dateien:
- Abtastrate 22kHz ; Bitrate = 32 kbit/s ; Mono
- Abtastrate 16kHz ; Bitrate = 32 kbit/s ; Stereo
getestet.

Die sehr gute Klangqualität hat mich hierbei etwas überrascht.
Zur Zeit betreibe ich den Mikrocontroller mit dem internen RC-Oszillator ( 8 MHz).



Projektziel
Universielles Audio-Modul, welches MP3 / WAV-Files von der SD-Karte abspielen kann. Für die Steuerung welche Dateien abgespielt werden sollen, werden später diverse IO-Pins verwendet.

Für Testzwecke (Entwicklungsphase) steht eine RS232-Schnittstelle zur Verfügung um direkt mit dem Audio-Modul interaktieren zu können.

Konzept
Für die Umsetzung habe ich mich für den MP3-Dekoder Chip VS1011E von VLSI entschieden. Und als Mikrocontroller kommt mein geliebter ATmega 162 (wegen der JTAG-Schnittstelle) zum Einsatz.

Mein Konzept sieht zur Zeit vor, dass die Audiodaten erst vom Prozessor in 32 Bytes Blöcken von der SD-Karte gelesen werden, und dann vom Prozessor an den Audiocontroller gesendet werden. Hierdurch wird quasi die Hälfte der möglichen Bandbreite verschwendet. An dieser Stelle kann die Software dahingehend optimiert werden, dass man den Audioprozessor und die SD-Karte im Streamingmode ( SD-Karte: CMD18) verwendet, und die Audiodaten direkt von der SD-Karte an VS1011E Controller sendet. Dadurch würde sich die mögliche Bandbreite wahrscheinlich verdoppeln.

Da der VS1011E und die SD-Karte mit 3,3 V betrieben werden und ich keine Pegelanpassung für den Atmel-Controller machen wollte, habe ich mich dafür entschieden, den ATmega162 ebenfalls mit 3,3 V zu betreiben. Dafür wird in Kauf genommen, dass man den Prozessor nicht mit einem 16 MHz Quarz betreiben kann. Für die Anbindung des MAX-232 Schnittstellentreibers kann die RXD-Leitung zum Prozessor hin mit einem einfachen Widerstandsspannungsteiler an den 3,3 V Pegel angepasst werden.

Realisierung

Schaltplan:


Schaltplan - Audiomodul - Blatt 1
Abb. 1 - Schaltplan - 1. Seite - Audiomodul


Schaltplan - Audiomodul  RS232 - Blatt 2

Abb. 2 Schaltplan - 2.Seite - Audiomodul serielle Schnittstelle RS232

Hinweise zur 2.Seite: R15 = 0 ohm, R16 und R17 entfallen

Eagle3D-Bild:
Eagle3D - Bild

Downloads:
Schaltplan als PDF-Datei
Bauteilliste




Vorab-Info:

 

Überarbeitete Version (Index 01) von der Schaltung


Modifikationen:

Schaltplan

Schaltplan Seite 1 - Version 01

 

Schaltplan Seite 2 - Version 01

 

Downloads:
Schaltplan als PDF-Datei (Index 01)

Vorschau von der  überarbeitete Version:
Eagle3D - Leiterplatte L01

Eagle3D - Leiterbahnseite