Hey,
i recently bought an development board (mimxrt1050_evk) to evaluate that processor for our new product. The included screen (rocktech 4,3 inch) is too small for our application. I have ordered a 7 inch display, but for testing purposes, I had the 5" version of the ordered one here. This is the datasheet of the board: https://4dsystems.com.au/mwdownloads/download/link/id/825/
I compared the datasheet of the display and the board and noticed that the pins of the lcd parallel port are a match. (Not the touch interface - that problem will be solved later).
So what I did is wrote a basic hello world application in zephyr using lvgl. I already compiled it for the simulator - all good and working.
Then I tried compiling it for the mimxrt1050_evk board. Also I had to set "CONFIG_DISPLAY=y" so that the screen will be available in the devicetree. It worked and I flashed the board. As the board has booted, the display was on but only showed mostly black and some multicolored lines. I expected that, because the resolution etc. did not match. So I edited zephyr/boards/arm/mimxrt1050_evk.dts from
&lcdif {
status = "okay";
width = <480>;
height = <272>;
hsync = <41>;
hfp = <4>;
hbp = <8>;
vsync = <10>;
vfp = <4>;
vbp = <2>;
polarity = <3>;
pixel-format = "bgr-565";
data-buswidth = "16-bit";
pinctrl-0 = <&pinmux_lcdif>;
pinctrl-names = "default";
backlight-gpios = <&gpio2 31 GPIO_ACTIVE_HIGH>;
port {
lcd_panel_out: endpoint {
remote-endpoint = <&lcd_panel_in>;
};
};
};
to
&lcdif {
status = "okay";
width = <800>;
height = <480>;
hsync = <4>;
hfp = <8>;
hbp = <8>;
vsync = <4>;
vfp = <8>;
vbp = <8>;
polarity = <13>;
pixel-format = "rgb-888";
data-buswidth = "24-bit";
pinctrl-0 = <&pinmux_lcdif>;
pinctrl-names = "default";
backlight-gpios = <&gpio2 31 GPIO_ACTIVE_HIGH>;
port {
lcd_panel_out: endpoint {
remote-endpoint = <&lcd_panel_in>;
};
};
};
But now, the display starts blank white and completely fades slowly to black - nothing else happening.
In fact, as soon as I touch the resolution this is happening. If I just set width to 490 (from 480) this is happening.If I use the default values, I think the elcdif driver is in fact working, but sending the wrong output to my display. As soon as I touch the config, the driver dies not seem to do any at all..
Also, there is no parameter for the CLK frequency - how would I set this? The Rocktech Display Frequency seems to differ from my display - I searched the devicetree files and drivers for hour, but i could not find out how this is done.
Any help is appreciated.
PS: The original Rocktech display seems to be EOL, too. They would not sell me the 7" version of the rocktech display...
Solved! Go to Solution.
My bad, it wasn't anything nxp related. I just did nor have enough memory blocks for lvgl.
I set CONFIG_LV_Z_MEM_POOL_NUMBER_BLOCKS=12 and it worked.
My bad, it wasn't anything nxp related. I just did nor have enough memory blocks for lvgl.
I set CONFIG_LV_Z_MEM_POOL_NUMBER_BLOCKS=12 and it worked.
Looks like its a memory problem. Original resolution = 400 x 272 = 108800 pixels. If I change he resolution to 329x329 (=108241 px), it also does NOT go blank (just weird color lines). So somehow I need to adjust the framebuffer size or memery size or something like that...
How does the elcdif driver get its memory and needed size?
I would be grateful for any advice...