Hallo zusammen,
ich arbeite derzeit an einer Aufgabe mit einem FPGA Board in Kombination
mit einem ADC und einem DAC. Was ich derzeit einfach erreichen möchte
ist eine 1:1 SPannungsübertragung, ich gebe also am AD - Wandler 2V rein
und erwarte am DA Wandler ebenfalls 2V als output. Der AD Wandler
arbeitet mit der I2c Schnittstelle. Zu diesem Zweck habe ich mir in VHDL
einen I2C Master implementiert, um den ADC als Slave ansprechen zu
können. Mein erstes Problem war, dass die SDA Line gar keine Daten
ausgegeben hat, dies konnte ich mit einem externen Pullup(1k bei 1MHz
Arbeitsfrequenz) auf Versorgungsspannung (3,3V) lösen. Die Clock Line
habe ich nicht mit einem Pullup versehen, da diese nur vom Master als
Output kontrolliert wird. Es wurden jetzt Daten über die SDA Line vom
ADC ausgegeben, aber die falschen! Der Output aus dem DA Wandler war
stets doppelt so groß, wie der Input am ADC. Ich dachte, das sein ein
Problem mit meinem VHDL Protokoll (bitshift oder so), ich konnte aber
verifizieren, dass hier kein Problem vorliegt. Jetzt kam ich auf den
Trichter, mal verschiedene Spannungen in den ADC reinzugeben per Wave
Generator. Eigentlich ist die Spannungsreferenz des AD Wandlers 3,3V,
ich habe aber herausgefunden, dass er bei 1,65V sein Maximum ausgibt,
also alle Bits der 12 Bit Daten sind hier = '1'. Somit muss die
Spannungsreferenz des AD Wandlers ja bei 1,65V liegen. Jetzt habe ich
mich gefragt: Habe ich mir durch den Pullup vielleicht irgendwie nen
Spannungsteiler in die Schaltung gebaut? Zu diesem Zweck hab ich nen
Schaltplan des AD Wandler Board angehängt mit von mir eingezeichnetem
Pullup. Vielleicht könnt ihr mir weiterhelfen?
Alex K. schrieb:> ich habe aber herausgefunden, dass er bei 1,65V sein Maximum ausgibt,
Falsche Referenzspannung am ADC? Es gibt auch welche, die intern per
Konfiguration die Referenzspannung halbieren können. Oder du mißt
differentiell bzw. Pseudo-bipolar, das können auch viele ADC per
Konfiguration einstellen. Vermutlich stimmt deine Ansteuerung bzw.
Konfiguration des ADC nicht.
> also alle Bits der 12 Bit Daten sind hier = '1'. Somit muss die> Spannungsreferenz des AD Wandlers ja bei 1,65V liegen.
Eben.
> Jetzt habe ich> mich gefragt: Habe ich mir durch den Pullup vielleicht irgendwie nen> Spannungsteiler in die Schaltung gebaut?
Nö, denn der hängt am I2C Pin, der hat mit dem Analogteil rein gar
nichts zu tun.
Danke für die Hilfestellung!
Ich habe mich nochmal durchs Datenblatt gewühlt und anstelle der
standard Spannungsreferenz eine eigene gewählt, nämlich (wieder) 3,3V.
Hierzu musste ich die Konfiguration ändern und einen Jumper anders
setzen. Das Ergebnis ist dennoch dasselbe, nämlich Maximum bei 1,65V??!
Das verstehe ich nicht. Ich suche jetzt weiter nach einem Hinweis
darauf, dass die Spannungsreferenz geteilt wird.
Falls jemand schon Erfahrung mit dem Bauteil hat: Ich verwende den AD2
von Digilent, verbaut ist der ad7991.
Habe im Datenblatt auch nichts entsprechendes gefunden.
Generell: für ein FPGA würde sich ein ADC mit SPI eigentlich einfacher
machen (das ist letztlich ein simples Schieberegister). Aber da du I²C
nun ohnehin schon implementiert hast, sollte das egal sein. Bei I²C
führt man normalerweise beide Busleitungen mit Pullup aus, denn ein
I²C-Slave darf sich durch Runterziehen der SCL-Leitung zusätzliche Zeit
ausbitten, wenn er noch nicht bereit ist. Allerdings macht dein AD7991
sowas nicht, insofern hier egal.
Was passiert denn, wenn du die externe Referenz auf 1,6 V reduzierst?
Habe das mal mit einer 1,5V Referenz probiert und mit einem
Eingangssignal von 500mV.... Hier ist irgendwie schon das Maximum
erreicht. Bin weiter runtergegangen mit der angelegten Spannung und bei
1,5V Referenz scheint bereits bei 100mV das Maximum erreicht zu sein. Da
werde ich gerade echt nicht schlau draus.
Zur Info: Ich beurteile die Ausgabe des AD Wandlers, indem ich mit die
SDA Line auf dem Oszilloskop ansehe.
Habe nochmal einen Blick in den Schaltplan geworfen, den ich hier auch
angehängt habe: Unten Links befindet sich ja als "IC3" gekennzeichnet
der ADR380. Das ist eine Spannungsreferenz. Ich bin mir nicht sicher, ob
ich das Datenblatt richtig verstehe. Liefert das Teil IMMER 2,0V,
unabhängig von der Input Spannung (zumindest innerhalb der
spezifizierten Spannung)?? Dann hätte ich ja als Referenz 2,0V, aber das
erklärt immernoch nicht die 1,65V?
Wow. Ich fühle mich echt dämlich... Der Ausgang des Messgerätes war mit
einem Output Load von 50Ohm eingestellt, anstelle von HiZ..... Es
funktioniert tatsächlich alles so, wie gewollt. Sorry!
Alex K. schrieb:> Wow. Ich fühle mich echt dämlich... Der Ausgang des Messgerätes war mit> einem Output Load von 50Ohm eingestellt,
Das war wohl eher der Ausgang des Generators.
> anstelle von HiZ..... Es> funktioniert tatsächlich alles so, wie gewollt. Sorry!
Das hätte man mit einem Oszi oder gar nur DMM sehr einfach sehr schnell
mal nachmessen können.
"I like to measure things."
Bob Pease (RIP)
Falk B. schrieb:> Das hätte man mit einem Oszi oder gar nur DMM sehr einfach sehr schnell> mal nachmessen können.
Kann ich Dir nur zustimmen, habe am komplett falschen Ende gesucht...
Eine eigene Frage?
Dieser Thread ist über 7 Jahre alt.
Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.