Forum: Mikrocontroller und Digitale Elektronik MP3 von PC -> xMega -> VS1053


von Max (Gast)


Lesenswert?

Hey,

ich bin bei dem Versuch einen VS1053 mit meinem xMega128A1 zu betreiben 
auf einige Unklarheiten gestoßen.

Es handelt sich bei dem VS1053 um das Sparkfun-Board.
Bei meinen ersten Gehversuchen habe ich mich ebenfalls an das dort zu 
findene Beispiel gehalten und das HalloMP3 Example erfolgreich zum 
laufen gebracht.

Allerdings beginnen nun die ersten Probleme.

In dem Beispiel wird der VS1053 mit einem 4Mhz SPI Takt betrieben.
Was dem Maximum des VS1053 entspricht.
Der xMega bietet für die Konfiguration allerdings nur einen 
SPI_PRESCALER_DIV 16(2Mhz) oder 4(8Mhz) an.
(SPIx.CTLR->SPR0/1 = 2Bit für 128/64/16/4)

1. Ist mir somit der 4Mhz SPI-Betrieb bei 32Mhz SysClk verwährt?


Für das Senden einer geeigneten MP3 mit beliebiger Größe habe ich, fürs 
Erste, auf meinem xMega ein 1024Byte FiFo erstellt.
Dieser wird zu beginn gefüllt und anschließend die Übertragung zum VS 
gestartetn.
Nach dem 256Bytes aus dem FiFo gesendet wurden, wird dem PC 
signalisiert, dass der FiFo nun wieder 256 Bytes fassen kann.
Die Kommunikation zwischen xMega und PC läuft über einen CP2102(also 
UART) mit einer Baudrate von 921600 auf höchstem Interruptlevel.
In der ISR wird das empfangene Byte direkt in den Fifo 
übertragen(Reinspeichern + Pointer weiterschieben)

Da Daten immer nur in Gruppen von 256 Bytes empfangen werden überprüfe 
ich den Stand des Push-Pointers vor dem Anfordern weiterer Bytes um 
dadurch zusätzlich die ISR zu entlasten.

Das dabei auftretende Problem ist dass die eintreffenden 256 Byte 
anscheinend das Senden über SPI so stark unterbricht dass von der MP3 
nur ein stocken zu hören ist.

Da mir ein AVR-Dragon zur Verfügung steht, konnte ich die 
Implementierung meines Buffers als Fehlerquelle ausschließen.


Sollte meine Lösung völlig ungeeignet sein bitte ich mich nicht zu 
steinigen. Bin noch recht neu auf dem Gebiet der µC Programmierung

Gruß Max

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.