Forum: FPGA, VHDL & Co. AC97-VHDL-Sourcecode


von Echo (Gast)


Lesenswert?

Moin,

ich beschäftige mich grade mit meinem neuen Board "Atlys" von Digilent. 
Auf diesem ist ein AC97-Audiocontroller (LM4550 in diesem Fall) den ich 
gerne ansteuern würde. Leider gibt es anscheinend zu dem Board keinen 
mitgelieferten Sourcecode des Demoprogramms (in diesem werden über den 
AC97 Töne ausgegeben) das auf dem Board standardmäßig läuft...zumindest 
habe ich im Internet und bei Digilent keinen gefunden.
Das Datenblatt hab ich mir schon angeguckt und weiß auch ungefähr welche 
Signale er haben will, allerdings würde ich mir lieber den Sourcecode 
ansehen um zu gucken ob ich alles verstanden hab.
Kennt daher jemand nen Sourcecode zur Demomäßigen Ansteuerung des LM4550 
in VHDL? Gibt zwar teilweise Core dazu im Internet, aber die sind dann 
wieder in Verilog abgefasst.

MfG Echo

von Echo (Gast)


Angehängte Dateien:

Lesenswert?

Moin,

hab mittlerweile mal versucht selber ein entsprechendes Programm zu 
schreiben um die diversen Register im LM4550 anzusprechen. Aber momentan 
komme ich nicht so recht weiter. Momentan wird einfach nur das 
Sync-Signal erzeugt (256Bit Periodendauer, 16Bit lang High) und versucht 
das Signal "Kommando" seriell über sdata_out zu schicken. Das funzt auch 
1 mal, allerdings lädt er "Kommando" nicht beim ersten entstehenden 
"Puls" wieder ins shift_reg und ich weiß nicht wieso...

Kommando stellt btw die ersten 3 Datenblöcke dar, die die Register im 
LM4550 ansprechen (Tag, Registeradresse, Registerwert).

Das Programm befindet sich im Anhang, VHDL, ISE-WebPack, Simulator bei 
mir: iSim.

MfG Echo

von Chris (Gast)


Lesenswert?

Hast Du eine Testbench und ein Modell für den encoder?

von IchUndDU (Gast)


Lesenswert?

Ist das der selber AC97, der auf dem Xilinx XUPV2Pro drauf ist?

von Echo (Gast)


Lesenswert?

Hi,

aufm XUPV2P-Board ist ein anderer Audio-IC als der LM4550. Momentan bin 
ich schon weiter mit dem Code, in der Simulation läuft alles wunderbar. 
Allerdings werden meine Signale in der Realität zeitlich verzögert, so 
stark das keine Register vernünftig gesetzt werden. Liegt wohl an 
irgendwelchen FFs die noch drin sind (obwohl es wie gesagt in der 
Simulation funzt...). Ich werd noch n bisschen weiter dran arbeiten um 
zu gucken woran das liegen kann.

von Echo (Gast)


Angehängte Dateien:

Lesenswert?

Bin bisher nicht weitergekommen beim Code...wie gesagt: inner simulation 
alles toll: er holt sich den vom LM4550 erzeugten Bit_Clock, gibt 
kontinuierlich n Sync-Signal aus und soll bei jedem Sync-Signal ein 
serielles Ausgangssignal liefern das die Register des LM4550 anspricht. 
Inner Realität wiederrum werden die Signale zwar erzeugt, aber diese 
weisen einen teilweise starken Zeitverzug auf...

Es treten keine Erros beim Synthetisieren auf, es gibt nur Warnings die 
sagen das Latches im Programm vorhanden sind, die so nicht vom Spartan6 
unterstützt werden.

Wäre sehr nett wenn mir jemand mit dem Code helfen könnte.

MfG Echo

von Dimi (Gast)


Lesenswert?

Hallo,

ich hatte vor kurzem auch Probleme mit Ansteuerung eines AC97-Codecs.
Im Internet leider nicht viel zum Thema zu finden. Habe dann doe 
Intel-AC97-Spezifikationen v2.3 studiert 
(http://download.intel.com/support/motherboards/desktop/sb/ac97_r23.pdf)
Danach war es mir klar wie das geht. Ganz simple Sourcecode für 
AC97-Codec habe ich auf meine Internetseite 
(http://speccyland.net/index.php?option=com_content&view=article&id=5:ac97-&catid=3:vhdl--verilog)

MfG aus Westerwald

von Echo (Gast)


Lesenswert?

Moin,

joa wie gesagt: In der Simulation funzt ja alles, ich weiß auch welche 
Register ich beschreiben muss usw. Momentan verwende ich folgenden 
Verilog-Beispielcode: 
http://www-mtl.mit.edu/Courses/6.111/labkit/verilog/004/audioloopback/audioloopback.v 
Funzt auch wunderbar. Danke für den Beispielcode Dimi! Werde mir den ma 
angucken und dann versuchen mal ne Audioausgabe hinzukriegen die auf 
gespeicherten PCM-Dateien basiert.

MfG Echo

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
Noch kein Account? Hier anmelden.