Hardware Interfacing the MIPI DSI port on Raspberry Pi - FAN4216
Hardware Interfacing the MIPI DSI Port on Raspberry Pi
This application note will discuss how to integrate Focus LCDs’ MIPI DSI display with the MIPI DSI communication port on the Raspberry Pi. The 3.5” display is interfaced over a one data lane MIPI DSI protocol. The steps of setting up the display to operate with the Raspberry Pi will be discussed and can be applied to other Focus LCDs MIPI DSI displays.
The Raspberry PI has a MIPI DSI port available as an input to the device. This port is a 15 pin interface that supports up to 2 data lane MIPI signals. The MIPI DSI interface of the Raspberry Pi can support command and video mode MIPI DSI communication.
One challenge of using the MIPI DSI interface ports is pin matching. There is not a set pin out for MIPI DSI interfaced displays. The pins can be in different orders depending on the chosen hardware configuration. This makes the interface different than the alternative display ports available on the Raspberry Pi, such as HDMI or micro-HDMI.
The display used in this application is the 3.5” TFT E35KB-FW1000-N. Features of this display are provided below.
|Display Type||TFT Active Matrix||-|
|Resolution||320 x 480||Pixels|
|Size||54.46 x 82.94||mm|
|Interface||1-Lane MIPI DSI||-|
The display being used has a one lane MIPI interface with 20 pins available on the the FPC connector. The interface is operated with one pair of differential data pins and one pair of differential clock signals. The additional pins of the interface are for power, reset, and the backlight.
The FPC connection of this display is not directly compatible with the Raspberry PI DSI port available on the board. This means the pins will need to be rerouted to match the pin output of the port.
There will need to be a 20-pin ZIF connector to connect the display’s 20-pin FPC for accessing the interface. The pins can be rerouted with or without additional components, such as voltage boosters for the backlight, voltage regulators, and capacitors.
The connector used to connect the display is a 20-pin port with top and bottom contacts. The spacing between each of the pins is 0.50 mm and has a snap connector to hold the FPC in place. This connector can be included on a PCB and rerouted directly or on a display connection board for prototyping.
The Raspberry Pi has a 15-pin connector attached to the board. This MIPI DSI port is available on the Raspberry Pi 3 and on the Raspberry Pi 4. The connection port is a vertical angled FPC ribbon ZIF connector which is similar to the display connector. The pin pitch is 1 mm between each pin.
2. Hardware Connection
The display in this application has a 20-pin interface that is rerouted to access the Raspberry Pi display port. The connector on the Raspberry Pi has a 15-pin MIPI DSI port with a 1 mm pitch while the display is a 0.5 mm pitch. The display does not have a direct pin match as the connector. This means that the pins will have to be routed to the correct locations.
Below are the pin outs of the Raspberry Pi and the display used in this application.
The connector pinout is simple to match to the display. The signals are comprised of differential positive and negative pairs. The Raspberry Pi offers a two lane MIPI DSI port. The display operates in the one data lane MIPI DSI protocol.
The devices are interfaced by connectors with the corresponding pitch and number of data pins.
Each signal of the display is routed to the matching pin on the Raspberry Pi connector. The back light of the display operates at 15.6 V and 60mA. This can be provided externally or by including a voltage converter on the PCB. Additionally, a voltage regulating chip can be included as well as some capacitors on the data and clock lines to ensure proper signaling.
3. Software Connection
The next step would be to focus on the software to implement a device driver to initialize and communicate with the display. The device drivers are created in the kernel to identify the display parameters. Certain software is required to integrate the new device headers into the Raspbian software or Linux based software of your choice.
A few things need to be changed in the Raspbian software in order for the device to recognize the display when connected through the MIPI DSI terminal. The kernel will need to be updated for the compiler to build without errors. The full details of int MIPI DSI software will be discussed in a future note.
Buyers and others who are developing systems that incorporate FocusLCDs products (collectively, “Designers”) understand and agree that Designers remain responsible for using their independent analysis, evaluation and judgment in designing their applications and that Designers have full and exclusive responsibility to assure the safety of Designers' applications and compliance of their applications (and of all FocusLCDs products used in or for Designers’ applications) with all applicable regulations, laws and other applicable requirements.
Designer represents that, with respect to their applications, Designer has all the necessary expertise to create and implement safeguards that:
(1) anticipate dangerous consequences of failures
(2) monitor failures and their consequences, and
(3) lessen the likelihood of failures that might cause harm and take appropriate actions.
Designer agrees that prior to using or distributing any applications that include FocusLCDs products, Designer will thoroughly test such applications and the functionality of such FocusLCDs products as used in such applications.