Warum bieten die meisten ADCs, wie die auf dem Arduino , eine Auflösung von 10 Bit anstatt von 8 oder 16 Bit?
Es scheint nur seltsam, dass sie nicht mit den Standarddatengrößen übereinstimmen, insbesondere bei integrierten Daten.
microcontroller
adc
Jesse Quisenberry
quelle
quelle
Antworten:
Es gibt kein größeres technisches Problem bei der Erweiterung eines SAR-ADC (Sukzessive Approximation) zur Konvertierung von 16 Bit, aber das Problem besteht darin, dass Sie das Grundrauschen des analogen Front-Ends bemerken. Dies neigt dazu, Kunden in Panik zu versetzen, da sie die ADC-Codes herumspringen sehen und nicht immer erkennen, dass sie Dutzende von Mikrovolt Abweichung beobachten.
Bei einer Bezugsspannung von 5,00 V und einem 10-Bit-ADC entspricht das LSB einer Spannung von 4,88 mV (5 V × 2 -10 ). Bei einem 16-Bit-ADC mit einer 5,00-V-Referenz wäre die LSB-Spannung 76 µV.
Die Stromversorgung in einem digitalen System beträgt jedoch nicht genau 5,00 V, sondern wird normalerweise in einem Bereich von 4,75 V bis 5,25 V angegeben. Immer dann, wenn im Mikrocontroller ein vorübergehendes Schaltereignis auftritt, wird die Stromversorgung durch einen kleinen Stromstoß ausgelöst Zuckende Spannungen. Wenn das LSB etwa 5 mV beträgt, können Sie es möglicherweise kaum sehen, aber bei einem Pegel von 76 µV ist es schwierig, dieses Rauschen nicht zu erkennen.
Sobald Sie den 12-Bit-ADC überwunden haben, müssen Sie tatsächlich über eine analoge Spannungsreferenz verfügen, anstatt nur das digitale Netzteil zu verwenden. Das erhöht also die Kosten. Um die besten Ergebnisse zu erzielen, sollte diese Spannungsreferenz eigentlich ein separater Chip mit eigenen Stromleitungen sein und im Idealfall nicht in der Nähe der heiß / verrauschten digitalen Schaltkreise liegen.
Wenn Sie einen 16-Bit - ADC wollen schön stabile Messwerte zu erhalten, müssen Sie eine sehr sehr sauber Referenzspannung und thermische Kontrolle, und es vorzugsweise weit weg halten von allen schnellen Schalen digitale Signale ... so ein 16-Bit - SAR - Integration auf derselbe Chip wie ein Mikrocontroller würde den Zweck, diese zusätzlichen Bits zu haben, tatsächlich zunichte machen. Sie würden nur zufälliges Rauschen an diesen zusätzlichen Bits messen.
Es gibt Kundenanwendungen, die ADCs mit höherer Auflösung verwenden. Die Firma, bei der ich arbeite, macht einige davon. Automated Test Equipment (ATE), medizinischer Ultraschall und bestimmte andere spezielle Kundentypen verwenden hochauflösende ADCs, in einigen Fällen 18- oder sogar 24-Bit.
Das Testen eines hochauflösenden ADC in der Produktion ist zeitaufwendig (und daher teuer). Kunden, die diese Art von Leistung benötigen, zahlen eine Prämie für einen externen eigenständigen ADC, nicht für die billigen SAR-Typen, die in vielen modernen Mikrocontrollern verbaut sind.
Dann gibt es Hochgeschwindigkeitsanwendungen wie Radar oder digitale Abtastoszilloskope, die mit 100 MHz oder höheren Frequenzen abtasten müssen - bei diesen Geschwindigkeiten haben Sie das Glück, 8 aussagekräftige Bits zu erhalten.
quelle
Kompromiss zwischen Auflösung und Kosten.
8 Bits ergeben 2 8 = 256 Kombinationen, von denen 0 eins ist, wobei 0 bis 255 als mögliche digitale Werte übrig bleiben. Dies reicht für viele Anwendungen nicht aus. Jedes zusätzliche Bit verdoppelt die Auflösung und 10 Bit ergeben 1024 Schritte, was für die meisten Projektaufgaben ausreicht. Industrielle Systeme verwenden möglicherweise 12-Bit für eine noch bessere Auflösung.
Hochauflösende ADCs erfordern engere Toleranzen und sind teurer in der Herstellung.
quelle
Eine Reihe von guten und gültigen Punkten wurde bereits gemacht. Ich habe über die Jahre 8, 10, 12 und 16-Bit-ADCs ausgiebig verwendet, und es ist heutzutage ziemlich einfach, 16 Bits mit einer Umwandlungszeit von 4 oder 5 Mikrosekunden zu erzielen (besser verfügbar, ich werde mich an das halten, was praktikabel sein könnte für die meisten Benutzer) in einem eigenständigen Chip. Dies beinhaltet jedoch ein Präzisionsleiternetzwerk, das häufig Dünnschichtwiderstände und verschiedene hochspezialisierte analoge Entwurfstechniken verwendet. (Es besteht fast immer auch ein Bedarf an Hochleistungs-Bipolartransistoren irgendwo in der Schaltung eines Präzisions-ADC, aber alle modernen Mikrocontroller sind CMOS, so dass zahlreiche zusätzliche Herstellungsschritte erforderlich sind, um alles mit guter Analoggenauigkeit und kombinierter CMOS-Logik herzustellen. ) Ein guter ADC kostet auch mehr als die meisten Mikrocontroller! Nicht so einfach zu machen,
Betrachten wir zum Beispiel den TI ADS8509, dessen Vorgänger der ADS7509 nicht ganz so schnell ist, den ich an vielen Stellen in einem großen und wichtigen Projekt eingesetzt habe.
http://www.ti.com/lit/ds/symlink/ads8509.pdf
Es ist für heutige Verhältnisse ziemlich banal. Die internen Konstruktionsmerkmale sind jedoch nicht mit dem billigen Herstellungsverfahren für Mikrocontroller kompatibel. Und es kostet ab 15,72 US-Dollar mehr als die meisten Mikrocontroller. Ich habe sie in Form eines bloßen Halbleiterchips verwendet, der in hermetische Metalldosenhybride mit sorgfältig entworfenen Trägerschaltungen eingebaut ist, und tatsächlich kaum über 1 LSB PP-Rauschen hinausgekommen ist haben die Ressourcen, einschließlich Budget. Aber Sie werden nie in oder um einen Mikrocontroller ein so geringes Rauschen sehen.
Das Hauptproblem besteht, wie mindestens eine Person erklärt hat, darin, dass das Rauschen auf der digitalen Versorgungsschiene den ADC direkt beeinflusst. Jetzt können Sie das umgehen, indem Sie eine gute externe Spannungsreferenz verwenden, für die ein Stift vorgesehen ist, aber Sie müssen in der Lage sein, dasselbe auch mit der Erde zu tun. Und diese Stifte müssen auf wenige hundert mV von der digitalen Versorgung und der Erdung beschränkt werden, sonst geht das Ding in die Luft. Dazu kommt natürlich die interne Rauschkopplung innerhalb des Siliziums, die sich aus der Logik ergibt, die Zustände auf komplexe Weise mit der Taktfrequenz ändert, und noch schlimmer aus den E / A-Pins, von denen einige möglicherweise 10 mA treiben und schalten, wenn Sie dies wünschen habe sie bis ans Limit geladen. Lärm, Lärm und noch mehr Lärm ...
Der Teil, den ich zitiert habe (und Google für billigere, schnellere oder andere, tauscht Flexibilität gegen Kosten aus), hat eine SPI-Schnittstelle, sodass er EXTERN für einen Mikrocontroller mit eigener lokaler Grundebene, Filterung usw. verwendet werden kann Mit Vorsicht, es wird Ihnen wirklich 16 Bits geben.
Früher war es ziemlich schwierig, mehr als 10 rauschfreie Bits aus einem 12-Bit-ADC herauszuholen, und es herrschte immer noch eine unsaubere Umgebung, z mehr oder weniger bei dieser Auflösung stecken, und wird wahrscheinlich für immer sein. Aber ich habe einen externen 32-Bit-Chip. Habe nicht auf das Datenblatt oder die Kosten geschaut ...
Wenn Sie auf absolute Genauigkeit verzichten können (dh der Skalierungsfaktor kann um 5% oder mehr abweichen, ganz zu schweigen von DC-Offset und dessen Drift mit Zeit und Temperatur, aber die Linearität ist ausgezeichnet), ist ein Audio-ADC möglicherweise das Richtige für Sie. Es handelt sich um mindestens 16 Bit und ist für den Massenmarkt konzipiert, daher oft ein guter Wert. Erwarten Sie jedoch nicht, eines in einem Präzisionsinstrument zu verwenden, das Gleichstromsignale mit +/- 0,1% messen muss.
Sie können nicht alles auf einmal haben. Es ist alles eine Frage des Wichtigsten. Präzision, Rauschen, Langzeitdrift, Geschwindigkeit, Kosten, Leistung, Schnittstellentyp (seriell oder parallel) usw. Möglicherweise möchten Sie auch mehrere Kanäle multiplexen, sodass eine schnelle Sprungantwortzeit erforderlich ist, die viele Sigma-Delta-ADCs ausschließt, die Ansonsten haben einige sehr gute Eigenschaften.
Bei der Auswahl eines ADC. Google ist wie immer dein Freund. Es gibt zahlreiche Artikel und Anwendungshinweise von TI, Linear, National und verschiedenen anderen Halbleiterherstellern. Achten Sie immer darauf, was Ihnen die Datenblätter nicht sagen, und überprüfen Sie, welche Parameter die Wettbewerber hervorheben.
Wenn Sie jedoch alles auf Ihrem Mikrocontroller-Chip haben möchten, sollten Sie in Ihren Projekten nicht mehr als 10 Bit (wahrscheinlich 9 verwendbare, LSB-verrauschte) verwenden. Planen Sie eine getrennte analoge Referenz und Erdung ein, wenn Ihr Chip dies zulässt. Auf diese Weise werden Sie nicht Ihre Zeit verschwenden.
quelle
8-Bit-ADCs sind wegen der 0,49% -Schritte schrecklich zu verwenden - davon habe ich genug gesehen. Arduino, das für die Hobbyelektronik entwickelt wurde, benötigt viermal so viele Schritte, also in der Nähe von 0,1%, was in etwa dem erreichbaren Signal-Rausch-Verhältnis (plus Brummen) entspricht, das von herkömmlichen Operationsverstärker- oder Transistorsensorschaltkreisen erwartet wird. Besseres als das würde für selbstgebaute Elektronik der Hoby-Klasse verschwendet, und schlimmeres als das wäre zu schrill und schrecklich.
16-Bit-ADCs sind im Handel erhältlich, es dauert jedoch länger, bis sie sich eingestellt haben. Während dieser Zeit hat sich das Brummen oder Rauschen verschoben, sodass Sie keine bessere Messung erhalten und die Messung langsamer ist.
quelle
Wenn ein ADC eine Umwandlung vornimmt, liefert er einen digitalen (quantisierten) Wert für das kontinuierliche analoge Signal. Da der digitale Wert zum Umwandlungszeitpunkt nicht genau der analoge Wert ist, kann die Differenz als additives Rauschen betrachtet werden. Je höher die Auflösung des ADC, desto näher liegt der Digitalwert am Analogwert. Mit anderen Worten, wir verbessern das Signal-Quanitisierungs-Rausch-Verhältnis (SQNR) durch Erhöhen der Bits des ADC. Daher ist ein 10-Bit-ADC besser als ein 8-Bit-ADC (um etwa 12 dB).
Die Verwendung von 16-Bit-A / D ist in Bezug auf SQNR besser. Sie sind jedoch teurer. Und in vielen Anwendungen bietet der 10-Bit-ADC genügend erforderliches SQNR.
quelle
In der Regel soll die Anzahl der Bits in Ihrem Coveter so sein, dass Ihr Quantisierungsschritt ein bisschen unter dem (analogen) Grundrauschen des Systems liegt.
Die Verwendung von mehr Bits und damit eines Quantisierungsschritts weiter unterhalb des Grundrauschens führt zu einer sehr geringen Verbesserung der Gesamtrauschleistung. Durch die Verwendung von mehr Silizium wird entweder die Konvertierungszeit verlängert oder die internen Komponenten des Konverters müssen schneller laufen (und sind daher lauter).
Die Verwendung von weniger Bits und damit ein Quantisierungsschritt über dem Grundrauschen ist im Allgemeinen schlecht. Dies bedeutet, dass Sie die Leistung der analogen Schaltkreise verschwenden und in einigen Fällen systematische Fehler verursachen können, die nicht durch Mittelwertbildung behoben werden können (in der Tat fügen Designer manchmal absichtlich Rauschen zu einem System hinzu, um systematische Fehler aufgrund der Quantisierung zu vermeiden).
Der Unterschied zwischen 8 Bit und 16 Bit ist RIESIG. Ersteres führt zu einem Quantisierungsschritt, der selbst in Systemen mit relativ schlechtem Rauschverhalten zu groß ist. Letzteres wird auf jedem System verschwendet, das kein besonders sorgfältiges analoges Design aufweist. Es überrascht also nicht, dass Mikrocontroller irgendwo dazwischen landen.
Man beachte, dass die Leute oft über "Quantisierungsrauschen" sprechen, aber es ist wichtig, sich daran zu erinnern, dass das Konzept des "Quantisierungsrauschens" ein vereinfachtes Modell der Realität ist, das unter bestimmten Umständen zusammenbricht.
quelle
Die gebräuchlichste Verwendung von ADCs liegt wohl im Bereich der Tonverarbeitung (VoIP, CD-Musik usw.). Musik ist hier nicht von Interesse, da dies 16 Bit erfordert. Aber VoIP ist das, was den ADC-Markt mit niedrigeren Bit-Werten antreibt. VoIP verwendet in der Regel die Kompandierung, bei der aus einem 12-Bit-Eingangssignal ein 8-Bit-komprimierter PCM-Code erstellt wird. Die Eingabe für den Komprimierungsschritt muss mehr Bits enthalten - normalerweise reichen 12 oder manchmal 10 (Sie können immer die niedrigsten zwei Bits vortäuschen).
Infolgedessen ist die Nachfrage nach 8-Bit-ADCs sehr gering, aber ADCs mit höherem Bit sind sehr gefragt und daher billig verfügbar. Arduino würde wahrscheinlich Komponenten verwenden, die billig und allgegenwärtig sind.
quelle