Forum: FPGA, VHDL & Co. Problem mit AD1933 (24 bit Audio DAC)


von Thomas B. (Firma: TU-Ilmenau) (thomaspg)


Angehängte Dateien:

Lesenswert?

Hallo, ich habe folgendes Problem.
Ich versuche seid einiger Zeit ein Analog AddOn Board für ein Virtex 
Board zu Bauen (Virtex 4 LX60 falls das wichtig sein sollte).
Die wahl fiel auf den AD1933 von Analog Devices.

Datenblatt: 
http://www.analog.com/static/imported-files/data_sheets/AD1933.pdf

Das Schematic für das AddOn Board ist im Anhang. Ich habe es nach den 
Vorgaben aus dem Datenblatt entwurfen. (hoffe ich dass das alles so 
richtig ist)

Als Loopfilter (Seite 24 im Datenblatt) habe ich mich für die linke 
Variante entschieden, da ich den LRCLK als PLL Referenz nutzen will.

Die Filterschaltung + Verstärker funktioniert einwandfrei (wurde mit 
Signalgenerator am Eingang gemessen).

So das Problem ist nun, der DAC funktioniert nicht. Der Digitalteil 
zieht nur 2mA, was laut Datenblatt dem Idle - Strom entspricht. RST/PDWN 
ist aber auf '1', daher sollte kein Powerdown zustand sein.

Wenn ich die Register auslese, erhalte ich am COUT Port auch keine 
Signale. Irgendetwas scheint also mit dem Digitalteil nicht zu stimmen.

Den CristalOscillator habe ich nicht bestückt, da dieser nur Optional 
ist (LRCLK soll für die PLL genutzt werden, siehe Seite 11)


Die Pins NC 53 - 60 wurden von GND abgetrennt und mit CM verbunden 
(siehe Seite 9)

Configurationsregister sind wie folgt belegt:

signal regdata0            : std_logic_vector(7 downto 0):="10101000"; 
--PLL Clock 0
  signal regdata1            : std_logic_vector(7 downto 0):="00000000"; 
--PLL Clock 1

  signal regdata2            : std_logic_vector(7 downto 0):="00010100"; 
--DAC Control 0

  signal regdata3            : std_logic_vector(7 downto 0):="00000000"; 
--DAC Control 1

  signal regdata4            : std_logic_vector(7 downto 0):="00000000"; 
--DAC Control 2

  signal regdata5            : std_logic_vector(7 downto 0):="00000000"; 
--DAC Mute

  signal regdata15            : std_logic_vector(7 downto 
0):="00000000"; --Aux TDM 0
  signal regdata16            : std_logic_vector(7 downto 
0):="00000000"; --Aux TDM 1


die gesammt 24 Bit für die Übertragung in die Configurationsregister:
          spi_register(23 downto 17)<="0000100";
          spi_register(16)<='0'; --rwbit
          spi_register(15 downto 8)<=reg_counter;
          spi_register(7 downto 0)<=regdata0;  (jenachdem welches 
register übertragen werden soll)

Auf wunsch kann ich auch das ganze VHDL File senden.

Am Ausgang des DACs kommt keinerlei signal an.

Seht ihr irgendwo einen Fehler?
Falls ihr noch fragen habt einfach per EMAil 
(thomas.beyer@tu-ilmenau.de)
oder skype(warhammerth@gmx.de)  oder icq (99710630) oder hier im Forum 
schreiben.

Danke :)

von Duke Scarring (Gast)


Lesenswert?

Hast Du das ganze schonmal simuliert? Gibt es eine Testbench?

Duke

von Thomas B. (Firma: TU-Ilmenau) (thomaspg)


Lesenswert?

Ja die gibt es... und die simulation sieht gut aus. Ich kann sie gerne 
mal hochladen... Jedenfalls die VHDL Files, den DDS IP Core der das 
Signal (DAC Ausgabe) erzeugt kann ich nicht hochladen.

von Thomas B. (Firma: TU-Ilmenau) (thomaspg)


Lesenswert?

Die Uni möchte leider nicht dass die VHDL Dateien hier hochgeladen 
werden... :-/

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.