تغییر فرکانس ساعت (Clock) برای کاهش توان مصرفی میکروکنترلر
محتویات
فرکانس ساعت را برای کاهش مصرف توان میکروکنترلر تغییر دهید!
توسعه دهندگان همیشه در ارائه سطوح بالای عملکرد و کارایی همزمان با به حداکثر رساندن عمر باتری با چالش مواجه هستند. همچنین در مورد محصولات الکترونیکی، مهمترین ویژگی مصرف باتری است. افزایش زمان کارکرد دستگاه باید تا حد امکان کمتر باشد. مدیریت انرژی در کاربرد های قابل حمل و دارای باتری بسیار مهم است. تفاوت مصرف میکرو آمپر می تواند به ماه ها یا سال ها عمر مفید منجر شود که می تواند محبوبیت محصول را در بازار افزایش یا کاهش دهد.
امروزه، کاربران نیاز به باتری با عمر طولانی و اندازه جمع و جور برای محصولات دارند، بنابراین تولید کنندگان بر روی باتری کوچکتر با عمر فوق العاده طولانی تمرکز می کنند. اما، توسعه دهندگان پس از بررسی بسیاری از عوامل و پارامتر های حیاتی مؤثر برعمر باتری، به فناوریهای صرفه جویی در مصرف توان دست یافته اند.
پارامتر های زیادی مانند میکروکنترلر مورد استفاده، ولتاژ عملیاتی، مصرف جریان، دمای محیط، شرایط محیطی، لوازم جانبی مورد استفاده، چرخه های شارژ و تخلیه و… بر استفاده از باتری تاثیر میگذارند. با توجه به روند ورود محصولات هوشمند به بازار، این امر بسیار مهم است. برای بهینه سازی عمر باتری، ابتدا بر روی میکروکنترلر استفاده شده تمرکز کنید. هنگامی که صحبت از صرفه جویی در مصرف انرژی در محصولات با اندازه کوچک می شود، میکروکنترلر بخش مهمی می شود. بنابراین توصیه می شود که ابتدا با میکروکنترلر شروع کنید. اکنون، میکروکنترلر با روش های مختلف صرفه جویی در مصرف انرژی ایجاد شده است. برای کسب اطلاعات بیشتر در مورد به حداقل رساندن مصرف توان در میکروکنترلر ها (MCU)، به مقاله قبلی مراجعه کنید. این مقاله عمدتاً بر یکی از پارامتر های مهم برای کاهش مصرف انرژی در میکروکنترلر یعنی تغییر فرکانس ساعت متمرکز است، که باید هنگام استفاده از میکروکنترلر برای کاربرد های کم مصرف به آن توجه شود.
چرا باید فرکانس ساعت را در میکروکنترلر ها تغییر داد؟
از بین بسیاری از پارامتر های ذکر شده در بالا، انتخاب فرکانس ساعت نقش بسیار مهمی در صرفه جویی مصرف توان دارد. این مطالعه نشان میدهد که انتخاب نادرست فرکانس کاری میکروکنترلر ها میتواند منجر به کاهش قابل توجه توان باتری شود. به منظور جلوگیری از این اتلاف، توسعه دهندگان باید در انتخاب فرکانس مناسب برای میکروکنترلر دقت کنند. در حال حاضر، لازم نیست که انتخاب فرکانس در ابتدا و در حین تنظیم میکروکنترلر انجام شود، در حالی که می توان آن را در بین برنامه نویسی نیز انتخاب کرد. میکروکنترلر های زیادی وجود دارد که با انتخاب بیت برای انتخاب فرکانس کاری دلخواه ارائه می شود. همچنین میکروکنترلر می تواند در فرکانس های مختلفی اجرا شود، بنابراین توسعه دهندگان بسته به کاربرد فرکانس مناسب را انتخاب می کنند.
تاثیر انتخاب فرکانس های مختلف بر عملکرد چیست؟
شکی نیست که انتخاب فرکانس های مختلف بر عملکرد میکروکنترلر تاثیر خواهد گذاشت. بعنوان شرایط میکروکنترلر، کاملاً مشخص است که فرکانس و عملکرد متناسب هستند. یعنی فرکانس بیشتر باعث زمان اجرای کد کمتر شده و در نتیجه سرعت اجرای برنامه بیشتر خواهد بود. بنابراین اکنون، بسیار واضح است که اگر فرکانس تغییر کند، عملکرد نیز تغییر خواهد کرد. اما لازم نیست که توسعه دهندگان به خاطر عملکرد بیشتر میکروکنترلر، به یک فرکانس بچسبند.
فرکانس پایین یا زیاد، کدام یک بهتر است؟
همیشه اینطور نیست که میکروکنترلر مجبور به ارائه عملکرد بالا باشد، کاربرد های زیادی وجود دارند که به عملکرد متوسط میکروکنترلر نیاز دارند، در این نوع کاربرد ها توسعه دهندگان می توانند فرکانس کاری را از گیگاهرتز به مگاهرتز و حتی به حداقل فرکانس مورد نیاز برای اجرای میکروکنترلر کاهش دهند.
اگرچه در برخی موارد عملکرد بهینه مورد نیاز است و همچنین زمان اجرا بسیار مهم است، مانند هنگام راه اندازی ADC های فلش خارجی بدون بافر FIFO، یا در پردازش ویدئو و بسیاری از کاربرد های دیگر، در این زمینه ها توسعه دهندگان می توانند از فرکانس بهینه میکروکنترلر استفاده کنند.
توسعه دهندگان می توانند به صورت هوشمندانه کدنویسی کنند تا با انتخاب دستورالعمل مناسب، طول کد را کاهش دهند.
به عنوان مثال: اگر حلقه «for» دستورالعملهای بیشتری را دریافت کند و به طور مشابه بتوانید از چندین خط دستورالعمل استفاده کنید که از حافظه کمتری برای انجام کار بدون استفاده از حلقه «for» استفاده کند، توسعه دهندگان با چندین خط دستورالعمل از استفاده از حلقه «for» اجتناب می کنند.
انتخاب فرکانس مناسب برای میکروکنترلر بستگی به نیاز های کار خواسته شده دارد. فرکانس بالاتر به معنای مصرف انرژی بیشتر و همچنین توان محاسباتی بیشتر است. بنابراین اساساً انتخاب فرکانس یک مبادله بین توان مصرفی و توان محاسباتی مورد نیاز است.
همچنین مزیت اصلی کار در فرکانس پایین، جریان تغذیه کم در کنار RFI کمتر (تداخل فرکانس رادیویی) است.
جریان تغذیه (I) = جریان ساکن (Iq) + ( x Kفرکانس)
Supply Current (I) = Quiescent Current(Iq) + (K x Frequency)
بخش دوم غالب است. انرژی RFI یک میکروکنترلر آنقدر کم است که فیلتر کردن آن بسیار آسان است.
بنابراین اگر برنامه به سرعت سریع نیاز دارد، نگران اجرای سریع آن نباشید. اما اگر مصرف انرژی نگران کننده است، تا جایی که برنامه اجازه می دهد، آهسته تر اجرا کنید.
روش تغییر فرکانس ساعت میکروکنترلر
واحد PLL (حلقه قفل فازها) همیشه در یک میکروکنترلر با کارایی بالا و با سرعت بالا وجود دارد. PLL فرکانس ورودی را به فرکانس بالاتری افزایش میدهد، مثلاً از 8 مگاهرتز به 32 مگاهرتز. این گزینه ای برای توسعه دهنده است که فرکانس کاری مناسب را برای برنامه انتخاب کند.
برخی از برنامه ها نیازی به اجرای با سرعت بالا ندارند، در این صورت توسعه دهندگان باید فرکانس ساعت میکروکنترلر را تا حد امکان پایین نگه دارند تا کار را اجرا کنند. با این حال، در یک پلت فرم فرکانس ثابت، مانند میکروکنترلر 8 بیتی کم هزینه که واحد PLL ندارد، باید کد دستورالعمل را بهبود بخشید تا انرژی پردازش کاهش یابد. همچنین، میکروکنترلر حاوی یک واحد PLL نمیتواند از مزایای روش تغییر فرکانس که به میکروکنترلر اجازه میدهد در فرکانس بالا در دوره پردازش داده کار کند و سپس به عملیات فرکانس پایین برای دوره انتقال داده بازگردد، استفاده کند.
شکل زیر استفاده از واحد PLL را در روش تغییر فرکانس توضیح میدهد.
انتخاب حالت های عملکرد مدیریت ساعت
برخی از میکروکنترلر های پرسرعت از حالت های مختلف مدیریت ساعت مانند حالت توقف، حالت های مدیریت انرژی (PMM) و حالت بیکار پشتیبانی میکنند. امکان جابجایی بین این حالت ها وجود دارد که به کاربر امکان می دهد سرعت دستگاه را در هنگام مصرف توان بهینه کند.
منبع ساعت قابل انتخاب
اسیلاتور کریستالی یک مصرف کننده بزرگ توان در هر میکروکنترلر، به ویژه در هنگام کار با توان کم است. اسیلاتور حلقه ای، که برای شروع سریع از حالت توقف استفاده می شود، همچنین می تواند برای ارائه یک منبع ساعت تقریباً 3 تا 4 مگاهرتز در طول عملکرد عادی استفاده شود. اگرچه هنوز در هنگام روشن شدن به یک اسیلاتور کریستالی نیاز است، اما هنگامی که کریستال تثبیت شد، می توان عملکرد دستگاه را به اسیلاتور حلقه ای تغییر داد و تا 25 میلی آمپر در مصرف توان صرفه جویی کرد.
کنترل سرعت ساعت
فرکانس کاری یک میکروکنترلر بزرگترین عامل در تعیین مصرف توان است. خانواده میکروکنترلر های پرسرعت از حالت های مختلف مدیریت سرعت ساعت پشتیبانی میکنند که با کند کردن یا متوقف کردن ساعت داخلی، در مصرف توان صرفهجویی میکنند. این حالت ها به توسعه دهنده سیستم اجازه می دهد تا صرفه جویی در مصرف توان را با حداقل تأثیر بر عملکرد به حداکثر برساند.
اجرای نرم افزار از حافظه غیر فرار یا RAM
توسعه دهندگان باید به دقت بررسی کنند که نرم افزار از حافظه های غیر فرار یا RAM در تخمین مصرف جریان اجرا می شود. اجرای از RAM می تواند مشخصات جریان فعال کمتری را ارائه دهد. با این حال، بسیاری از کاربرد ها به اندازه کافی کوچک نیستند که فقط از RAM اجرا شوند و نیاز به اجرای برنامه ها از حافظه غیر فرار دارند.
ساعت های bus فعال یاغیر فعال
اکثر کاربرد های میکروکنترلر در طول اجرای نرم افزار نیاز به دسترسی به حافظه ها و تجهیزات جانبی دارند. این امر مستلزم فعال بودن ساعت های bus است و باید در تخمین جریان فعال در نظر گرفته شوند.
استفاده از اسیلاتور داخلی
استفاده از اسیلاتور های داخلی و اجتناب از اسیلاتور های خارجی می تواند در مصرف انرژی صرفه جویی زیادی داشته باشد. اسیلاتور های خارجی جریان بیشتری میکشند و در نتیجه توان بیشتری مصرف می کنند. همچنین استفاده از اسیلاتور های داخلی سخت نیست، زیرا زمانی که کاربرد ها به فرکانس ساعت بیشتری نیاز دارند، استفاده از اسیلاتور های خارجی توصیه می شود.
نتیجه گیری
ساخت یک محصول کم مصرف با انتخاب میکروکنترلر شروع می شود و زمانی که گزینه های متنوعی در بازار موجود باشد این انتخاب بسیار دشوار است. تغییر فرکانس می تواند تاثیر زیادی بر مصرف توان داشته باشد. مزیت اضافی اصلاح فرکانس این است که هزینه سخت افزاری اضافی وجود ندارد و به راحتی می توان آن را در نرم افزار پیاده سازی کرد. این روش می تواند برای بهبود بهره وری انرژی یک میکروکنترلر کم هزینه استفاده شود. علاوه بر این، میزان صرفه جویی در انرژی به تفاوت بین فرکانس های عملیاتی، زمان پردازش داده ها و معماری میکروکنترلر بستگی دارد. با استفاده از روش تغییر فرکانس در مقایسه با عملکرد معمولی، می توان تا 66.9٪ صرفه جویی در انرژی را به دست آورد.
در پایان، برای توسعه دهندگان، برآوردن نیاز های افزایش عملکرد سیستم و اهداف عملکرد و در عین حال افزایش عمر باتری محصولات، یک چالش مهم است. برای توسعه مؤثر محصولاتی که طولانی ترین عمر باتری ممکن را ارائه می کنند و یا حتی بدون باتری کار می کنند، نیاز به درک عمیقی از الزامات سیستم و مشخصات جریان میکروکنترلر دارد. این بسیار پیچیده تر از تخمین میزان جریان مصرفی میکروکنترلر در هنگام فعال است. بسته به برنامه در حال توسعه، اصلاح فرکانس، جریان آماده به کار، جریان محیطی ممکن است تاثیر مهم تری بر عمر باتری نسبت به توان میکروکنترلر داشته باشد.
این مقاله برای کمک به توسعه دهندگان ایجاد شده است تا بفهمند که میزان توان مصرفی میکروکنترلر ها چقدر است و چگونه می توانند با اصلاح فرکانس آن را بهینه کنند.