Sensorprüfung mit dem ESP32-S3-basierten Sensor-Evaluierungsboard
über
Lassen Sie uns einen modularen Ansatz für die Sensorprüfung wählen. Das Sensor-Evaluierungsboard wurde entwickelt, um das mühsame wiederholte Austauschen von Sensoren während der Entwicklung zu vermeiden. Es basiert auf dem ESP32-S3 und enthält zwei hochpräzise ADS1015-ADCs, Grove-Anschlüsse und modulare Edge-Card-Steckplätze. Diese Funktionen ermöglichen das mühelose Testen und Austauschen von Sensoren.
Sensortests vereinfacht
Am Anfang eines jeden Projekts steht eine Idee - eine Lösung für ein Problem oder die Verbesserung eines bestehenden Ansatzes. In der Planungsphase wird ermittelt, welche Tools, Ausrüstung und Bauteile man benötigt, um diese Idee Wirklichkeit werden zu lassen. Bei Sensor-Projekten stoßen Entwickler jedoch häufig auf Probleme: Sensoren müssen getestet, Hardware ausgetauscht und Fehler behoben werden, bevor alles reibungslos funktioniert. Genau hier setzt das Sensor Evaluation Board an (Bild 1).
In fast jedem Projekt für eingebettete Systeme verlässt man sich auf einen festen Satz von Sensoren: Temperatur-, Feuchtigkeits-, Licht- und Bewegungssensoren bilden die Grundlage zahlreicher Anwendungen, die von einfachen Umweltüberwachungsgeräten bis hin zu anspruchsvollen IoT-Lösungen reichen. Doch mit der zunehmenden Zahl und Art von Projekten und Anwendungen steigt auch der Bedarf an verschiedenen Konfigurationen, was jeweils eine sorgfältige Prüfung der Hardware- und Softwarekompatibilität erfordert. Der Prozess der Neuverkabelung, der Neuanordnung von Konfigurationen und dem Zurechtfinden auf einem unübersichtlichen Labortisch kann schnell entmutigend sein.
Die Idee, modulare Edge Cards für häufig verwendete Sensortypen einzusetzen, stellt eine elegante Lösung für die Herausforderungen von Sensortests dar. Mit einer speziell für jeden Sensortyp gestalteten Edge Card können Sensoren einfach ausgetauscht werden – ohne Kabelgewirr und ohne mühsame Neukonfigurationen.
Dieser modulare Ansatz vereinfacht nicht nur den Entwicklungsprozess, sondern schafft auch Platz auf dem Labortisch, da mehrere Sensor-Setups problemlos auf demselben Board getestet werden können. Dank der Integration hochpräziser externer ADCs gewährleistet das Sensor Evaluation Board eine maximale Messgenauigkeit und spart wertvolle Zeit während der Entwicklung. Ganz gleich, ob man sich mit Umweltüberwachung, IoT-Anwendungen oder einfach nur Experimenten mit Sensordaten beschäftigt, dieses Board bietet einen hürdenlosen und strukturierten Ansatz für den Schritt vom Konzept zum voll funktionsfähigen Prototypen.
Design und Architektur
Die Schaltung in Bild 2 zeigt, wie Sensortests mit dem ESP32-S3-Modul als zentralem Controller vereinfacht werden. Der ESP32-S3 wurde aufgrund seiner zwei Kerne und der leistungsfähigen Unterstützung für WLAN und Bluetooth ausgewählt, wodurch er sich für IoT-Anwendungen eignet.
Im Vergleich etwa zum STM32 unterstützt den ESP32 eine breite Community, so dass der Controller einfacher in WLAN-fokussierte Projekte aufgenommen werden kann. Darüber hinaus ist die Integration eines ESP32-WROOM-Moduls in Ihre Projekte im Vergleich zu anderen Mikrocontrollern viel einfacher, da die WROOM-Module das Antennen-Frontend und andere wichtige Funktionen bereits on Board haben, was die Anzahl der Bauteile und -gruppen in Ihrem Prototyp weiter verringert. In Bild 3 ist das Layout der Platine dargestellt.
Das Board enthält zwei Analog-Digital-Wandler des Typs ADS1015 (IC1 und IC2), um die Beschränkungen der internen ADCs des ESP32-S3 auszugleichen. Beide Wandler haben vier analoge Eingangskanäle. Die analogen Eingänge des ersten ADCs sind mit den Pins einer 2,54-mm-Stiftleiste verbunden; die analogen Eingänge des zweiten ADCs mit zwei Grove-Anschlüssen (jeweils zwei Kanäle, zusammen mit VCC und GND). Der kostengünstige ADS1015 bietet eine zuverlässige 12-Bit-Auflösung , die für die meisten Sensoraufgaben ausreicht. Obwohl ein pinkompatibler ADC mit höherer Auflösung wie der ADS1115 in Betracht gezogen wurde (und verwendet werden kann), passt die Leistung des ADS1015 (3300 Samples/s versus 860 Samples/s) meiner Meinung nach besser zum Zweck dieses Boards. Wie man sehen kann, ist der ADDR-Pin des einen ADCs mit GND verbunden, der andere mit VCC - was diesen Chips unterschiedliche I2C-Adressen verleiht (mehr dazu im Datenblatt ).
Zur Anzeige seines Betriebsstatus verfügt das Board über zwei LEDs (LED1 und LED2), die mit GPIO14 und GPIO21 des ESP32-S3 verbunden sind. Diese LEDs können für die Anwendung konfiguriert werden, zum Beispiel zur Anzeige des Stromversorgungsstatus, der Kommunikationsaktivität oder für benutzerdefinierte Debugging-Signale während der Sensorprüfung.
Eine I2C-Schnittstelle des ESP32 (GPIO8 = SDA, GPIO9 = SCL) ist auf die Edge-Card-Steckplätze K1...K4 und zusätzlich auf drei Grove-Verbinder K6...K8 sowie den Qwiic-B-Verbinder K5 geführt. Die SPI-Kommunikationsschnittstelle ist wie folgt belegt: SDI auf GPIO11, SCK auf GPIO12 und SDO auf GPIO13. Diese Leitungen sind ebenfalls mit den Edge-Card-Steckplätzen verbunden, zusammen mit vier Chip-Select-Leitungen (CS). Dies ermöglicht die gleichzeitige Verwendung von SPI-Sensoren über die Edge-Card-Anschlüsse hinweg, ohne dass es zu Konflikten kommen kann, was eine größere Flexibilität bei Sensortest-Setups ermöglicht.
Wie gesagt, die vier Steckverbinder K1...K4 ermöglichen einen einfachen Tausch von Sensoren ohne Neuverkabelung. Bei diesen Steckverbindern handelt es sich um EC.8-SMD-Steckverbinder der Firma ept , die für diese Anwendung in der Tat recht robust sind. Sie unterstützen eine Datenübertragung von bis zu 28 Gbit/s (!) und können Ströme von 3,2 A vertragen. Das alles sind Werte, die weit über dem liegen, was hier benötigt wird. Ihr Hauptvorteil liegt jedoch in ihrer einfachen Handhabung, die einen nahtlosen, häufigen Wechsel der Sensormodule in einer Testumgebung ermöglicht. Im Vergleich zu herkömmlichen Stiftleisten erleichtern diese Steckverbinder den Aufbau von Testschaltungen erheblich, und die angegebenen 500 Einsteckzyklen sollten sich im Laufe der Zeit bewähren.
Der Anschluss J1 ist für die Programmierung des ESP32-S3 über UART vorgesehen und bietet eine einfache Schnittstelle zum Hochladen von Firmware und für erste Konfigurationen. Es ist jedoch auch möglich, Firmware über den USB-Typ-C-Anschluss (K11) zu flashen. J2 hingegen ist eine 2,54-mm-Stiftleiste, die Zugang zu den restlichen GPIO-Pins des ESP32-S3 und dem ersten ADC (IC1) gewährt. Dies macht sich beim Anschluss externer Module oder kundenspezifischer Peripheriegeräte direkt an den ESP32-S3 bezahlt und ermöglicht eine flexible funktionale Erweiterung des Boards während der Entwicklung und des Testens.
Wie bereits erwähnt, stellt die Chip-Select-Leitung eine besondere Herausforderung dar, da jeder Sensor beim Betrieb über SPI einen eigenen CS-Pin benötigt. Um dem Rechnung zu tragen, sind vier separate CS-Leitungen an den Steckverbindern der Edge-Cards verfügbar, denen jeweils ein eindeutiger GPIO durch den Mikrocontroller zugewiesen wird. Dies genügt den Anforderungen des aktuellen Entwurfs; bei zukünftigen Versionen könnte aber ein Multiplexing-Ansatz oder ein GPIO-Expander in Betracht gezogen werden, um eine dynamische Zuweisung von CS-Pins zu ermöglichen. Im Moment unterstützt diese Konfiguration aber effektiv den gleichzeitigen Betrieb mehrerer Sensoren und ermöglicht einen flexiblen und unkomplizierten Austausch der Sensormodule.
Optionen mit Sensormodulen
Für das Board wurden zwei Edge-Card-Sensormodule entwickelt, ein BME280-Umweltsensor und ein ICM42688-IMU-Sensor . Die Schaltpläne dieser Module in Bild 4 und Bild 5 orientieren sich an den jeweiligen Datenblättern. Beide Module haben identische Abmessungen (23,55 × 13,55 mm, Bild 6) und eine standardisierte Pinbelegungen für I2C- und SPI-Leitungen, um die Kompatibilität zu gewährleisten.
Zum Testen dieser Sensoren wurden bewährte einfache und benutzerfreundliche Bibliotheken verwendet, die den Integrationsprozess vereinfachten. Für den ICM42688 wurde die Bibliothek ICM42688 von finani eingesetzt , die Beispiele für verschiedene Funktionen wie I2C- und SPI-Modi, Interrupt-Behandlung und mehr enthält, und für den Sensor BME280 die Adafruit_BME280_Library i>.
Beim Entwurf der Edge-Card-Module wurde im Schaltplan das Symbol 02x10 Connector odd/even (ungerade/gerade) und im Platinenlayout der Footprint Samtec_HSEC8:Samtec_HSEC8-110-X-X-DV-BL_2x10_P0.8mm_Edge aus der Standardbibliothek von KiCAD gewählt. Für die Gestaltung der Edge-Card-Anschlüsse auf dem Sensor Evaluation Board stellte die Website des Herstellers eine passende Footprint-Datei zur Verfügung, die mit dem Library-Loader zur KiCAD-Bibliothek hinzugefügt wurde.
Was die physikalischen Spezifikationen betrifft: Die auf dem Board verwendeten EC.8-Anschlüsse sind für 1,6 mm dickes Platinenmaterial ausgelegt. Der Kompatibilität zuliebe wurde bei der Bestellung der Edge-Card-Modulplatinen beim Leiterplattenhersteller ebenfalls eine Platinenstärke von 1,6 mm angegeben.
Testen und ADC-Beschränkungen des ESP32
Während der Tests wurden die beiden integrierten ADS1015-Plätze ausprobiert. Leider stand zu diesem Zeitpunkt nur ein einziges ADS1015-IC zur Verfügung, so dass es an beiden Stellen getrennt getestet werden musste. Trotz dieser Einschränkung funktionierten beide Konfigurationen unter normalen Bedingungen identisch. Der ADC in IC1 zeigte jedoch ein etwas besseres Rauschverhalten, was wahrscheinlich auf seine Position im Layout zurückzuführen sein dürfte, da er näher an den Header-Pins und weiter vom Stromversorgungsbereich des Boards entfernt ist. Dieser Rauschunterschied ist in der praktischen Anwendung aber vernachlässigbar.
Vergleicht man diese externen ADCs mit dem eingebauten ADC des ESP32-S3, ist die Verbesserung überdeutlich. Der ADS1015 bietet eine weitaus bessere Genauigkeit und ein deutlich geringeres Rauschen, selbst wenn der ESP32-S3 mit 20 MHz getaktet wird. Der Leistungsunterschied ist wirklich ein Unterschied „zwischen Tag und Nacht“, was diese externen ADCs zu einer lohnenden Ergänzung macht.
Abgesehen von den ADC-Tests hat sich das modulare Design dieses Boards beim Tauschen und Testen der Edge-Card-Sensormodule bewährt. Obwohl derzeit nur die beiden Module BME280 und ICM42688 zur Verfügung stehen, hat mich ihre Flexibilität und Handhabung begeistert und dazu angeregt, die Sammlung zu erweitern. Der modulare Ansatz hat sich als unglaublich nützlich für das Testen von Sensoren erwiesen, zudem ist - wie in Bild 7 zu sehen - die kompakte Größe des Sensor Evaluation Boards von nur 64,7 × 66,6 mm ein weiterer Vorteil. Es ist kleiner als mäuseklein, wie man in Bild 8 sieht, was es zu einem perfekten Werkzeug auf dem Labortisch macht.
Überlegungen und zukünftige Verbesserungen
Wie bei jedem Projekt gibt es Raum für Verbesserungen, und die Reflexion über diesen Entwurf hat mehrere Ideen für die nächste Entwicklungsstufe hervorgebracht. Ein verbesserungswürdiger Bereich ist das Layout der Edge-Card-Anschlüsse. Die derzeitige Anordnung funktioniert zwar, aber die engen Abstände erschweren das Löten mit einer Rework-Station (Bild 9). Stattdessen habe ich für diese Anschlüsse die „Methode der heißen Platte“ verwendet. In zukünftigen Entwürfen plane ich eine großzügigere Anordnung der Steckverbinder, um das Löten auf beiden Seiten zu erleichtern und die Zugänglichkeit zu verbessern.
Eine weitere Verbesserung wäre es, den unteren ADC (IC2) etwas weiter entfernt von der Spannungsversorgung anzuordnen. Zwar war der während der Tests beobachtete Rauschunterschied sehr minimal, aber eine bessere Platzierung könnte die Signalintegrität weiter verbessern. Bei der Entwicklung vermutete ich zwar, dass dies nur eine sehr geringe Auswirkung haben könnte, aber die Tests haben gezeigt, dass selbst kleine Layout-Änderungen einen messbaren Unterschied bewirken können.
Zusätzlich wäre zu erwägen, einen Multiplexer für die Chip-Select-Leitungen (CS) der Edge-Card-Steckverbinder aufzunehmen. Dies würde die dynamische Zuweisung der CS-Pins ermöglichen, den Entwurf skalierbar(er) machen und die Abhängigkeit von vordefinierten GPIOs reduzieren. Eine solche Verbesserung würde die Integration zusätzlicher Edge-Cards erheblich vereinfachen und mehr Flexibilität schaffen.
Schließlich würde ein integriertes OLED-Display zur Anzeige von Echtzeit-Feedbacks während der Tests einen großen Nutzen bieten. Funktionen wie die Anzeige des Sensorstatus oder der ADC-Werte direkt auf dem Board könnten die Benutzerfreundlichkeit verbessern und die Fehlersuche beschleunigen.
Insgesamt war dieses Projekt ein wertvoller Schritt in Richtung eines modularen Designs und hat sich bei Sensortests bewährt. Trotz kleinerer Schwächen bietet diese Version eine solide Grundlage und erfüllt ihren Zweck gut. Mit gezielten Verbesserungen könnte dieses Board zu einem unverzichtbaren Werkzeug für Ihre Embedded-Entwicklung werden, das Effizienz und Innovation gleichermaßen fördert.
Sie haben Fragen oder Kommentare?
Haben Sie technische Fragen oder Kommentare zu diesem Artikel? Wenden Sie sich bitte per E-Mail an den Autor unter saad.imtiaz@elektor.com oder an Elektor unter redaktion@elektor.de.
Anmerkung des Herausgebers: Der Originalartikel „Ein modularer Ansatz für Sensortests“ (240472-02) erscheint in Elektor März/April 2025.
Diskussion (0 Kommentare)