Screens/Screens with their own memory/8080 parallel
Lesson 6 of 16 · in 3D and VR

8080 parallel

An 8080 display has no clock line. The write strobe WR sets the beat and the controller latches the bus on its rising edge. Bus width decides how many strobes a pixel needs, and the controller sets the speed limit.

Lonely BinaryUpdated 2026-10-014 min readNo board required

View it in VR

Lesson 6 of the Screens course opens in a VR headset, on a table in front of you, and a voice starts three seconds after you arrive. Type this short address into the browser on a headset such as Meta Quest or Apple Vision Pro, and press Enter VR. No headset? Press Start the lesson: the same lesson, full screen.

learn.lonelybinary.com/vr/screens/6

No SCLK does not mean no timing. The host puts a value on the data lines, then pulses WR. On our ILI9341 example the controller captures the bus on the rising edge of WR. D/C, sometimes called RS, says whether that value is a command or display data, and CS selects the chip.

Bus width is not colour depth

A pixel needs a fixed number of bits. The bus decides how many write cycles carry them. On an 8-bit bus one RGB565 pixel takes two writes and one RGB666 pixel takes three. A 16-bit bus sends RGB565 in one write and RGB666 in two. An 18-bit bus, on a controller that supports it, sends either in one.

So 16-bit colour does not require sixteen wires.

The controller sets the limit

The ILI9341 specifies a minimum write cycle of 66 ns, about 15.15 MHz. The host may be able to pulse WR faster, but the controller cannot follow it. For a 240 × 320 frame at that cycle time, payload only:

  • 8-bit RGB565 needs 153,600 writes, about 10.1 ms.
  • 8-bit RGB666 needs 230,400 writes, about 15.2 ms.
  • 16-bit RGB565 needs 76,800 writes, about 5.07 ms.

The same RGB565 frame over 10 MHz SPI, the ILI9341's rated clock, takes about 122.9 ms. Each figure comes from its own interface's datasheet example.

What the ESP32 can drive

The ESP32-S3 has LCD_CAM, which drives an 8-bit or 16-bit i80 bus, and the ESP32-P4 has LCD_CAM too. The original ESP32 reaches the same bus through I²S in LCD mode. ESP-IDF recommends keeping the i80 PCLK below 80 MHz for an 8-bit bus and below 40 MHz for a 16-bit bus. Those are host-side recommendations, not a promise that a controller runs that fast. The ESP32 book picks up the larger panels.

Common mistakes

  • No SCLK, so nothing sets the timing. The WR strobe is the timing. The data must be steady around its rising edge.
  • A 16-bit pixel needs a 16-bit bus. A narrower bus just sends each pixel in more write cycles, which costs time.
  • An 8-bit bus with RGB666 is fine. It needs three writes per pixel, 230,400 for a frame. Switching to 16-bit RGB565 cuts that to 76,800, which is one possible cause of a slow update and no more.

Edit this page — content/fundamentals/screens/8080-parallel.mdx

Discuss this article

Ask about this page. The answer stays here, on the page it belongs to, for whoever hits the same wall next.

Browse Fundamentals on the forum →