General Purpose 3.5" Screen
Current offer on general purpose screens for the LaunchPad eco-system is rather limited. Most of the screens available are highly specialised.
|
Requirements and Specifications
I set the following requirements...
|
...which translate into the following specifications:
|
Hardware
Screen Controller
The controller of the screen is the ILI9488 from Ilitek, connected through SPI.
The ILI9488 was rather strange to deal with: some parameters for the interface are defined with hardware shunts, while other parameters are set through software commands. As always, the Saleae logic analyser was of great help in debugging the communication. |
Touch Controller
A second SPI port connects the micro-SD card, and the two EEPROMs.
The board provisions pads for the recommended Flash Winbond W25Q128FV with 128 Mb or 16 MB in SOIC package. The Flash U2 chip exposes write-protect and hold signals, contrary to the Font U1 chip. I faced an unexpected issue while integrating the screen, the micro-SD card and the W25Q128FV Flash on the same SPI bus. While each component worked as expected separately, that was no longer the case when combining them. The MISO output of the ILI9488 wasn't floating (hi-z) and was thus interfering with the MISO signal from the micro-SD card and the W25Q128FV Flash. |
In order to solve the conflict on the MISO signals, I used an analog switch to select between the two lines. This seems to be a common issue with SPI, as mentioned at Better SPI Bus Design in 3 Steps.
|
|
Haptic Controller
Please refer to the I²C Haptic Controller page.
Right: The DRV2605L tested with an linear resonant actuator (LRA). |
Software
I faced no major issues adding support for this screen to the LCD_screen Library Suite, despite the rather confusing data-sheets for the screen controller and the touch controller.
Adding haptic feed-back to the LCD_GUI library was very easy. The DRV2605L includes a library of 123 different effects, with 5 variants for ERM and one variant for LRA. I tested three haptic motors: one ERM and two LRA, of which one branded as a genuine replacement Taptic Engine for iPhone 6s, as detailed at the I²C Haptic Controller page. Right: The DRV2605L tested with an eccentric rotating motor (ERM). |
The tests use the standard panel with one slider, an on-off button, a bar-graph, a label and an exit button.
The haptic feed-back works as follow:
Right: A hard copy of the screen used for tests and validation. |
Finalised and Working Screen
For an unknown reason, the DRV2605L stopped working when soldered on the final board. Removing a soldered component is always a tricky operation. I replaced it for a new one, which worked as expected.
The targeted board was the MSP432 LaunchPad. Unfortunately, the SPI is facing many bugs, even after implementing the suggested solution for the mismatched modes. Luckily, the screen works fine on the Tiva C LaunchPad. |
Links
|
Posted: March 20, 2018
Updated: March 23, 2018; April 20, 2018; June 04, 2018; August 4, 2018
Updated: March 23, 2018; April 20, 2018; June 04, 2018; August 4, 2018