Home
JAQForum Ver 24.01
Log In or Join  
Active Topics
Local Time 04:23 17 Jun 2024 Privacy Policy
Jump to

Notice. New forum software under development. It's going to miss a few functions and look a bit ugly for a while, but I'm working on it full time now as the old forum was too unstable. Couple days, all good. If you notice any issues, please contact me.

Forum Index : Microcontroller and PC projects : Question about the SSD1963 driver

Author Message
kiiid

Guru

Joined: 11/05/2013
Location: United Kingdom
Posts: 671
Posted: 10:48pm 16 Jun 2016
Copy link to clipboard 
Print this post


I am experimenting with a LCD panel with built-in SSD1963 from Winstar. It works fine, but the picture is shifted right. I tried with all possible SSD1963 options; with some of them the picture is more towards the left, with others more on the right side, but none of them had it in the centre. Is there anything that I can do to adjust the position?

And another question - is there any way to force the SSD1963 driver (or any other driver by extension to that) to reinitialise? I have a pin which controls the power to the LCD, but MM+ doesn't know that until it is already too late, so once I have control over the pin, it is too late as the display initialisation has already been executed, so I need to force its execution again when that is needed.





http://rittle.org

--------------
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 8648
Posted: 11:34pm 16 Jun 2016
Copy link to clipboard 
Print this post

Re the first question. What resolution is the screen? Do Winstar give any recommended initialisation parameters?

You can re-initialise using a modified loadable driver or a tailored CFunction not using the standard firmware driver. I did a modified driver for the ILI9341 for another user who had this requirement
 
kiiid

Guru

Joined: 11/05/2013
Location: United Kingdom
Posts: 671
Posted: 12:02am 17 Jun 2016
Copy link to clipboard 
Print this post

The panel is 800x480 resolution.
Fortunately Winstar have provided initialisation reference in the datasheet, but it doesn't match any of the options currently available in MM+.

I created a new structure for an option SSD1963_7W and copied the one from _7A.

Changed the two horizontal porch parameters like this:
SSD1963HorizBackPorch = 46;
SSD1963HorizFrontPorch = 210;

but it is still shifted although a bit less...


This is the original code from the datasheet of WF70QTIFGDBT0:


void Initial_SSD1963() {
Write_Command(0x01);
Delay_ms(10);
Write_Command(0xe0); //START PLL
Write_Parameter(0x01);
Delay_ms(50);
Write_Command(0xe0); //START PLL
Write_Parameter(0x03);
Delay_ms(5);
Write_Command(0xb0);
Write_Parameter(0x20);
Write_Parameter(0x80);
Write_Parameter(0x03);
Write_Parameter(0x1f);
Write_Parameter(0x01);
Write_Parameter(0xdf);
Write_Parameter(0x00);
Write_Command(0xf0);
Write_Parameter(0x03); //pixel data format, 0x03 is 16bit(565 format);0x00 is for 8-bit
//Set the MN of PLL
Write_Command(0xe2);
Write_Parameter(0x1d);
Write_Parameter(0x02);
Write_Parameter(0x54);
Write_Command(0xe6);
Write_Parameter(0x04);
Write_Parameter(0x6f);
Write_Parameter(0x47);
//Set front porch and back porch
Write_Command(0xb4);
Write_Parameter(0x04);
Write_Parameter(0x20);
Write_Parameter(0x00);
Write_Parameter(0x2e);
Write_Parameter(0xd2);
Write_Parameter(0x00);
Write_Parameter(0x00);
Write_Parameter(0x00);
Write_Command(0xb6);
Write_Parameter(0x02);
Write_Parameter(0x0d);
Write_Parameter(0x00);
Write_Parameter(0x17);
Write_Parameter(0x16);
Write_Parameter(0x00);
Write_Parameter(0x00);
Write_Command(0x2a);
Write_Parameter(0x00);
Write_Parameter(0x00);
Write_Parameter(0x03);
Write_Parameter(0x1f);
Write_Command(0x2b);
Write_Parameter(0x00);
Write_Parameter(0x00);
Write_Parameter(0x01);
Write_Parameter(0x1f);
Write_Command(0xb8);
Write_Parameter(0x0f);
Write_Parameter(0x01);
Write_Command(0xba);
Write_Parameter(0x01);
Write_Command(0x29);
Write_Command(0x2c);
}
Edited by kiiid 2016-06-18
http://rittle.org

--------------
 
kiiid

Guru

Joined: 11/05/2013
Location: United Kingdom
Posts: 671
Posted: 12:22am 17 Jun 2016
Copy link to clipboard 
Print this post

I've got it working now! This is my structure:


case SSD1963_7W: DisplayHRes = 800; // this is a 7" glass Winstar version
DisplayVRes = 480;
SSD1963HorizPulseWidth = 0;
SSD1963HorizBackPorch = 46;
SSD1963HorizFrontPorch = 210;
SSD1963VertPulseWidth = 2;
SSD1963VertBackPorch = 25;
SSD1963VertFrontPorch = 18;
SSD1963PClock1 = 0x03;
SSD1963PClock2 = 0xff;
SSD1963PClock3 = 0xff;
SSD1963Mode1 = 0x24; // 24-bit for 7" panel
SSD1963Mode2 = 0x80; // TTL mode
break;


The picture of this panel is very bright and clear.




http://rittle.org

--------------
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 8648
Posted: 12:23am 17 Jun 2016
Copy link to clipboard 
Print this post

  Quote  I've got it working now! This is my structure:


Excellent Edited by matherp 2016-06-18
 
Print this page


To reply to this topic, you need to log in.

© JAQ Software 2024