cancel
Showing results for 
Search instead for 
Did you mean: 

Can I connect off-the-shelf DSI display to an STM32 eval board?

jhnlmn
Associate III

I need to connect a 5 inch 480x800 display to a STM32 eval board.
There are many 480x800 DSI display on the market, but all of them are designed for PI
and have standard PI 15 pin or 22 pin connector, which has 1 clock, 2 or 4 data pairs and SCL/SDA and +3.3V.

But STM32 eval boards like
https://www.st.com/resource/en/data_brief/stm32u5a9j-dk.pdf
or
https://www.st.com/en/evaluation-tools/stm32h747i-disco.html
use some unique DSI connectors and there are no displays for them.

Question is whether it is possible to connect to STM32 a display designed for PI.

The first part of this question is whether DSI clock and data pairs are compatible.
Second is what to do with other lines on STM32 DSI connector, like:
SCLK/MCLK, LRCLK, I2S, CEC_CLK, CEC, DSI_TE, LCD_BL_CTRL, DSI_RESET, TOUCH_INT, I2C4_SDA, I2C4_SCL.
I guess I2C should be compatible, but what to do with others?
Is it possible to make some simple adapter?

Thank you

14 REPLIES 14
RhSilicon
Lead

PI: Raspberry Pi

KDJEM.1
ST Employee

Hello @jhnlmn ,

You can connect the Raspberry PI displays through B-LCDAD-RPI1 adapter.

This B-LCDAD-RPI1 adapter board features up to two lanes of MIPI/DSI data and I2C interface support, and enables the use of extended displays with standard DSI interface on STM32 EVAL/DK board family.

For more information about the connection pins I recommend you to look to DSI to LCD adapter board (st.com).

Thank you.

Kaouthar

To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.

> To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.

This text would be displayed by default below the last post while the question is open.

Hello @RhSilicon ,

Yes, the question is open and this text is displayed to push the community member to click on Accept as Solution on the post, which solved the issue or answered the question (once the question has been fully answered).

Thank you.

Kaouthar

To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.

Thank you for your response.

I will try DSI to LCD adapter board. But first I need to find a compatible display.

I see that stm32cubeh7 package includes drivers for 2 DSI LCD controller chips: nt35510 and OTM8009A

Do you know whether any popular Raspberry PI  displays use these chips? Do you have drivers for any other DSI controller chips for 480x800 displays?

Thank you


Do you know whether any popular Raspberry PI  displays use these chips? Do you have drivers for any other DSI controller chips for 480x800 displays?


There are some display models on this website, see if any model meets:

https://www.buydisplay.com/catalogsearch/advanced/result/?interface=6783

In support of the B-LCDAD-RPI1 there should be a broad selection of display drivers and models to illustrate usage.

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..

I asked few display vendors and they told me that their DSI displays are only compatible with RPi and cannot be compatible with STM32. They do not explain why.

I see several posts on the Web where people tried using STM32 with B-LCDAD-RPI1 with RPi displays and failed. I cannot find a single successful report.

But ST is selling this adapter B-LCDAD-RPI1 since 2016, it must have tested it with something? Could you, please, give us at least few displays, which were known to work.


I asked few display vendors and they told me that their DSI displays are only compatible with RPi and cannot be compatible with STM32. They do not explain why.

Maybe it's a DSI version mismatch issue. I found some information:

- History: 

The MIPI Alliance was formed in 2003, aiming to establish standards in mobile industry components. The first version of the MIPI DSI, version 1.0 was released in 2005. MIPI DSI v1.1 was released in 2007, and added features such as "Command Mode" for directly sending commands and data to display modules using the display controller.[1] DSI v1.2 was released in 2011, and extended the video packet length and expanded the command mode.[2] DSI v1.3 was released in 2013. DSI versions 1.4 and DSI-2 were released in 2016 and 2018 respectively.

https://en.wikipedia.org/wiki/Display_Serial_Interface

- Communication Protocol: 

In a dual lane system such as that on the Raspberry Pi, a stream of bytes divides between the lanes, therefore byte 0 goes through lane 0 and byte 1 through lane 1, alternating in this manner. After a little hacking, I could see that the data structure is in the form of packets, which starts and ends with transmission markers. There is a header in the packet, which contains the data type, the number of bytes sent, and the ECC checksum. Immediately following the header are the data bytes.

- Finding a Panel

I decided to look for some display panels, however nearly all the modern LCD panels have four to eight data lanes due to higher resolutions that are required of them. I also had a look at some of the iPhone display panels; however, the ones I saw had four data lanes, and therefore could not be used.

Display panels with two data lanes were in mobile phones manufactured around 2008. They had a WVGA resolution of approximately 360-pixels × 640-pixels, so I decided to look at some old phones, and managed to find one panel that had a chance of working. Although the DSI connector pinout may change from one product to another, the MIPI communication protocols and electrical signals are a standard. If the next model of Raspberry Pi, perhaps Raspberry Pi 2, or Raspberry Pi 3, uses a similar Broadcom processor, then one still has a basis in MIPI to guess the pinouts.

https://www.petervis.com/Raspberry_PI/Raspberry_Pi_LCD/Raspberry_Pi_LCD_DSI_Display_Connector.html

- Pinout 

In the banner photograph above, you can see that there are six thin tracks going to the socket. The first pairs of tracks connect to pin 2 and pin 3 for data lane 1. The second pairs connect to pin 5 and pin 6 for the clock pulse. Finally, the third pair connect to pin 8 and pin 9 for data lane 0. If you have some sharp probes, you could connect them to the solder pads and hook it up to a multi-channel oscilloscope. I managed to hack this part very easily and interface a tablet display; however, my driver needs more work. Packet transmission protocols are always a pain!

https://www.petervis.com/Raspberry_PI/Raspberry_Pi_LCD/Raspberry_Pi_DSI_Connector.html

I don't know if HDMI can be an alternative for your project, but as HDMI is the most used type of interface today, it might be easier to find a display. The Raspberry Pi display adapter is passive, but there is an active adapter for HDMI:

The DSI to HDMI adapter board (order code B-LCDAD-HDMI1) provides DSI input port and HDMI output port. It can be used on STM32 evaluation boards or discovery boards, to demonstrate video solutions based on STM32 MCUs.

Thanks to the bridge chip ADV7533, the DSI to HDMI adapter board can support 2-, 3- or 4-lanes DSI video input data, S/PDIF, 2-channels I2S audio input data and HDMI v1.3 output port.

https://www.st.com/en/evaluation-tools/b-lcdad-hdmi1.html

- Which display interface is best right now?

Technically, DisplayPort sounds like HDMI’s awesome big brother, but HDMI can easily stand up for itself in average practical applications. If you’re talking TVs, A/V receivers, and the like, as well as budget computing, HDMI is what you’re going get 99.9 percent of the time, and it’s more than adequate.

On the other hand, if you’re looking to create a robust monitor setup (i.e., use of a high-resolution display with a high-refresh rate), you’re talking DisplayPort. That generally requires a discrete graphics card, but with the growing acceptance of USB Type-C ports as a standard, hopefully DisplayPort will become significantly more widespread in all sectors of the market.

https://www.pcworld.com/article/457147/hdmi-vs-displayport-which-display-interface-reigns-supreme.html

I also found this bridge IC:

ICN6211 is a bridge chip which receives MIPI® DSI inputs and sends RGB outputs.

MIPI® DSI supports up to 4 lanes and each lane operates at 1Gbps maximum; the totally maximum input
bandwidth is 4Gbps; and the MIPI defined ULPS(ultra-low-power state) is also supported. ICN6211 decodes
MIPI® DSI 16bpp RGB565 and 18bpp RGB666 and 24bpp RGB888 packets.

The RGB output 18 or 24 bits pixel with pixel clock range of 25MHz to 154MHz.

ICN6211 support video resolution up to FHD (1920x1080) and WUXGA(1920x1200).

ICN6211 adopts QFN48 pins package.

[YouTube] ICN6211 DSI demo with 5" 800x480 display on a Raspberry Pi