אופטימיזציה - חיסכון בהספק

הדרישה למערכות משובצות-מחשב (Embedded system), שהן גם "חכמות" וגם צורכות מעט הספק, כבר קיימת מזמן. בשנים האחרונות, עם התרחבות השימוש בהתקנים ניידים, כגון טלפונים, נגני מוזיקה ווידאו ומצלמות, הנחיצות אף התגברה.

בכדי להאריך את משך-הזמן, בין טעינת סוללות אחת לאחרת, יש לממש מערכות שאינן "זללניות הספק".
יצירת מערכת חסכונית בהספק, אינה משימה טריוויאלית ודורשת תכנון מוקדם. ברוב המקרים, אם חסכון בהספק לא היה אחד מהמאפיינים של מערכת אלקטרונית בזמן שתכננו אותה, יהיה קשה להפוך אותה לכזו, אם היא כבר בשלב המוגמר. לפיכך, יש להגדיר את צמצום-ההספק כמטרה, עוד בשלבים ראשונים, לפני שנגשים למימוש.

Batteries 

להלן, מספר טיפים שיאפשרו לכם לתכנן מערכת חסכונית בהספק. כדאי להשתמש בהם, כשאתם מתכננים פרויקט אלקטרוני, נייד או נייח, שמיועד לפעול על סוללות. תכנון אופטימלי של צריכת ההספק, יאפשר לכם להגדיל את הזמנים שבין החלפת סוללות אחת לאחרת (או טעינה - במקרה של שימוש בסוללות נטענות).

שיטות לחסכון בהספק

  • אם יש אפשרות בחירה של המיקרובקר, בחרו בדגם שידוע כחסכוני בהספק או לפחות, בחרו מיקרובקר שכולל פקודות מובנות, לתמיכה בחסכון בהספק (קיים ברוב הבקרים הנפוצים בשוק).
  • תכננו את החומרה שבמערכת, כך שניתן יהיה להפעיל או לכבות את תתי-המערכות השונות, ללא תלות זו בזו. לדוגמה, אם יש לכם במעגל גם תצוגת LCD וגם תצוגת  7segment, תכננו כך שניתן יהיה לכבות כל אחת מהן, מבלי להשפיע על האחרת.
  • לאורך ריצת הקוד המרכזי של היישום במערכת שלכם, דאגו לכבות את החלקים במעגל, שאינם דרושים לפעולה באותו רגע. הרעיון הבסיסי, דומה לכיבוי האורות בחדרים בבית, שאף-אחד לא שוהה בהם..
  • אם יש לכם השהיות מכוונות בקוד, שדרושות לשם פעולה תקינה של היישום, אל תממשו את ההשהיות הללו בשום-אופן, ע"י ביצוע "לולאות שלא עושות דבר"!  לולאות כאלה שלכאורה אינן מבצעות דבר, ממשיכות למעשה לבזבז סוללה, מבלי שהיישום מבצע פעולה אמיתית (כי המעבד זקוק לאנרגיה, כדי לבצע את הלולאה). הדרך הנכונה לביצוע השהיות "חסכוניות" בקוד, היא להגדיר פסיקת טיימר, שתתרחש בסיום ההשהייה הדרושה. תפעילו את הטיימר ואז תעבירו את הבקר למצב "שינה". כשתתקבל הפסיקה מהטיימר, הבקר "יתעורר" והקוד ימשיך לרוץ. מימוש באופן כזה, יכול לפעמים לחסוך 99% מהסוללה, בהשוואה למימוש עם "לולאה שאינה עושה דבר"! זה נכון בעיקר במערכות שרוב הזמן, אינן עושות פעולה כלשהי, אלא רק ממתינות לאירוע כלשהו שיתרחש. למשל, טלפון אלחוטי, שאינו מבצע דבר, בזמן שלא משתמשים בו ורק ברגע שנלחץ כפתור כלשהו, הטלפון צריך להגיב על הלחיצה.
  • עוד בשלב התכנון, עליכם להבין מיהם הצרכנים הגדולים של המערכת. נסו לממש את הפרויקט, כך שצרכני-ההספק "הכבדים", יפעלו רק כשהם דרושים לפעולה ובכל שאר הזמן, תדאגו שהצרכנים הללו יהיו כבויים. אפילו אם מכבים את הצרכן רק לזמן קצר בכל פעם (נניח חצי שניה) ואז מפעילים אותו לפרק-זמן מסויים (נניח שניה אחת) ואז שוב מכבים..  לאורך זמן, הכיבוי החוזר, עשוי להאריך משמעותית את חיי הסוללות (למשל בזמנים שניתנו בדוגמה, "הכיבוי החוזר" עשוי להאריך את חיי הסוללה בכ-30%..)
  • אם במיקרובקר שלכם, ישנם פיני IO שנותרו ללא שימוש, קבעו את מצבם (0 או 1), בהתאם למצב שצורך הכי מעט הספק. העזרו בדפ-הנתונים של הבקר, כדי לגלות את הנתון הזה.
  • תכננו את הקוד (התוכנית) של הפרויקט, כך שהבקר יעבור למצב הנמכת הספק, בכל רגע בו זה אפשרי, מבלי לפגוע בפעולה הרצויה של המערכת. כלומר, אם ישנם זמנים בהם הבקר לא עושה משהו מסוים, זה סימן שהוא יכול "ללכת לישון" ובכך לחסוך בצריכת ההספק של המערכת.
  • תכננו את החומרה, כך שהבקר יפעל בתדר השעון, המינימלי שאפשרי במערכת. קיים קשר ישיר, בין תדירות העבודה של מיקרובקר לבין צריכת ההספק שלו. עבודה בתדר-שעון נמוך יותר, חוסכת בצריכת ההספק, לאורך זמן.
  • בדקו בדפי-הנתונים של הבקר בו אתם משתמשים. אם ניתן לשלוט על תדירות השעון מתוך התוכנה (הקוד), ממשו את הקוד כך שתדר-השעון יונמך ככל הניתן, בזמנים בהם לא מתבצעת עבודה הדורשת מהירות. ברגע שמגיע שלב בו נדרשת המהירות הרגילה, תחזירו את תדר-השעון של הבקר, למצב עבודה רגיל.

 פרויקט שלא זולל סוללות

הטיפים במאמר זה, אינם מקיפים את כל השיטות הקיימות, ליצירת מעגלים בעלי צריכת הספק מינימלי, אך העצות הללו, עשויות להיות שימושיות, אם אתם מתכננים פרויקט גמר באלקטרוניקה או מערכת אלקטרונית אחרת, שאמורים להיות ניידים ולפעול על סוללות. רוב הטיפים קלים למימוש ודורשים נקיטת צעדים פשוטים, עוד בשלבים הראשונים, כדי שתתקבל מערכת, שלא תסיים את הסוללות בתוך השעה הראשונה לפעולתה.