فناوری TSC در میکروکنترلرهای STM32 به همراه کتابخانه TSL طراح را قادر می سازد به سادگی قابلیت حسگر لمسی را به هر برنامه اضافه کند.

طی سالهای اخیر، حسگر لمسی Touch Sensing در بسیاری از برنامه ها مانند تلفن های همراه، اجاق های القایی، قهوه ساز، و غیره رواج یافته است که در مقایسه با دکمه های فشار استاندارد انعطاف پذیرتر و قابل اعتماد تر است. زیرا قطعات مکانیکی در دراز مدت دیگر مورد استفاده نیست.

ویژگی touch sensing در STM32 مبتنی بر انتقال شارژ است.

اصلcharge transfer acquisition شامل شارژ یک خازن سنسور Cx و انتقال بار جمع شده به یک خازن نمونه برداری Cs است. این سیکل تا زمانی که ولتاژ در Cs به VIH برسد تکرار می شود.

تعداد انتقال بار مورد نیاز برای رسیدن به ولتاژ آستانه، همان اندازه ظرفیت الکترود است. هنگامی که سنسور لمس می شود، ظرفیت خازن سنسور افزایش می یابد. این بدان معنی است که ولتاژ C با شمارش کمتر به VIH می رسد و مقدار اندازه گیری کاهش می یابد. هنگامی که این اندازه گیری کمتر از آستانه باشد، کتابخانه TSL (کتابخانه touch sensing ) یک لمس را گزارش می کند.

 

ویژگی های اصلی کنترل کننده حسگر لمسی Touch Sensing Controller عبارتند از:

  • اصل charge transfer acquisition که در سری STM32F0، STM32F3 ،STM32L0 و STM32L4 میکروکنترلرهای STM32 موجود است.
  • حداکثر 24 کانال حسگر خازنی را پشتیبانی می کند تقسیم بیش از 8 گروه I/O آنالوگ. تعداد کانال و گروههای I/O به میکروکنترلر انتخابی بستگی دارد.
  • برای عملکرد بهینه ، حداکثر 8 حسگر خازنی کانالها به صورت موازی قابل دستیابی هستند که زمان پاسخ بسیار خوبی را ارائه می دهد.
  • فقط یک خازن نمونه برداری برای مدیریت حداکثر 3 کانال حسگر خازنی مورد نیاز است. این امر باعث کاهش BOM می شود.
  • charge transfer acquisition برای کاهش سربار CPU کاملاً توسط سخت افزار مدیریت می شود. این ویژگی در محیط های پر نویز برای بهبود عملکرد سیستم مورد استفاده قرار گرفته است.
  • سرانجام ، Touch Sensing Controller به گونه ای طراحی شده است که با کتابخانه حسگر لمسی STM32Cube موجود در بسته STM32Cube مربوطه کار کند.
  • این کتابخانه کلیه پردازش های مورد نیاز برای تهیه یک راه حل حسگر خازنی قوی را ارائه میدهد و از حسگرهای مجاورت proximity، لمسtouchkey ، خطی linear و دوار rotary پشتیبانی می کند.
 

 

واحد TSC مستقیماً با استفاده از کلاک AHB تنظیم می شود. این کلاک توسط بلوکspread spectrum و pulse generator استفاده می شوند که پالس ایجاد شده در بلوک تقسیم کننده Clock prescaler را میتوان کاهش داد.

GPIO هایی که از حسگر لمسی پشتیبانی می کنند باید در حالت alternate mode پیکربندی شوند تا آنها را به کنترل کننده حسگر لمسی وصل کنید.

پین ورودی SYNC برای همگام سازیcapacitive sensing acquisition با یک محرک خارجی بدون نیاز به تعامل با CPU مورد استفاده قرار می گیرد.

یک شمارنده در هر گروه آنالوگ I/O برای ذخیره نتایج کسب شده استفاده می شود.

وقفه ای را می توان هنگام شناسایی خطا یا پس از پایان یافتن همه گروههای آنالوگ I/O فعال شده ایجاد کرد. این وقفه به محدود کردن سربار CPU کمک می کند.

 

مدار اندازه گیری انتقال شارژ Charge Transfer

مدار ساده است. بیایید یک گروه I/O آنالوگ را که از چهار I/O تشکیل شده است، در نظر بگیریم. یکی از این I/O ها برای خازن نمونه برداری خواهد بود (حداکثر هر 3 حسگر یک خازن نمونه برداری) آن معمولاً به خازن خارجی (CS) وصل می شود که خازن نمونه برداری نامیده می شود.

در هر گروه آنالوگ I/O یک خازن نمونه برداری واحد وجود دارد. مقدار خازن نمونه برداری به حساسیت کانال بستگی دارد. هرچه مقدار CS بالاتر باشد، حساسیت بیشتر و زمان دستیابی بیشتر است. سه I/O دیگر به کانال ها اختصاص داده می شوند.

هر یک از آنها از طریق یک مقاومت سری (RS) به یک الکترود حسگر متصل می شوند. RS برای بهبود ESD استفاده می شود. در یک گروه I/O آنالوگ، فقط یک کانال به طور همزمان قابل دستیابی است. این بدان معناست که اگر سه کانال اجرا شوند، برای سه حسگر acquisitionبه صورت متوالی خواهد بود.

برای عملکرد بهینه، ظرفیت خازن حسگر باید تا حد ممکن پایین باشد. اغلب این مقدار خازن را در حدود چند ده پیکوفاراد انتخاب میکنند. لمس آن منجر به افزایش ظرفیت خازن حسگر می شود در حد چند پیکوفراد، به عنوان مثال 5 پیکوفاراد.

 

 

charge transfer acquisition از 7 مرحله تشکیل شده است

ابتدا خازن نمونه گیری و خازن CX تخلیه می شوند تا با بسته شدن سوئیچ آنالوگ S1 و فعال کردن S3، یک نقطه شروع پایدار دریافت کنند. بین هر مرحله اصلی، برای جلوگیری از یک acquisition غیر واقعی یک مرحله میانی وارد می شود.

این مرحله میانی که به آنdead time گفته می شود شامل باز کردن همه کلیدهای آنالوگ فعال و غیرفعال کردن همه ترانزیستورهای فعال است.

بعد، خازن CX با بستن S2 به VDD شارژ می شود.

پس ازdead time، بخشی از بار در CX با بستن سوئیچ آنالوگ S1 به خازن نمونه برداری CS منتقل میشود.

پس از انتقال شارژ، ولتاژ روی خازنCS خوانده می شود. اگر ولتاژ پایین تر از VIH باشد، منطق 0 برگشت داده شده است. اگر از VIH بیشتر باشد ، منطقی 1 خوانده می شود.

اگر مقدار منطقی برگشتی 0 باشد، مراحل 3 تا 7 تکرار می شوند.

بعد از هر سیکل انتقال شارژ، یک شمارنده افزایش می یابد، به نمایندگی از ظرفیت سنسور.

 

پیکره بندی پین های تاچ به منظور کنترل توسط کتابخانه TSC

  • پین مربوط به خازن نمونه برداری CS باید در حالت alternate output open-drain تنظیم شود. علاوه براین، برای جلوگیری از مصنوعات، باید Schmitt trigger hysteresis غیرفعال شود.
  • کانال I/O باید در مد alternate output push-pull تنظیم شود.

 

برای کاهش بار CPU، دو مدacquisition پشتیبانی می شود

  • مد Normal acquisition که در آن acquisition با تنظیم بیت شروع رجیستر TSC_CR آغاز می شود
  • مد Synchronized acquisition که در آن acquisition فقط با تشخیص لبه پایین رونده یا بالا رونده و سطح در پین ورودی SYNC شروع می شود. این حالت برای محدود کردن تأثیر نویز در برخی از برنامه های کاربردی مانند اجاق های القایی مفید است

 

در هر دو حالت، End of acquisition و Max count error به روش polling یا interrupt قابل مدیریت است. علاوه بر مدیریت اصل charge transfer acquisition، واحد TSC به طراح این امکان را میدهد تا به طور جداگانه سوئیچ آنالوگ را کنترل کند و هم Schmidt trigger hysteresis های I/O متعلق به گروههای آنالوگ I/O استفاده کند.

این قابلیت می تواند برای پیاده سازی متفاوت یا برای اهداف دیگر مانند یک multiplexer آنالوگ مفید باشد.

 

واحد TSC دو منبع وقفه ارائه می دهد

  • End of acquisition که به هنگام پردازش تمام کانال های فعال به CPU اطلاع میدهد.
  • Max count error که در صورت عدم موفقیت در یک یا چند کانال تنظیم می شود. این در جلوگیری ازacquisition نامتناهی که در صورت خرابی سخت افزار ممکن است رخ دهد، مفید است.

 

مد Low-power

TSC در حالت های Run ,Sleep ,Low-power run و Low-power sleep فعال است.

این بدان معنی است که charge transfer acquisition فقط در این حالت ها قابل انجام است.

در همه حالت های دیگر (Stop0، Stop1، Stop2، Standby و Shutdown ) TSC عملیاتی نیست.

در حالت های Stop، پریفرال فریز می شود اما محتوای رجیسترها نگه داشته می شود.

در حالت آماده به کار یا Standby و خاموشShutdown، محتوای رجیسترها از بین می رود و باید پریفرال مجدداً مقداردهی اولیه شود.

 

در این مثال، 6 کلید لمسی و یک سنسور لمسی خطی ارائه شده است

توجه به این نکته ضروری است که از یک رگولاتور ولتاژ اختصاصی استفاده می شود.

از خازن نوع COG برای خازن های نمونه برداری استفاده می شود زیرا آنها پایداری خوبی در محدوده دما دارند و هیچ گونه اثر حافظه ای ندارند.

 

نکات و ترفندها

اکیداً توصیه میشود از رگولاتور ولتاژ برای تغذیه کنترل لمسی استفاده شودکه نویز ناشی از تغییرات منبع تغذیه را به حداقل می رساند. برای بهبود حساسیت، ظرفیت پارازیتی نسبت به زمین باید به حداقل برسد. این به این معنی است که در طراحی برد ترک ها کوتاه و نازک باشند.

مقاومتهای سری (Rs) و خازن های نمونه برداری (Cs) باید تا حد امکان به MCU نزدیک شوند.

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

سرانجام، در صورت وجود درایو امپدانس بالا (یعنی LED که از طریق مدار open drain هدایت می شود) از خازن بای پس استفاده شود تا از یک مسیر امپدانس پایین اطمینان حاصل شود.

برای عملکرد مطلوب، توصیه می کنیم از یک شیلد فعال (پلیگان هاشوری) در اطراف ترک ها و پدهای سنسور به صورت گسترده استفاده کنید.

 

 

کتابخانه TSL

همانطور که قبلاً گفته شد، واحد TSC برای کار با کتابخانه touch sensing طراحی شده است.

این کتابخانه C از حسگرهای مجاورت proximity، لمس touchkey، خطی linear و چرخشی rotary پشتیبانی می کند.

این امکان را فراهم می کند تا توابع حسگر خازنی را با ویژگی های قبلی میکروکنترلر مانند درایو LCD ، ارتباط با یک دستگاه میزبان، ترکیب کند. این کتابخانه کلیه پردازش های مورد نیاز برای به دست آوردن حساسیت بهینه و طراحی یک برنامه قوی را ارائه می دهد.

برخی از این ویژگی ها شامل کالیبراسیون power-on، محیط کنترل سیستم (ECS)، فیلتر debounce و سیستم تشخیص استسثناء (DxS) است.

این کتابخانه یک API ساده برای پیکربندی کانالها، سنسورها و دریافت وضعیت سنسورها ارائه می دهد. که سازگار با MISRA است و از کلیه کامپایلرهایSTM32 پشتیبانی می کند.

برای اطلاعات بیشتر، به داکیومنت های شرکت STM مراجعه کنید. که شامل AN4299 ، AN4310 ، AN4312 و AN4316 است.

موفق باشید.

  نظرات

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

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