Forum: Mikrocontroller und Digitale Elektronik Problem mit VS1053 (nur einmal Sinus-Test möglich)


von Tom (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

ich habe einen VS1053 auf dem Breakout-Board von Olimex an einen 
AT90USB1287 (auf AT90USBKey) angeschlossen und ein etwas merkwürdiges 
Problem: Das Abspielen von MP3 klappt noch nicht, weswegen ich erstmal 
nur den Sinus-Test ausprobieren wollte. Diesen kann ich einmal aufrufen, 
danach kommt kein Ton mehr heraus aus...

Die Bibliothek für den VS1053 basiert auf dem Code von Stephan Watterott 
und wurde eigentlich nur um den Code für das Sinus-Signal ergänzt. In 
meinem Code finden sich nur noch die Initialisierung von 
SPI-Schnittstelle und VS1053
1
/* Configure SS, MISO, MOSI and SCK */
2
DDRB   |=  (1<<PB0) | (1<<PB1) | (1<<PB2);
3
DDRB   &= ~(1<<PB3);
4
PORTB  |=  (1<<PB0);
5
6
/* Configure SPI interface */
7
SPCR = (1<<SPE) | (1<<MSTR);
8
9
/* Initialize VS1053 chip */
10
vs_init();
11
12
/* Sinus test */
13
vs_sine_test(126);

Ich gehe mal davon aus, dass meine Hardware in Ordnung ist, da der 
Sinus-Test ja einmal abläuft. Die einzelnen Pegel habe ich mit meinem 
Logic-Analyzer überprüft und kann da auch keinen Fehler finden.

Die Dataflash-Bausteine auf dem AT90USBKey sollten Ruhe geben, da ihre 
CS-Signale auf 1 gelegt wurden.

Vielleicht hat ja jemand eine Idee und kann mir helfen.

Gruß

Tom

von Tom (Gast)


Lesenswert?

Gerade gesehen: Es ist natürlich das Break-Out-Board von Sparkfun.

von Tom (Gast)


Angehängte Dateien:

Lesenswert?

Im Anhang sind die Screenshots des Logic-Analyzers, vielleicht sieht 
dort ja jemand Unstimmigkeiten. Die Init0 zeigt das Reset-Signal und 
danach drei Datenpakete, die in den Dateien Init1-3 detailliert sind 
(erst Mode setzen, danach Clock und dann Volume).

Ich bin leider noch nicht weitergekommen mit dem Problem.

von Andreas W. (andreasw) Benutzerseite


Lesenswert?

Hast du mal probiert die Pausenzeiten im Init zu verlängern?

Zum Testen versuche auch mal das Status-Register auszulesen.

Gruß
Andreas

von G. S. (varda)


Lesenswert?

Habe heute auch ein Sparkfun Board verbaut. Ab und an gab es auch 
Probleme damit. Fehler traten nur sporadisch auf. Entweder starkes 
Brummen vorhanden oder gar kein Ton. Bei Berühen des VS1053 verstärkte 
sich dieses Verhalten.

Kurzum - die Lösung

Auf dem Board ist der Pin 32 (XTEST Reserved for test, connect to IOVDD) 
nicht verbunden. Laut Datasheet muss dieser PIN mit IOVDD verbunden 
werden. Mit dünnen Fädeldraht und unter der Lupe Verbindung gezogen - 
jetzt ist alles in Ordnung.

Manche VS1053 sind empfindlicher als andere. Einige gehen, einige nicht. 
Diese Erfahrung habe ich gemacht!

von G. S. (varda)


Lesenswert?

PIN 32 direkt mit PIN 31 verbinden geht auch - sieht schöner aus! CPWR 
wird als HIGH Pegel an PIN 32 erkannt. Praxis und Datasheet stimmen.

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.