We have an 800x600 LCD connected through our own adapter to DC5 of the DM355 EVM. File logicpd_encoder.c has been modified to set the appropriate values:
if_type: PRGB
Interlaced: 0
xres: 800
yres: 600
fps: 60
leftmarg: 0
rghtmarg: 256
upmarg: 0
lowmarg: 28
hsyn len: 9
vsyn len: 9
flags: 0= hsyn -ve, vsyn -ve
If I add a line into function enableDigitalOutput() of file davinci_platform.c, that sets the VDPRO CBMD bit to enable the colour bars test, I get excellent bars across the whole display in the correct order (left to right - white, yellow, cyan, green, magenta, red, blue, black). The Dot clock, LCD_OE, HSYNC, VSYNC, C and Y pins scope out good.
Removing this line of test code so as to view normal video, I get a single green rectangle based at the top right of the screen, extending about 3/4 of the way right and down.
Scoping the pins, the clock, LCD_OE, H and V syncs look good. However:
VDOUT_C5 is a 25.6KHz wave with a high period of 23.6uSec
VDOUT_Y2 is a 25.6KHz wave with a high period of 29.6uSec
No other Y or C pin shows any activity at all.
I expected all the lines to be wiggling as long as there was something to display, and didn't expect C5 and Y2 to be outputting regular waves.
I'm guessing the green rectangle is caused by the remaining activity on the C5 and Y2 pins, as this represents a Green data line.
I modified davinci_platform.c to log all writes to the VPBE registers, the resulting register values are (a=address, d=hexdata):
Reg a:0x01C72784 d:0000 // PCR …… THOUGH THIS ADDRESS IS A REGISTER IN THE DM644X!!
Reg a:0x01C70518 d:057C // DRGBX1
Reg a:0x01C70430 d:0000 // HSDLY
Reg a:0x01C70434 d:0000 // VSDLY
Reg a:0x01C70528 d:0000 // VSTARTA
Reg a:0x01C4002C d:E21A6B6 // DM355_VDAC_CONFIG
Reg a:0x01C70438 d:0000 // YCCCTL
Reg a:0x01C704F4 d:0000 // DACSEL
Reg a:0x01C70408 d:0100 // VDPRO // has a bit set because we have colour bars test on
Reg a:0x01C40044 d:0018 // SYS_VPSS_CLKCTL
Reg a:0x01C7052C d:0000 // OSDCLK0
Reg a:0x01C70530 d:0001 // OSDCLK1
Reg a:0x01C704DC d:0000 // CBVS
Reg a:0x01C70540 d:0011 // CLKCTL
Reg a:0x01C70240 d:0000 // OSD_BASEPX
Reg a:0x01C70244 d:0000 // OSD_BASEPY
Reg a:0x01C70404 d:2000 // VIDCTL
Reg a:0x01C70464 d:0800 // DCLKCTL
Reg a:0x01C70468 d:0001 // DCLKPTN0
Reg a:0x01C70410 d:0009 // HSPLS
Reg a:0x01C7041C d:0000 // HSTART
Reg a:0x01C70420 d:0320 // HVALID
Reg a:0x01C70418 d:041F // HINT
Reg a:0x01C70414 d:0009 // VSPLS
Reg a:0x01C70428 d:0000 // VSTART
Reg a:0x01C7042C d:0258 // VVALID
Reg a:0x01C70424 d:0274 // VINT
Reg a:0x01C7040C d:000F // SYNCCTL
Reg a:0x01C70400 d:2011 // VMOD
Reg a:0x01C7044C d:0001 // LCDOUT
Could you tell me please, do these registers look OK?
Also, this is running on the DVEVM, on which at the end of bootup the DVEVM displays the usual bitmap graphic of the 'remote control' as a prompt to the user for running the video demonstrations. This shows OK as composite (ie. without switching to the LCD). Would we expect this graphic to be shown OK on the LCD when LCD is selected, without any other changes? What we are doing is selecting the LCD in bootargs, and expecting the LCD to show the 'remote control' graphic at the end of bootup.
Many thanks.