Hallo Ich spiele gerade am micro:bit. Irritiert bin ich, daß der A/D-Wandler angeblich 0-1023 liefern soll aber 3 liefert, wenn ich einen der 3 großen Pins mit GND verbinde (1023 bei 3V). Eine Suche dazu lieferte mir keine Erkenntnisse (außer das überall steht 0-1023). Hat das noch nie einer bemerkt? Warum ist das so? Meine Kabel sind nicht zu hochohmig. Aus dem Schaltplan https://github.com/bbcmicrobit/hardware/blob/master/SCH_BBC-Microbit_V1.3B.pdf werde ich auch nicht Schlau. Angeblich sollen da ja Pull-Ups sein aber dann müßte ein offener Pin 1023 liefern - tut er nicht (~230, also frei baumelnd).
Florian schrieb: > Angeblich sollen da ja Pull-Ups sein ich habe keine gesehen. Florian schrieb: > daß der A/D-Wandler > angeblich 0-1023 liefern soll aber 3 liefert, wenn ich einen der 3 > großen Pins mit GND verbinde (1023 bei 3V). Toleranzen der integrierten Peripherie. Woher kommen deine 0V? Florian schrieb: > Hat das noch nie einer bemerkt? Doch, steht bestimmt auch im Datenblatt des verwendeten Mikrocontrollers. mfg mf
Achim M. schrieb: >> Angeblich sollen da ja Pull-Ups sein > ich habe keine gesehen. Seite 6 Achim M. schrieb: > Toleranzen der integrierten Peripherie. > Woher kommen deine 0V? GND ist GND. Achim M. schrieb: >> Hat das noch nie einer bemerkt? > Doch, steht bestimmt auch im Datenblatt des verwendeten > Mikrocontrollers. Und warum finde ich dazu nichts?
Das ist halt Inselaffentechnik. Die haben keine Erfahrung mit Spaltmassen.
Florian schrieb: > aber 3 liefert, wenn ich einen der 3 > großen Pins mit GND verbinde Aber funktioniert der ADC grundsätzlich mit einem Potentiometer von 0 bis 3V?
Strategic Head of Lunch Planning schrieb: > Das ist halt Inselaffentechnik. > Die haben keine Erfahrung mit Spaltmassen. Abschätzige Bemerkungen über andere Völker halte ich für nicht annehmbar.
Florian schrieb: > Achim M. schrieb: >>> Angeblich sollen da ja Pull-Ups sein >> ich habe keine gesehen. > > Seite 6 > > Achim M. schrieb: >> Toleranzen der integrierten Peripherie. >> Woher kommen deine 0V? > > GND ist GND. > > Achim M. schrieb: >>> Hat das noch nie einer bemerkt? >> Doch, steht bestimmt auch im Datenblatt des verwendeten >> Mikrocontrollers. > > Und warum finde ich dazu nichts? Das weiß ich auch nicht. Aber möglicherweise schaust Du nicht im Datenblatt des Chips nrf... sondern in dem von Dir verlinkten Schaltplan. Da steht üblicherweise nichts über Toleranzen. Ich empfehle Dir, das Datenblatt zu suchen und evtl. (dann können wir auch mal nachschauen) hier zu verlinken oder als Anhang zu posten. An sich sind gewisse Ungenauigkeiten von AD-Wandlern normal. 3 Digits sind auch nicht ungewöhnlich viel.
Im Anhang findest du einen Ausschnitt aus dem Datenblatt des nRF51822. Der Offset-Error kann bis zu ±2% betragen, wobei ich keine Information darüber gefunden habe, worauf sich die Prozente beziehen. Ich vermute, sie beziehen sich auf den gesamten Messbereich so dass die angegebene Toleranz ±20 LSB entspricht (was schon recht happig ist). Die von dir beobachteten -3 LSB liegen also innerhalb der Spezifikation. Hier hat einer exakt dasselbe Problem: https://devzone.nordicsemi.com/f/nordic-q-a/5666/adc-accuracy Die Antwort enthält auch einen Link auf eine Anleitung, wie der Offset- und der Gain-Error per Software korrigiert werden können: https://devzone.nordicsemi.com/f/nordic-q-a/4517/how-to-calibrate-the-nrf51-adc-to-correct-offset-and-gain-error Bei neueren Revisionen des Controllers scheinen die beiden Fehler bei der Herstellung vermessen und in einen nichtflüchtigen Speicher geschrieben zu werden, so dass du den ADC nicht selber kalibrieren musst. Die softwaremäßige Korrektur musst du aber trotzdem noch vornehmen. Strategic Head of Lunch Planning schrieb: > Das ist halt Inselaffentechnik. Seit wann ist Norwegen eine Insel? > Die haben keine Erfahrung mit Spaltmassen. Auch ich kann mir unter einer "Spaltmasse" nichts vorstellen. Da ein Spalt aus nichts (oder maximal aus ein wenig Luft) besteht, müsste seine Masse sehr klein sein. Aber hier geht es weder um Inseln noch um Massen, also behalte deine Kommentare besser für dich.
Also ein ADC sollte doch bei GND auch 0 liefern. Toleranzen hin oder her. Geht ja gar nicht. Und die nicht wirkenden Pull-ups erklärt mir das auch noch nicht. Warum sind alle nur so begeistert von dem Ding?
Florian schrieb: > Also ein ADC sollte doch bei GND auch 0 liefern. Das kommt ganz drauf an wie groß dein Spannungsabfall über den GND Pfad ist. Der ADC misst innerhalb seiner Referenz, wenn dein GND den du da anlegst leicht verschoben ist dann kommt auch nicht 0 raus. Das kann verschiedene Ursachen haben. Ich mein das sind knapp 9mV das halte ich jetzt nicht für ungewöhnlich. Was erwartest du von einem 10 Bit ADC.
Florian schrieb: > Also ein ADC sollte doch bei GND auch 0 liefern. Toleranzen hin oder > her. Geht ja gar nicht. Ich fürchte, da unterliegst Du einer falschen Annahme. Es wäre ratsam, falls Du Dich etwas mit AD-Wandlern und deren Funktionsweise beschäftigst. (Elektronik-Grundlagen sind dabei vorausgesetzt). Je nach Funktionsprinzip läuft die Wandlung meist auf einen Vergleich von Spannungen oder eine Umsetzung von Strömen in Spannungen hinaus. Daran sind reale Bauteile beteiligt, die nunmal eine begrenzte Genauigkeit haben. Etwas kontro-intuitiv scheint das bei 0 V zu sein, aber das ist leider eine Täuschung aufgrund der Annahme, dass es wenigstens einen absoluten Wert gibt - und das sei die Null. Das ist aber nicht so. Auch die 0 V sind Gegenstand eines Vergleiches (oder einer Umwandlung etc. je nach Wandler-Prinzip). > Und die nicht wirkenden Pull-ups erklärt mir das > auch noch nicht. Das sollte an sich aus dem Schaltplan und der Beschreibung des Controllers hervorgehen. Am Naheliegendsten ist die Vermutung (ich bin zu faul und es ist zu warm für mich, das jetzt nachzuprüfen), dass, entgegen Deiner Vermutung, die Pull-Up-Widerstände nicht an dem fraglichen Eingang des AD-Wandlers liegen. > Warum sind alle nur so begeistert von dem Ding? Nun. Es gibt Unterschiede in der Genauigkeit von Wandlern. Und, wie schon gesagt, 3 Digits sind nicht soooo viel, dass es sinnvoll ist, den Controller resp. seinen AD-Wandler für "Schrott" zu halten. Du siehst ja, es gibt Methoden den Fehler zu kompensieren. Und in der Regel finden Controller in Fällen Anwendung, in denen solch eine Abweichung tolerierbar ist. Ich möchte nochmal darauf hinweisen, dass die Ansicht, die 0 V seien etwas Besonderes eine Täuschung ist, die mit den Fakten nichts zu tun hat. Ich verstehe schon, dass so eine Täuschung auftreten kann. (Das ging mit in anderen Fällen auch so). Aber nichts desto trotz ist es eine Fehlannahme.
Florian schrieb: > Also ein ADC sollte doch bei GND auch 0 liefern. Toleranzen hin oder > her. Geht ja gar nicht. Aha. Dann nimm doch "einfach" einen idealen ADC. Und alle anderen Entwickler sind wohl einfach nur zu doof, weil sie sich mit den real verfügbaren Bauelementen abgeben und entsprechende Schaltungs- und Kompensationstechniken einsetzen. In Deiner heilen Welt müssen Messgeräte wohl auch niemals kalibriert und justiert werden.
Egal, welchen A/D Wandler ich bisher benutzt habe: GND ist 0. Der ATmega schafft das auch. Und 9 mV bei 5 cm Leitungslänge finde ich happig. Das Teil soll für Anfänger sein. Wie erklärt man denen, daß 0V nicht 0V ist?
Florian schrieb: > Also ein ADC sollte doch bei GND auch 0 liefern. Toleranzen hin oder > her. Geht ja gar nicht. Das Verhalten ist völlig normal. Du hast nur noch keine Erfahrung mit Technik gemacht. Da ist gar nichts perfekt, der wirst du noch an anderen Stellen lernen.
Florian schrieb: > Egal, welchen A/D Wandler ich bisher benutzt habe: GND ist 0. Der ATmega > schafft das auch. Und 9 mV bei 5 cm Leitungslänge finde ich happig. > Das Teil soll für Anfänger sein. Wie erklärt man denen, daß 0V nicht 0V > ist? Es ändert nichts an den Tatsachen, wenn Du in einem Ton Behauptungen aufstellst und Fragen stellst, der suggeriert, dass die Welt anders ist als sie sein sollte und die Abweichung an eine persönliche Beleidigung grenzt. Ebenso halte ich unreflektierte Gegenbeispiele für sinnlos. Im übrigen haben Deine Formulierungen eine Geruch von Vorwurf und Unglauben. Aber Du musst uns unsere Behauptungen ja nicht unbesehen glauben. Die Erklärungen gehen aus einer intensiven Beschäftigung mit den Grundlagen hervor. Ich empfehle Dir das noch einmal - und abschliessend (soweit es mich betrifft). Viel Erfolg.
Florian schrieb: > Warum sind alle nur so begeistert von dem Ding? Wer sagt das? Nach meinem Kenntnisstand ist das Produkt schon viele Jahre bekannt, aber kaum jemand benutzt es zu hause. Die einzigen, die es großartig loben, sind die Händler und Fachzeitschriften, die dafür bezahlt wurden. Für mich ist das Ding im Vergleich zu seinem Nutzen massiv überteuert.
Florian schrieb: > aber 3 liefert ... > Egal, welchen A/D Wandler ich bisher benutzt habe: GND ist 0. Der ATmega > schafft das auch. Reduziere deinen ADC mal auf die 10 bit, die ein AVR hat, dann hast du auch 0. Jeder, der mit ADC zu tun hat, kennt das nicht anders. Bei 8 bit kennt man solche Überraschungen nicht, bei 10 bit manchmal und ab 12 bit immer. > Wie erklärt man denen (den Anfängern), daß 0V nicht 0V ist? Die abweichenden Messwerte versteht man, wenn man die Funktionsweise von Leitungen und ADC verstanden hat. Absolute 0V kann es ohnehin nur an einem einzigen unendlich kleinen Punkt geben: Dem Bezugspunkt. An allen anderen Punkten des Universums kann es keine 0V geben, das ist schon rein physikalisch unmöglich. Wenn innerhalb des Chips den ADC Eingang mit dem Referenzpunkt für 0V verbinden könntest, dann würdest du auch absolut sicher den Messwert 0 erhalten. Aber da kommst du nicht heran. Also vergleichst du effektiv eine Spannung von (aus deiner Sicht) Null Volt mit einer internen, die (warum auch immer) nicht Null Volt beträgt. Daran ist überhaupt nichts ungewöhnlich.
Florian schrieb: > Egal, welchen A/D Wandler ich bisher benutzt habe: GND ist 0. Der ATmega > schafft das auch. Sprichst du da auf einen Arduino an? Ich will nicht wissen was die da in Software noch so alles kompensieren.... Florian schrieb: > Und 9 mV bei 5 cm Leitungslänge finde ich happig. mit 5cm liegst du Schätzungsweise (hab jetzt nicht explizit nachgerechnet) bei Lambda/2 bis Lambda/4 von den WLAN Frequenzen da wirst du dich mal wundern was man sich da so alles einfangen kann ;) Florian schrieb: > Das Teil soll für Anfänger sein. Wie erklärt man denen, daß 0V nicht 0V > ist? Ein Anfänger sollte als erstes lernen das in dieser Welt nichts Perfekt oder Ideal ist. Was glaubst du wie viele Schaltungen in der Theorie funktionieren und in der Praxis nicht. Gutes Beispiel sind Transistoren. Klar kannst du mit einer Stromverstärkung von X und Ube 0,7V rechnen. In der Realität wirst du feststellen, dass diese Werte nicht stimmen. Nicht mal innerhalb einer Serie. Grade die Stromverstärkung streut teilweise ungemein.
Florian schrieb: > Also ein ADC sollte doch bei GND auch 0 liefern. Richtig. Selbst ein C520 aus der S.B.Z. hat das geschafft. Oder die AD-Wandler eines uralten 8 bit PIC. > "massiv überteuert" Auch richtig. Da kann man dann ja gleich besser Phywe kaufen. Da weiss man wenigstens was man bekommt. > Seit wann ist Norwegen eine Insel? Die Norweger haben den "micro:bit" ja auch nicht der Welt aufs Auge gedrückt.
Florian schrieb: > Egal, welchen A/D Wandler ich bisher benutzt habe: GND ist 0. Der ATmega > schafft das auch. Der ATmega48 hat laut Datenblatt einen Offset-Fehler von typisch 2 LSB, Min- und Max-Werte sind nicht angegeben. Die würden wohl deutlich darüber liegen. 3 LSB Fehler wie beim TE sind also durchaus auch bei einem ATmega möglich. Interessanterweise ist beim ATmega2560 ein negativer Wert, nämlich -2 LSB angegeben, während die bei den meisten anderen Typen angegebene vorzeichenlose Zahl wohl als ±-Wert angesehen werden kann. Dieser negative Wert deutet daraufhin, dass der Hersteller den ADC absichtlich so abstimmt, dass er tendenziell eher nach unten als nach oben abweicht. Damit werden Leute wie Florian zufriedengestellt, die damit bei 0V am Eingang garantiert auch eine digitale 0 als Ergebnis der ADC-Messung sehen. Dass bei 14mV, wo man bei Aref=5V eigentlich eine digitale 2 oder 3 erwarten würde, immer noch 0 ausgegeben wird fällt den meisten nicht auf. Generell ist ein positiver Offset günstiger als ein negativer, da letzterer für kleine Eingangsspannungen nicht per Software korrigiert werden kann. Ein Beispiel aus der Messtechnik, wo das ebenfalls eine Rolle spielt: Ich habe zwei Multimeter. Das erste zeigt bei einer Widerstandsmessung mit zusammengehaltenen Messleitungen 0Ω an, das zweite 2Ω. Welches von beiden ist das bessere? Ich bevorzuge das zweite, weil ich den Offset von 2Ω leicht im Kopf subtrahieren kann und dann immer zu einem vernünftigen Messwert komme. Das erste hingegen (das übrigens deutlich teurer war), zeigt erst ab realen 4Ω überhaupt einen Wert >0 an. Widerstände mit weniger als 4Ω kann ich damit schlichtweg überhaupt nicht messen. Strategic Head of Lunch Planning schrieb: >> Seit wann ist Norwegen eine Insel? > Die Norweger haben den "micro:bit" ja auch nicht > der Welt aufs Auge gedrückt. Von denen stammt der Mikrocontroller mit dem von dir kritisierten ADC.
> Von denen stammt der Mikrocontroller mit dem von dir kritisierten ADC. Der etwa die gleiche Relevanz hat, wie ein (10 bit-)ADC auf einem FPGA.
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.
