Forum: Mikrocontroller und Digitale Elektronik VS1011e abspielen von MP3 klappt nicht :(


von M. Н. (Gast)


Angehängte Dateien:

Lesenswert?

Hallo.

Ich will mit dem VS1011 einen MP3 Player bauen (Was für'n Wunder). 
Sinustest KLAPPT!! Lesen und schreiben aus Registern somit auch

jetzt hab ich mich an das Abspielen von MP3's gewagt und überraschung: 
Es klappt nicht.


Im Anhang findet ihr meinen Code.

er ist so aufgebaut:
Ich initialesiere PORTS, SPI und den VS1011e. Dann kommt ein Kommentar, 
in dem der Sinustest wäre (Wird nicht mitkompiliert, da Kommentar)
Dann kommt das Unterprogramm "decode". Dieses soll die kurze MP3 aus dem 
Flash lesen und ausgeben.

Das ganze in Dauerschleife.
Ich mache nach jeder Übertragung ein Hardwarereset.


Aber ich kann nichts hören. Nur das "Knacken" nach dem Reset

Ist vielleicht noch ein Programmfehler?


würde mich freuen, wenn sich das einer mal anschauen könnte.

Gruß M.H.

von M. Н. (Gast)


Lesenswert?

Habe jetzt das Programm so geändert, dass der ATmega32 nach 255 Bytes 
die Header infos ausliest. Beide Register sind 0.

==> Song wird nicht erkannt.

woran kann es liegen?

Gruß bambel2

von M. Н. (Gast)


Lesenswert?

Habe gerade gemerkt, dass der Sinustest doch NICHT funktioniert!
Habe mal nachgerechnet:

0x7D => 0b011            11101
           ^               ^
           |               |
Samplerate: 22050      Wert: 29


alles verrechnen: Sampelrate×(Wert/128 )= 22050×(29/128) = 4995,7Hz
Also:  Periodendauer T= 1/4995,7 = cà. 0,2ms

Wenn ich aber mit dem Oszi nachmesse komme ich auf eine Periodendauer 
von
T= 0,14ms

Woran liegt das?
Wäre echt dankbar für ein paar Antworten.

von A.N. (Gast)


Lesenswert?

Es liegt am C14 ..

von M. Н. (Gast)


Lesenswert?

OK. Schaltplan hab ich nicht mehr, aber ich mach mal n Bild von der 
Schaltung

von M. Н. (Gast)


Lesenswert?

Hier ein Bild. Es ist alles richtig angeschlossen.

Alles funktioniert aber irgendwie will die richtige Frequenz nicht.

von M. Н. (Gast)


Angehängte Dateien:

Lesenswert?

Komisch. Der anhang funktioniert nicht ?!?

von M. Н. (Gast)


Angehängte Dateien:

Lesenswert?

So.
Ich hatte doch noch einen Schaltplan oder  besser gesagt die .brd Datei

Ich hab die Platine mal als png exportiert und in den Anhang getan.
Man muss dazu sagen: Die SMD-Widerstände und co haben im endgültigen 
Layout ein anderes Raster, nicht wie hier gezeigt.

von Jean Player (Gast)


Lesenswert?

Hi,
ich könnte dir passende Sourcen zum testen zusammen kopieren zum testen.
Wie bei dir nen At32, allerdings nen VS1002.
Müsstest also in den New_Mode vom 1011 schalten, damit mein Code 
kompatibel wäre.

Und hier nochmal nen paar Denkanstösse:

-Liegen an den VCC pins 3,3 Volt und Reset state is Ok. Schwingt der 
Quarz? Alle GPIO'S vom VS1011 angeschlossen, also kein hängt frei rum. 
TEST und RX Pin müssen High state haben.

- New_Mode ausgewählt?

- pull up am Chip select

- XCS and XDCS sollten niemals NULL zur gleichen Zeit haben

- checkst du den DREQ Pin vor jeden Übertragen von Bytes?

- ALLOW_TESTS bit gesetzt in MODE register.

- GBUF hat 1.25 volts.

- Verify that you can hear a beep.

So da haste erstmal genug zum checken,
Gruß.

von M. Н. (Gast)


Lesenswert?

OK. Hab das gecheckt. New Mode is drin, pull up am cs auch, DREQ wird 
auch gecheckt,  Quarz schwingt glaub ich, sonst würde ja der falsche 
sinustest auch nicht laufen. Allow_tests ist gesetzt, GBUF ist bei 
dieser version des VS1011 nicht vorhanden.

Also alles wie es sein soll.UND: Ich höre einen Beep. FDieser hat jedoch 
nicht die Frequenz die er haben sollte.


Gruß bambel2

von M. Н. (Gast)


Lesenswert?

Hat keiner mehr eine Idee?

Ich werd' mit dem Sch***-Teil noch wahnsinnig :(
Könnte es sein dass der VS1011 ne Macke gat, und dass ich nen anderen 
nehmen soll?

Gruß bambel2

von M. Н. (Gast)


Lesenswert?

habe es jetzt so gemach, dass ich am Anfang des songs die 
Daten-Chipselect-Leitung auf low ziehe und am ende wieder auf high. 
Jetzt höre ich ein Brummen. Das Reset-knacksen ist auch nicht mehr zu 
hören und der vs1011 zieht nur 6mA.

Beim Sinustest zieht er fast 16mA.

Gruß bambel2

von M. Н. (Gast)


Lesenswert?

OK. Dieser Thread ist hiermit geschlossen, da ich das Problem gefunden 
habe.

Der Compiler baut in mein "array" immer ne 0 hinter jedes Byte. hab dann 
adiw zh:zl, mit adiw zh:zl, 2 getauscht.

Jetzt gehts.... fast

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.