Hallo, Ich habe versucht den einen VS1053 auf den esp8266 nodemcu anzuschließen: [[https://www.geeetech.com/vs1053-mp3-breakout-board-sd-card-slot-p-611.html]] ich verwende die adafruit Library Adafruit_VS1053.h Angeschlossen habe ich die Leitungen XCS XRESET XDCS DREQ und 5V GND. das sind auch jene Pins, die ich in der Library definiert habe. (alle anderen sind dann für die Speicherkarte?) Leider ist es so, dass nicht einmal der SineTest funktioniert. Man hört eigentlich nur rauschen. beim abspielen des Sine-Tests, wird das Rauschen leise, und geht danach wieder an. Beim starten bekomme ich den Fehler code: 15, die Register (mit dumpRegs ausgelesen) zeigen alle 0xffff. Ich vermute ein Problem bei der Kommunikation, habe aber schon 2 mal die Verbindungen überprüft. Wie könnte ich den Fehler jetzt finden? lg und Danke
Hallo, Martin R. schrieb: > Angeschlossen habe ich die Leitungen XCS XRESET XDCS DREQ und 5V GND. > das sind auch jene Pins, die ich in der Library definiert habe. (alle > anderen sind dann für die Speicherkarte?) Und der Rest? mit einer Speicherkarte hat der VS1053 nichts zu tun, der will seine Kommandos und Daten über SPI haben. Lange her, daß ich mit dem rumgespielt habe, damals noch mit einer anderen Lib bzw. einer selbst angepassten. Gerade mal den Streamplayer-Sketch gesucht: April 2016... Gruß aus Berlin Michael
Martin R. schrieb: > Ich vermute ein Problem bei der Kommunikation, habe aber schon 2 mal die > Verbindungen überprüft. Ja stimmt! Aber zweimal nur die Hälfte der Datenleitungen macht auch keinen funktionierenden DSP! Das Ding müsste schon mal so angeschlossen werden wie es im Datenblatt steht!
Es gibt ein Projekt, das sich "Tonuino" nennt. Zu diesem Projekt gibt es ein Forum, in dem es Leute gibt, die das Ganze mit einem ESP32 statt einem Arduino nano aufziehen. Da sind auch Leute dabei, die als DAC sowas verwenden, wie du es hast. ESP8266 war glaub ich auch mal dabei. Solltest du hier nicht fündig werden, dann schau vielleicht parallel dort auch mal nach. Achte auf jeden Fall drauf, dass deine Verbindungen "ordentlich" sind. Ich habe die Erfahrung gerade auch erst wieder machen müssen... : Beitrag "Arduino: ESP32 mit MAX98357A via i2s" Das geht thematisch wie du sicherlich schnell sehen wirst in die gleiche Richtung.
Danke Torsten, Es tut schon weh wenn man im nachhinein feststellt, dass die Frage echt dumm ist, danke dennoch fürs zurechtrücken. Ich habe am Board die Pins: CS - kann ich im VS1053 Doku nicht finden, XCS gibt es für compatibility Mode MISO -> MOSI/GPIO13/D7 SI -> MISO/GPIO12/D6 SCK -> HSPICLK gpi14 D5 XCS -> 0V (Chip immer selected) XReset -> über R nach 3V (spi immer active)/oder besser leer? xDCS -> CS/GIOP15/D8 DREQ -> belibiger gpio, (außer 16 weil kein IRQ Pin) Stimmt dieser Anschluss? Was bedeutet das X vor den Pins,das hat ja sicher eine spezielle Bedeutung? Was ist das CS(board) , ist das gleich wie XCS(VS1053 Doku); in der NodeMcu Beschreibung gibt es auch ein CS für das SPI modul, muss das dort ran? Darf ich die Reset DCS und CS fix auf 0/3V legen, wenn ich nur ein Device am SPI habe? Sollte XReset, wenn nicht über die Software gesteuert wird, leergelassen werden(laut Schaltplan) ; was bedeutet ACTIVE low? lg und Danke
Hallo, in Adafruits Beschreibung ist doch prinzipiell alles erwähnt. Die haben ihr Modul zwar am UNO, Init und Pins kann man doch aber entsprechend auf den ESP8266 übertragen. https://learn.adafruit.com/adafruit-vs1053-mp3-aac-ogg-midi-wav-play-and-record-codec-tutorial/library-reference Ich habe damals für meine eigene Lin die folgende Zuordnung benutzt:
1 | //#define MOSI 13 // SPI Hardware Standard-Config |
2 | //#define MISO 12 |
3 | //#define SCLK 14 |
4 | |
5 | #define CS 4 // CS für Daten |
6 | #define DCS 5 // CS für Command |
7 | #define DREQ 2 |
8 | #define RESET 16 |
SPI nicht definiert weil das die SPI-Defaultpins des ESP8266 sind. Gruß aus Berlin Michael
Martin R. schrieb: > XCS -> 0V (Chip immer selected) Das kann nicht funktionieren, da der Chip ja auch irgendwie erkennen muss, wann eine Übertragung beginnt.
Ja, das stimmt schon, dass das alles beschrieben steht, aber leider mit anderen Bezeichnungen, und als Neuling auf diesem Gebiet habe ich leider noch keine Erfahrung mit Konventionen. Ich habe daher versucht, alles anzuschließen, nach dem Vorbild von Michael U. Leider ohne Erfolg. Ich bin nicht sicher, ob CS, XCS und XDCS richtig angeschlossen sind, weil ich nicht sicher bin, welches denn überhaupt für welches ist... und bitte jetzt nicht sagen, dass das ja in der Dokumentation steht. Ich habe ein Board in Verwendung, was ich im ersten Beitrag bereits verlinkt habe. Ich kann aber nur den Pin CS gar nicht finden... Pin D7 beeinflusst das Bootverhalten des ESP8266. Wenn ich CS anschließe, bootet der Controller nicht... somit müsste CS ein Ausgang sein, was macht CS dieses boards? In der Beschreibung steht, im Standard Mode: BSYNC function changes to data interface chip select (XDCS). also muss ich XDCS am CS ses SPI (D8, gpio15) anhängen? Ich verstehe gernerell nicht so ganz Punkt 7.1.1 in [[https://cdn-shop.adafruit.com/datasheets/vs1053.pdf]]. Die Spalten SDIpin und SCIPIN, was soll das aussagen? danke
:
Bearbeitet durch User
Hallo, Martin R. schrieb: > Ich bin nicht sicher, ob CS, XCS und XDCS richtig angeschlossen sind, > weil ich nicht sicher bin, welches denn überhaupt für welches ist... und > bitte jetzt nicht sagen, dass das ja in der Dokumentation steht. > Ich habe ein Board in Verwendung, was ich im ersten Beitrag bereits > verlinkt habe. Ich kann aber nur den Pin CS gar nicht finden... Ich habe mal schnell in das Wiki von Geeetech geschaut, einen Schaltplan zu diesem Modul habe ich nicht gefunden. Da aber alle Beschriftungen der Pins prinzipiell passen, sollte CS der CS der SD-Card sein. XCS ist der CS des VS1053, also bei mir CS genannt, XDCS entsprechend bei mir DCS. Martin R. schrieb: > Pin D7 beeinflusst das Bootverhalten des ESP8266. Wenn ich CS > anschließe, bootet der Controller nicht... somit müsste CS ein Ausgang > sein, was macht CS dieses boards? Da die Pinbezeichnungen der ESP8266 Boards oft etwas Chaotisch sind, benutze ich generell die GPIO-Nummern des ESP8266. D7 müßte also GPIO13 sein und damit MOSI vom SPI wenn man die default-Zuordnungen von SPI fpr den ESP8266 in der ArduinoIDE nimmt. Für CS der SD-Card bleibe bei meiner Beschaltung eigentlich nur noch GPIO0 übrig, wenn da ein PullUp auf dem Player Modul oder/und der NodeMCU ist, sollte das gehen. Ansonsten eben erstmal garnicht anschlie0en und die SD-Card nicht benutzen. Gruß aus Berlin Michael
Vielen dank für die Hilfe, ich habe jetzt die richtige Belegung gefunden, kann aber nicht sagen, wo der Fehler gelegen hat. Dennoch hier jetzt die Belegung, für die Zukunft und vielleicht für jemanden mit gleichen Schwierigkeiten und gleichem Board: //board beschriftet die Anschlüsse des Microcontrollers: MISO -> MISO/GPIO12/D6 SI -> MOSI/GPIO13/D7 SCK -> HSPICLK gpi14 D5 XCS -> gpio4/D2 (VS1053 select) XReset -> Gpio16/D0 xDCS -> Gpio5/D1 DREQ -> Gpio2/D4 //hier die Config der Library: #define VS1053_RESET 16 // VS1053 reset pin (not used!) #define VS1053_CS 4 // (hier: XCS) VS1053 chip select pin (output) #define VS1053_DCS 5 // (hier: xdcs)VS1053 Data/command select pin (output) #define VS1053_DREQ 2 // VS1053 Data request, ideally an Interrupt pin
:
Bearbeitet durch User
Hier noch hinweise zum verhalten: Im Datenblatt von VS1053 steht ein Pullup des XRESET auf Masse. Hänge ich bei diesem Board den XRESET mit einem 6.8KOhm auf Masse, ODER schließe gar nichts an, bootet der ESP8266 nicht und wirft über die Serielle Schnittstelle permanent scheinbar willkürliche Zeichen aus. Hängt man den XRESET mit Widerstand auf +5V, funktioniert alles wie es soll. Warum ist das so? Kann jemand das Rätzel lösen? Wenn man sich nicht über die Pinbelegung sicher ist, kann durch dumpRegs() die Register des VS1053 auslesen. Ich hatte bei fehlerhafter Verbindung entweder 0xFF oder 0x00.
Martin R. schrieb: > Beim starten bekomme ich den Fehler code: 15, die Register (mit dumpRegs > ausgelesen) zeigen alle 0xffff. Das würde mir zu denken geben - hört sich so an, als ob da die Kommunikation nicht funktioniert oder zumindest die Registerbelegungen nicht stimmen. Dann ist es auch nicht weiter verwunderlich, wenn der Sine-Test nicht funktioniert. > Wie könnte ich den Fehler jetzt finden? Guck dir mit einem Logikanalysator an, ob deine Signale auf den Steuerleitungen den Anforderungen im Datenblatt entsprechen.
Martin R. schrieb: > Hier noch hinweise zum verhalten: > > Im Datenblatt von VS1053 steht ein Pullup des XRESET auf Masse. > > Hänge ich bei diesem Board den XRESET mit einem 6.8KOhm auf Masse, ODER > schließe gar nichts an, bootet der ESP8266 nicht und wirft über die > Serielle Schnittstelle permanent scheinbar willkürliche Zeichen aus. > > Hängt man den XRESET mit Widerstand auf +5V, funktioniert alles wie es > soll. > > Warum ist das so? > Kann jemand das Rätzel lösen? Das liegt sicherlich am grützigen ESP. Der hat doch auf GPIO16 irgendwas hartkodiert. Mit einem anderen GPIO passiert das sicherlich nicht.
Hallo, John Doe schrieb: > Das liegt sicherlich am grützigen ESP. Der hat doch auf GPIO16 irgendwas > hartkodiert. Mit einem anderen GPIO passiert das sicherlich nicht. wenn, dann liegt es an solchen grützigen Postings... Ein John Doe kann eben weder Datenblätter (ESP8266) noch Schaltpläne (NodeMCU) lesen, nur große Töne spucken. TO: Die NodeMCUs habe je nach Version verschiedene Beschaltungen zwischen GPIO16 und Reset, um das Aufwecken aus dem DeepSleep zu ermöglichen. Da hilft nur, die Schematic Deiner NodeMCU Version suchen, schauen, was da dran hängt. Gruß aus Berlin Michael
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.