Hi
The LCD controller is one of the Bus master in LPC1857 and has the highest priority to access EMC port.
If there are bus masters with same priority, LPC1857 uses round Robin bus arbitration method. In this controller we can not prioritize bus master’s access to a slave port.
Please see below the fix priority level from high to low to access EMC port.
1. LCD controller ->Highest
2. M3 S-bus
3. M3 I/D-bus
4. Other bus masters ->Lowest
Therefore, if LCD controller and other bus request simultaneous access, LCD controller will be granted access. Although the LCD controller has highest priority, however it can still be stalled if another lower priority access has started that has a long burst length .
To avoid starvation, short burst size should be used to tune overall performance.For example if you are using GPDMA, an another bus master on this multilayer bus to access EMC port, I would like to have a smaller bust size to avoid any starvation.
To avoid data underflow the LCD controller also has a large FIFO (16x64 bit). So the LCD FIFO needs to buffer enough data to keep the LCD refreshed - smoothly - even when the system is under load. In some cases, system events can occur that cause the LCD FIFO fill to be delayed.
For example, the CPU might be doing a burst read from SDRAM (memcpy, or maybe an LDM operation with a stack pop), but this may get stalled due to a SDRAM refresh cycle. If multiple stalls like this happen, it can cause delays to the LCD refresh cycle and the LCD FIFO will eventually underflow and you may get a display glitch/shaking. In general if you are using 16 bits SDRAM data interface with multiple bus masters, there are more chances of shaking than with 32 bit SDRAM data interface. Please find below link which has bandwidth calculator
http://www.lpcware.com/content/nxpfile/lcd-bandwidth-calculator-lpc18xx-and-lpc43xx
This calculator is a good tool to check loading on the EMC bus.
Wish it helps.
Have a great day,
Ma Hui
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------