desktop

configuración LCD vía Linux (YOCTO)

Hola.
Estoy intentando poner en marcha el tft PH320480T009-LAC03 con un IMX7 que utiliza una imagen yocto.
El driver que utiliza el TFT es ST7769S, sin embargo el kernel de yocto no proporciona este driver, por lo tanto estoy usando el ili9486 que tiene un funcionamiento muy similar.

Para configurar este driver he realizado la siguiente configuración del device tree para poner en funcionamiento el interfaz SPI 4-Line.

Primero he eliminado del device tree la configuración anterior del mxcfb1.
PHP:
&PICO_PI_ECSPI4 {
	status = "okay";
	spidev@1 {
compatible = "rohm,dh2228fv";
spi-max-frequency = <60000000>;
reg = <1>;
status = "disabled";
};
mxcfb1: fb@0 {
compatible = "ilitek,ili9486";
reg = <0>;

spi-max-frequency = <5000000>;
rotate = <0>;
buswidth = <8>;
regwidth = <16>;
reset-gpios = <&gpio 25 0>;
dc-gpios = <&gpio 24 0>;
debug = <0>;
init = <0x20000ff
	0x1000001
			0x20000ff
0x1000011
	0x20000ff
	0x10000f0 0xc3
	0x10000f0 0x96
	0x1000036 0x40
	0x10000b4 0x01
	0x10000b6 0x20 0x02 0x3b
	0x10000e8 0x40 0x8a 0x00 0x00 0x29 0x19 0xa5 0x33
			0x10000c1 0x0x06
0x10000c2 0xa7
0x10000c5 0x18
	0x10000e0 0x0f 0x09 0x0b 0x06 0x04 0x15 0x2f 0x54 0x42 0x3c 0x17 0x14 0x18 0x1b
	0x10000e1 0x0f 0x09 0x0b 0x06 0x04 0x03 0x2d 0x43 0x42 0x3b 0x16 0x14 0x17 0x1b
	0x10000f0 0xc3
	0x10000f0 0x96
	0x20000ff
	0x1000029>
};
};
La secuencia inicial es la misma que recomienda el fabricante del TFT.
Cuando arranco el programa, veo que la pantalla responde a los comandos que le estoy indicando en la secuencia inicial, ya que cuando se lanza el último comando de dicha secuencia (display on), el display se enciende y muestra muchos puntos de colores.
Y esto es todo lo que me hace la pantalla, cuando le indico que me cargue una imagen (le lanzo un programa generado con el qt creator), no funciona, sigue mostrando los puntos de colores.

He medido la señal que sale del SPI con un osciloscopio, y las señales que genera parecen correctas.
¿Cuál puede ser el problema?
Mi teoría es que el comando “b6h” que se lanza en la secuencia inicial activa un bit que es para seleccionar el interfaz RGB (RM), por lo tanto cuando cargo una imagen por el interfaz SPI la pantalla lo ignora, ya que el espera que le llegue la señal por otro bus de datos.

¿Alguien sabe cómo tendría que configurar la secuencia inicial para poder cargar la imagen a través del SPI?
¿Y cómo tendría que configurar el device tree para que también me generase un interfaz RGB?
 
Última edición por un moderador:
Atrás
Arriba