Umm...
This is a panel with LCD glass driver (shift register drivers)
only. For 640x480, the data rate is:
640(H)*480(V)*50(Refresh rate)=15,360,000
You need to clock data in at 15MHz clock rate for non-
multiplexed data lines (Color input lines).
Question: Does the LPC2103 has enough speed??
You have to refresh LCD at min 50Hz as the glass panel
normally keep toggling it's substrate voltage (every VSync).
For testing purpose, May be you can try with...
(light only 320x240 of the panel, for quick testing)
- HSync is normally tied to "latch clock" of the shift register
driver => shift in 320 bits/data and clock it once
- VSync is normally tied to the line decoders and clear control of
line counter. Try Refresh 240 lines first
=> Toggles every 240 HSync pulses.
Hope it helps. LPC2103 do not have enough power, neither enough
RAM/ROM size to drive the 640x480 LCD directly...
Good luck...
Regards
--- In lpc2000@yahoogroups.com, "thal_munki" <octech@...> wrote:
>
> I am attempting to link an ARM microcontroller (LPC2103) and a
color
> TFT LCD screen (LP104V2 , 640x480 , TTL interface). The screen's
> datasheet is found here:
www.larwe.com/technical/datasheets/lp104v2-w.
> pdf
> The code I'm using to run the screen is shown below
>
>
> Code:
>
>
> #include <targets/LPC210x.h>
>
> //-----------------------------------------------------------------
---
> ------
> long pixel_number=0; //Horizontal position of scan
> long row_number=0; //Verical position of scan
> long delay_variable=0;
> #define DCLK 0x00000004 //P0.2
> #define HSYNC 0x00000008 //P0.3
> #define VSYNC 0x00000010 //P0.4
> #define DTMG 0x00000020 //P0.5
> #define DATA 0x00000040 //P0.6 (This is blue data only)
> #define button 0x00008000 //P0.15
> //-----------------------------------------------------------------
---
> ------
>
>
> static void
> ledInit()
> {
> IODIR |= 0x04000000;
> IOSET = 0x04000000;
> }
>
> static void
> ledOn(void)
> {
> IOCLR = 0x04000000;
> }
>
> static void
> ledOff(void)
> {
> IOSET = 0x04000000;
> }
>
> void
> delay(int d)
> {
> for(; d; --d);
> }
> //-----------------------------------------------------------------
---
>
> void LCD_config(void){ //Configure GPIO for LP104v2
>
> IODIR=0xFF; //P0.0 : P0.7 set to outputs
> IOCLR=0x00; //P0.0 : P0.7 LOW
> pixel_number=0;
> row_number=0;
> IOSET=HSYNC; //H sync high
> IOSET=VSYNC; //V sync high
> IOSET=DATA; //Data high
> }
>
> void LCD_page(void){ //Scan a page into LP104v2
> IOCLR=VSYNC; //Lower V sync
> for(delay_variable=0; delay_variable<3397; delay_variable++);
> //64uS delay
> IOSET=VSYNC; //V sync high
> for(delay_variable=0; delay_variable<554347;
delay_variable++);
> //1.02mS delay
> do{
> IOCLR=HSYNC; //Lower H sync
> for(delay_variable=0; delay_variable<200;
delay_variable++);
> //3.77uS delay
> IOSET=HSYNC; //H sync high
> for(delay_variable=0; delay_variable<100;
delay_variable++);
> //1.89uS delay
> IOSET=DTMG; //DTMG high
> do{
> IOSET=DCLK; //Data clock high
>
> IOCLR=DCLK; //Data clock low
> pixel_number++; //Increment pixel count
> } while (pixel_number<639);
> pixel_number=0;
> for(delay_variable=0; delay_variable<49;
delay_variable++);
> //0.94uS delay
> row_number++; //Increment line number
> } while (row_number<478);
> for(delay_variable=0; delay_variable<190217; delay_variable);
> //0.35mS delay
> row_number=0; //Reset line counter
> }
>
>
>
> //-----------------------------------------------------------------
---
> ------
> int
> main(void)
> {
>
> MAMCR = 2;
> ledInit();
> ledOn();
> delay(100000);
> ledOff();
> delay(100000);
> LCD_config();
> while (1)
> {
> LCD_page();
> }
> return 0;
> }
>
>
>
>
> I attached the data line to the Blue LSB on the LCD screen
> (Theoretically this will produce a dark blue when high). The only
> problem is that this is not happening. Nothing happens. I know the
ARM
> is running and the startup code is correct because it flashes the
> status LED as stated in the code, and I know the LCD is functional
> because for a fraction of a second it goes dark (this is not a
result
> of the ARM, it happens whenever power is applied to the screen.
Where
> have I gone wrong? help, anyone?
>Message
Re: code problems when connecting ARMs and TFT LCD screens
2006-03-30 by unity0724
Attachments
- No local attachments were found for this message.