quick explanation of RGB TFT driving (how is pixel row/column selected?) - Page 1
Forum section: electronics / projects

author: carl0s
author_rank: Unknown
timestamp: May 11, 2018, 05:24:44 pm
content: Can somebody very quickly explain to me how an RGB TFT-LCD connection works, either intel 8080 or the motorola version.All I am missing is... how is the column/row specified? I get that, depending on whether its 565, 666, or 888 then it's more bits, i.e. more data bus wires, and the order it's packed, rgb. bgr etc, but.. I just don't see anything explaining to me where you select which pixel the colour data is for.

author: ataradov
author_rank: Super Contributor
timestamp: May 11, 2018, 05:35:47 pm
content: With parallel digital interfaces you don't write pixels directly, you write into the RAM that represents a picture, and display controller does the driving of the panel.You send the data using a command, which typically has a way to set offset into the RAM. It is on you to calculate which offset corresponds to which pixel. The details will vary between different controllers,so you need to look at the documentation for a specific controller.Often the first byte you write is a command, which contains D/C bit, which indicates whether the following bytes are commands or data.

author: carl0s
author_rank: Unknown
timestamp: May 11, 2018, 06:44:26 pm
content: Quote from: ataradov on May 11, 2018, 05:35:47 pmThank you that's a big help. I'm aware of the data/command select pin on spi serial screens, but I'm delving into other stuff now including mipi (from stm32l4r9) and RGB to mipi conversation via from an stm32f767 to ssd2828 into a 3 lane mipi lcd.I think the chromart ltdc in these MCUs are confusing me a bit as they have their own SRAM framebuffer

author: ataradov
author_rank: Super Contributor
timestamp: May 11, 2018, 07:39:15 pm
content: SSD2828 uses a standard RGB interface with HSYNC and VSYNC pulses to denote the start of the line and start of the frame. And controller in the MCU must be able to generate those signals.But even SSD2828 has SPI interface for reading or writing registers.

author: carl0s
author_rank: Unknown
timestamp: May 11, 2018, 08:10:24 pm
content: Quote from: ataradov on May 11, 2018, 07:39:15 pmYes I think the LTDC in the STM32F797 (and L4R9) can do this. I have an L4R9i discovery board - the one meant for smart watch prototyping. This has 2 lane MIPI, so one of my projects it to make an adapter board between the MIPI-DSI socket on that, to the 3.4" 1-lane MIPI screen above (320x320) which has the ST7796SI controller (with its own GRAM). The DISCO board comes with one such adapter already fitted for the included 1.3" screen, but this is amoled (no backlight) and uses different connectors obviously anyway (tiny 0.35 pitch 24 pin).Then my other similar project is to get the 3.4" 800x800 3-lane mipi screen going. Since no MCU supports 3 lane MIPI, this one will involve the SSD2828. The DISCO board above doesn't expose the LTDC pins - only 2 lanes of MIPI DSI differential serial, but I have one of thoseAlientekboards on the way with the STM32F767 and all the LCd TFT pins exposed.. so... I should be able to use that to maybe try to get the SSD2828 bridge working with that screen. That screen uses a GRAM-less ILI9881C.So all in all, if I get anything going, I should learn something.My plan was to try to figure out how to use Altium or Cadence Allegro and get some PCBs ordered.. but .. I've only just realised the backlights need boost converters and all sorts! I knew I'd need to PWM some kind of transistor, but I hadn't realised the backlights used ~15 - 20 volts and boost converters. I could do with some reference schematics really..

author: carl0s
author_rank: Unknown
timestamp: May 12, 2018, 09:03:58 am
content: One last question.How is it done with round tft? the spec sheet says 320x320 or 800x800. Is it still mapped as a square, but the panel just ignores the missing parts?

author: ataradov
author_rank: Super Contributor
timestamp: May 12, 2018, 05:25:51 pm
content: I have never worked with one, but I think it is safe to assume that it is square virtually, just some pixels missing.