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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.