This article walks through a possible RGB to MIPI DSI converter design. MIPI DSI is a very flexible display interface that can be used to carry signals over a long distance. You can use a standard HDMI cable to carry MIPI DSI signals for over 5 meters. However, most MCUs like the STM32, STM32MP1, RT1050, etc only feature an RGB display output. Converting RGB to DSI makes it easy to use a long display cable.
Do you REALLY need to convert RGB to MIPI DSI?
This is a basic question that you need to try and answer. Bridging RGB to DSI has its problems and the hardware will almost always need to be custom designed. The firmware on the host MCU will also likely need upgrading, given that DSI interface converters need setting up via I2C or SPI.
- Do you just want to add a newer, better DSI display to an old parallel RGB display design?
This could be a good reason to use an adapter. However, if you can find a 2-lane display and your host supports a 2-lane DSI host peripheral, you should go for that. That approach is more cost effective. - Need additional cable length and range?
I think you would be better off using an LVDS display in this case. As long as you can maintain a steady DMA-based memory to display transfer speed, LVDS displays are your best choice. Designing RGB to LVDS converters is easier and does not need any change on the host MCU firmware or hardware!
LVDS links have similar noise and propagation characteristics to MIPI DSI links.
Some Popular RGB to MIPI DSI Bridge ICs
Before you start designing an RGB to MIPI DSI bridge, you have to understand that MIPI DSI lane count is a major design issue. A 2-lane MIPI DSI source cannot interface with a 4-lane MIPI DSI display. Unfortunately, most MIPI DSI displays larger than 7″ in size are 4-lane DSI displays.
So even if your MCU has a 2-lane MIPI DSI output, you may still need to use a RGB to MIPI DSI bridge for having 4 lanes.
That being said, here are the most common solutions to help design an RGB to DSI converter or bridge. Due to the general 2021 chip shortage, some of these parts may not be easily available.
- Lattice Semi RGB to DSI bridge IP for CrossLink FPGAs
Lattice provides IP for CrossLink series of FPGAs that are specialized for interface conversion. The cost of licensing may be a point to consider here, and the cost of the FPGA. This approach would be worth it for high volume and flexibile applications. - Solomon Systech RGB to MIPI DSI Controller ICs
SS are a big player in the display industry. They make a ton of SSD series display controller ICs and usually have low cost, specialized solutions. Part numbers SSD2825 and SSD2828 are good RGB to MIPI DSI bridge ICs that you can use.
There are a little old though, the datasheets date back to 2013 now. You will need a high volume demand to buy these chips.
Best part is that one of these chips are available in QFN packages, which are easy to work with.
- Toshiba RGB to MIPI DSI Bridge
Toshiba is a big player in the display and GUI industry as well. I have noticed that this part is almost always in stock on major distributors like Mouser. Toshiba TC358768 or TC358778 are a very simple solution to design an RGB to MIPI DSI bridge. One potential negative is that the chips are only available in BGA packages. However, the 0.8mm ball pitch package is easy enough to solder by hand and using any decent 0402-capable production setup with high yields.
The converter or bridge IC supports 1 to 4 lanes and can be set up via an I2C or SPI capable host.
- Toshiba RGB to MIPI DSI Bridge
The above options are pretty much all I could find after researching for several hours. Yes, you can still get an FPGA and get to work… but that is not a reasonable route in most cases.
RGB to MIPI DSI Bridge Design
Designing the RGB to MIPI DSI bridge primarily involves designing a very stable power supply, given that these converter devices are very high speed devices with 1 Gbps or faster data lanes. Some general guidelines would be to:
- Ensure that the resolution limitations or restrictions can be handled by your host MCU
- Ensure that the desired frame rate is achievable with your host MCU
- Shortlist MIPI DSI displays that you plan to use and check whether frame rates are compatible for display panels with no embedded graphics RAM
- Design the board following good design practices. Some of those include:
- Careful PCB layout for SDRAM and high speed RGB interface from host MCU to RGB-DSI bridge.
- Follow guidelines for MIPI DSI PCB layout
Feel free to ask away via the Quick Contact form in the sidebar, or leave a comment below.
Change Log
- Initial Release: 21 August 2021
References
- Reference 1: STM32F469 Datasheet
- Reference 2: STM32MP1 Datasheet
- Reference 3: RT1050 Product Catalog
6 comments
Thanks for the nice article. I have a doubt.
I found 2 kinds of TFT display interfaces that are popular, parallel (RGB) and SPI. I want to have a discussion choose the right interface for the project.
For parallel disadvantages are that we need more pines (RGB 888 : (24+6), RGB565: (16+6), Also we have to maintain a huge buffer (mostly need external SDRAM and dual buffer ) and keep updating display (at least 25hz). In STM LTDC take care of updating display at a specified frequency. For all this, we need a high-speed microcontroller maybe an ARM cortex M7 which gonna increase the cost.
But SPI-based, we don’t need those many lines. Also, no need for external SDRAM so we can go with a low-cost microcontroller (maybe cortex m0+ will be fine) but the display update will be slower as it’s serial.
Suppose I need 5 inches or 7 inches (800*480), which one should I choose? For me expandability is also an important point as if I go for other microcontrollers, there is no LTDC. I might need to do bit-banging.
Hi Chandan,
I agree with your assessment. Don’t forget that there is another limitation to using RGB displays with STM32 – it keeps the peripheral bus very busy because the DMA is almost always operating. This slows down the whole system if you have other heavy data transfer operations to/from peripherals on the same bus.
My suggestion is that you use SPI based display and use very high speed SPI (80 MHz). Most displays with SPI will support up to 100 MHz SPI clock. If your application is more like a control panel, you should be fine with SPI displays. If you want to play videos or make an oscilloscope, etc then an RGB display is best because it lets you refresh the display very consistently and quickly.
Another important point to note with SPI displays is that you must NOT use 9-bit SPI mode. Always use 8-bit SPI mode with dedicated command/data line, because deciding the 9th bit can take up CPU time before every byte.
Thank you for the article….do you know for the TC358778XBG chip is there a data Sheet which explains the internal registers and addressing them via SPI?
Thank you
Couldn’t find it on the manufacturer’s page. Any luck for you?
Hello, would a HDMI/VGA to Component/SCART video signal downconverter be possible?
Yes, VGA to SCART or component should be doable with reasonably cheap custom hardware. There are HDMI to VGA cards that can be used if you needed HDMI to component/SCART.