ما را دنبال کنید !
Facebook Instagram

مود های کم مصرف در STM32

میکروکنترلر های stm32 زمانی که system or power reset می شوند به صورت پیش فرض به مود run وارد می شوند . مود های کم مصرف برای کاهش مصرف cpu زمانی که احتیاج به آن نیست طراحی شده اند ، برای مثال انتظار برای وقوع یک رخداد خارجی .
این بر عهده برنامه نویس است تا بین مصرف توان پایین ، زمان start up کم و منابع wake up قابل دسترس ، تطبیق ایجاد کند .
میکروکنترلر های stm32 دارای ۳ مود کم مصرف می باشند :
۱ . مود sleep که کلاک cpu را غیر فعال می کند ولی جانبی هایی که وابسته به هسته cortex هستند مثل nvic و systick و … را فعال نگه می دارد
۲. مود stop ، همه کلاک ها متوقف شده اند .
۳. مود standby
علاوه بر مود های بالا ، مصرف توان در مود run نیز توسط اعمال زیر کاهش پیدا کند :
۱ .کم کردن کلاک سیستم
۲ .خاموش و روشن کردن کلاک جانبی ها زمانی که مورد احتیاج هستند یا نیستند .
در مود RUN سرعت کلاک های سیستم مثل SYSCLK ، HCLK ، PCLK1 و PCLK2 می توانند با برنامه ریزی رجیستر های prescaler شان کاهش پیدا کنند . برای تنظیم این ویژگی ها به رجیستر RCC_CFGR مراجعه کنید .

SLEEP MODE :
مود sleep دارای دو حالت Sleep-now و Sleep-on-exit است

STOP MODE :
مود STOP بر مبنای مود deepsleep در cortex-m3 است و با راهگشایی کلاک های جانبی ها همراه است .همه کلاک های مبتنی بر ولتاژ ۱.۸ ولت و نیز PLL و HSI و HSE غیر فعالند و SRAM و محتویات رجیستر ها در همان حالت فعلی شان save می شوند و وضعیت همه IO ها در حالت خودشان باقی می ماند .
اگر در حال برنامه ریزی flash باشیم ورود به stop تا زمانی که برنامه ریزی خاتمه پذیرد به تاخیر می افتد .
اگر در حال دسترسی از طریق APB باشیم ورود به stop تا زمان خاتمه یافتن دسترسی به تاخیر می افتد .
وقتی از مود stop توسط وقفه یا wake up خارج می شویم کلاک سیستم شروع به استفاده از HSI می کند .

STANDBY MODE :
این مود اجازه دستیابی به کمترین توان مصرفی را می دهد .این مود بر اساس deepsleep در هسته cortex-m3 است و رگولاتور ولتاژ را غیر فعال می کند . ادوات ۱.۸ ولت نیز خاموش می شوند .PLL وHSI وHSE نیز خاموش می شوند . SRAM و رجیستر های دیگر نیز داده هایشان از بین می رود به جز رجیستر Backup و تنظیم جریان برق standby .
در مود standby ویزگی های زیر می توانند برنامه ریزی شوند .
IWDG
LSI RC
LSE OSC
RTC
بعد از خروج از standby اجرای برنامه به همان شیوه بعد از ریست شدن به کار می پردازد .
بیت SBF در PWR_CSR نشان می دهد که MCU در standby است یا نه.
در standby همه IO ها در وضعیت high impedance قرار می گیرند به جز سه پایه زیر :
NRST Tamper pin ,Wkup ,pin
AWU :
با RTC می توان MCU را از مود های low power خارج کرد . RTC برای خارج کردن MCU از مود های stop یا standby در فاصله های زمانی مشخص می تواند برنامه ریزی شود .

Leave a Reply

Your email address will not be published.Required fields are marked *


Notice: ob_end_flush(): failed to send buffer of zlib output compression (1) in /home/puyaele1/public_html/wp-includes/functions.php on line 4757

Notice: ob_end_flush(): failed to send buffer of zlib output compression (1) in /home/puyaele1/public_html/wp-includes/functions.php on line 4757