Hello,
I am trying to run the Waveshare 3.2" LCD (IL9325) panel using an stm32F429. I've managed to drive the 16bit bus along with the control lines correctly since I can read out the panels ID from the first register. I have been having a very hard time trying to get the panels drawing pictures, but I am not sure what I am doing wrong. I can go from a white screen, to a bit of a darker background after running my initialization procedure but any attempts to draw have no effect. I was hoping if someone here had any insight on what to look at for my symptoms or if they could take a look at my register settings to see if I am doing anything blatantly wrong.
Any help would be greatly appreciated. And Andy, thank you so much for your site. It has proved to be a very useful tool for learning.
I am trying to run the Waveshare 3.2" LCD (IL9325) panel using an stm32F429. I've managed to drive the 16bit bus along with the control lines correctly since I can read out the panels ID from the first register. I have been having a very hard time trying to get the panels drawing pictures, but I am not sure what I am doing wrong. I can go from a white screen, to a bit of a darker background after running my initialization procedure but any attempts to draw have no effect. I was hoping if someone here had any insight on what to look at for my symptoms or if they could take a look at my register settings to see if I am doing anything blatantly wrong.
Any help would be greatly appreciated. And Andy, thank you so much for your site. It has proved to be a very useful tool for learning.
Code Select
void IL9325Init()
{
WriteData(0x00e7,0x0010);
WriteData(0x0000, 0x0001); /* Start internal OSC. */
WriteData(0x0001, (0<<10)|(1<<8)); /* Set SS and SM bit */
WriteData(0x0002, 0x0700); /* Set 1 line inversion */
WriteData(0x0003, (1<<12)|(1<<5)|(1<<4)|(0<<3)); /* Set GRAM write direction and BGR=1. */
WriteData(0x0004, 0x0000); /* Resize register */
WriteData(0x0008, 0x0207); /* Set the back porch and front porch */
WriteData(0x0009, 0x0000); /* Set non-display area refresh cycle ISC[3:0] */
WriteData(0x000A, 0x0000); /* FMARK function */
WriteData(0x000C, 0x0001); /* RGB interface setting */
WriteData(0x000D, 0x0000); /* Frame marker Position */
WriteData(0x000F, 0x0000); /* RGB interface polarity */
/* Power On sequence -----------------------------------------------------*/
WriteData(0x0010, 0x0000); /* SAP, BT[3:0], AP, DSTB, SLP, STB */
WriteData(0x0011, 0x0007); /* DC1[2:0], DC0[2:0], VC[2:0] */
WriteData(0x0012, 0x0000); /* VREG1OUT voltage */
WriteData(0x0013, 0x0000); /* VDV[4:0] for VCOM amplitude */
delay_ms(2000); /* Dis-charge capacitor power voltage (200ms) */
WriteData(0x0010,0x0AC8); /* SAP, BT[3:0], AP, DSTB, SLP, STB */
WriteData(0x0011,0x223);//0x0227);/* DC1[2:0], DC0[2:0], VC[2:0] */
delay_ms(500); /* Delay 50 ms */
WriteData(0x0012, 0x001F);
delay_ms(500);
/* Delay 50 ms */
WriteData(0x0013, 0x1900);/* VDV[4:0] for VCOM amplitude */
WriteData(0x0029,0x003E);/* VCM[4:0] for VCOMH */
WriteData(0x002B,0x000E);/* Set Frame Rate */
delay_ms(500); /* Delay 50 ms */
WriteData(0x0020, 0x0000); /* GRAM horizontal Address */
WriteData(0x0021, 0x0000); /* GRAM Vertical Address */
delay_ms(500); /* Delay 50 ms */
/* Adjust the Gamma Curve (ILI9325)---------------------------------------*/
WriteData(0x0030,0x0007);
WriteData(0x0031,0x0707);
WriteData(0x0032,0x0006);
WriteData(0x0035,0x0704);
WriteData(0x0036,0x1f04);
WriteData(0x0037,0x0004);
WriteData(0x0038,0x0000);
WriteData(0x0039,0x0706);
WriteData(0x003c,0x0701);
WriteData(0x003d,0x000f);
delay_ms(500); /* Delay 50 ms */
/* Set GRAM area ---------------------------------------------------------*/
WriteData(0x0050, 0x0000); /* Horizontal GRAM Start Address */
WriteData(0x0051, 0x00EF); /* Horizontal GRAM End Address */
WriteData(0x0052, 0x0000); /* Vertical GRAM Start Address */
WriteData(0x0053, 0x013F); /* Vertical GRAM End Address */
WriteData(0x0060, 0xA700); /* Gate Scan Line(GS=1, scan direction is G320~G1) */
WriteData(0x0061, 0x0001); /* NDL,VLE, REV */
WriteData(0x006A, 0x0000); /* set scrolling line */
/* Partial Display Control -----------------------------------------------*/
WriteData(0x0080, 0x0000);
WriteData(0x0081, 0x0000);
WriteData(0x0082, 0x0000);
WriteData(0x0083, 0x0000);
WriteData(0x0084, 0x0000);
WriteData(0x0085, 0x0000);
/* Panel Control ---------------------------------------------------------*/
WriteData(0x0090, 0x0010);
WriteData(0x0092, 0x0600);
WriteData(0x0093, 0x0003);
WriteData(0x0095, 0x0110);
WriteData(0x0097, 0x0000);
WriteData(0x0098, 0x0000);
/* Set GRAM write direction and BGR = 1 */
/* I/D=00 (Horizontal : increment, Vertical : decrement) */
/* AM=1 (address is updated in vertical writing direction) */
//WriteData(0x0003, 0x1018);
WriteData(0x0007, 0x0133); /* 262K color and display ON */
}