راهنمای استفاده از کتابخانه touch قسمت 3 ( بخش اول – تنظیم پریفرالها)
لینک اولین قسمت راهنمای استفاده
موضوع : راهنمای استفاده از قسمت مربوط به درایور xpt2046 ( بخش اول – تنظیم پریفرالها)
با درود .
در این قسمت تنظیمات مربوط به پریفرالهای مربوط به درایور xpt2046 کتابخانه را توضیح خواهم داد.
همانطور که قبلا گفته بودم کتابخانه از توابع هال استفاده نمیکند .و کدهای مربوط پریفرالها به صورت رجیستری نوشته شده اند .
ولی به دلیل جلوگیری از پیچیده شدن بیش از حد کتابخانه و انعطاف پذیری آن پیکربندی اولیه پریفرالها ( فعال سازی باس دیتا و روشن کردن clock پریفرال )ادرون کتابخانه انجام نشده است و لازم است در بیرون کتابخانه این کار را انجام دهیم .
من ترجیح میدم این کار را به وسیله نرم افزار CubeMx انجام دهم . که این نرم افزار این کار را به وسیله توابع HAL و LL انجام میدهد .
دوستانی که نمیخواهند از توابع HAL استفاده کنند و تمایل دارند کدهای تنظیمات پریفرالها را با استفاده از CMSIS یا توابع SPL یا به هر نحو دیگری بنویسند . لازم است که تنظیمات مربوط را بنا بر توضیحات زیر انجام دهند.
تنظیمات پریفرالها :
تنظیمات مربوط به پریفرالها شامل 2 بخش است .
1- GPIO
2 - واحد SPI
*********************************************************
*********************************************************
1 - تنظیمات مربوط به GPIO :
این کتابخانه به طور معمول به 1 پین GPIO نیاز دارد که برای فعال سازی چیپ xpt2046 استفاده میشود( پایه T_CS ).
اما گاها و بنا به شیوه ی برنامه نویسی ممکن است به یک پین دیگر هم نیاز باشد .( PEN یا PEN_IRQ ).
*********************************************************
تنظیمات مربوط به پین T_CS یا همان XPT2046_CS :
در تصویر زیر تنظیمات مربوط در CubeMX را مشاهده میکنید . ( کادر قرمز)

*********************************************************
تنظیمات مربوط به پین PEN_IRQ :
عملکرد پین PEN درچیپ xpt2046 به این صورت است که در صورتی که کاربر آنرا فعال کرده باشد ( با انتخاب مد توان فعال یا غیر فعال میشود ) هنگام لمس شدن صفحه تاچ ولتاژ آن low میشود .
تنظیمات ارائه شده در این مطلب برای این پین صرفا یک پیشنهاد است و شما بنا بر نیاز پروژه میتواند تنظیمات متفاوتی را انجام دهید .( اما پیشنهاد من این است که برای راه اندازی و تست کتابخانه حتما از این تنظیمات استفاده نمایید )
در تصویر زیر تنظیمات مربوط به این پین را مشاهده میکنید .

*********************************************************
*********************************************************
1 - تنظیمات مربوط به SPI:
برای تنظیم spi ابتدا لازم است که آنرا به صورت Full-DuplexMaster راه اندازی نماییم .
ابتدا به سربرگ pinout رفته (کادر قرمز ) و سپس واحد SPI را مانند تصویر زیر فعال نمایید (کادر سبز)

سپس به سربرگ configuration ( کادر قرمز ) بروید و SPI فعال شده را مانند تصویر زیرانتخاب نمایید .

در این مرحله لطفا تنظیمات را مانند تنظیم زیر انجام دهید .
و مقدار بادریت ( کادر سبز) کمتر از 2.5 Mbit/s باشد.

توجه :
در بعضی نسخه های CubeMx ( نسخه 4.26 که مورد استفاده خودم هست ) توابع هال تولید شده برای SPI اشکال دارند و به درستی کار نمیکنند . به همین جهت بهتر است توابع راه اندازی SPI را به جای HAL روی LL قرار دهید .
لطفا برای این کار به تصویر زیر توجه نمایید .

در اینجا تنظیمات مربوط یه پریفرالها به پایان رسید.
لینک قسمت بعدی: در حال تکمیل