Nochmal ein neuer Versuch: Ich arbeite mit dem folgenden 24-bit-ADC, Darstellung im 2er Kompliment. Hier der ADC: http://www.hycontek.com/attachments/DataConverters/DS-HY3118_EN.pdf Der A/D Wandler soll einen Eingangsbereich von 0...3,3V haben (0V = keine Belastung und 3,3V = maximale Belastung). Den Schaltplan habe ich genauso wie im Application Circuit aufgebaut (vgl. Anhang). Da ich 3,3V als Referenzspannung nutzen möchte, habe ich den internen LDO auf 3,3V eingestellt und somit den VDDA Pin (wie im Datenblatt) mit REFP verbunden. Über die Konfigurationsregister habe ich REFP = VDDA und REFN = VSSA eingestellt, so dass sich ein gewünschter Messbereich von REFP - REFN = 3,3 V einstellt. Den REFO Pin habe ich über einen 100n Kond. an GND gelegt. Der ADC arbeitet NUR, wenn ich Enable REFO control in dem SYS Register enable. Kann mir jemand erklären warum genau das so ist? Den ADC und den LDO habe ich natürlich im SYS Register enablet. Kann mir jemand sonst noch etwas zu der Schaltung sagen? Müßten zur HF Reduzierung noch 100n Kondensatoren an die AIN1 bzw. AIN2 Leitungen gehängt werden? In einigen Beispielschaltungen habe ich gesehen, dass in diese Leitungen auf zwei Serienwiderstände eingefügt sind. Wofür sind diese gut? Den ADC Wert kann ich mir mittlerweile anzeigen lassen, wobei ich nur die ersten 23 Bit nutze (das letzte Bit dient als Output Code Status Bit). Der ADC Wert schwankt im Ruhezustand noch ganz schön. Wie kann ich hier Störungen weiterhin minimieren? Mit dem internen PGA habe ich auch schon ein bißchen rumexperimentiert. Natürlich werden die Störungen dadurch nicht kleiner. Danke für den Input.
Lümmel_01 schrieb: > Der ADC Wert schwankt im Ruhezustand noch ganz schön. Wie kann ich hier > Störungen weiterhin minimieren? Mach dir mal den Spass und rechne die Temperaturstabilität in PPM aus die das System, welches gemessen wird, haben müsste damit der ADC-Wert nicht schwankt wenn sich die Temperatur um ein halbes Grad ändert und staune. Ich tippe nur ins Blaue und sag mal 0,1 ppm/K.
Da die vier Brückenwiderstände nicht, wie im Schaltbild, in unmittelbarer Nähe des Wandlers angebracht sind, sondern wahrscheinlich das volle Programm aus: Klemmstellen, Leitungen usw. mit sich bringen, ist an dieser Stelle einiges an Sorgfalt von Nöten. Da können schon mal Filterspulen und zusätzliche Kondensatoren nötig werden. Das alles ist aber vom konkreten Aufbau abhängig. Bei 24 Bit können ganz normale Klemmen, zusammen mit etwas Luftfeuchtigkeit, schon zum chemischen Element werden. Schon allein der Gedanke, an etwas Brummspannung, kann Dir die letzten 10 Bit durcheinander bringen. Und noch ein paar Nettigkeiten.
Stimmen denn die obigen Überlegungen mit dem Aufbau überein? Kann mir Jemand erklären, warum der ADC nur arbeitet, wenn ich den REFO control im SYS Register Enable? Was genau hat es damit auf sich? Mit einem Gain von 1 (also OGA disablet) schwankt der ADC-Wert im nicht belasteten Fall enorm, bei Belastung sowieso. Wenn ich den PGA enable natürlich noch mehr. Ich habe zwischen AIN1 und AIN2 100n (wie im Datasheet) verbaut. Macht es weiterhin Sinn einen Kondensator zwischen die analogen Leitungen und GND zu schalten? Weiss Jemand etwas über die Serienwiderstände?
Ein weiterer Punkt wäre das Auslesen des ADCs. Ich verwerfe das LSB des 24-Bit ADC (dies ist ja das Status Bit) und lass mir die 23 Bit als Integer anzeigen. Dies müßte korrekt sein. gel? Also hat der 24 Bit ADC im Prinzip nur eine Auflösung von 23 bit?
Lümmel_01 schrieb: > schwankt der ADC-Wert im nicht > belasteten Fall enorm, bei Belastung sowieso Was meinst Du eigentlich mit Belastung? Da ist doch nur die Brücke dran. Und die verändert sich doch nicht extrem.
also erstmal wird dein Wert j aintern im ADC so berechnet: 3,3V / 2^24(bit) = 196,7 nV da ist es normal dass er mal um ca. 3000 counts, wenn nicht mehr Rauschen kann, je nach Aufbau und genutztem PGA ( normalerweise schwankt er bei PGA=1 weniger als bei höheren Werten). Das nur um dir mal ein paar Hausmarken zu geben. Was du mit dem letzten bit willst verstehe ich nicht, steht dazu etwas im Datenblatt, ich habe das nicht gelesen, wenn du das selber so bestimmst verstehe ich es noch weniger :)
Die positive Brueckenspannung darf natuerlich nicht die Speisung sein, sondern sollte eine Referenz sein. Und die Brueckenspeisung und die ADC-Referenzanschluesse duerfen nur an der Bruecke zusammen sein
Vielen Dank schon mal für die Antworten. Der gelesene ADC Wert wird im ADO Register zurückgegeben (siehe Anhang). Das High Byte und Mittel Byte beinhalten jeweils 8 bit, das Low Byte jedoch nur 7, da das letzte Bit als Code Status Bit interpretiert wird. Ich habe das so verstanden, dass dieses 1 ist wenn das Register erfolgreich gelesen würde. Deswegen habe ich mit 3,3V / (2^23) = 0,39 uV gerechnet. Ist dies eine falsche Annahme?
So auf den ersten Blick, ja. Das sollte allerdings im Datenblatt stehen. Zusammen mit dem Messmode oder so.
hm da kannst du recht haben, ich hab nur im Datenblatt überflogen ENB ist 20bit, da würde es schon passen, wenn die einfach das LSB als Status nehmen, so genau kann man das wegen Temperaturbauteiltoleranzen sowieso nicht real benutzen, aber genau weiss ich das nicht. Und noch kurz nur falls es dir nicht klar ist, wenn deine Referenzspg. nicht stabil sind schwankt dein gewandelter ADC Wert natürlich immer genau mit derselben Toleranz mit. In der Praxis benutze ich entweder Referenzen, zB 2,5V oder meine ADCs besitzen interne Referenzen, aber die Versorgungsspannung benutze ich ungern oder garnicht, weil da meistens dann doch ein Schaltrippel drauf sein kann, außer man regelt eben alles linear, das musst du dann wissen bzw muss die Schaltung eben zeigen.
Danke wiederum für die hilfreichen Kommentare! sdf schrieb: > hm da kannst du recht haben, ich hab nur im Datenblatt überflogen > ENB > ist 20bit Was genau bedeutet ENB 20bit? Habe da im Datenblatt nix gefunden. 23 Bit ADC auslesen müßte passen. > In der Praxis benutze ich entweder Referenzen.. Als Referenzspannung nutze ich ja die 3,3V des internen LDOs. Diese greife ich an VDDA ab und führe sie zum REFP Pin. Ich habe also keine externe Referenz und nutze auch nicht die Versorgungsspannung. Habe leider die Schaltung hier nur auf dem Steckbrett. Deswegen kurz die Erläuterung. Die Schaltung ist ähnlich dem obigen Application Circuit aufgebaut. Ich habe keine Brückenschaltung, sondern einen DMS. Das Prinzip sollte jedoch dasselbe sein: DMS: +VCC, GND, SIG+ -> AIN1, SIG- -> AIN2 ADC: VDDA an REFP (also 3,3V an REFP), VDDA und REFP über 100n an GND, REFN und VSS natürlich an GND, REFO über 100n an GND. Das müßte also prinzipiell genauso wie oben im Application circuit dargetellt funktioren! Oder nicht? Nochmal die Frage: Jemand eine Ahnung warum der ADC nur veränderliche Werte ausliest, wenn ich den Voltage Reference Output enable? Das ist mir nach wie vor unerklärlich
Steckbrett ... alles klar. Ein solcher ADC benoetigt eine Leiterplatte mit groesster Aufmerksamkeit auf die Verlegung der Verbindungen, speziell GND. Toll dass es bisher so gut ging. Nochmals, mit Leiterplatte. ENB heisst effective number of bits. Dh soviele Bits sind im besten Fall brauchbar. ..im besten Fall brauchbar, mit optimaler Leiterplatte.
Lümmel_01 schrieb: > Habe leider die Schaltung hier nur auf dem Steckbrett. Autsch, und das bei 23 bit…das wird ja schon bei 16 bit nix damit da nix zappelt und du willst es auf 23 bit bringen? Also ich fände ja jetzt interessant wofür du 23 bit brauchst. However, auf dem Steckbrett kannst du locker die ersten 10 bits in die Tonne treten. Lümmel_01 schrieb: > Als Referenzspannung nutze ich ja die 3,3V des internen LDOs. Der hat im Bereich von -40 °C bis +85°C nur eine Temperaturstabilität von 50 ppm/K (Datenblatt Seite 17). Soll deine Schaltung im Bereich von 20 °C bis 30 °C eingesetzt werden bräuchte deine Referenz aber für 23 bit (alternativ 16 bit) eine Temperaturstabilität von 0.006 ppm/K (0.763 ppm/K @ 16 bit). Das ist praktisch nicht errreichbar (mir ist keine Referenzquelle bekannt, die so Temperaturstabil ist). Sorgst du dafür, dass deine Schaltung auf einer Temperatur von z.B. 20 °C bis 20.5 °C bleibt muss deine Referenz immer noch eine Stabilität von 0.119 ppm/K (15.259 ppm/K @ 16 bit) aufweisen. Das ist zumindest für 16 bit leicht erreichbar. Du siehst, die Wahl der Referenz ist enorm von den Randbedingungen abhängig und schon die alleine hat enormen Einfluss auf die Stabilität des ADC-Wertes (man muss hier praktisch die Temperatur des ADCs konstant halten unabhängig von den Umgebungsbedingungen wenn man 23 bit nutzen will). Dann kommen auch noch so Sachen wie Rauschen am Eingang hinzu und die Temperaturstabilität des "Messobjekts" am Eingang. Was stellst du dir denn vor wie stabil es sein sollte?
OK, wow. Erstmal vielen Dank für die Antworten. Habe dann noch diverse Fragen. 1. Im Datenblatt steht effective Number of bits at 21 bit and 100nV sub-variable Signal... -> d.h. also dass ich die ersten beiden Bits (und das letzte) verwerfen kann/sollte? 2. Es ist also scheinbar nur der LDO so temperaturabhängig. Was ist wenn ich eine externe Spannung als SPannungsreferenz benutze. Angenommen ich habe auf dem Board 3,3V zur Verfügung. Macht es dann Sinn diese 3,3V über 100n einfach an REFP zu hängen? Kann man sagen dass um so höher die Auflösung, dass um so ungeeigneter die internen Referenzen sind? Also wenn hohe Auflösung gefordert -> externe Referenzpsg. ? 3. Ist die Schaltung prinzipiell wie oben beschrieben in Ordnung (ich werde hier aber mal einen vernünftigen Schaltplan posten). 4. Bei hoher Auflösung also kein "drum rum kommen" eine LP zu fertigen? 5. Nochmal die Frage: Jemand eine Ahnung warum der ADC nur veränderliche Werte ausliest, wenn ich den Voltage Reference Output enable? Vielen Dank für die Mithilfe. So langsam wird die Welt verständlicher :)
Vergleich die interne Referenz mit einer ADR421, bezueglich Genauigkeit, Offset, Rauschen. Allenfalls ist man auch mit relativen Resultaten zufrieden ... dann muss die Referenz nur stabil, und hinreichend rauscharm sein.
Lümmel_01 schrieb: > -> d.h. also dass ich die ersten beiden Bits (und das letzte) verwerfen > kann/sollte? Die beiden niederwertigsten Bits kannst du getrost wegwerfen. Wahrscheinlich liegen die mitten im Rauschen (hab jetzt nicht so genau ins Datenblatt geschaut) Lümmel_01 schrieb: > Es ist also scheinbar nur der LDO so temperaturabhängig. Du misst eine Widerstandsbrücke? Neben dem Rauschen der Widerstände driften auch die Temperaturabhängig. 100 ppm/K ist da nicht unüblich. Lümmel_01 schrieb: > Was ist wenn > ich eine externe Spannung als SPannungsreferenz benutze. Angenommen ich > habe auf dem Board 3,3V zur Verfügung. Macht es dann Sinn diese 3,3V > über 100n einfach an REFP zu hängen? Kommt drauf an wie temperaturstabil die Quelle ist. Lümmel_01 schrieb: > 3. Ist die Schaltung prinzipiell wie oben beschrieben in Ordnung (ich > werde hier aber mal einen vernünftigen Schaltplan posten). ja klar, im Datenblatt steht in der Regel kein Quatsch. Lümmel_01 schrieb: > 4. Bei hoher Auflösung also kein "drum rum kommen" eine LP zu fertigen? Na auf dem Steckbrett kannst du es auf jeden Fall vergessen Lümmel_01 schrieb: > 5. Nochmal die Frage: Jemand eine Ahnung warum der ADC nur veränderliche > Werte ausliest, wenn ich den Voltage Reference Output enable? Wie gesagt, ich hab nicht genau ins Datenblatt geschaut aber ohne Referenzspannung macht es ja keinen Sinn einen ADC-Wert zu bestimmen.
Top, schon mal vielen Dank! > Wie gesagt, ich hab nicht genau ins Datenblatt geschaut aber ohne > Referenzspannung macht es ja keinen Sinn einen ADC-Wert zu bestimmen. Also wenn damit die Referenzspannung enablet werden würde, würde es natürlich Sinn machen! Ich habe es so verstanden, dass hier aber der REFO (REF Output Pin) enablet wird, an dem 1,2V bzw. 1,5V abgegriffen werden. Dann würde es nämlich NULL Sinn machen, wenn nur dann der ADC funktionieren würde???? Ich habe im Anhang mal kurz das Schaltbild hingeschustert, wenn ich die interne LDO Spannung als Referenz nutzen würde, weil ich in der Tat überlege eine kleine Platine fertigen zu lassen. Passt das Schaltbild so? VDDA mit REFP verbunden?
Vdd musst du aber auch noch anschließen, sonst schauts eng aus mit der Kommunikation ;)
Michael Köhler schrieb: > Vdd musst du aber auch noch anschließen, sonst schauts eng aus mit > der > Kommunikation ;) :) VDD natürlich noch. Für externe Referenzspannung (zum Beispiel VDD = 3,3 V sähe das dann wie im Anhang aus)? In beiden Fällen muss VDDA zwingend mit REFP verbunden sein, richtig? Bin da etwas verwirrt, da man ja auch intern VDDA direkt auf den AD Wandler geben kann, also REFP eigentlich gar nicht nutzen muss (siehe Blockdiagramm S. 7). Ansonsten müßte der Schaltplan für externe Referenz dann so passen? Welche Variante würdet Ihr bevorzugen? Nochmal zum REFO: Mit ENREFO enable ich laut Datenblatt die REFO control. Diese kann ich ja auf 1,2V oder 1,5V setzen. ich verstehe das so, dass ich darüber einfach den Output des REFO Pin aktiviere und dann auf 1,2 bzw. 1,5V setzen kann. Wenn nach Herrn Köhlers Theorie ich einfach die Referenzspannung damit enable würde es wiederum Sinn machen
Lümmel_01 schrieb: > Für externe Referenzspannung (zum Beispiel VDD = 3,3 V sähe das dann wie > im Anhang aus)? Kann man so machen, würde ich aber nicht. Die Referenzspannung sollte schon eine eigene Referenzquelle sein. So kannst du auch die Interne benutzen was wahrscheinlich wesentlich sinnvoller, da stabiler, ist. Lümmel_01 schrieb: > In beiden Fällen muss VDDA zwingend mit REFP verbunden sein, richtig? Das weiß das Datenblatt aber ich denke nicht dass man den VDDA-Pin mit dem REFP-Pin verbinden muss denn wie du schon sagst kann man das ja auch intern im Chip machen. Lümmel_01 schrieb: > Ansonsten müßte der Schaltplan für externe Referenz dann so passen? Die Referenzspannungsquelle sollte in dem Fall was separates sein, dass nicht mit VDD und/oder VDDA verbunden ist. Sonst ist das ziemlich witzlos.
OK, also VDDA nicht zwingend mit REFP verbinden. Ich arbeite jetzt erstmal mit der internen 2,4V LDO Spannung und der geringsten Samplerate von 10sps (was natürlich sehr langsam ist) und einem Gain von 8. Hierbei ergeben sich bei der Auslesung schon sehr konstante ADC-Werte. ich werde mir aber überlegen mir eine eigene LP fertigen zu lassen. Wenn dann externe Referenzspannung, dann auf keinen Fall Versorgungsspannung etc. ist abgespeichert. Wenn jemand noch eine Idee bzgl. des mysteriösen ENREFO hat bin ich immer offen :) Ansonsten vielen Dank an Alle und vor allem Herrn Köhler! Gruss
Die Speisung des DMS muss natuerlich von der Referenz kommen. Die Referenzeingaenge des ADC werden am DMS an die Bruecke gelegt. Nirgendwo anders. An dieser Stelle sollte man sich loesen davon, wie man normalerweise Schaltschemas zeichnet. GND ist nicht GND. Zur Kommunikation mit dem Controller muss auch noch der GND verwendet werden. Und in die Daten & Clock Leitungen zum Controller 100 Ohm Seriewiderstaende.
OK schon mal vielen Dank. OK dann war dies bis dato noch ein eklatanter Fehler. Die Speisung des DMS (also wie im Anhang) unbedingt an REFP (und damit VDDA). Die "Masse" des DMS hat dann dasselbe potential wie REFN!!! Danke dafür. So wie im obigen Schaltplan müßte es passen?? > Und in die Daten & Clock Leitungen zum Controller 100 Ohm > Seriewiderstaende. Wofür sollte das gut sein? Habe gesehen dass in die analogen Eingangsleitungen des ADC 100 Ohm in Serie geschaltet werden. ? Wofür sind diese gut?
Nee, die 100 Ohm zwischen ADC und Controller nicht zum DMS. Und RefP und RefN an den DMS
Siebzehn Zu Fuenfzehn schrieb: > GND ist nicht GND Stimmt! Der Lümmel hat den Digital-GND (VSS) immer noch nicht mit dem Controller verbunden.
Siebzehn Zu Fuenfzehn schrieb: > Nee, die 100 Ohm zwischen ADC und Controller nicht zum DMS. > Und RefP und RefN an den DMS OK die 100Ohm raus. Das leuchtet ein. REFP ist doch mit +DMS verbunden?? -> REFP an die Brücke gelegt REFN ebenfalls auf selben Potential wie GND_an am DMS? -> REFN ebenfalls an die Brücke gelegt? Wo ist der Denkfehler?
Hier sollte dann die finale Version sein. Der Schaltplan ist nicht sehr übersichtlich, sollte jetzt aber HOFFENTLICH passen.
Etwa. Man kann's aber immer noch falsch machen. Wir werden sehen.
Lümmel_01 schrieb: > Hier sollte dann die finale Version sein. Ohne einen CKIN wird der ADC wahrscheinlich auch nix machen. Ich empfehle dir dringend das Datenblatt genau durchzulesen. Das sind zu viele "Flüchtigkeitsfehler". EDIT: OK, hab mal kurz ins Datasheet geschaut. Er hat auch einen Internen RC-Osc. Dann braucht man CKIN doch nicht beschalten. Dennoch scheint mir dir fehlt ein wenig Grundwissen.
Das stimmt schon. Ich habe auch ausführlich ins Datenblatt geschaut manche Dinge sind mir aber halt trotzdem nicht ganz klar. Warum genau benötigt der DMS beispielsweise undbedingt die Referenz als Speisung? Warum kann ich hier nicht konstant, sagen wir 3,3V anlegen?
>Warum kann ich hier nicht konstant, sagen wir 3,3V anlegen?
Weil das Messignal proportional zu dieser angelegten Spannung ist. Wenn
die als Speisung um 1% schwankt, was eine Speisung tun darf, aendert das
gemessene Signal auch um 1%. Deswegen nimmt man eine Referenz, die eine
Stabilitaet von beliebig wenig hat.
Es geht nicht nur um die stabilitaet der angelegten spannung, sondern
auch um den Dreck drauf. Rauschen, Spikes, usw. Da ist eine Referenz
einfach besser geeignet
Wenn wir grad dabei sind ... Ein DMS kann je nach Ausfuehrung Strom
ziehen. Die Referenz muss den auch bringen koennen.
Ich hatte auch mal ein hochgenauen ADC (7730). Die Platine haben Profis gemacht mit niedrigsten Toleranzen. Auf dem Chip wurde noch Oversampling und Filter eingeschaltet. Trotzdem wurden von dem 24Bit Ergebnis erst einmal die letzten 6 gelöscht, weil das da nur gerauscht hat. Und auf einem Steckbrett bekommt man noch mehr Rauschen. Du kannst also üben, ob die Programmierung klappt. Aber >12 Bit Genauigkeit würde ich dir nicht geben Das ist ca 1 mV. Und die 12 Bit hätte man einfacher als mit deinem Chip bekommen. In meiner Anwendung ging es auch um DMS.
Hacky, vielen Dank für die ausführliche Erklärung! Und auch an Pitty vielen Dank für den Hinweis. Zum Testen der Programmierung ist es sicherlich gut geeignet. Register beschreiben, auslesen etc. funktioniert auf jeden Fall schon einmal einwandfrei. Ich werde auf jeden Fall mal eine kleine Platine fertigen lassen. Habe mir beim Schaltplan nochmal etwas mehr Mühe gegeben, so dass er hoffentlich besser lesbar ist. Die 100 Ohm Widerstände in der CLOCK und SDA Leitungen fehlen hier noch. In meiner derzeitigen Anordnung hab ich definitv (wie von Euch Allen vermutet) ein Rauschen von mindestens 8 Bit. Deswegen einfach mal ne LP nach obigen Schaltplan. Bedankt
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.