قسمت چهاردهم : تایمر نگهبان (IWDG)

قسمت چهاردهم : تایمر نگهبان (IWDG)

قسمت چهاردهم : تایمر نگهبان (IWDG)
قسمت چهاردهم : تایمر نگهبان (IWDG)

سیسوگ در قسمت سیزدهم آموزش میکروکنترلر STM8 به ویژگی کاربردی تایمر نگهبان آنالوگ (Analog Watchdog) پرداخت. در این قسمت از مجموعه مقالات آموزش میکروکنترلر STM8  قصد دارد تایمر نگهبانی را که در اکثر میکروکنترلرها وجود دارد به شما آموزش دهد. با سیسوگ همراه باشید تا تایمر نگهبان (IWDG) را فرا گیرید.

تایمر نگهبان (IWDG)

IWDG یک تایمر نگهبان معمولی است که در اکثر میکروکنترلرهای مدرن دیده می‌شود.  هدف این تایمر این است که از میکروکنترلر در مقابل رویدادهای غیرمنتظره که به دلایل غیر متعارف رخ می‌دهد محافظت کند. همان‌طور که از نام آن مشخص است، این تایمر چیزی را با سخت افزارهای جانبی داخلی به اشتراک نمی‌گذارد و تنها با فرکانس (LSI (128KHz کار می‌کند. بنابراین، با کلاک‌های اصلی (HSE یا HSI) کار نمی‌کند.

 

بلوک دیاگرام تایمر نگهبان IWDG

کلاک دیاگرام تایمر نگهبان IWDG

 

IWDG به صورت شمارش معکوس کار می‌کند. هنگامی که شمارنده به صفر برسد، فرمان ریست صادر می‌شود. معمولاً ما می‌خواهیم که فرمان ریست هرگز اتفاق نیفتد بنابراین شمارنده به صورت دوره‌ای به‌ روز می‌شود. اگر به هر دلیلی، شمارنده به روز نشود، ریست اتفاق می‌افتد و MCU را از یک وضعیت فاجعه بار! نجات می‌دهد.

پیکربندی IWDG با SPL بسیار ساده است. مراحل خاصی برای پیگیری وجود دارد، اما SPI آن‌ها را به صورت داخلی مدیرت می‌کند. نیاز داریم که IWDG را پیکربندی کنیم و قبل از اتمام زمان آن را مجدداً بارگیری کنیم.

فرمول مورد نیاز برای محاسبه وقفه در زیر داده شده است:

فرمول محاسبه وقفه تایمر نگهبان IWDG

 

مقادیر معمول از زمان وقفه در زیر نشان داده شده است:

 

زمان وقفه در تایمر نگهبان IWDG

اتصالات سخت افزاری

اتصالات سخت افزاری تایمر نگهبان IWDG

نمونه کد IWDG

توضیحات

در این مثال، به کلاک خارجی و کلاک CPU کاری نداریم چرا که IWDG به آن‌ها وابسته نیست.  می‌توانیم ببینیم که CPU با کلاک  500 کیلوهرتز کار می‌کند، در حالی‌که کلاک خارجی 2 مگاهرتز است.

برای راه اندازی IWDG ابتدا باید آن را فعال کرد و سپس Write Access Protection را اعمال نمود (0x55). فقط باید مقدار  precaler  و مقدار شمارنده را تنظیم کنیم. شمارنده معکوس از این شماره شروع می‌کند و تا صفر می‌شمارد، مگر اینکه در این بین رفرش شود. در این مثال، precaler روی مقدار 128 تنظیم شده و مقدار بارگذاری مجدد روی 153 (0x99) تنظیم شده است. بنابراین، ما زمانی حدود 300ms را دریافت می‌کنیم. پس از اینکه این مقادیر را وارد کردیم باید از تغییرات تصادفی در سیستم عامل جلوگیری کرد و بنابراین باید دسترسی به نوشتن غیرفعال شود.

در ابتدا قبل از اینکه IWDG پیکربندی شود، LED  روشن می‌شود که نشان دهنده شروع به کار سیستم عامل است. در حلقه اصلی، با یک تأخیر زمانی در حلقه “for” تغییر وضعیت می‌دهد. در داخل حلقه، وضعیت  کلید نیز مورد نظر است. اگر کلید پایین نگهداشته شود به معنای حالت منطقی پایین خواهد بود و IWDG  مجدداً بارگذاری می‌شود. اگر وضعیت به حالت منطقی بالا تغییر کند و  300ms سپری شود، ریست اتفاق می‌افتد.

توجه داشته باشید که ممکن است LSI  کالیبراسیون شود. البته این اتفاق به ندرت پیش می‌آید.

تایمر نگهبان IWDG

در قسمت پانزدهم آموزش میکروکنترلر STM8 سیسوگ قصد دارد تایمر نگهبان محدوده ای (WWDG) را آموزش دهد. با سیسوگ همراه باشید.

منبع

لینک‌های دانلود

مطالب مرتبط

 

 

حمایت از electronic girl

خوشحال میشیم برای تداوم و کیفیت ما رو حمایت کنید.

0 نفر

پــــســنــدیـده انـد

توجه

electronic girl
electronic girl

دوستدار الکترونیک

دیدگاه ها

0 دیدگاه

پر بحث ترین ها

مسابقه دوم : چالش برنامه نویسی به زبان C

مسابقه اول سیسوگ (مسابقه اول: درک سخت افزار) انتقادهای زیادی رو در پی داشت تا جایی که حتی خودمم به نتیجه مسابقه...

Zeus ‌ Zeus ‌
  • 2 سال پیش

راه اندازی LCD گرافیکی Nokia 1661 و دانلود کتابخانه آن

LCD گرافیکی یکی از مهم ترین پارامترهای موجود در طراحی انواع مدارات الکترونیکی پیچیده و حتی ساده است ، نمایش وضعیت و...

Zeus ‌ Zeus ‌
  • 4 سال پیش

ریموت کدلرن و چکونگی دکد کردن آن به همراه سورس برنامه

ریموت کنترل امروزه کاربرد زیادی پیدا کرده است؛ از ریموت‌های درب بازکن تا ریموت‌های دزدگیر و کنترل روشنایی همه از یک اصول اولیه پیروی می‌کنند و آن‌هم ارسال اطلاعات به‌صورت بی‌سیم است....

Zeus ‌ Zeus ‌
  • 5 سال پیش

همه چیز درباره ریموت کنترل‌های هاپینگ

امنیت همیشه و در همه‌ی اعصار، مقوله‌ی مهم و قابل‌توجه‌ ای بوده و همیشه نوع بشر به دنبال امنیت بیشتر، دست به ابداعات و اختراعات گوناگونی زده است. ریموت کنترل یکی از این اختراعات است. در این مقاله، به بررسی امنیت انواع ریموت‌های کنترل خواهیم پرداخت....

Zeus ‌ Zeus ‌
  • 5 سال پیش

مسابقه سوم: استخراج داده از رشته ها در زبان C

نزدیک به 5 ماه از مسابقه دوم سیسوگ می‌گذره و فکر کردم که بد نیست یک چالش جدید داشته باشیم! البته چالش‌ها...

Zeus ‌ Zeus ‌
  • 2 سال پیش

مسابقه ششم: بزن میکروکنترلر را بسوزون!

بزنم میکروکنترلر را بسوزونم اونم تو  این شرایط!، طراحی مسابقه از اون چیزی که به نظر می‌رسه سخت‌تر است، باید حواست باشه...

Zeus ‌ Zeus ‌
  • 11 ماه پیش

آموزش قدم به قدم راه اندازی +NRF24L01

آموزش قدم به قدم راه اندازی +NRF24L01  با کتابخانه سازگار با انواع میکروکنترلرها و کامپایلرها قبل از اینکه قسمت بشه با ماژول...

رسول خواجوی بجستانی رسول خواجوی بجستانی
  • 3 سال پیش

ساخت ماینر با FPGA و ARM

چند ماهی هست که تب بیت کوین و ارزهای دیجیتال خیلی بالا رفته! چه شد که این پست را نوشتم همانطور که...

Zeus ‌ Zeus ‌
  • 3 سال پیش

کار با ماژول تمام عیار mc60 – قسمت دوم – راه اندازی OpenCPU

در قسمت اول به یکسری اطلاعات کلی ماژول mc60 پرداختیم، با نرم افزار QNavigator کار کردیم و یک هدربرد هم برای کار...

Mahdi.h   Mahdi.h  
  • 3 سال پیش

مسابقه چهارم: کدام حلقه سریع‌تر است؟

حدود ۷ ماه پیش، مسابقه سوم سیسوگ رو برگزار کردیم و کلی نکته در مورد خواندن رشته‌های ورودی را بررسی کردیم. فکر...

Zeus ‌ Zeus ‌
  • 1 سال پیش
سیـــســـوگ

مرجع متن باز آموزش الکترونیک