What is LCD Interface
For more information on LCDs, please see our LCD Basics tutorial page.
As any display device, the grid of pixels in a liquid crystal display communicates with a microcontroller (MCU) or microprocessor (MPU) that directs the brightness that each pixel is to emit, in turn creating the necessary color of the pixel for the overall LCD screen. Different from OLED displays, LCD modules use the pixels as a gateway between the backlight and the surface of the display, so the MCU/MPU focuses on the passage rather than the generation of different light levels.
The method of communication between the MCU/MPU and a segment of the LCD display is what is called an interface. In terms of goal, all LCD module interfacing methods serve the same purpose: acting as a data bus and transferring signals between the MCU/MPU and the display. But, the intricacies of how each work can vary drastically.
LCD Driving Waveform
In the integrated circuits (IC) of the LCD, an alternating current (AC) must be used. If a direct current (DC) is used, the liquid crystal layer may eventually fail to be affected by the electric field, rendering the device broken. An AC will change the directional flow and sometimes the magnitude of the current periodically in a sinusoidal manner, whereas the DC’s electricity will only flow in a single direction. For a visual representation of these two currents, below is a graph of the time (x) versus the current/voltage (y), where the x-axis represents zero current/voltage.
The sinusoidal shape of the AC graph demonstrates the waveform of LCD driving. However, waveforms can also have square forms, as in the following AC graph.
In devices like LCDs, the VDD is the power supply pin connected to the drain terminal on the LCD’s transistor, and the VSS is the respective source power supply data pin. With this AC driving waveform, there can be and is an overall zero VDD potential, protecting the liquid crystal material from damage.
LCD Controller vs Driver
The LCD controller is a type of small MPU computer that is able to translate the software code of the user into usable information for the LCD, allowing the display to then show the correct graphics, characters, or images. Without such a device, the thousands of pixels on a display would have to be communicated with individually, making a large and unified display difficult to produce. The controller stores the received data in random-access memory (RAM) where it can be retrieved to be read or written in a set amount of time regardless of location in the RAM. After the data is converted into a serial or parallel interface, it is then transferred to the LCD driver.
The LCD driver is a semiconductor chip that aids in the powering and controlling of LCDs. Taking in the converted interface from the controller, the driver will send a signal to direct the desired voltage, current, and timing to then display the proper image. There are two kinds of drivers: common and segment. Common drivers send signals to create rows in the display, and segment drivers control the columns to create the character of the display. Drivers then control the data pins that load the data into a specific segment of the display based on the command.
There are also driver/controller ICs that can complete the actions of the separated parts, but can also directly receive information from the MPU and send those commands to the common and segment drivers. This type of IC is most commonly found in graphic displays like LCDs.
Parallel vs Serial Interface
In the process of sending data through a network, two manners of doing so are through a parallel interface and a serial one. They both complete the job, but have different methods and thus different advantages. In the transfer of data, the parallel interface will send data in multiple bits in one direction. Serial interface sends data in one direction as well, but in a single string of bits. For example, if a word of five bits in length is sent, the parallel interface will transfer all five bits in five corresponding channels that each transfer the bit to be received simultaneously with the others in a single byte like in the initial signal. The serial interface, on the other hand, will send each letter in order, one at a time. After all the bits are sent, they will be reassembled into one byte. For a diagram reference, see below.
The parallel interface uses what is called spatial location to encode the bits (by the various channels). Serial interface uses temporal location on the single channel, or the time between each signaled bit.
With this process explained, the parallel interface is much faster, and can send a maximum of x number of bits through x channels in the time a serial interface takes to send one bit through the single channel. However, the serial interface is much steadier, allowing for clearer signals. The parallel interface can become overwhelmed with the number of connections (channels) used, and this can distort the transmission, making it less viable for long distance signals compared to the serial interface.
MCU / Parallel Interface
The MCU or CPU interface is useful in its ability to read and write data into the device’s memory or internal frame bugger, so if the user wants images to be stored for later usage, this interface is appropriate. In the MCU parallel interface for LCDs, data signals are sent using a data bus through either 8-bit, 9-bit, 16-bit, or 18-bit data channels. This is one type of LCD controller signal; the other is the control signal which defines the operation, reading or writing.
This type of interface is overall simple, but it required display RAM for its storage behavior. It can be used in character LCDs (using alphabet and numbers in the display only), graphic LCDs, and very small (less than 3.5 inches) TFT LCDs. All the interfaces have Vcc to provide power, gnd for grounding. The most famous character LCD controller, Hitachi, HD4470 also has register select, 4 bit mode or 8 bit mode, built in ASCII, cursor position, enable pins, data register etc. but it doesn’t have analog to digital converter or voltage booster(DC-DC converter) as most graphic LCD controllers have. If higher voltage needed, it has to be external or add DC-DC converter on board.
Serial interface, as described prior, is a single channel of signals sent one by one to the receiving part of the device. It is called a serial interface because it sends a series of voltage pulses to transmit a message using temporal location. Binary numbers 1 and 0 are used in this communication. A 1 is signaled by a high logical voltage and a 0 by a low logical voltage.
With the complicated nature of serial interface, protocol is needed to create an agreed upon behavior. Things like when the receiver starts or stops looking for transmitted information and the bit order are addressed in the protocol. Two approaches to this protocol are the synchronous serial interfaces (like serial peripheral interface, or SPI) and the asynchronous serial interfaces (like serial communications interface, or SCI). SCI is most often used between two computers, each with internal clocks, and SPI is used when the device that receives transmitted data is without that internal clock. The SPI will be discussed more in the following section.
Compared to parallel interface, the serial interface hardware is cheaper due to the lower number of connectors within the device.
The SPI is a synchronous data bus that has different lines for the data and a clock to, hence the name, perfectly synchronize the two sides of the data transmission. The clock signal (SCLK) oscillates, telling us when to sample the bits on the data line.
If you take a look at the visual, every time there is a change from low logical voltage to high (rising) or high to low (falling), it is called an edge. At every clock edge, a bit is sampled. Whether it is the rising or falling edge will depend on the device and can be determined using the specification on the datasheet.
Because the SCLK is only generated from one side (the controller side, or master), this poses a challenge when data is to be sent from the peripheral (where the SCLK travels to, or slave) in the direction of the controller. Typically, signals are sent from master to slave (master output, slave input; MOSI). But when sent in reverse (master input, slave output; MISO), the same pathway cannot be used and the clock will not be aligned with the signal. In order to address this, the SCLK will send a prearranged clock cycle that will associate with the returning signal that travels on a third data line.
The last component of the SPI interface is the slave select (SS), also known as the chip select. The SS functions in waking the peripheral to send or receive data. Because SPI can support multiple peripherals, the SS can also wake specific peripherals rather than all. With another line between the master and slave, the SS rests high, disconnecting the peripheral from the SPI bus, and when time comes, the SS will be brought low to activate the peripheral. There is one SS per slave, and when software initializes each SS. To prevent responses from the uninitialized slaves, resistors are used as switches to interrupt the signal until intended to reach that slave.
The SPI can be used in digit, character, graphic, and small TFT LCDs and allows for cheaper hardware, faster speeds than the SCI, and simple interfacing. The SPI is an interface that can be used in a specific type of resistor called the digital potentiometer (or digipot) that interacts with the MCU/MPU’s signals. This interaction, if the digipot is of the right electrical resistance (measured in a unit called Ohms), can effectively adjust the bias level (the contrast) of the LCD. These digipots are controlled by Arduino, an open-source electronic prototyping platform.
Inter-Integrated Circuit (I²C)
Another synchronous serial interface is the inter-integrated circuit, abbreviated I2C. An interface similar to the SPI is used, with the master, slave, and clock functions. Building off the SPI, the I2C adds additional features. Not only can a single master control multiple slaves (the SPI concept), multiple masters can control single or multiple slaves, and only two lines are needed rather than three: one to transmit the SCLK and one to transmit MOSI data signals and MISO signals. The I2C also uses a protocol with start and stop conditions that signals through the switch between high and low voltages on the data signal line.
The I2C does not have the SS line like the SPI, and so selecting a slave to communicate with requires a process called addressing. There is a frame of signal sent on the data line directly after the start bit to address a specific slave. The overall master output signal still reaches every slave it is connected with, but only the slave that has a matching address to the signal will acknowledge the message. In I2C interface, there is an ACK bit that is sent if the receiving device successfully received the address or data frame from the sender. Also on the address frame is a read or write bit, dictating whether or not the master wants to send data or retrieve data from the slave. Once the ACK bit is received, the original sender will send out the data frame (most significant bit of the 8 bit sequence is sent first). ACK frames will continue to be sent to receive the next data frame.
With its well known protocol and ability to support the use of multiple slaves and multiple masters, the I2C is a useful interface. It can be used in digit, character, graphic, and small TFT LCDs. You can also find I2C interface, like the SPI, in digipots.
Mobile Industry Processor Interface (MIPI)
The mobile industry processor interface display serial interface (MIPI DSI) is named such for its focused and popular use on mobile devices, such as the smartphone and laptop. It has also begun to grow in the automotive industry, becoming used in dashboard displays and other modern displays in motor vehicles. The DSI portion characterizes this interface as high-speed in regards to data transmission between the MCU/MPU and a display module. This interface uses a serial bus and a communication protocol to display image data. It uses a high speed clock line along with at least one other data line.
The reason the MIPI DSI has grown so much in popularity is because of its ability to achieve high performance and low power modes while also remaining compatible across different devices and manufacturers.
If you would like to learn more, please visit our knowledge base.