Wie schlecht kann ein 2,97-$-ADC sein?
(excamera.substack.com)- Das günstige ADS1115-ADC-Modul bietet Funktionen, die nahezu den offiziellen Spezifikationen entsprechen
- Mit der Funktion des programmierbaren Gain-Verstärkers lässt sich auch in sehr kleinen Spannungsbereichen eine hohe Messgenauigkeit erreichen
- Bei einigen günstigen Boards wurden Abweichungen bei Messgeschwindigkeit und Genauigkeit festgestellt
- Mit einem einfachen Kalibrierungsalgorithmus lassen sich recht präzise Ergebnisse erzielen
- Günstige Bauteile könnten Produktionsfehler oder Kopien sein, für den grundlegenden Einsatz sind sie jedoch weitgehend unproblematisch
Praxistest der tatsächlichen Leistung eines günstigen ADS1115-ADC
Überblick
- Bei Embedded-Arbeiten wird üblicherweise der in den Mikrocontroller integrierte ADC (Analog-Digital-Wandler) verwendet
- Integrierte ADCs sind günstig und schnell, erreichen bei der effektiven Bitzahl (ENOB) jedoch in der Praxis nur etwa 8 bis 9 Bit
- Kürzlich wurde ein Test mit dem ADS1115-Modul von Texas Instruments(TI) durchgeführt
- Der ADS1115 ist ein externer ADC, der eine Genauigkeit von bis zu 16 Bit bietet
Wichtige Merkmale des ADS1115
- Dank der erweiterten dynamischen Reichweite lassen sich kleine Spannungen mit bis zu 20-fach höherer Feinheit messen
- Über den programmierbaren Gain-Verstärker (PGA) kann der gesamte Messbereich von ±6.144 V bis ±0.256 V eingestellt werden
- Das kleinste LSB beträgt etwa 7.8 μV (0.256 V ÷ 32768), wodurch selbst sehr kleine Änderungen erkannt werden können
- Im Vergleich dazu entspricht eine Stufe eines herkömmlichen im Mikrocontroller integrierten ADC (bei 3,3 V, 9 ENOB) etwa 6 mV, was eine deutlich geringere Auflösung bedeutet
- Die Nutzung einer internen Spannungsreferenz ist ein Vorteil gegenüber MCUs wie dem RP2040, die eine externe analoge Referenz benötigen
Preisfrage und Testumgebung
- Beim ADS1115 gibt es große Preisunterschiede: Bei Digikey kostet er bei einer Stückzahl von 1.000 etwa 4 $, bei LCSC etwa 0,60 $
- Es wurde ein ADS1115-Breakout-Board für 2,97 $ pro Stück bei Amazon gekauft (vermutlich mit dem 0,60-$-Bauteil)
- Zusätzlich wurde ein teureres (Original-)Board von Adafruit gekauft, das später für Vergleichstests genutzt werden soll
Ablauf des Praxistests
-
Das günstige Board wurde mit I²CMini und einer präzisen DC-Spannungsquelle getestet
-
Wichtige Prüfpunkte:
- Ob es gemäß Spezifikation arbeitet
- Oder ob ein anderes, noch günstigeres Bauteil fälschlich als ADS1115 verkauft wird
-
Testergebnisse
- Grundlegende Funktion, 16-Bit-Ausgabe, programmierbarer Gain-Verstärker und verschiedene Abtastraten entsprachen weitgehend dem TI-Datenblatt
- Im Differential Mode wurde bei verbundenem Eingang stets 0 gemessen, bei 2,5-V-Eingang korrekt gemessen und bei umgekehrter Polarität der Gegenwert ausgegeben; es traten also keine Probleme im Grundverhalten auf
Messgenauigkeit und Abweichungen
- Data Rate (Abtastrate): Laut TI-Spezifikation ist eine Abweichung von bis zu ±10 % zulässig
- Im 8-SPS-Modus arbeiteten drei Boards mit 6,5 bis 7 SPS etwas langsamer
- Ein Board lief mit 300 SPS und damit mit völlig falschem Timing; es wurde anschließend von weiteren Tests ausgeschlossen
- Bei der Messung einer präzisen Spannung (2.50067 V) wurde 2.4883 V ausgegeben; das entspricht einer Abweichung von etwa 12 mV bzw. 0,5 % und liegt über der offiziellen TI-Spezifikation
- Durch Anwendung eines einfachen linearen Kalibrierungsalgorithmus im Mikrocontroller konnte der Fehler auf unter 10 μV reduziert werden
Fazit
- Vermutlich sind fehlerhafte Bauteile oder Komponenten mit geringerer Spezifikation als das Original in günstige Hobby-Vertriebskanäle gelangt
- Grundsätzlich sind recht präzise Messungen möglich, und mit softwareseitiger Kalibrierung gibt es in der praktischen Nutzung keine größeren Probleme
- Das teurere Original-Board soll nach Eintreffen unter denselben Bedingungen erneut getestet werden
Abschluss
- Der günstige ADS1115 bietet ein auffällig gutes Preis-Leistungs-Verhältnis
- Wenn auf Hardware-/Firmware-Ebene nur eine einfache Kalibrierung ergänzt wird, lässt sich praktisch brauchbare Genauigkeit erreichen
- Um Probleme wie fehlerhafte Ware zu vermeiden, sollte auf Bezugsquelle und Qualitätskontrolle geachtet werden
1 Kommentare
Hacker-News-Kommentare
Wenn man sowohl günstige als auch Originalbauteile mit feinem Schleifpapier abschleift, anschließend mit Isopropylalkohol reinigt und unter ein optisches Mikroskop legt, ist der Vergleich einfach; selbst ohne bis zu identifizierbaren Markierungen oder Metallschichten vorzudringen, erkennt man sofort strukturelle Ähnlichkeiten und Unterschiede des Chip-Dies. Klon-Bauteile zeigen meist große Unterschiede bei Technologieknoten, Architektur, Chipgröße usw., weil sie in der Regel nur die Funktion nachahmen. Empfohlen wird eine Low-Tech-Zerlegungsmethode mit Schleifpapier, dazu wurden auch Bilder geteilt (Bild 1 / Bild 2)
Ich habe so etwas schon mehrfach gemacht, meist um Streitfälle über die Herkunft von Bauteilen zu klären. Die meisten Epoxid-Gehäuse lassen sich durch kochende Schwefel-/Salpetersäure schnell entfernen. Meiner Erfahrung nach sind die meisten Fälle simples Umlabeln, geänderte Bins oder getarnte, offensichtlich durch die QC gefallene Teile, oft sogar Muster. Es gibt auch ein Beispielvideo von vor einigen Jahren (Videolink)
Es muss nicht unbedingt ein Klon sein; wie der Autor schreibt, gibt es viele Fälle, in denen bei der Fertigung als unzureichend eingestufte Produkte neu verpackt und in den normalen Vertriebskanal gegeben werden.
Falls es hier eine Tag-Funktion gäbe, wäre das genau das Richtige für Ken Shirriff; ich empfehle einen Blick auf seinen Blog (righto.com).
Ich stimme der Behauptung nicht zu, dass sie „billig und relativ schnell, aber qualitativ nicht besonders gut sind und bei 12-/16-Bit-Ausgangsspezifikation nur etwa 8–9 effektive Bits (ENOB) liefern“. Bei modernen MCUs kann man mit etwas Sorgfalt — etwa durch eine stabile externe Referenzspannung und das Abschalten unnötiger On-Chip-Subsysteme — durchaus mehr als 10 ENOB erreichen. Natürlich ist ein einzelner ADC nicht so gut wie ein eigenständiger ADC, aber für 90 % aller ADC-Anforderungen ist das in der Praxis ausreichend. Für mehr Bits braucht man mehr Aufwand im Design, doch im Artikel fehlt jede Erwähnung des verwendeten Netzteils, von MCU-Rauschen oder RFI-Management. Deshalb ist schwer zu beurteilen, ob es wirklich ein minderwertiger Fake-IC war oder ob die Testumgebung einfach zu verrauscht war.
Wenn man zwei GPIOs in einer Sigma-Delta-Topologie erster Ordnung mit zwei externen Widerständen, einem Kondensator und deaktivierter Hysterese aufbaut, kann man interessante Ergebnisse erzielen. Mit einem RP2040 und LDO-Versorgung habe ich das für differenzielle Messungen genutzt (ein Kanal verfolgt nur das Schwellenrauschen) und bei 1 kHz 16 ENOB, bei DC sogar noch höhere ENOB erreicht. Sehr wichtig ist, periodische Aktivitäten auf dem Chip zu vermeiden; man sollte etwa Sleep mit zufälligen Abständen nutzen, um das Spektrum zu verschmieren. USB ließ sich mit Rauschen unter -100 dB verwenden. Die DC-Genauigkeit habe ich noch nicht getestet, aber bei ähnlichen GPIO-Kanälen ist das für unkritische, wenig präzise Anwendungen wie CC-Leitungserkennung oder analoge Joysticks brauchbar.
Beide Aussagen können richtig sein. Der Autor hat möglicherweise nur sehr günstige MCUs verallgemeinert, während der Kommentator eher an höherwertige MCUs dachte. Der 12-Bit-ADC des RP2350 ist laut Spezifikation bei 9,2 ENOB; mit Decimation aus mehreren Samples kann das höher ausfallen, aber das Datenblatt stützt die Aussage des Autors (offizielle Raspberry-Pi-Dokumentation). Die noch günstigere MCU CH32V003 hat eine noch schlechtere ADC-Leistung. Umgekehrt gibt es MCUs wie die STM32H7-Serie, deren 16-Bit-ADC 13+ ENOB erreicht. Allerdings ist die H7 mehr als zehnmal so teuer wie der RP2350 und wird von Bastlern daher seltener verwendet (STM32H7-ADC-Application-Note).
Ich habe einige STM32F103-Entwicklungsboards mit einem Siglent SDM3055-Multimeter und einem Siglent SPD330X-Netzteil getestet. Der 12-Bit-SAR-ADC des Chips war stark von Layout und Board-Design beeinflusst. Selbst beim schlechtesten Sample erhielt ich 10 Bit, beim besten fast die Wirkung von 12 Bit. Das war ohne besondere Software-Anpassungen; wenn Kommunikation aktiv war, fiel die Leistung zwar oft ab, ansonsten gab es aber keine auffälligen Rauschprobleme.
Ich wollte ursprünglich einen (echten) ADS1115 in einem Projekt verwenden, habe mich dann aber für den STM32g071 entschieden. Er war günstiger, damals leichter verfügbar und flexibler. Bei den neueren ADCs der STM32g/h-Serien gibt es auf Hardware- und Software-Seite eindeutig weniger Fallstricke als bei den alten f103-Familien.
Ich wollte darauf hinweisen, dass die Aussage „Der ADC eines Mikrocontrollers hat in diesem Absatz einen festen 3,3-V-Bereich, also entsprechen 9 ENOB ungefähr 6 mV Unterschied“ so klingt, als hätten alle MCUs keine unabhängige Referenzspannung. Tatsächlich unterstützen aber viele MCUs, auch von NXP, eine integrierte programmierbare Referenzspannung.
Zur Meinung „Billigbauteile sind meist entweder exzellente Kopien oder durch die QC gefallene Teile, die in den Vertrieb gelangt sind“: Die meisten Fälschungschips, die ich gesehen habe, stammten oft aus Ghost Shifts, also heimlicher Produktion außerhalb der regulären Arbeitszeit. TI fertigt aber alle Analogprodukte intern, daher halte ich Ghost Shifts oder durch die QC gefallene Ware hier für weniger wahrscheinlich. Ich persönlich halte ein als ADS1115 umgelabeltes ADS1015 für wahrscheinlicher.
Die Fälschungen, die mir geschadet haben (FDTI, STM32-Klone usw.), waren meist direkt kopierte Nachbauten. Anders als bei Überbeständen, Ghost Shifts oder umverpackten Ausschussteilen begegnet mir das eher im Digital- und Mixed-Signal-Bereich. STM32-Klonchips haben übrigens Stack-Die-Flash; weil der Flash-Prozess nicht verfügbar war, wurde er separat gestapelt, daher sieht man beim Abschleifen des Packages einen zusätzlichen Satz Bonding-Drähte. Darüber lässt sich auch der Readout-Schutz umgehen.
Ich bin der Autor des Artikels, und ja, mir ist bekannt, dass Fälle dokumentiert wurden, in denen ADS1015 als ADS1115 umgelabelt wurden. Wäre es ein ADS1015 gewesen, hätte die Ausgabe bei 12 Bit abgeschnitten, aber die von mir getesteten Bauteile lieferten eindeutig einen 16-Bit-Readout.
Ich interessiere mich für Geschichten und Hintergründe aus dem ADC-Bereich. In der Praxis habe ich ADCs bisher nur bei langsamen Geschwindigkeiten genutzt. Angefangen habe ich mit dem MCP3208 (SPI), 8 Kanäle, 100 kSamples/s, aber das war zu langsam, daher bin ich auf den ADS7953 gewechselt. Der hatte 16 Kanäle und war zehnmal schneller, also klar leistungsfähiger. Dafür war die Programmierung schwieriger, und die maximale Geschwindigkeit erreicht man nur, wenn man die Eingänge in einer festgelegten Reihenfolge scannt. Für mich fühlen sich diese Chips wie Autos an: Der ADS7953 ist ein Supersportwagen, der MCP3208 eher ein einfacher Toyota. Mich interessiert auch die Industriegeschichte dahinter: wie sich einzelne ADC-Chips am Markt positioniert haben und wie stark sie verbreitet sind.
Ich habe bei CERN einmal ein Projekt mit 12-Bit-ADCs gesehen, die mit mehreren zehn GHz sampelten. Das Geheimnis war schlicht Parallelisierung: Mehrere 12-Bit-SAR-Einheiten im MHz-Bereich wurden vervielfacht, und ein großer analoger Multiplexer verteilte das Signal im Round-Robin-Verfahren. Das braucht enorm viel Chipfläche, ermöglicht aber hohe Geschwindigkeiten. Neben solchen extremen Verfahren gibt es auch Flash-ADCs (Flash-ADC-Wiki) oder für Präzision Multi-Slope-ADCs (Multi-Slope-ADC-Tutorial). Mich interessieren auch hier Geschichte und Hintergründe.
Ich möchte auch den AD9226 erwähnen. Er hat nur einen Kanal, bietet aber 12 Bit bei bis zu 65 MSa/s. Ich habe ihn für etwa 12 $ bei AliExpress gekauft und für Experimente zur softwarebasierten Dekodierung von Analogvideo verwendet. Als ich ihn mit 8 Bit und etwa 20 MSa/s an einem Raspberry Pi Zero über das SMI-Peripheral eingesetzt habe, war überraschenderweise der Datentransfer der Engpass. Hier die verwendete SMI-Methode (iosoft.blog-Link).
100 kSamples/s ist in meiner Welt schon extrem schnell. In PLC-Programmen gilt es bei uns schon als sehr hohe Leistung, die Standardrate von 2 kSamples/s auf 10 kSamples/s anzuheben.
Ultraschnelle ADCs sind für die direkte Nutzung mit Mikrocontrollern zu heikel und damit meist ein FPGA-Thema. Man muss die ADC-Daten typischerweise direkt mit dem FPGA aufnehmen und in einen parallelen Bus umwandeln, den eine MCU leichter verarbeiten kann. Für solche extrem schnellen Transfers braucht man viele Pins, viel manuelle Arbeit und oft DMA, daher wirkt das in der Praxis schwer handhabbar.
Anders als die Behauptung „12- bis 16-Bit-ADCs haben nur etwa 8–9 ENOB“ zeigen die in SACD verwendeten 1-Bit-Wandler mit mehreren Millionen Samples pro Sekunde einen Dynamikbereich von 120 dB bei einer Bandbreite von etwa 100 kHz. CD (16-Bit-PCM) liegt bei 96 dB und 20 kHz. Aus Sicht der Komplexität der Analoghardware sind 1-Bit-/Bitstream-Wandler deutlich einfacher. Dass 16-Bit-ADCs günstig sind, liegt auch an der Massenproduktion. Die Idee, Bittiefe durch Samplingrate zu ersetzen, ist tatsächlich attraktiv, ähnlich wie SSAA in 3D-Grafik durch mehr Pixel-Samples hochfrequente Informationen gewinnt (1-Bit-DAC-Wiki, Direct-Stream-Digital-Wiki).
Ein ADC für 3 $ ist nicht billig. Wirklich billige ADCs sind die, die in günstigen MCUs integriert sind. TI verkauft absichtlich auch preiswerte AES/ADCs, die auf 10/12 Bit begrenzt sind, deren tatsächliche Linearität aber 16 Bit oder mehr erreichen kann. Die Produktionskosten von Ausschuss und Gutteilen unterscheiden sich kaum. Wenn der Halbleiterprozess derselbe ist und das Design solide genug ist, müssen günstige ADCs nicht grundsätzlich schlechter sein.
LCSC kann günstig sein, weil das Unternehmen direkt in großen Mengen bei TI und anderen einkauft und mit niedriger Marge verkauft. Ich habe bei LCSC zwar schon Klonchips gesehen, aber die wurden meist unter anderem Markennamen verkauft.
Ein niedriger Preis bedeutet nicht automatisch schlechte Qualität. Hochpräzise ADCs lassen sich, sofern keine hohe Samplingrate nötig ist, dank Signalverarbeitungstechniken relativ leicht realisieren; Delta-Sigma- oder Ramp-ADCs können mit Sample-and-Hold-Schaltung und sogar nur einem einzelnen Bit hochpräzise messen. Es braucht nur Zeit. Wer hingegen einen 16-Bit-100-MHz-Flash-ADC will, muss dafür womöglich sein Haus beleihen.
Die meisten Unternehmen haben regionale Preisstrategien. Mein Spotify-Abonnement kostet zum Beispiel nur etwa 60 % des US-Preises. Auch die Elektronikbranche hat separate Preislisten nur für China. Die offiziellen Listenpreise im Westen sind im Grunde nur Obergrenzen; selbst bei kleinen Projekten kann man durch direkten Kontakt mit dem Vertrieb oft Rabatt bekommen.
Ein ADC für 3 $ ist in Wirklichkeit kein besonders billiges Bauteil, und in Ländern mit niedrigen Fertigungskosten bekommt man ihn oft deutlich günstiger. Entscheidend ist letztlich, dass das Produkt im Werkstest korrekt funktioniert und die Bedingungen des produktspezifischen Test-Jigs erfüllt; in der Praxis reicht das oft aus.