7-6 Intel® PXA255 Processor Developer’s Manual
LCD Controller
1, 2, 4, or 8-bits, the FIFO entries are unpacked and used to index the palette RAM to read the color
value. In 16-bit passive mode, the entries bypass the palette and go directly to the TMED dither
logic. In 16-bit active mode, the pixels are sent directly to the pins.
7.3.2 Lookup Palette
The internal palette RAM holds up to 256 16-bit color values. Color palette RAM entries are 16
bits wide, with 5 bits of red, 6 bits of green, and 5 bits of blue. Monochrome entries are 8 bits wide.
Encoded pixel values from the input FIFO are used as an address to index and select individual
palette locations. 1-bit pixel encodings address the first 2 entries, 2-bit pixel encodings address the
first 4 entries, 4-bit pixel encodings address 16 locations, and 8-bit pixel encodings select any of
the 256 palette entries. In 16-bit pixel mode, the palette RAM is not used and must not be loaded.
7.3.3 Temporal Modulated Energy Distribution (TMED) Dithering
For passive displays, entries selected from the lookup palette (or directly from memory for 16-bit
pixels) are sent to the TMED dithering algorithm. TMED is a form of temporal dithering, also
know as frame rate control. The algorithm determines whether a pixel is on or off.
Understanding how the TMED dithering algorithm works is not necessary to use the processor
LCD controller. However, certain characteristics of the algorithm can be controlled through the use
of the TMEDRGB Seed Register (Table 7-14) and the TMED Control Register (TCR, Table 7-15).
If these registers are to be modified from their default values, refer to this section. Figure 7-2
illustrates the TMED concept.
This dithering concept is applied separately to each color displayed. Each color has zeros added to
make the data for each color 8 bits. If a monochrome display is used, only a single matrix (blue) is
used.
The processor LCD Controller implements the following algorithm, which is used by TMED to
determine an upper and lower boundary:
LowerBoundary = [(PixelValue * FrameNumber) mod 256] + Offset
UpperBoundary = [(PixelValue + LowerBoundary) mod 256]
A 16x16 matrix uses the row (line), column (pixel number), and frame number (which wraps back
to 0 from 255) to select a matrix value. When the matrix value is between the lower and upper
boundaries from the algorithm, the LCD controller sends a “1” to the LCD panel. The boundaries
created by the algorithm are circular, wrapping from 255 back to 0, as shown in Figure 7-3.
Figure 7-2. Temporal Dithering Concept - Single Color
EYE
Color
Code
Temporal
Modulator
Low
Pass
Filter
(Panel)
1 bit
8 bits
Y
X
position
position
Time
(frame #)