در ادامه سری مقالات LTDC در تکفورال به پیکربندی آن در STM32CubeMX خواهیم پرداخت. جهت اتصال نمایشگر ROCKTECH RK043FN48H به میکرو STM32F746xx از RGB888 پارالل 24 بیتی استفاده خواهیم کرد.

 

پیکربندی پایه های رابط LTDC RGB

پس از ایجاد پروژه STM32CubeMX، در تب Pinout یکی از پیکربندی های سخت افزاری ذکر شده را انتخاب کنید. شکل زیر نحوه انتخاب پیکربندی سخت افزار RGB888 را با STM32CubeMX نشان می دهد.

کاربر همچنین می تواند با تنظیم عملکرد جایگزین مناسب برای هر GPIO، یک به یک، تمام GPIO ها را پیکربندی کند.

اگر پس از انتخاب یک پیکربندی سخت افزاری (RGB888 همانطور که در شکل بالا نشان داده شده است)، GPIO های استفاده شده با برد پنل نمایشگر مطابقت ندارند، کاربر می تواند GPIO مورد نظر را تغییر داده و alternate function را مستقیماً روی پین پیکربندی کند. شکل زیر به عنوان مثال نحوه پیکربندی دستی تغییر پین از PJ7 به  LTDC_G0 را نشان می دهد.

پس از پیکربندی صحیح تمام GPIO های رابط LTDC، پین های استفاده شده با رنگ سبز برجسته می شوند.

اکنون باید سرعت را روی very high تنظیم کنید. برای تنظیم سرعت GPIO ها با استفاده از STM32CubeMX، تب پیکربندی را انتخاب کنید سپس بر روی دکمه LTDC کلیک کنید همانطور که در شکل زیر نشان داده شده است.

در پنجره پیکربندی LTDC که در شکل زیر نمایش داده شده است، تمام پایه های LTDC را انتخاب کنید، سپس حداکثر سرعت خروجی را روی very high تنظیم کنید.

 

پیکربندی پین های خاص ماژول نمایشگر

هنگامی که تمام پین های رابط LTDC به پنل LCD-TFT به درستی پیکربندی شدند، باید سایر پین های اتصالی به نمایشگر (LCD_DISP ، پین INT و رابط I2C) را پیکربندی کند.

پین LCD_DISP (پین PI12) برای فعال کردن نمایشگر باید به عنوان output push-pull با high level پیکربندی شود، در غیر اینصورت نمایشگر در حالت آماده به کار باقی می ماند.

برای پیکربندی پین LCD_DISP در حالت خروجی با STM32CubeMX، در تب pinout بر روی پین PI12 کلیک کرده و سپس GPIO_Output را انتخاب کنید (مانند شکل زیر).

سپس، پین LDC_DISP (PI12) باید در high level پیکربندی شود: در تب Configuration، بر روی دکمه GPIO کلیک کنید. در پنجره Pin Configuration، سطح خروجی GPIO را روی high تنظیم کنید که در شکل زیر نمایش داده شده است.

به دلیل مقاومت بالاکش R85، در صورت شناور نگه داشتن پین LCD_BL_CTRL (PK3) نور پس زمینه به طور پیش فرض در بالاترین سطح قرار دارد. نیازی به پیکربندی این پین نیست.

 

فعال کردن وقفه های LTDC

وقفه های FIFO underrun و transfer error در درایور HAL_LTDC_Init تابع ()hal_ltdc فعال است. فقط باید وقفه عمومی LTDC را در NVIC فعال کنید.

برای فعال کردن وقفه های عمومی LTDC با استفاده از STM32CubeMX، تب پیکربندی را انتخاب کنید سپس بر روی دکمه LTDC کلیک کنید.

در پنجره پیکربندی LTDC که در شکل زیر نشان داده شده است، تب NVIC Settings را انتخاب کنید، وقفه های عمومی LTDC را تیک بزنید سپس دکمه OK را کلیک کنید.

 

پیکربندی پریفرال LTDC

در این بخش نحوه پیکربندی کلاک های LTDC، زمان بندی و پارامترهای لایه را با استفاده از STM32CubeMX نشان خواهیم داد.

 

پیکربندی کلاک سیستم

در این مثال کلاک سیستم به صورت زیر پیکربندی شده است:
• استفاده از HSI RC داخلی، جایی که PLL اصلی به عنوان منبع کلاک سیستم استفاده می شود
• HCLK @ 200 مگاهرتز (Cortex-M7 و LTDC هر دو با سرعت 200 مگاهرتز کار می کنند)

نکته: HCLK روی 200 مگاهرتز تنظیم شده است اما 216 مگاهرتز نیست. این کار برای تنظیم SDRAM_FMC در حداکثر سرعت 100 مگاهرتز با prescalers برابر با HCLK/2 است. به منظور پیکربندی کلاک سیستم با استفاده از STM32CubeMX، تب Clock Configuration را مانند شکل زیر انتخاب کنید.

برای به دست آوردن کلاک سیستم HCLK @ 200 مگاهرتز، PLL ها و (تقسیم کننده ها) prescalers را در تب Clock Configuration تنظیم کنید همانطور که در شکل زیر نشان داده شده است.

 

پیکربندی کلاک پیکسل

LCD_CLK باید با استفاده از پارامترهای موجود در دیتاشیت صفحه نمایشگر محاسبه شود. برای انجام محاسبه، باید عرض و ارتفاع کل را تعیین کنید. کلاک پیکسل با سرعت رفرش60 هرتز مطابق شکل زیر محاسبه میشود:

LCD_CLK = TOTALW x TOTALH x refresh rate  ==> LCD_CLK = 531 x 297 x 60 = 9.5 MHz

برای پیکربندی کلاک پیکسل LTDC روی 9.5 مگاهرتز با استفاده از STM32CubeMX، تب Clock Configuration را انتخاب کنید، سپس PLLSAI و prescalers را مطابق شکل زیر تنظیم کنید.

 

 

پیکربندی پارامتر زمان بندی

برای پیکربندی زمان بندی نمایشگر با استفاده از STM32CubeMX، باید پارامترهای زمان بندی را از دیتاشیت نمایشگر استخراج کنید. برای این مثال، به دیتاشیت ROCKTECH مراجعه کنید. آن در جدول زیر قرار دارد توصیه می شود از زمان بندی نمایشگرهای typical استفاده کنید.

برای پیکربندی زمان نمایش، باید به تب Configuration، رفته و سپس بر روی دکمه LTDC کلیک کنید. در پنجره LTDC Configuration، باید تب Parameter Settings را انتخاب کرده و مقادیر زمان بندی را پر کنید.

 

پیکربندی قطبیت سیگنالهای کنترل LTDC

با توجه به جدول بالا که برگرفته از دیتاشیت صفحه نمایشگر است، HSYNC و VSYNC باید active low و سیگنال DE باید active high باشد. همانطور که سیگنال DE در خروجی معکوس می شود، باید روی active-low نیز تنظیم شود. سیگنال LCD_CLK نباید معکوس شود. شکل زیر پیکربندی قطبیت سیگنال کنترل و پیکربندی LTDC را مطابق با دیتاشیت صفحه نمایشگر ROCKTECH نشان می دهد.

 

پیکربندی پارامترهای لایه LTDC

در این مرحله، تمام کلاک ها و زمان بندی های LTDC در پروژه STM32CubeMX تنظیم شده اند. اکنون باید پارامترهای LTDC Layer1 را با توجه به اندازه نمایشگر و عمق رنگ پیکربندی کند. در صورت نیاز، می توانید با تنظیم 2 لایه قسمت لایه ها در پنجره پیکربندی LTDC که در شکل زیر نشان داده شده است، Layer2 را فعال کند.
برای تنظیم پارامترهای LTDC Layer1 با استفاده از STM32CubeMX، کاربر باید تب Configuration را انتخاب کرده و سپس بر روی دکمه LTDC کلیک کنید.

بعد در پنجره LTDC Configuration نشان داده شده در شکل زیر، کاربر باید تب Layer Settings را انتخاب کند، LTDC Layer1 را تنظیم کنید و سپس بر روی دکمه OK کلیک کنید.

در این مرحله، می توانید با کلیک بر روی Project-> Generate Code پروژه را با toolchain مورد نظر تولید کنید. در مقاله بعدی برای اطمینان از پیکربندی صحیح LTDC به نمایش تصویر از فلش داخلی میکرو در نمایشگر خواهیم پرداخت.

منابع: st.com

lcdtft display controller ltdc on stm32 mcus stmicroelectronics.pdf

  برچسب ها
  نظرات

جهت ثبت نظر وارد سایت شوید

راهنمای استفاده از کد در کامنت
````
insert your code
``