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.
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
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.
OK. Schaltplan hab ich nicht mehr, aber ich mach mal n Bild von der Schaltung
Hier ein Bild. Es ist alles richtig angeschlossen. Alles funktioniert aber irgendwie will die richtige Frequenz nicht.
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.
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ß.
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
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
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.