Beim Vergleich eines diskreten Designs mit einem Display-Modul scheint die modulare Lösung zunächst nicht besonders attraktiv zu sein, wenn man die Kosten für die Stückliste betrachtet. Berücksichtigt man jedoch die Geschwindigkeit, mit der die Entwicklung abgeschlossen werden kann, und die Nutzerfreundlichkeit, wird die Modullösung attraktiver.
Zum Beispiel bei einer bestehenden Anwendung, die auf einem 8-Bit-Mikrocontroller (MCU) läuft und nun mit einem Vollfarb-Grafikdisplay mit Touch-Oberfläche ausgestattet werden soll. Die meisten MCUs sind zwar in der Lage, über einen integrierten oder diskreten Treiber eine Schnittstelle zu einem LC-Display herzustellen, doch Größe und Auflösung des Displays wären durch die Ressourcen der MCU begrenzt. So kann die 8-Bit-MCU ein zweizeiliges Dot-Matrix-Display ansteuern, für größere Displays reichen die Verarbeitungsressourcen möglicherweise nicht aus.
Zudem muss der Designer eingebettete Software hinzufügen, etwa Bibliotheken und Bilddateien. Kommt eine Touch-Funktionalität dazu, bedeutet das zusätzlichen Entwicklungsaufwand. In der Produktionsphase muss dann eine strenge Eingangskontrolle der Displays durchgeführt werden. Denn es besteht immer die Möglichkeit, dass sich ohne vorherige Ankündigung etwas geändert hat, was eine Optimierung oder Neuentwicklung der Display-Treiber erfordert.
Was Modullösungen mitbringen
Intelligente, modulare Display-Lösungen verfügen in der Regel über eine Industriestandard-Schnittstelle wie I2C, SPI oder UART für die Kommunikation mit dem Host. Manche enthalten auch einen eingebetteten Mikrocontroller. Dieser ist nicht nur für alle Grafikelemente verantwortlich, sondern enthält oft auch eine Vielzahl von I/O und anderen Peripheriegeräten, sodass das Modul in der Lage ist, die komplette Zielanwendung auszuführen.
Viele Module werden durch eine Bibliothek von Funktionen unterstützt, mit denen sie sich relativ einfach durch die Host-MCU steuern lassen. Einige haben auch eine vollwertige integrierte Entwicklungsumgebung (Integrated Development Environment, IDE), die den Entwurf und die Erstellung der grafischen Benutzeroberfläche (Graphical User Interface, GUI) als Teil des Embedded-Designprozesses beinhaltet. Für ein extrem schnelles Prototyping und die Entwicklung von Anwendungen, ohne dass eine Zeile Code geschrieben werden muss, bieten einige dieser IDEs Drag-and-Drop-Workflows im „WYSIWYG"-Stil (What You See Is What You Get).
Der Charme des Modulansatzes besteht also darin, dass alle Treiber, Primitives und GUI-Funktionen bereits entwickelt und getestet wurden. Ingenieure können sich voll und ganz auf das eigentliche GUI-Design konzentrieren. Die Host-MCU kann alle Display-Aufgaben auf das Modul verlagern und somit stehen ihre gesamten Ressourcen für die Hauptanwendung zur Verfügung.
Unterstützung beim Design von Nutzeroberflächen
Um auch das GUI-Design zu unterstützen, hat der Display-Hersteller 4D Systems ein Tool entwickelt, mit dem sich intelligente grafische Benutzeroberflächen möglichst schnell und einfach erstellen lassen. „Workshop4 IDE“ bietet mehrere Entwicklungsumgebungen von der textbasierten bis zur visuellen Programmierung. Durch seine Drag-and-Drop-Funktion ist es intuitiv nutzbar, das klassische Coding entfällt.
Display-Modul für das Rutronik Development Kit RDK2
Aufgrund dieser Vorteile nutzt auch Rutronik für sein Development Kit RDK2 ein intelligentes Display-Modul. Es unterstützt vor allem die Entwicklung von Proof-of-Concepts für vielfältige Anwendungsbereiche wie IoT und IIoT, Smart Wearables oder Smart Home. Das Board basiert auf dem Ultra-Low-Power-Hochleistungs-Mikrocontroller CY8C6245AZI-S3D72 von Infineon. Darüber hinaus verfügt das RDK2 über einen externen 512 MBit Semper NOR-Flash und ein 64 MBit AP Memory APS6404L-3SQR-ZR PSRAM, die über eine QSPI-Schnittstelle angeschlossen sind. Das erweitert die Möglichkeiten des RDK2, wenn diese Speicher gleichzeitig im „Memory Mapped Mode" [XIP] verwendet werden.
Der besondere Charme intelligenter Display-Module
Der Artikel beschreibt was Display-Module gegenüber diskreten Designs bieten. Ein besonderer Vorteil von Display-Modulen besteht darin, dass Treiber und GUI-Funktionen bereits entwickelt und getestet wurden. Damit können sich Entwickler voll und ganz auf das GUI-Design konzentrieren, um grafische Benutzeroberflächen möglichst schnell zu erstellen. Auch Rutronik nutzt für sein Development Kit RDK2 ein intelligentes Display-Modul.
Für ein Anwendungsfallbeispiel des RDK2 zur Ermittlung der Luftqualität mittels VOC-Index (Volatile Organic Compounds) kommt als Anzeige- und Eingabe-Medium das gen4-uLCD-43DCT-CLB 4,3-Zoll-Display von 4D Systems mit integriertem kapazitivem Touchpanel zum Einsatz. Es basiert auf dem Grafik-Controller Diablo16 und wird über die UART-Schnittstelle angesteuert. Seine Baudrate von 115200 bit/s reicht aus für eine Bedienung des Touchpanels ohne merkliche Verzögerung. Bei Bedarf lässt sich die UART-Datenrate aber auch auf 600 kbit/s erhöhen.
Für eine schnelle Integration mit dem RDK2 empfiehlt sich der Arduino-Adapter 4D-Arduino-Adaptor-Shield-II. Das Firmware-Beispiel „RutDevKit-PSoC62_GEN4_ULCD_43" bezieht sich zwar standardmäßig auf die Daten des VOC-Sensors SPG40 von Sensirion, kann aber auch automatisch auf das Onboard-Potentiometer POT1 umschalten, falls der Sensor am I²C-Bus nicht erkannt wird. Das Potentiometer wird über die ADC-Peripherie ausgelesen. Die ADC-Werte werden dann auf dem Display angezeigt. Das Board „RAB1 – Sensorfusion" mit einem SGP40-Sensor ist ebenfalls von Rutronik erhältlich.
Für die Darstellung stellt 4D System die ViSi-Genie-Code-Bibliothek zur Verfügung. Sie ist im RDK2-Beispielprojekt „RutDevKit-PSoC62_GEN4_ULCD_43" zur Verwendung in der ModusToolbox IDE enthalten, einer hilfreichen Sammlung von Software und Tools für die schnelle Entwicklung mit Infineon MCUs. Um die Code-Bibliothek zu aktivieren, werden die User-API-Konfigurationsfunktionen und Event-Handler implementiert. Sie ermöglichen dem Entwickler, das zu steuern, was im Programm passieren soll, wenn ein bestimmtes Ereignis eintritt, wie z. B. eine Eingabe.
Die Funktionsprototypen, die implementiert werden müssen, damit der ViSi-Genie Stack läuft, sind hier dargestellt:
Die Anzeigesteuerung wird ausgeführt, indem die Nachrichten an die einzelnen Objekte auf dem Bildschirm oder an Hintergrundobjekte, die möglicherweise nicht sichtbar sind, gesendet werden. Der Befehl, der den „Angular Meter" mit dem VOC-Index aktualisiert, könnte beispielsweise so aussehen:
Die Ereignisse, z. B. das Berühren der Tasten, werden in regelmäßigen Abständen von 20 Millisekunden oder schneller empfangen, wenn diese Funktion ausgeführt wird:
Mit der „Workshop4 IDE" können Entwickler grafische Objekte entwerfen und diese in den Speicher des Displays programmieren. Die Beispielanwendung demonstriert die Grundlagen anhand eines „Angular Meter" und eines „Scope"-Gadgets für die Darstellung des VOC-Index.
Das „Angular Meter" wird alle 50 Millisekunden und das „Scope" alle zehn Sekunden aktualisiert, sodass Nutzer die aktuellen und vergangenen VOC-Indexwerte gleichzeitig beobachten können. (neu)
Autor
Nikolai Schnarz, Corporate Product Sales Manager Displays bei Rutronik.
Autor
Gintaras Drukteinis, Technical Support Engineer bei Rutronik.