www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik VS1011 spielt nicht richtig


Autor: Schoasch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nabend zusammen,

Bin wohl der X te der ein Problem mit dem VS1011 hat. Alles überprüft, 
der ATMega 32 spuckt schön 32Bytes raus, wenn Dreq auf high geht. 
Komisch ist nur, dass ich nichts höre, aber wenn ich in der Routine, in 
der die 32 B gesendet werden, die daten nachdem sie zum VS geschickt 
wurden über Uart zum PC schicke, höre ich sehr stockende Musik. Nun habe 
ich die SPI Frequenz gesenkt, weil ich gedacht habe, dass das Ding 
vielleicht Pausen braucht (meine VS SPI freq: 4MHz, für die SD Karte 
8MHz, gleicher Bus). Kommt aber immer diese stockende, unverständliche 
Musik. Was kann hier falsch sein???

Autor: Schoasch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ach ja noch ein paar daten:

Crystal: 24,576 Mhz

Initialisierung des VS:

Hard Reset (warten...)
set new SDI Mode

und schon gehts los mit den ersten daten falls dreq 1

Autor: Rooney Bob (rooney)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie schnell reagierst du auf DREQ? Wenn die Musik stockt, dann scheint 
es, als wenn du den VS1011 zu langsam mit Daten versorgst. Wieviele 
Bytes schreibst du runter? 32 oder so lange bis DREQ wieder low geht?

Autor: Jupp (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"Komisch ist nur, dass ich nichts höre, aber wenn ich in der Routine, in
der die 32 B gesendet werden, die daten nachdem sie zum VS geschickt
wurden über Uart zum PC schicke, höre ich sehr stockende Musik."

Den Satz verstehe ich jetzt nicht. Wieso schickst du Daten zum PC? Die 
Übertragung ist doch sehr langsam, wie versorgst du den VS in dieser 
Zeit mit Daten? Oder wie jetzt?

Autor: Schoasch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Rooney:

ich schreibe 32Bytes, dann schaue ich ob Dreq immer noch 1 ist, falls 
ja, nochmal 32B, immer so weiter, aber höchstens 16 mal, denn dann ist 
ein Block weg und ein neuer muss geholt werden.

Jupp:

Dass es komisch ist kommt mir auch so vor. Die daten schickte ich für 
die ersten Tests zum PC, um zu sehen ob der Mega die Daten überhaupt 
richtig ausspuckt. Diese Tests sind alle erfolgreich verlaufen. (Habe 
auch alle Tests in der AN gemacht, Firmware, Sinetest, alles OK). Im 
jetzigen Programm werden natürlich keine DAten mehr an den PC geschickt. 
Bloß hört man dann nichts. Und da man alles probieren muss, habe ich 
kurz die Routine eingefügt und siehe da: Extrem Stockende Musik. Das ist 
jetzt sehr widersprüchig, denn die Uart Routine braucht Zeit.

;Beispiel1:
Schleife 32B:
bla bla
send spi zum VS
bla bla
rjmp Schleife 32B
; richtig aber ich höre nichts ):

;Beispiel2:
Schleife 32B:
bla bla
send spi zum VS
sende zum PC
bla bla
rjmp Schleife 32B
; sehr stockende Musik ?!?!?!?!?!?!


Ich habe alles in ASM geschrieben und auf so wenige Takte wie möglich 
optimiert.

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das klingt danach, als wenn du Daten sendest, obwohl der VS1011 keine 
haben möchte. Das würde zumindest erklären, warum es mit den UART 
Routinen geht.

Probier mal folgendes: Baue anstelle der UART Routine eine Schleife ein 
und variiere deren Länge, so dass du in etwa genau die Bitrate der mp3 
Datei triffst. Wenn die Musik dann weitestgehend fehlerfrei abgespielt 
wird, passt etwas mit dem DREQ Pin nicht.

Autor: Schoasch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann werde ich wohl am besten gleich Streaming einführen, wenn man DREQ 
im A.... ist. Probiers mal aus

Autor: let (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Arbeitest du mit Chip Select und Hardware SPI? Falls ja, wann
kippst du den CS-Pin um? Vielleicht passiert das während das
letzte Byte noch übertragen wird.

Das einzige Problem das mir beim DREQ bekannt ist das die Leitung
während der Übertragung eines 32 Byte Blocks kurz auf 0 kippen kann.
Daher soll das Signal nur dazu verwendet werden um festzustellen
ob ein Block geschickt werden soll.

Autor: Schoasch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sehr interessant. Mir ist gerade aufgefallen, dass das der FAll sein 
kann. Werde ich prüfen. Aber macht ein Byte wirklich so viel 
unterschied? ICh meine wenn einmal ein Byte fehlt oder falsch übertragen 
wird, kann es dann sein, dass man nichts hört? Nur wegen einem Byte?

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kommt drauf an, wie oft ein Byte falsch ankommt. Wenn die Daten ungültig 
sind, ignoriert der VS1011 diese. Das würde dann auch Stille erzeugen.

Autor: let (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wegen eines ganzen Bytes vielleicht nicht. Aber die Übertragung wird
ja dann mittendrin unterbrochen.
Den Fall hatte ich vor kurzem mit dem VS1033 und einem LPC2368.
Da kam auch kein Ton.

Autor: Schoasch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
danke let du bist der größte es funktioniert

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.