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?
:
Bearbeitet durch User
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?
Miss doch einfach mal die Eingangsspannung am ADC und auch die Referenzspannung!
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)
:
Bearbeitet durch User
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...
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.