www.mikrocontroller.net

Forum: FPGA, VHDL & Co. Audio Codec WM8731 - kaputt?


Autor: Ralph N. (ralph)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moinsen!
Erstmal "kurz" etwas darüber, was ich eigentlich vorhabe,....
Ich hab das DE2 Education Board von Altera hier aufm Tisch liegen. Auf 
dem FPGA ist der NiosII synthetisiert. Zusätzlich habe ich mitlerweile 
eine kleine Bridge (in VHDL) gebastelt I2S -> 24 Bit parallel bzw 24Bit 
parallel -> I2S. Diese hält sich an den I2S Modus des auf dem Board 
verbauten Audio Codecs WM8731 und generiert Interrupts wenn 24Bit 
abgeholt werden können bzw wenn neue Daten angelegt werden können. Der 
Codec wird im Master Mode betrieben und generiert mir den Bittakt und 
die beiden links-rechts-Takte (diese Takte werden auch tatsächlich 
erzeugt, dies teste ich mit LEDs, die geschaltet werden, wenn die Takte 
vorhanden sind...). Den Codec programmier ich über I2C. Für diesen Zweck 
hab ich mir ein kleines I2C Modul geschrieben (auch in VHDL), welches 
zur Zeit noch recht unflexibel ist, da es stumpf Daten aus einem 
Registerfile auf den I2C Bus schiebt. Dabei zähle ich die ACKs des 
Codecs mit und gebe den Wert für Debugzwecke auf LEDs aus. Ergebnis: I2C 
läuft...

Sooo, nun das Problem:
Der Codec scheint der Bridge nur Müll seriell vor die Füße zu werfen. 
Ich vermute, dass die Bridge ausschließlich die beiden (seriellen) 
Datenworte 0xFFFFFF und 0x000000 erhält, da meine Bridge bur diese 
beiden Datenworte ausgibt....Ich habe die Bridge ausgiebig mit ner 
Testbench in ModelSim und synthetisiert auf dem FPGA mit Handtakt 
getestet. Eigentlich funktioniert die. Kein Plan mehr woran es liegen 
könnte.... Das geile ist, dass ich Töne in der Software, die auf dem 
NiosII läuft, generieren kann (so Randomwerte, die ich dann einfach 
toggel und mit der Bridge auf I2S rausschiebe). Hatte erst gedacht, dass 
die schieberegister in der Bridge evt nicht auf den rel. hohen Takt 
klarkommen, aber rausschieben funktioniert ja  ; /

Hat jemand schonmal ein ähnliches Problem mit nem AudioCodec gehabt? Ich 
vermute fast, dass der Codec hin ist, oder das ich zu dumm bin, um die 
Register des Codecs ordentlich zu beschreiben....

Greetz

Autor: Ralph N. (ralph)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Problem ist vom Tisch, habs grade hinbekommen ; D

...

Autor: Rick Dangerus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielleicht kannst Du noch einen Tipp geben, damit andere evtl. ein 
kürzere Fehlersuche haben? Meistens stolpern ja alle über ähnliche 
Probleme (zumindest am Anfang).

Rick

Autor: xeniter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wird zwar jetzt nicht zu deinen Problem passen, aber bei den Codec muss 
man aufpassen da er nur ein Write only I2C device ist. Daher gibt er nur 
ein ACK wenn man das R/W Bit auf schreiben gesetzt hat und es lassen 
sich natürlich auch keine Register auslesen.

Zur Verwirrung steht leider in der schematic vom altera DE1 board extra 
eine Read Adresse dabei, welche theoretisch richtig wäre aber nichts 
bringt.

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]
  • [vhdl]VHDL-Code[/vhdl]
  • [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.