10.4″ Bar Shaped TFT LCD
1. Introduction
This application note will review the setup and features of Focus LCDs’ 10.4-inch TFT. This display is unique because it is in the shape of a thin bar. This means that most of the pixels are distributed in the horizontal direction. The applications for this display are largely focused on the unique resolution and aspect ratio of this display. This note will highlight the features, review the required hardware connections, and cover the necessary software commands to setup this display.
This TFT has a 10.4” diagonal with a resolution of 1024 x 100-pixels. The connection interface of this display is a 24-bit RGB parallel FPC cable connection. This display has a low input voltage of 3.3 V and an anti-glare polarizer. Additional features are described in the following table:
Item | Specification | Unit |
---|---|---|
Part No. | E104RB-FW450-N | – |
Size | 10.4 | Inch |
Display Type | TFT Active Matrix | – |
Display Area | 264.192 x 35.8 | mm |
Resolution | 1024 x 100 | Pixels |
Pixel Arrangement | RGB Vertical Stripe | – |
Controller | HX8678C | – |
Display Mode | Transmissive, Normally White | – |
Polarizer | Anti-Glare | – |
2. Hardware Connection
This display offers a full range of 24-bit RGB color and is capable of displaying up to 16.7 million unique variations of red, green, and blue color data. The setup for this display requires an external graphics controller to time the signals of the RGB video interface. The pins of the FPC cable are described in the table below.
The graphics controller used in this application note is specifically designed to manage RGB display timings. This makes processing the display data much easier to manage. The controller used in this application is SSD1963. This controller functions as a signal clock generator, a signal controller, and SRAM for display data. The display controller has 1,215kB of internal SRAM for the RGB pixel data available.
The microcontroller used in this application is a 32-bit ARM core processor which is available on the Arduino Due development board. This development board was chosen for the availability of the digital I/O pins that are required for the 16-bit 8080 parallel interface of the graphics controller. This processor is capable of interfacing the 8080 parallel graphics cards but is not suitable for controlling the display timing and signals alone.
The connection between the display E104RB-FW450-N and the SSD1963 graphics controller is described in the table below. Each pin of the display corresponds to a dedicated pin on the graphics controller.
The data pins for the RGB interface must be connected to the correct 24-bit digital output pins as described in the table above. The order of the RGB pins is set to be used for the RGB-888 interface where each red, green, and blue pixels contain 8-bits of color data. The pixel data format can be changed in the configuration settings of the graphics controller.
Different pixel data formats require different pin mappings of the 24-bit RGB data. These pin connections must be consistent between the display and the graphics controller. This should be verified in the datasheet of the controller and the display.
The MCU is connected to the graphics controller to indicate the desired RGB signal timings, clock PLL settings and display configurations. This is done through the 16-bit parallel 8080 interface through 20 interface pins.
This interface is used to send initialization commands to the display control registers. The power of these pins is supplied by the 3.3V on the Arduino Due and is also the supply for the display’s digital logic voltage and ground.
A wide variety of microcontrollers can be used for this application because a majority of the processing and data storage is left to the graphics controller. The minimal 8-bit commands to initialize the graphics controller can be done with minimal functions provided by the microcontroller. This is a good option for applications where the microcontroller has many peripheral functions and GPU is limited.
The pixel clock that is required for the RGB interface is generated by an internal phase locked loop by the graphic controller. This clock generation is done through software commands during the initialization sequence.
The Arduino Due and the graphics controller are connected by the following interface and power pins. The interface used is a 16-bit 8080 parallel connection, operating at 3.3V. These pins are the minimum requirements for interfacing the GFX card with the microcontroller. The GFX chip offers additional features such as tearing and backlight control.
For this application, the backlight features of the GFX card are not used and the backlight of the display is powered externally from the logic devices. The backlight should be powered by a constant current source which can be implemented by a variety of backlight LED driver chips.
The connection between the GFX chip and the microcontroller is described in the diagram below. These connections represent the minimum digital interface pin requirements to interface and initialize the GFX card for the display.
The graphics controller offers optional interfaces that can be used to interface with the microcontroller. The interface used in this application is the 8080 parallel interface. The other option is to use the 6800 parallel interface. The interface pins have multiple functions that are named according to which interface is being used. Below is a review of the interface pin names for the 8080 and 6800 interfaces.
3. Software Initialization
The display in this application does not require SPI initialization. The only device that needs to be initialized is the graphics controller to set the parameters that control the signals to the display. After the graphics controller is initialized, the microcontroller can store display data off chip and in the SRAM provided by the GFX chip.
The graphics controller should be initialized with the following parameters. These commands and values set the resolution, the interface, and the color depth of the display. The color used in this example is the RGB 888 format which is integrated into the hardware and software selection.
The first set of commands to initialize the graphics controller are to setup and enable the clock used for the RGB interface. This is determined by the oscillator crystal on the microcontroller and the resolution of the display. The oscillator from the microcontroller is input into the graphics controllers PLL which can boost the clock to the desired frequency.
The command to set the PLL and enable the clock is reviewed below.
write_command(0xE2); //PLL multiplier, set PLL clock to 120M
write_data(0x1E); //N=0x36 for 6.5M, 0x23 for 10M crystal
write_data(0x02);
write_data(0x54);
write_command(0xE0); // PLL enable
write_data(0x01);
delay(10);
write_command(0xE6);
write_data(0x03);
write_data(0xFF);
write_data(0xF5);
The other aspect to define is the LCD resolution and pixel format. This is set by the following:
write_command(0xB0);
write_data(0x24); //24-bit
write_data(0x00);
write_data(0x03); //1024 pixels horizontal
write_data(0xFF);
write_data(0x00);
write_data(0x63); //100 pixels vertical
write_data(0x00);
write_data(0x00);
write_command(0xB4); // Horizontal timings
write_data(0x04); //Horizontal Total
write_data(0x09);
write_data(0x00); //Horizontal back porch
write_data(0x00);
write_data(0x0a); //Horizontal Pulse width
write_data(0x00);
write_data(0x00); //Horizontal front porch
write_data(0x00);
write_command(0xB4); // Vertical timings
write_data(0x04); //Vertical Total
write_data(0x09);
write_data(0x00); //Vertical back porch
write_data(0x00);
write_data(0x0a); //Vertical pulse width
write_data(0x00);
write_data(0x00); //Vertical front porch
write_data(0x00);
The last section to initialize are the GPIO pins, the rotation of the display, the pixel interface and the column and page addresses.
write_command(0xBA); // GPIO output
write_data(0x0F);
write_command(0xB8);
write_data(0x0F);
write_data(0x01);
write_command(0x36); // MADCTL
write_data(0x01);
write_command(0xF0); // 888 pixel data
write_data(0x03);
write_command(0x2A); // Column address set
write_data(0x00);
write_data(0x00);
write_data(0x03);
write_data(0xff);
write_command(0x2B); // Page address set
write_data(0x00);
write_data(0x00);
write_data(0x00);
write_data(0x63);
write_command(0x29); // Display on
This display can be used for a variety of applications that pertain to the unique bar shape of the TFT. The high resolution of 1024×100 pixels provides quality graphics for any display image. The RGB 24-bit interface provides the speed for high level graphics that can support a number of display applications.
DISCLAIMER
Buyers and others who are developing systems that incorporate FocusLCDs products (collectively, “Designers”) understand and agree that Designers remain responsible for using their independent analysis, evaluation and judgment in designing their applications and that Designers have full and exclusive responsibility to assure the safety of Designers’ applications and compliance of their applications (and of all FocusLCDs products used in or for Designers’ applications) with all applicable regulations, laws and other applicable requirements.
Designer represents that, with respect to their applications, Designer has all the necessary expertise to create and implement safeguards that:
(1) anticipate dangerous consequences of failures
(2) monitor failures and their consequences, and
(3) lessen the likelihood of failures that might cause harm and take appropriate actions.
Designer agrees that prior to using or distributing any applications that include FocusLCDs products, Designer will thoroughly test such applications and the functionality of such FocusLCDs products as used in such applications.