LPC1788, MATRIXARB Register not working properly

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

LPC1788, MATRIXARB Register not working properly

797 次查看
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by slavka012 on Fri Mar 07 14:37:41 MST 2014
Subject: LPC1788, MATRIXARB register
Description: Hello, I have a project with LCD, SDRAM, FLASH. Untill now all graphics was stored in the on-chip FLASH and everything was working fine. LCD Frame buffer is located in off-chip SDRAM. Now I moved the data to external FLASH chip. Immediately I started getting screen flickering (there is always something drawn on the screen). If I stop refreshing the screen, flickering stops.

So I've read a bit and found this register, MATRIXARB. The datasheet suggests to write there
0x00000C09 in order to give priority to the LCD. So I tried that, and pretty soon the system hangs.

I tried to write there the default value (0x0000000D), same result.
Then I tried reading the register: 0x00010004. I've read it both with printfs to serial port, and in a debugger stopped at ResetISR, that is before any code executed.

So not only this value is different from the specd in datasheet, it contains 1 in bit 16, that according to DS should always be zero:

Table 27. Matrix Arbitration register (MATRIXARB- 0x400F C188) bit description
11:10 PRI_LCD LCD DMA priority. 0
13:12 PRI_USB USB DMA priority. 0
15:14 - Reserved. Read value is undefined, only zero should be written. NA
16 ROM_LAT ROM latency select. Should always be 0. 0
31:17 - Reserved. Read value is undefined, only zero should be written. NA

I would appreciate if someone clarifies this to me.

I tried writing there also 0x0001C09, that does not seem to have any effect.

Thanks!
标签 (1)
0 项奖励
回复
1 回复

740 次查看
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by embd02161991 on Mon Mar 10 15:40:00 MST 2014
Hi ,

The ROM_LAT bit in the MATRIXARB register should always be 1 . It should not be 0. You are right. The user manual will be updated shortly.

Since you find no flickering on the LCD when the code is run from internal flash  and the flickering occurs only when it is run from external memory, the reason could be that the LCD bus bandwidth could be low .There is a LCD Bandwidth calculator for LPC177x_8x .

http://www.lpcware.com/content/nxpfile/lcd-bus-bandwidth-calculator-lpc177x8x

Please refer to the calculator for the required bus bandwidth for various LCD resolutions and refresh rates.



Thanks,

NXP Tehnical Support
0 项奖励
回复