Power up an embedded system and the display either comes to life clean — or fills with random pixels and flickering lines. More often than not, the culprit is one detail hiding in a tiny timing diagram: the power-up sequence.
Every TFT LCD module controller IC has internal power-on reset circuits and voltage regulators that expect a specific rail bring-up order. When VDDIO (I/O supply) arrives before VDD (core supply), or when data signals toggle before the panel’s internal charge pumps stabilize, the controller enters an undefined state. The visual result ranges from horizontal streaks and color banding to complete white-out.
Sustained violations can trigger latch-up. That means a low-impedance path forms between power rails, current spikes, and the controller IC dies.
Most TFT controller ICs (ILI9341, ST7789V, GC9A01, RA8875 and similar) follow the same basic pattern. Here is what your firmware needs to do:
Power-On Order: 1. Apply VDD (typically 2.5V–3.3V core supply) 2. Wait for VDD to reach 90% of nominal (consult the datasheet’s tPOWER specification) 3. Apply VDDIO (1.8V–3.3V I/O supply) 4. Wait for internal oscillator and charge pump stabilization (often 10–120ms) 5. Assert RESET high 6. Wait the specified post-reset delay (typically 5–120ms) 7. Send the initialization command sequence over SPI or parallel interface 8. Configure display parameters (orientation, pixel format, gamma) 9. Enable the backlight last
Power-Off Order: 1. Disable the backlight 2. Send display-off command (DISPOFF / 0x28) 3. Send sleep-in command (SLPIN / 0x10) 4. Wait for the specified sleep-in delay (typically 5ms) 5. De-assert VDDIO 6. De-assert VDD
The mistake most people make is turning on the backlight before the panel finishes processing the init commands. You get a brief flash of random pixels — engineers call it “display garbage” — and then the correct image appears a moment later. Adding a 50ms delay between the last init command and the backlight-enable GPIO eliminates it.
| Step | Power-On Sequence | Power-Off Sequence |
|---|---|---|
| 1 | Apply VDD (2.5V–3.3V) | Disable backlight |
| 2 | Wait for VDD ≥ 90% nominal | Send DISPOFF (0x28) |
| 3 | Apply VDDIO (1.8V–3.3V) | Send SLPIN (0x10) |
| 4 | Wait 10–120ms stabilization | Wait 5ms sleep-in delay |
| 5 | Assert RESET high | De-assert VDDIO |
| 6 | Wait 5–120ms post-reset | De-assert VDD |
| 7 | Send init command sequence | — |
| 8 | Configure display parameters | |
| 9 | Enable backlight last |
One pitfall that trips people up: GPIO default states. Most MCU GPIOs default to input or pull-down during reset. If your backlight control pin floats low while the MCU is still booting, and the TFT module powers up first, the backlight flickers before your firmware even gets a chance to configure the pin.
A 10kΩ external pull-down resistor on the backlight enable line usually fixes it. Also make sure your MCU initializes all display-related GPIOs (RESET, backlight, CS, data/command) before bringing up the TFT module’s power rail. Put this at the top of your init routine, right after setting up the system clock.
For multi-voltage displays with separate VDD and VDDIO rails, a power management IC with programmable sequencing (TPS65132, or a GPIO-controlled load switch per rail) gives you hardware-level enforcement. But even with discrete LDOs and GPIO-controlled enable pins, a software-only sequence works reliably if you time it right.

Figure 1: Simplified block diagram showing MCU GPIO pins (RESET, backlight, CS, data/command) connected to a TFT LCD module, with a 10kΩ pull-down resistor on the backlight line labeled clearly

Not all TFT LCD module datasheets document the power sequencing requirements clearly. When evaluating modules for an embedded design, check that the supplier provides:
A supplier that gives you reference initialization code in C saves you days of debugging. For industrial gear that runs across a wide temperature range, ask about cold-start behavior: charge pump startup times below -10°C can run much longer than what the room-temperature datasheet says.
Chenghao Display supplies TFT LCD modules from 1-inch to 15.6-inch with SPI, RGB, LVDS, and MIPI interfaces. Our engineering team provides datasheets with complete timing specifications and reference initialization code to help embedded developers get the display working from the first prototype. For applications where reliable boot behavior matters — industrial HMI, medical devices, outdoor instrumentation — reach out for a specification review and sample availability.
Why does my TFT LCD display show random pixels or flickering during startup?
Random pixels, flickering lines, or a temporary white screen can occur when the TFT LCD module is powered up in the wrong sequence or receives initialization signals before its internal circuits have stabilized. Following the voltage, reset, initialization, and backlight timing requirements in the controller datasheet can help ensure a clean startup.
Why should the TFT LCD backlight be enabled last?
The backlight should be enabled only after the TFT controller has completed its reset and initialization sequence. Turning it on too early can expose random pixels or incomplete display data during startup. A short delay after the initialization commands can help prevent this visible “display garbage.
Do all TFT LCD modules use the same power sequencing requirements?
No. While many TFT LCD controllers follow a similar power-up and power-down process, the required voltage order, stabilization time, reset timing, and initialization sequence can vary between controllers and modules. Always check the specific module datasheet and timing diagrams before designing the power control and firmware sequence.
This article was authored by the international trade team at Chenghao Optoelectronic, led by General Manager Tina. Tina possesses over a decade of experience in international trade and deep professional expertise in the display module industry.
We value your privacy
We use cookies to enhance your browsing experience, serve personalised ads or content, and analyse our traffic. By clicking "Accept All", you consent to our use of cookies.
Customise Consent Preferences
We use cookies to help you navigate efficiently and perform certain functions. You will find detailed information about all cookies under each consent category below.
The cookies that are categorised as "Necessary" are stored on your browser as they are essential for enabling the basic functionalities of the site. Show more
Necessary cookies are required to enable the basic features of this site, such as providing secure log-in or adjusting your consent preferences. These cookies do not store any personally identifiable data.
Functional cookies help perform certain functionalities like sharing the content of the website on social media platforms, collecting feedback, and other third-party features.
Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics such as the number of visitors, bounce rate, traffic source, etc.
Performance cookies are used to understand and analyse the key performance indexes of the website which helps in delivering a better user experience for the visitors.
Advertisement cookies are used to provide visitors with customised advertisements based on the pages you visited previously and to analyse the effectiveness of the ad campaigns.