When comparing a discrete design to a display module, the modular approach does not seem particularly attractive at first when considering the overall cost of materials. However, when taking the speed at which development can be completed and user-friendliness into account, the module comes out on top. For example, an existing application running on an 8-bit microcontroller (MCU) that now needs to be equipped with a full-color graphics display with touch interface. While most MCUs are capable of interfacing with an LC display via an integrated or discrete driver, the actual size and resolution of the display would be limited by the resources of the MCU. The 8-bit MCU can, for example, control a two-line dot-matrix display; but the processing resources may not be sufficient for larger displays. Moreover, the designer must add embedded software, such as libraries and image files. Adding touch functionality requires even more development effort. During the production phase, a strict incoming display inspection must be performed, as there is always the chance that something has been changed without prior notice, requiring optimization or redevelopment of the display drivers.
What modules bring to the table
Intelligent modular displays usually have an industry-standard interface, such as I2C, SPI, or UART, for communicating with the host. Some also include an embedded microcontroller. This microcontroller is not only responsible for all the graphics elements, but often contains a variety of I/O and other peripherals, ensuring the module is able to run the complete target application.
Many modules are supported by a library of functions, and this makes sure they can be relatively easily controlled by the host MCU. Some also have a full-featured integrated development environment (IDE) that includes graphical user interface (GUI) design and creation as part of the embedded design process. For extremely fast prototyping and application development without having to write a single line of code, some of these IDEs offer drag-and-drop WYSIWYG (what you see is what you get) workflows.
So the charm of the modular approach is that all drivers, primitives, and GUI functions have already been developed and tested. Engineers can therefore fully focus on the actual GUI design. The host MCU can offload all display tasks to the module, meaning all its resources are available for the main application.
User interface design support
To also support GUI design, display manufacturer 4D Systems has developed a tool to create intelligent graphical user interfaces as quickly and as easily as possible. Workshop4 IDE offers several development environments from text-based to visual programming (Fig. 2). Its drag-and-drop function makes it intuitive to use, thereby eliminating the need for traditional coding.
Display module for the Rutronik Development Kit RDK2
Due to all these advantages, Rutronik also uses an intelligent display module for its Development Kit RDK2 (Fig. 3). It primarily supports the development of proof of concept for diverse application areas, such as IoT and IIoT, smart wearables, and smart home. The board is based on Infineon’s CY8C6245AZI-S3D72 ultra-low-power, high-performance microcontroller. In addition, the RDK2 features an external 512 Mbit Semper NOR flash memory and a 64 Mbit AP memory APS6404L-3SQR-ZR PSRAM connected via a QSPI interface. This extends the capabilities of the RDK2 when using these memories simultaneously in memory-mapped mode.
The gen4-uLCD-43DCT-CLB 4.3" display from 4D Systems with integrated capacitive touch panel is used as the display and input medium for an application example of the RDK2 to determine air quality using the VOC index (volatile organic compounds). It is based on the DIABLO16 graphics controller and is controlled via the UART interface. Its data rate of 115,200 bit/s is sufficient for operating the touch panel without any noticeable delay. However, the UART data rate can also be increased to 600 kbit/s, if required.
We recommend the Arduino adapter 4D-ARDUINO-ADAPTOR-SHIELD-II to ensure quick integration with the RDK2. The firmware example RutDevKit-PSoC62_GEN4_ULCD_43 refers by default to the data of the VOC sensor SPG40 from Sensirion, but it can also automatically switch to the onboard potentiometer POT1 if the sensor is not recognized on the I2C bus. The potentiometer is read via the ADC periphery. The ADC values are then shown on the display. The RAB1 – Sensorfusion board with an SGP40 sensor will also be available from Rutronik.
For visualization purposes, 4D Systems provides the ViSi Genie code library. It is included in the RDK2 sample project RutDevKit-PSoC62_GEN4_ULCD_43 for use in the ModusToolbox IDE, a helpful collection of software and tools for the rapid development with Infineon MCUs. To enable the code library, the User API configuration functions and event handlers are implemented. They allow developers to control what should happen in the program when a specific event occurs, such as an input.
The function prototypes that must be implemented to ensure the ViSi-Genie stack can actually run are shown in the necessary functions box.
The display is controlled by sending the messages to the individual objects on the screen or to background objects that may not be visible. For example, the command that updates the angular meter with the VOC index might look like this:
/* Update the VOC Index gauge */
genieWriteObject(GENIE_OBJ_ANGULAR_METER, 0, gaugeVal);
The events, such as touching the keys, are received at regular intervals of 20 milliseconds or faster when this function is executed:
/* Check for events */
genieDoEvents(true);
Workshop4 IDE allows developers to design graphical objects and program them into the display memory. The sample application demonstrates the basics using an angular meter and a scope gadget for displaying the VOC index. The angular meter is refreshed every 50 milliseconds and the scope every ten seconds, allowing users to monitor both current and past VOC index values simultaneously.
The firmware example for the RDK2 and the Workshop4 IDE project are available for download on the Rutronik website: https://www.rutronik.com/rutronik-system-solutions/rutronik-development-kit-rdk2
Further Informations:
- Infineon's PSoC™ 6 MCU for the Rutronik RDK2
- Rutronik Development Kit RDK2
- Rutronik Adapter Board – RAB1 Sensorfusion
For more information and a direct ordering option, please visit our e-commerce platform at www.rutronik24.com.
Subscribe to our newsletter and stay updated.