اطلاعیه

Collapse
No announcement yet.

مشکل با ssd1963

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    مشکل با ssd1963

    سلام
    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);







    آخرش اینجوری میشه
    جدیدترین ویرایش توسط sepehr63; ۱۳:۳۰ ۱۳۹۶/۰۹/۲۱.

    #2
    پاسخ : مشکل با ssd1963

    دقیقا من هم مشکلات این چنینی با SSD 1963 ( + FSMC ) دارم.
    اگر موضوعی را در انجمن مطرح کرده اید لطفا با استفاده از "موضوع به نتیجه رسید" بقیه را از این وضعیت مطلع فرمائید.

    دیدگاه


      #3
      پاسخ : مشکل با ssd1963

      همه اینترنت شخم زدم
      روی ولتاژ درایور کار کردم و ولتاژ هارو با جریان ها بالا بهش دادم که کم نیاره
      پایه هارو به صورت جدا pulup و puldown کردم نشد . نمیدونم مشکلش چیه ؟؟؟؟2 ماه هست کل این پروژه لنگ این مشکله
      اگه میدونشتم کی lcd هنگ میکنه میتونستم init کنم ولی راهی برای فهمیدنش پیدا نکردمحتی نمیدونم مشکل مال ssd هست یا خود lcd ها ؟؟؟؟

      دیدگاه


        #4
        پاسخ : مشکل با ssd1963

        کسی نظر و یا شک به چیزی نداره راهنمایی کنه؟؟؟

        دیدگاه

        لطفا صبر کنید...
        X