درس 3

🛡 درس 3: تایمر Watchdog در STM32

نویسنده: بهنام کیانی


⏱ Watchdog چیست؟

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

عملکرد Watchdog:
  1. تایمر شروع به شمارش می‌کند
  2. برنامه اصلی باید به طور دوره‌ای آن را ریست کند
  3. اگر ریست نشود → Timeout
  4. میکروکنترلر ریست می‌شود

⚙️ کاربردهای عملی Watchdog


📝 فعال‌سازی IWDG در STM32CubeMX

  1. در تب System Core → IWDG تیک بزنید
  2. تنظیمات:
پارامترمقدار پیشنهادیتوضیح
Prescaler256تقسیم کلاک LSI (~40kHz)
Reload Value780زمان سرریز ≈ 5 ثانیه
تنظیم IWDG در CubeMX

تنظیم IWDG برای 5 ثانیه Timeout


💡 تنظیم GPIO برای تست

  • PC13: خروجی → LED (Blue Pill)
  • PC14: ورودی Pull-up → کلید

💻 کد کامل (HAL)

⚠ اگر کلید فشرده شود → Watchdog ریست نمی‌شود → بعد از 5 ثانیه ریستارت!


📈 نمودار عملکرد

چشمک زدن LED + ریست Watchdog
کلید فشرده → حلقه بی‌نهایت

🔄 Timeout (5 ثانیه) → ریستارت


⚡ خلاصه درس

  • Watchdog = تایمر مستقل برای جلوگیری از هنگ
  • باید به طور دوره‌ای ریست شود
  • در STM32: IWDG (Independent Watchdog)
  • کلاک جداگانه: ~40 kHz (LSI)
  • اگر ریست نشود → میکرو ریستارت می‌شود
پایان درس‌ها 🎉
خانهپروفایلتماس