سلام
5 تا lcd4.3 اینچ دارم . 2 تاش از اون برد قرمز ها هست که قبلا فروشگاه داشت و 3تاش از برد سبز ها هستند که از همین فروشگاه خریدمچند تا مشکل باهاشون دارم
قبلا که با GPIO درایوشون میکردم بدون مشکل کار میکردند فقط سرعت پایین بود حالا که از مد FSMC استفاده میکنم سرعت عالی شده ولی برد قرمز ها با حد اکثر سرعت کار نمیکنند و نمایشگر برفکی میشه ولی برد سبز ها نه
برد قرمز با این کد درست جواب میده ولی سرعت پایین
ولی برد سبز ها با این کد با سرعت بالا کار میکنه
البته چون من 23 تا قسمت مختلف دارم که توی هر صفحه باید یه کاری انجام بشه بعد از یک مدت که از یک صفحه به صفحه بعدی میرم مربعی که میکشه توی دفعات زیاد خط دار میشه ؟؟؟ مثل این میمونه که
چند تا پیکسل نتونسته پر کنه
مورد بعد که واقعا وقت منو گرفته و نتونستم بر طرفش کنم اینه که وسط کار SSD ظاهرا ریست میشه ؟؟؟صفحه شروع میکنه از کناره ها سفید شدن تا کامل صفحه میگیره و چون میکرو نمیتونه بفهمه که نمایشگر
هنگ کرده به کارش ادامه میده . معلوم هم نیست که کی این اتفاق میافته . تایمینگ ها هم خیلی بالا بردم که سرعت به اندازه GPIO ها بشه ولی باز این اتفاق میافته .
توی شبیه سازی هم کد ها درست ارسال میشه .کسی این مشکل با مد FSMC داشته ؟؟؟
این هم کد کانفیگ SSD





آخرش اینجوری میشه
5 تا lcd4.3 اینچ دارم . 2 تاش از اون برد قرمز ها هست که قبلا فروشگاه داشت و 3تاش از برد سبز ها هستند که از همین فروشگاه خریدمچند تا مشکل باهاشون دارم
قبلا که با GPIO درایوشون میکردم بدون مشکل کار میکردند فقط سرعت پایین بود حالا که از مد FSMC استفاده میکنم سرعت عالی شده ولی برد قرمز ها با حد اکثر سرعت کار نمیکنند و نمایشگر برفکی میشه ولی برد سبز ها نه
برد قرمز با این کد درست جواب میده ولی سرعت پایین
Timing.AddressSetupTime = 4;
Timing.AddressHoldTime = 2;
[COLOR=#ff0000]Timing.DataSetupTime = 40; [/COLOR]
Timing.BusTurnAroundDuration = 125;
Timing.CLKDivision = 16;
Timing.DataLatency = 17;
Timing.AccessMode = FSMC_ACCESS_MODE_A;
ولی برد سبز ها با این کد با سرعت بالا کار میکنه
Timing.AddressSetupTime = 4;
Timing.AddressHoldTime = 2;
[COLOR=#ff0000] Timing.DataSetupTime = 2; [/COLOR]
Timing.BusTurnAroundDuration = 125;
Timing.CLKDivision = 16;
Timing.DataLatency = 17;
Timing.AccessMode = FSMC_ACCESS_MODE_A;
البته چون من 23 تا قسمت مختلف دارم که توی هر صفحه باید یه کاری انجام بشه بعد از یک مدت که از یک صفحه به صفحه بعدی میرم مربعی که میکشه توی دفعات زیاد خط دار میشه ؟؟؟ مثل این میمونه که
چند تا پیکسل نتونسته پر کنه
مورد بعد که واقعا وقت منو گرفته و نتونستم بر طرفش کنم اینه که وسط کار SSD ظاهرا ریست میشه ؟؟؟صفحه شروع میکنه از کناره ها سفید شدن تا کامل صفحه میگیره و چون میکرو نمیتونه بفهمه که نمایشگر
هنگ کرده به کارش ادامه میده . معلوم هم نیست که کی این اتفاق میافته . تایمینگ ها هم خیلی بالا بردم که سرعت به اندازه GPIO ها بشه ولی باز این اتفاق میافته .
توی شبیه سازی هم کد ها درست ارسال میشه .کسی این مشکل با مد FSMC داشته ؟؟؟
این هم کد کانفیگ SSD
LCD_WriteCom(0x00E2);
LCD_WriteRAM(0x0023);
// Set PLL with OSC = 10MHz (hardware)
// Multiplier N = 35, VCO (>250MHz)= OSC*(N+1), VCO = 360MHz
LCD_WriteRAM(0x0001);
// Divider M = 2, PLL = 360/(M+1) = 120MHz
LCD_WriteRAM(0x0004);
// Validate M and N values
SSD1963_WriteCommand(SSD1963_SET_PLL_MN);
SSD1963_WriteData(0x1D); // PLLclk = REFclk * 30 (300MHz)
SSD1963_WriteData(0x02); // SYSclk = PLLclk / 3 (100MHz)
SSD1963_WriteData(0x54); // dummy
TimeDelay(1);
LCD_WriteCom(0x00E0); // PLL enable
LCD_WriteRAM(0x0001);
TimeDelay(1);
LCD_WriteCom(0x00E0);
LCD_WriteRAM(0x0003);
TimeDelay(1);
LCD_WriteCom(0x0001); // software reset
TimeDelay(1);
LCD_WriteCom(0x00E6);
LCD_WriteRAM(0x0004);
LCD_WriteRAM(0x0093);
LCD_WriteRAM(0x00e0);
LCD_WriteCom(0x00B0); //LCD SPECIFICATION
LCD_WriteRAM(0x0000);
LCD_WriteRAM(0x0000);
LCD_WriteRAM((HDP>>8)&0X00FF); //Set HDP
LCD_WriteRAM(HDP&0X00FF);
LCD_WriteRAM((VDP>>8)&0X00FF); //Set VDP
LCD_WriteRAM(VDP&0X00FF);
LCD_WriteRAM(0x0000);
TimeDelay(1);
LCD_WriteCom(0x00B4); //HSYNC
LCD_WriteRAM((HT>>8)&0X00FF); //Set HT
LCD_WriteRAM(HT&0X00FF);
LCD_WriteRAM((HPS>>8)&0X00FF); //Set HPS
LCD_WriteRAM(HPS&0X00FF);
LCD_WriteRAM(HPW); //Set HPW
LCD_WriteRAM((LPS>>8)&0X00FF); //Set HPS
LCD_WriteRAM(LPS&0X00FF);
LCD_WriteRAM(0x0000);
TimeDelay(1);
LCD_WriteCom(0x00B6); //VSYNC
LCD_WriteRAM((VT>>8)&0X00FF); //Set VT
LCD_WriteRAM(VT&0X00FF);
LCD_WriteRAM((VPS>>8)&0X00FF); //Set VPS
LCD_WriteRAM(VPS&0X00FF);
LCD_WriteRAM(VPW); //Set VPW
LCD_WriteRAM((FPS>>8)&0X00FF); //Set FPS
LCD_WriteRAM(FPS&0X00FF);
TimeDelay(1);
LCD_WriteCom(0x00BA);
LCD_WriteRAM(0x0005);//0x000F); //GPIO[3:0] out 1
TimeDelay(1);
LCD_WriteCom(0x00B8);
LCD_WriteRAM(0x0007); //GPIO3=input, GPIO[2:0]=output
LCD_WriteRAM(0x0001); //GPIO0 normal
TimeDelay(1);
LCD_WriteCom(0x0036); //rotation
LCD_WriteRAM(0x0008);
TimeDelay(1);
LCD_WriteCom(0x00F0); //pixel data interface
LCD_WriteRAM(0x0003);
TimeDelay(1);
TimeDelay(1);
LCD_WriteCom(0x0029); //display on
TimeDelay(1);
LCD_WriteCom(0x00BE); //set PWM for B/L
LCD_WriteRAM(0x0006);
LCD_WriteRAM(0x0080);
TimeDelay(1);
LCD_WriteRAM(0x0001);
LCD_WriteRAM(0x00f0);
LCD_WriteRAM(0x0000);
LCD_WriteRAM(0x0000);
TimeDelay(1);
LCD_WriteCom(0x00d0);//??????????
LCD_WriteRAM(0x000d);
TimeDelay(1);





آخرش اینجوری میشه
دیدگاه