8-bit TFT using SDMA and EMI [Yocto build]

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

8-bit TFT using SDMA and EMI [Yocto build]

2,186 Views
jaspernuytten
Contributor I

Hi all,

I have a small 8-bit interface TFT display and a SOM with an IMX6UL processor running a Yocto distribution.
I want to drive this display but I cannot seem to find the solution. The display only has 8-bit data channel and some control lines (reset, chip select, ...). No address lines!

I have connected the display using GPIO and configured notro's fbtft driver (GitHub - notro/fbtft: Linux Framebuffer drivers for small TFT LCD display modules ). I succeeded in getting an image on the screen, however the refresh rate was too low. I then changed the driver a little just to make it toggle a GPIO and it seems that they're not able to toggle fast enough to get a decent refresh rate.

Now I'm thinking about driving this display using the SDMA and EMI/EIM modules of the iMX6UL chip. As far as I understand, DMA is used to transfer data from place A to place B without CPU intervention and that EMI/EIM bus is used to access external memory. The display controller has its own memory, so I would suggest that this is possible? But I have no idea how, can somebody push me a little in the right direction?


If SDMA and EMI are not the solution, can somebody please explain me what they're used for then?

If more information is needed to give a good answer please ask, I really want to understand these concepts.
Kind regards

Jasper

-------------------------------------------------------
TECHNICAL DATA
------------------------------------------------------
TFT DISPLAY + CONTROLLER: RK020JH100 - ILI9335 (very similar to ILI9325)
SOM with iMX6UL processor

Labels (4)
0 Kudos
7 Replies

1,619 Views
jaspernuytten
Contributor I

Hi igor,

thanks for the information! So the iMX6UL supports an 8-bit interface, but looking around the forum people are talking about the following patch: Patch to support MPU 8080 LCD on iMX6UL and iMX7D
I assume this is necessary to make the yocto dist work with the iMX6UL in a correct way?

I have a few questions about SDMA, maybe you can answer those?
(1) What's the actual difference between SDMA and DMA?
(2) What's the actual difference/relation between EIM and EMI or WEIM?

(3) Can I use SDMA to write data to the tft? If so, how would I start? I know I should use the EMI block but I have no IDEA how, can you give me a push in the right direction? I have checked the reference manual but I don't seem to be able to filter out the info I need. How does SDMA relate to EMI, I know that the SDMA module can talk to the EMI-bus, but how?

Kind regards,
Jasper

0 Kudos

1,619 Views
shree97
Contributor II

Hello Jasper,

I am also trying to interface the TFT display using 8080 interface.

can you please share your device tree node for 8080 interface which you used with FBTFT drivers?

Best Regards,

Shrikant

0 Kudos

1,619 Views
jaspernuytten
Contributor I

If you mean the device tree when using Notro's driver, here you go:

[e.g. ili9325 controller lcd]

/ {
itdb28 {
compatible = "ilitek,ili9325";
status = "okay";

rotate = <0>;
bgr;
buswidth = <8>;
reset-gpios = <&gpio3 23 0>;
dc-gpios = <&gpio3 12 0>;
cs-gpios = <&gpio3 1 0>;
wr-gpios = <&gpio3 25 0>;
rd-gpios = <&gpio3 24 0>;
db-gpios = <&gpio3 7 0>,
<&gpio3 19 0>,
<&gpio3 9 0>,
<&gpio3 10 0>,
<&gpio3 11 0>,
<&gpio3 15 0>,
<&gpio3 16 0>,
<&gpio3 17 0>;
debug = <0>;
};
};

Don't forget to fill in the necessary details in the used driver itself and in the linux Kernel.
Good luck! I got the display working but unfortunately it was way to slow using this driver in combination with the GPIO interface.

If you have any clues on getting it to work with a decent refresh rate or using a dedicated interface, feel free to contact me.

Regards,
Jasper

0 Kudos

1,619 Views
shree97
Contributor II

Thanks Jasper for your quick reply.

I will try this out first.

If I will get any clue on refresh rate then I will contact you.

Regards,

Shree

0 Kudos

1,619 Views
jaspernuytten
Contributor I

Any success/progress with the project?

regards,

Jasper

0 Kudos

1,619 Views
shree97
Contributor II

I tried with Notro driver but its not showing any data on the LCD.

But when I checked with logic analyzer I am getting some sort of data on every line.

I am unable to figure out why its not showing data on display?

Regards,

Shree

0 Kudos

1,619 Views
igorpadykov
NXP Employee
NXP Employee

Hi Jasper

some lcds from mentioned link have mpu interface and can

be processed by eLCDIF module of i.MX6UL, please check Chapter 32
Enhanced LCD Interface (eLCDIF), Table 32-3. Pin use in MPU Mode and VSYNC Mode

RM. SDMA usage is not simple as eLCDIF and example can be found in imx-test (mxc_sdma_mem_test.c)

www.nxp.com/lgfiles/NMG/MAD/YOCTO/imx-test-5.7.tar.gz

Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos