اطلاعیه

Collapse
No announcement yet.

N96 LCD

Collapse
این موضوع برجسته شده است.
X
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    پاسخ : N96 LCD

    سلام خدمت دوستان گل
    برای 8 بیتی کردن j4 رو بردارین و جای r2 وصل کنید(همون مقاومت 0 اهمه که آقا عطا گفتن) و ازون به بعد با پایه im0 تعیین کنید...
    بهش میگن n96 چون رو این گوشی چینی استفاده شده بود...!
    در مورد انواع مختلف بگم که شما اگه الان بری علاالدین بگی گوشی 1100 میخوام هم هزارو شونصد مدل میذارهه جلوت...!!
    برای مود 8 بیتی من یه کتابخونه develop کردم که واقعا میتونم بگم تمام بهینه سازی ها و تمام توابع read و write رو شامل میشه و سرعت بالایی داره، برای میکرو st هست،اگر به دردتون میخوره بگید تا براتون پ کنم...(تابع کنترل بک لایت هم داره)
    مشغول در اين دنياي آکل و ماکول .......

    دیدگاه


      پاسخ : N96 LCD

      سید نیکی و پرسش؟پ کن ببینیم چی هست؟

      دیدگاه


        پاسخ : N96 LCD

        فونت و یک نمونه از عکس(تبدیل شده به هدر) قابل نمایش با این کتابخانه رو هم براتون گذاشتم.
        http://s3.picofile.com/file/78209575...river.rar.html
        راستی فقط برای پیکربندی پایه ها از cmsis استفاده شده که اونم اگر نخواستید تغییر بدید.
        مشغول در اين دنياي آکل و ماکول .......

        دیدگاه


          پاسخ : N96 LCD

          با سلام خدمت دوستان
          من برد آموزشی کویر با میکروی AT91Sam7x256 شروع به کار کردم و الان هم دارم روی lcd n96 کار میکنم.
          مشکلی هم که پیدا کردم طبق معمول سرعت پایین لود عکس هست.
          برای رفع این مشکل از دستور tftlcd_write_pic_high(0,0,picture); استفاده کردم که عکس اول درست نشون میده ولی عکس دوم خراب میشه !!!! :angry:
          کسی میتونه کمکم کنه؟ :eek:

          دیدگاه


            پاسخ : N96 LCD

            سلام

            من یه چنتا سوال در مورد این ال سی دی دارم

            برای یه فریم چنتا بیت باید از میکرو به ال سی دی انتقال پیدا کنه؟ 16*320*240 این میشه اگه تو مود 16 بیتی باشه

            یه سوال دیگه کالا برای اتصال این ال سی دی ب میکرو چتا پین نیاز داره تو مود 16 بیت؟

            می خوام این ال سی دی رو با SPI راه بندازم ولی دو تا سوال تو این نوع ارتباط دارم :

            1) ایا با کلاک بین 40 - 30 MHz میتونه کار کنه؟
            2) دیتا تصویر رو منظورم دیتا پیکسل هاست ، به صورت پشته سر هم میتونه دریافت کنه ؟ بدونه توفق کلاک با همون فرکانس سوال اولم

            دیدگاه


              پاسخ : N96 LCD

              سلام
              من data port , control port ال سی دی را روس پورت b می زارم . اما ال سی دی کار نمی کنه .
              از بابت اتصالات هم مطمئن هستم.
              لطفا کمک کنید.
              با تشکر ................... 0

              :cry2: :cry2: :cry2: :angry: :angry: :angry: :angry: :angry: :cry2: :cry2: :cry2:
              محمد.م

              دیدگاه


                پاسخ : N96 LCD

                اینجا هیچ کسی سوالی جواب نمیده
                پس این انجمن به چه دردی میخوره؟؟

                دیدگاه


                  پاسخ : N96 LCD

                  سلام
                  mobashery :
                  دوست عزیز شما همون کتابخانه ای که من قرار دادمو مطالعه کن، گفتم داخلش تمام توابع بهینه شدست، تابع لود عکس هم همینطور ببین تابع خودت مشابه اینه؟ اگر مشکلت رفع نشد بدنه تابعتو از تو فایل .c کتابخانت بذار اینجا تا بررسی کنم. در ضمن منظور شما از کند لود شدن چقدره؟ میکروتون چیه؟در چه فرکانسی دارین کارمی کنید و در هر ثانیه چند صفحه تک رنگ می تونید لود کنید؟
                  نوشته اصلی توسط سید محمد جعفری
                  فونت و یک نمونه از عکس(تبدیل شده به هدر) قابل نمایش با این کتابخانه رو هم براتون گذاشتم.
                  http://s3.picofile.com/file/78209575...river.rar.html
                  راستی فقط برای پیکربندی پایه ها از cmsis استفاده شده که اونم اگر نخواستید تغییر بدید.
                  mohamad0 :
                  کتابخانه مورد استفاده و شماتیکتونو قرار بدید تا بررسی کنم.

                  vahidsport:
                  16 پایه برای داده 5 تا هم کنترلی که میشه 21 ای...
                  اگر از سیستم 65536 رنگ استفاده کنی آره همون مقدار که گفتی دیتا میخواد...
                  2-من با مود spi امتحان نکردم ولی اگر منظورت ارسال بلوک داده بدون آدرس دهی تک تک پیکسل هاست آره میشه،
                  1-بله میشه.
                  مشغول در اين دنياي آکل و ماکول .......

                  دیدگاه


                    پاسخ : N96 LCD

                    1-بله میشه.
                    منظورتون تو حالت سریال بود یا موازی؟ من تو حالت سریال منظورم بود به خاطر یکسری مشکلات نمیتونم تو حالت موازی کار کنم و از طرفی هم در تلاشم که به رفرش ریت 25 - 30 برسم تو دیتا شیت ال سی دی 3.2 اینچی حداکثر فرکانس کلاک تو حالت سریال رو 13MHz زده تو دیتاشیت این ال سی دی چیزی نگفته و تو حالت موازی سرعت بالایی داره

                    ارسال بلوک داده بدون آدرس دهی تک تک پیکسل هاست آره میشه،
                    1) تو حالت سریال یا موازی؟ :biggrin:
                    2) به غیر از قرار داده دیتا رو پایه های D0-D16 چه کار هایی دیگه باید انجام بشه تا دیتا پیکس ها بدونه ادرس دهی ارسال بشه؟

                    حداکثر رفرش ریتی که شما یا کس دیگه رسیدن چقدر بوده؟ میکرو و فرکانس ش چقدر بوده؟


                    دیدگاه


                      پاسخ : N96 LCD

                      با سلام
                      این شماتیک و کتابخونه .
                      http://oafarin22.persiangig.com/moha...a_ques/lcd.rar
                      با تشکر ممنون
                      یاعلی
                      محمد.م

                      دیدگاه


                        پاسخ : N96 LCD

                        1- آره منظورم تو حالت سریاله. ولی من فکر کردم منظور شما فرکانس کاری میکروته، در مورد یک لینک ارتباطی سرعت انتقال بر مبنای بیت بر ثانیه مطرح میشه، شما منظورت از 30 مگاهرتز چیه؟ بعید میدونم با spi بتونی به این رفرش ریت برسی...
                        2- در هردو حالت
                        3- بدنه توابع tft_WriteCMD و tft_WriteData و tft_SetArea رو در اون کتابخانه ای که گذاشتم مطالعه کنید، بعد تابع tft_ShowBitmap رو مطالعه کنید، کاملا گویاست.

                        حدود 30 فریم میکرو stm32f103ret6 فرکانس حدود 83 مگ (اورکلاک) فریم تک رنگ... (توجه کنید که حتی انتخاب پایه ها توی کتابخونه ای که گذاشتم بهترین حالته تا علاوه بر عدم اشغال پایه های مهم پراکندگی نداشته باشیم و زمان کمی اتلاف بشه)
                        مشغول در اين دنياي آکل و ماکول .......

                        دیدگاه


                          پاسخ : N96 LCD

                          سلام
                          یه سوال :
                          تاحالا این3.2 اینچه را روی یک پورت راه انداختید؟
                          آخه هر چی که پروژه دیدم روی دوتا پورت بوده.
                          ممنون.
                          محمد.م

                          دیدگاه


                            پاسخ : N96 LCD

                            نوشته اصلی توسط سید محمد جعفری
                            1- آره منظورم تو حالت سریاله. ولی من فکر کردم منظور شما فرکانس کاری میکروته، در مورد یک لینک ارتباطی سرعت انتقال بر مبنای بیت بر ثانیه مطرح میشه، شما منظورت از 30 مگاهرتز چیه؟ بعید میدونم با spi بتونی به این رفرش ریت برسی...
                            2- در هردو حالت
                            3- بدنه توابع tft_WriteCMD و tft_WriteData و tft_SetArea رو در اون کتابخانه ای که گذاشتم مطالعه کنید، بعد تابع tft_ShowBitmap رو مطالعه کنید، کاملا گویاست.

                            حدود 30 فریم میکرو stm32f103ret6 فرکانس حدود 83 مگ (اورکلاک) فریم تک رنگ... (توجه کنید که حتی انتخاب پایه ها توی کتابخونه ای که گذاشتم بهترین حالته تا علاوه بر عدم اشغال پایه های مهم پراکندگی نداشته باشیم و زمان کمی اتلاف بشه)
                            من هنوز ال سی دی رو تهیه نکردم و با این میکرو تا حالا کار نکردم

                            این برنامه شما برای 8 بیتی هست درسته؟ یعنی تعداد رنگ 65k ولی باس دیتا 8 بیتی هست!!!! اگه اره شما اگه 16 بیتی کار کنید سرعت رفرش خیلی بالا میره

                            و برای بهبود سرعت برنامه فعلی اون توابعی که برای RS , WR , RD , CS رو اگر به صورت define تعریف کنید بهتره سرعت کمی بالاتر میره ، مثلا برای RS شما دو تا دیفاین تعریف میکنید به صورت زیر

                            (
                            کد:
                             #define RS_1 GPIOA->BSRR = (1<<0);
                            
                            #define RS_0 GPIO->BRR = (1<<0);
                            من چون این ال سی دی رو ندارم نمیتونم این چیزی که الان مگم رو تست کنم اگه ممکنه شما تست کنید

                            تو تابع tft_WriteData برای اینکه ال سی دی یه دستور و دریافت کنه شما اول CS رو صفر کردین بعد RD رو یک کردین و بعد RD رو یک کردین و بعد دیتا رو روی پورت ریختید و پایه WR رو اول صفر و بعد یک کردین و بعد قسمت LSB رو روی پورت ریختید و دوباره WR رو صفر و یک کردین و در اخر CS رو یک کردین ، که تو حالت16بیتی انجام بشه تقریبا زمان انجام این تابع نصف میشود

                            کاری که از شما میخوام اینه که تو تابع tft_ShowBitmap انجام بدین :

                            کد:
                            void tft_WriteCMD(uint16_t cmd)	 
                            {
                            
                            tft_Write( (cmd&0xff00)>>8 );	     // MSB 
                             LcdWR(0);
                             LcdWR(1);
                              tft_Write( cmd );	           // LSB
                            
                             LcdWR(0);
                             LcdWR(1);
                            }
                            
                            void tft_ShowBitmap(uint16_t x, uint16_t y, uint16_t xsize, uint16_t ysize, const unsigned short *bmp_array)
                            {
                             uint32_t i;
                             tft_SetArea(x, y, x+xsize, y+ysize);
                             tft_WriteCMD(0x0022);
                            
                             LcdCS(0);
                             LcdRS(1); // data
                             LcdRD(1);
                            
                             for(i=0;i<(xsize*ysize);i++)
                             {
                              tft_Write((int)*bmp_array++);
                            
                            
                             }
                            
                             LcdCS(1);
                            }
                            با این کار (اگر جواب بده که فکر میکنم جواب بده چون خودتون این کار رو کردین تو تابع CMD و DATA) در واقع فقط دیتا پیکسل ها رو روی پورت میریزیم بعد با صفر ور یک کردن WR دیتا جدید رو ال سی دی دریافت میکنه که هم زمان کمتری میبره و هم اون کاری می خوام انجام بدم شدنی هست

                            کاری میخوام انجام بدم تقریبا به صورت که اول ال سی رو با میکرو init میکنم بعد ال سی رو میبرم تو حالت دریافت دیتا پیکسل ها بعد دیتا پیکسل ها رو با سرعت بالا توسط DMA به ال سی دی انتقال میدم کل 76800 بایت رو..... به شرطی که اون کاری که بالا خواستم شدنی باشه!!!!!




                            دیدگاه


                              پاسخ : N96 LCD

                              سلام
                              mohamad0 :
                              من همین 2.8 رو با st باس 8 بیت رو یک پورت راه انداختم. برای میکرو های دیگه نمیدونم شاید محدودیتی توی ورودی و خروجی همزمان روی یک پورت بوده.
                              vahidsport:
                              یادم نیست تو این هدری که پ کردم هستش یا نه(کامنتش کرده بودم)، ولی به صورت دیفاین هم تعریف کرده بودم کل توابع سطح پایین رو و چون تاثیری در سرعت نداشت نهایتا به صورت تابع تعریفشون کردم، مهم اینه که این توابع مستقیم هستن و مثلا از cmsis استفاده نشده چون سرعتو نصف میکنه...
                              در مورد مقایسه سرعت مود 16 بیتی و 8 بیتی حق با شماست و واضح هم هست، اون 30 فریمی که من گفتم هم برای مود 16 بیت بود و در 8 بیت تقریبا نصف(بیشتر) اون اتفاق افتاد...
                              ** چیزی که شما گفتین شدنی نیست چون در واقع تو تابعی که شما نوشتین به کنترولر lcd گفته نمیشه که بیت های ارسالی دیتا هستن یا دستور، فرق تابعی که من نوشتم با بقیه توابع اینه که به ازای هر پیکسل نیازی نیست آدرس اون هم ارسال بشه، اینجوری در کل اطلاعات ارسالی نصف شده، یعنی من اول اومدم یک بلوک آدرس معرفی کردم، بعد کل داده های اون بلوکو ارسال کردم...
                              باز هم در اولین فرصت تست میکنم تابعی که شما نوشتیو و نتیجشو میگم ولی به احتمال زیاد نشه...
                              مشغول در اين دنياي آکل و ماکول .......

                              دیدگاه


                                پاسخ : N96 LCD

                                به کنترولر lcd گفته نمیشه که بیت های ارسالی دیتا هستن یا دستور
                                تو قبل از for تو تابع مربوط به نمایش عکس اگه توجه کنی من RS و RD رو یک کردم و CS رو هم صفر کردم که دقیقا همون کاری که شما تو تابع DATA انجام داده بودید!!!! من تغییر خاصی ایجاد نکردم فقط برای هر دیتا پیکس دیگه RSو RD و CS رو مشخص نکردم وضعیت ش رو یعنی یکبار مشخص کردم اونم تو زمان ارسال اولین پیکسل و تا اخرین پیکسل هم تغییر وضعیت ندادم

                                با این کار انتظار ندارم رفرش ریت بالا بره چون تغییر خاصی صورت نگرفته ولی میشه دیتا پیکسل ها رو با سرعت بالا و بدونه درگیر کردن CPU رو پورت دیتا ال سی دی ریخت و فقط یه کلاک به WR وارد کرد تا ال سی دی دیتا جدید رو دریافت کنه که بازم میگم شما تو تابع CMD و Data این کار رو انجام دادین و داره کار میکنه ، شما اول MSB رو ارسال کردین و بدون تغییر وضعیت RS,RD,CS مقدار LSB رو ارسال کریدن....

                                بازم ممنون اگه تست کردین حتما جواب ازمایشتون رو همینجا بزارین






                                دیدگاه

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