Hallo, ich versuche schon seit einiger Zeit den mp3-Player von Nik Bamert nachzubauen. siehe: http://mp3.nikbamert.com/mega8/index.php?page=schaltplan Dazu habe ich die obige Schaltung aufgebaut. Da ich diese komplett mit 3,3V betreibe brauche ich auch keinen Pegelwandler. Ich verwende jedoch einen vs1011e und er in seinem Projekt einen vs1001k als Decoder. Die Schaltung ist momentan noch etwas minimalistisch gehalten… (ein paar Taster und ein Display werde ich später noch anschließen) Der Sinustest des vs1011e funktioniert bei mir auch. Jedoch bin ich nicht in der Lage eine mp3-Datei von der SD-Karte abzuspielen und mittlerweile am verzweifeln. Es kommt nur beim Einschalten und Reset ein leises Knacken. Daher: Kann jemand einen Fehler in meiner Schaltung oder in dem von mir leicht veränderten Programmcode entdecken? Schon im voraus vielen Dank für eure Mühe! ;)
Du solltest direkt am SD-Karten-Slot einen 10µF Kerko von VCC gegen GND schalten.
Hi! Erstmal Danke für die schnelle Antwort! Einen 10uF Kerko hab ich zur Zeit nicht im Haus. Ich habe daher erstmal zwei 1uF Kerkos parallel zw. VCC und GND geschalten. (reicht das auch?) Der vs1011e spielt zwar immer noch nicht, aber ich glaube die Schaltung ist etwas empfindlicher geworden. Wenn ich z.B. die Hand darüber halte fängt der Lautsprecher an zu Knacken... Ich vermute meinen Fehler momentan in den Mode-Einstellungen des Vs1011e in der vs1001.c, bin mir aber nicht sicher was ich ändern muss. Ich bin für jede Hilfe dankbar :)
Habe jetzt fünf 1uF-Kondensatoren parallel zw. VCC und GND der SD-Karte geschaltet. - Hilft leider nicht.
ja, ok, das war auch nur zur grundsätzlichen Beschaltung angemerkt. Hast du denn mal die Datenblätter der beiden MP3-Decoder miteinander verglichen? Vor allem was die Registerbezeichnungen, Adressierungen etc. angeht.
Du solltest auf jeden Fall diesen Hinweis im Datenblatt beachten: 7.2.2 VS1001 Compatibility Mode This mode is active when SM SDINEW is 0 (default). In this mode, DCLK, SDATA and BSYNC are active.
Ja, das Datenblatt des vs1011e hab ich gelesen und den Sinustest hab ich mir auch nach der Anleitung der zugehörigen Application Note zusammengebaut. Verglichen habe ich die Datenblätter auch. Wenn ich das richtig verstanden habe benötigt der vs1001k noch ein BSYNC-Signal, welches während einer Datenübertragung auf Low gezogen werden muss. Der vs1011e braucht dieses jedoch nicht mehr und kann mit Hilfe von 2 CS-Leitungen in einem neuen Modus angesteuert werden. Da der Code jedoch für diesen älteren Chip geschrieben wurde, würde ich gerne den Kompatibilitätsmodus des vs1011e nutzen, da ich dann den Treiber nicht weiter ändern müsste. Wenn ich aber versuche diesen zu Nutzen ist kein Ton zu hören. Deshalb hatte ich jetzt Testweise den neuen Modus des vs1011e genutzt, was leider auch nicht funktioniert hat. Mit: buf[0] = 0x0000; vs1001_write(0,1,buf); ist doch der Kompatibilitätsmodus ausgewählt, oder?
Ok, ich habe jetzt in meinem Programm den Kompatibilitätsmodus (siehe oben) ausgewählt und die 100KOhm Widerstände an Pin 2 und 3 des vs1011e entfernt und stattdessen DCLK (Pin 2) mit SCLK und SDATA (Pin 3) mit SI verbunden. Ist das so richtig? Es kommt leider trotzdem noch kein Ton.
Hier mal noch die Änderungen im Schaltplan dargestellt
... schrieb: > 7.2.2 VS1001 Compatibility Mode > This mode is active when SM SDINEW is 0 (default). Der VS1001 Mode ist automatisch nach einem RESET ausgewählt. ( SM SDINEW is 0 (default).)
Pin15 (Test) sollte über einen 10K an 3,3V angeschlossen werden.
XRESET sollte während des Betriebs natürlich High sein.
Funktioniert die Schaltung jetzt so wie sie in der letzten Version gepostet wurde? Möchte soetwas im mom nämlich auch machen und bei diesem Schaltplan blicke ich mehr durch als bei dem originalen auf der Seite, da hier auch noch der ATMega8 mit aufgeführt ist :)
Kann ich leider noch nicht sagen. Es werden zumindest noch keine mp3s abgespielt. Ich bin aber noch auf Fehlersuche ;) Ich werde Schaltplan und Code posten wenn ichs zum Laufen bekomme.
So, der mp3-Player läuft jetzt. (auch wenn es ne weile gedauert hat ... ) Ich hatte meine Schaltung nur als Freiluftverdrahtung aufgebaut und deswegen kam es immer zu Sendefehlern. Ich hab mir jetzt eine ordentliche Platine ätzen lassen und es läuft alles. Die letzte Schaltung sollte so funktionieren. Allerdings habe ich noch - ein LCD und ein paar Taster an den uC angeschlossen - die UART-Pins herausgeführt - einen ATmega32 und einen VS1001k genutzt Außerdem hab ich ein anderes Dateisystem genutzt als das oben gepostete, weil es mit dem ein paar Probleme gab. Wenn Interesse besteht kann ich auch noch den aktuellen Schaltplan hier reinstellen (der is nur auf meinem Notebook und das hab ich grade nicht hier)
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.