اطلاعیه

Collapse
No announcement yet.

تجربه شخصی من از راه اندازی stm32f407 & ssd1963 with fsmc

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

    تجربه شخصی من از راه اندازی stm32f407 & ssd1963 with fsmc

    سلام
    خیلی وقت بود که به صورت جسته گریخته با ssd1963 و stm32f407 به روش fsmc ال سی دی راه می انداختم و تست می گرفتم و هر دفعه در تنظیمات زمان fsmc مشکل بود
    مثلا یه وقت تو یه پروژه به خوبی کار می کرد بعد همون تنظیمات روی PCB مشابه کار نمی کرد
    یا مثلا چندبار صفحه که عوض می شد دیگه گیر می کرد و نمی رفت جلو تر
    جالب این جا بود که با بعضی تنظیمات با سرعت خیلی بالایی می شد صفحه رو با چند تا رنگ رفرش کرد همون تابع lcd_clear
    تا این که امروز متوجه مطلبی شدم
    اگر دقت کنید می بینید که با stm32f1xx که کلاکش 72 مگاهرتزی هست این مشکل وجود نداره
    حالا این مشکل چرا هست
    برای اینکه شما تصویرتون یا متنتون رو پخش کنید میایید به ssd1963 می گید به من یه ابعاد مربعی مثلا 10 در 10 بده که از 0 و 0 شروع شده باشه اونوقت هر چی میدید اون خودش تو اون مربع 10 در 10 می ریزتش
    که هر کی یه اسم برای این موضوع گذاشته مثلا SetCursor یا SetArea
    داخل این تابع
    LCD_WriteCom(CMD_SET_COLUMN);
    LCD_WriteRAM(start_x >> 8);
    LCD_WriteRAM(start_x);
    LCD_WriteRAM(end_x >> 8);
    LCD_WriteRAM(end_x);

    LCD_WriteCom(CMD_SET_PAGE);
    LCD_WriteRAM(start_y >> 8);
    LCD_WriteRAM(start_y);
    LCD_WriteRAM(end_y >> 8);
    LCD_WriteRAM(end_y);

    این ها نوشته شده
    من طبق تستس که کردم اگر بین هر کدوم از این خط ها یه تاخیر ایجاد کنید مشکل حل میشه ولی یه مشکل دیگه اضافه میشه
    اونم اینه که متن و نوشته هاتون بسیار کند می شن چرا چون برای نوشتن یک حرف باید چندین بار این تابع اجرا بشه تا بتونید نقطه به نقطه بنویسید
    که این مشکل رو میشه به روش دیگه ای حل کرد و این طوری که بیاید یه آرایه تعریف کنید و بعد متنتون رو توی اون آرای بنویسید و بدید به تابع پخش تصویر این طوری خیلی سریع میشه و مسئله صدا زدن تابع مزاحم کم تر پیش میاد
    این تجربه بنده بود
    اگر کسی از دوستان تجربه بهتری دارند ارائه بفرمایند یا اینکه اگر بنده اشتباه می کنم توضیح بدهند
    اللهم صل علی محمد و ال محمد و عجل فرجهم
    پیامبر اکرم(ص):زکات علم نشر آن است.
    در کشور هاي غربي انتقال تجربيات و دانش به افراد مبتدي يک پيشرفت محسوب شده و به آن مديريت دانش مي گويند. ولي متاسفانه اين فرهنگ هنوز در کشور ايران رايج نشده است !!!

    #2
    پاسخ : تجربه شخصی من از راه اندازی stm32f407 & ssd1963 with fsmc

    نوشته اصلی توسط seyed saeed نمایش پست ها
    سلام
    خیلی وقت بود که به صورت جسته گریخته با ssd1963 و stm32f407 به روش fsmc ال سی دی راه می انداختم و تست می گرفتم و هر دفعه در تنظیمات زمان fsmc مشکل بود
    مثلا یه وقت تو یه پروژه به خوبی کار می کرد بعد همون تنظیمات روی PCB مشابه کار نمی کرد
    یا مثلا چندبار صفحه که عوض می شد دیگه گیر می کرد و نمی رفت جلو تر
    جالب این جا بود که با بعضی تنظیمات با سرعت خیلی بالایی می شد صفحه رو با چند تا رنگ رفرش کرد همون تابع lcd_clear
    تا این که امروز متوجه مطلبی شدم
    اگر دقت کنید می بینید که با stm32f1xx که کلاکش 72 مگاهرتزی هست این مشکل وجود نداره
    حالا این مشکل چرا هست
    برای اینکه شما تصویرتون یا متنتون رو پخش کنید میایید به ssd1963 می گید به من یه ابعاد مربعی مثلا 10 در 10 بده که از 0 و 0 شروع شده باشه اونوقت هر چی میدید اون خودش تو اون مربع 10 در 10 می ریزتش
    که هر کی یه اسم برای این موضوع گذاشته مثلا SetCursor یا SetArea
    داخل این تابع
    LCD_WriteCom(CMD_SET_COLUMN);
    LCD_WriteRAM(start_x >> 8);
    LCD_WriteRAM(start_x);
    LCD_WriteRAM(end_x >> 8);
    LCD_WriteRAM(end_x);

    LCD_WriteCom(CMD_SET_PAGE);
    LCD_WriteRAM(start_y >> 8);
    LCD_WriteRAM(start_y);
    LCD_WriteRAM(end_y >> 8);
    LCD_WriteRAM(end_y);

    این ها نوشته شده
    من طبق تستس که کردم اگر بین هر کدوم از این خط ها یه تاخیر ایجاد کنید مشکل حل میشه ولی یه مشکل دیگه اضافه میشه
    اونم اینه که متن و نوشته هاتون بسیار کند می شن چرا چون برای نوشتن یک حرف باید چندین بار این تابع اجرا بشه تا بتونید نقطه به نقطه بنویسید
    که این مشکل رو میشه به روش دیگه ای حل کرد و این طوری که بیاید یه آرایه تعریف کنید و بعد متنتون رو توی اون آرای بنویسید و بدید به تابع پخش تصویر این طوری خیلی سریع میشه و مسئله صدا زدن تابع مزاحم کم تر پیش میاد
    این تجربه بنده بود
    اگر کسی از دوستان تجربه بهتری دارند ارائه بفرمایند یا اینکه اگر بنده اشتباه می کنم توضیح بدهند
    ممنون از دوست عزیز بابت اشتراک تجربه عالیتون
    امشب شب مهمیه (طوفان روز قدس در شبکه مجازیه) برای همین خیلی خلاصه میگم
    در استفاده از FSMC برای هر هدفی باید تنظیمات مناسب با توجه به سرعت اون هدف کانفیگ بشه مثلا برای lcd نوع x طبق دیتاشیت نوشته شده که tAH برابر با 5ns هست و برای tDS برابر با 10ns و ... و شما باید این تنظیمات رو درون FSMC هم تنظیم کنید تا بتونید با بهترین سرعت با lcd ارتباط برقرار کنید.(همون بخش timing هست)
    اطلاعات بیشتر به سند AN2790 در سایت st رجوع کنید.
    نام سند: AN2790
    طبقه بندی سند: Application note
    موضوع سند: TFT LCD interfacing with the high-density STM32F10xxx FSMC
    اطلاعات بیشتر: (بهتره که کل سند رو بخونید) بخش 3.3Timing computation صفحه 16
    نکته مهم: بنده توی FSMC تاره واردم اگر جایی اشتباه کردم ممنون میشم اساتید راهنمایی کنن

    #قدس_لنا
    اي خدا ، من بايد از نظر علم از همه برتر باشم، تا مبادا که دشمنان مرا از اين راه طعنه زنند. بايد به آن سنگدلاني که علم را بهانه کرده و به ديگران فخر ميآ*فروشند، ثابت کنم که خاک پاي من هم نخواهند شد. بايد همه آن تيره دلان مغرور و متکبر را به زانو در آورم، آنگاه خود خاضع ترين و افتاده ترين مرد روي زمين باشم.
    شهيد دکتر مصطفي چمران
    اللهم صل علي محمد و ال محمد و عجل فرجهم
    ; C is not for children

    دیدگاه

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