To carry out this project we found ourselves with a great challenge, as we took video through CM3. For this we are presented with various options:
- DPI (Display Parallel Interface)
The first is widely known, but it would make it difficult for us to make an HDMI converter to an embedded screen, this type of screen does not have the HDMI format but is LVDS, MIPI, DPI, RGB-888 ..., therefore it adds difficulty in conversion.
On the other hand, the selected screen uses the DPI format to receive video signal, so the easiest option apparently is to use the raspberry GPIOs for DPI.
We have a post from the Raspberry Foundation itself explaining this section DPI raspberry pi, the part that interests us is how it sends the raspberry pi video data.
The color depth is obtained as follows:
2 ^ (number of bits channel R) * 2 ^ (number of bits channel G) * 2 ^ (number of bits channel B), the best quality case is the one that uses 8bits for each channel, RGB 888, in where we obtain a total of 16,777,216 million colors. But in return, we will lose a greater amount of GPIO, specifically all the GPIOs of bank0, these are the ones that could be seen on a RaspberryPi in desktop format.
Next we can see an image of the pins of a screen by means of DPI, which needs us to introduce the 8 bits of the color Blue, Red, Green on the one hand. Later you need the synchronization clock signals Hsycn and Vsync, to finish with the signal that the data clock carries (DCLK), this clock is used to be able to synchronize on the screen when the raspberry pi sends a color and it must read it.
#Configuracion pantalla dtoverlay=dpi24 #activamos el overlay de raspberry para utilizar los pines del bank0 en su función DPI enable_dpi_lcd=1 display_default_lcd=1 dpi_group=2 #Con esto dpi_mode=87 # y esto activamos unos timmins a mano para poder configurar la salida de video por DPI. ####Tiempos pantalla LCD. dpi_output_format=0x70017 hdmi_timings=320 0 5 0 40 240 0 8 0 8 0 0 0 60 0 9600000 3
In another article we will delve deeper into the "dpi_output_format" and "hdmi_timings".
With this we get the Raspberry pi to take video through bank0 with the format established by dpi_output and hdmi_timings, and this is the result.