English
Language : 

MB87P2020 Datasheet, PDF (350/356 Pages) Fujitsu Component Limited. – Colour LCD/CRT/TV Controller
MB87J2120, MB87P2020-A Hardware Manual
Table 2-15 gives an overview and a classification about the described problem.
Table 2-15: Pixel read back commands
Subject
Description
Classification
Effects without
workaround
Solution/Workaround
Concerned devices
Testcase
Description
Internal data flow blocks if REQCNT+1 data words does not fit into output
FIFO. Therefore the full output FIFO size is not useable in some cases.
HW restriction
If an application collects data in output FIFO, for some package sizes last
transfer to output FIFO is not started even if input FIFO flush has been
forced by a new command.
Ensure that free space in output FIFO is always greater REQCNT.
This can be achieved if allowed package size is calculated according to
(27). If REQCNT stays constant for an application package size can be cal-
culated offline.
MB87J2120 (Lavender)
MB87P2020 (Jasmine)
MB87P2020-A (Jasmine redesign)
EMDC: PP.9
A possibility to utilize the full output FIFO size is to ensure that always REQCNT+1 words can be placed
in output FIFO. This limits the maximal package size (number of words to transfer for one output FIFO fill)
for a given REQCNT. The maximal package size can be calculated according to (1).
pkg_size ≤ trunc( ----F----I--F---O----S----I--Z---E------ ) × (REQCNT + 1)
(27)
REQCNT + 1
The function ’trunc’ in (27) means that only the natural part of this fraction should be taken for calcula-
tion. The parameter ’FIFOSIZE’ is the size of output FIFO. Note that ’pkg_size’ is the maximal pack-
age size, sizes smaller than the calculated size can be used.
Figure 2-2 shows an example on how to calculate the correct package size based on a given REQCNT and
to read back a block of data. In order to keep the example simple flag polling for FLNOM_OFH is used but
it is also possible to generate an interrupt with this flag or to set up OFDMA_UL with the package size for
DMA transfer.
// ----------------------------------------
// Calculate optimal package size for
// a given Request-Count
// ----------------------------------------
reqcnt = G0REQCNT;
// Set FIFO size
if (G0CLKPDR_ID==0) { // Lavender
of_size = 128;
} else {
// Jasmine
of_size = 64;
}
pkg_size = ((byte)(of_size/(reqcnt+1)))*(reqcnt+1);
// ----------------------------------------
// 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++) {
Page 350