English
Language : 

MB87P2020 Datasheet, PDF (55/356 Pages) Fujitsu Component Limited. – Colour LCD/CRT/TV Controller
User Logic Bus
plication has to prepare the data first and can not generate them ’on the fly’. The ULB DMA controller is
described in detail in chapter 1.7.
Command dependent flags and debug registers are listed and described in chapter 1.5.5.
1.5.2 Command execution and programming
Figure 1-8 shows a flow chart of display controller command execution and a C-example of a display con-
troller command (GetPixel). For this example the C-API for Lavender and Jasmine is used. It is described
in a separate manual.
FLNOM_CWEN
Set command
dependent registers
Write Command 0
FLNOM_IF*
Write Data to
Input FIFO
FLNOM_CWEN
Write Command 1 *)
(Read commands only)
FLNOM_OF*
Read data from
Output FIFO
(Read commands only)
// ----------------------------------------
// Write command to display controller and
// set command registers for GetPixel
// (no registers required)
// ----------------------------------------
GDC_CMD_GtPx();
// ----------------------------------------
// write data to input FIFO
// ----------------------------------------
for (jj=0;jj<pkg_size;jj++) {
GDC_FIFO_INP((dword*)BuildIfData(x,y,layer),1,0);
}
// ----------------------------------------
// send NoOp command to force FIFO flush
// ----------------------------------------
GDC_CMD_NOP();
// ----------------------------------------
// wait for data in OF
// ----------------------------------------
G0OFUL_UL = pkg_size;
while (G0FLNOM_OFH==0);
// read data from output FIFO
for (jj=0;jj<pkg_size;jj++) {
data[amount++] = G0OFIFO;
}
*) This command flushes input FIFO.
Usually NoOp can be used .
Figure 1-8: Command flow for display controller commands with an example for GetPixel
Before a new command can be written to command register the flag FLNOM_CWEN should be checked.
Therefore the flag register can simply be polled or an interrupt can be generated as result from the rising
edge of this flag. See chapter 1.6 for more details about flag and interrupt handling.
Afterwards command buffered registers can be written as well as the new command code itself. Note that
at this time the previous command may be still running (see also chapter 1.5.3 for a detailed discussion) and
also the previously buffered register contents is used.
Command buffered registers contain settings for a certain command (e.g. line colour for the DwLine com-
mand) which have to be synchronized to command change. The time of command change is determined by
hardware so that it is necessary to store values for next command in a separate register (e.g. new line colour
for next DwLine command right after the first one).
A list of command buffered registers can be found in the command description located in appendix. Also a
detailed register description is placed there.
The next step within command execution is to send data to input FIFO. The application has to take care that
no FIFO overrun occurs. Therefore it should watch the FIFO flags either by polling or via interrupt (see also
chapter 1.5.1). An application can compute input data with its own speed, the display controller waits for
new data if input FIFO runs empty.
Functional description
Page 55