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

מה בעצם נכבה בכל מצב

השמות משתנים בין יצרן ליצרן, אך מצבי שינה במיקרו בקר מסודרים כמעט תמיד באותה היררכיה. במצב Sleep הליבה נעצרת בעוד הפריפריות והשעונים ממשיכים לעבוד; זהו חיסכון מתון עם התעוררות כמעט מיידית. במצב Stop רוב השעונים נעצרים, ה-RAM נשמר, וההתעוררות אורכת עשרות מיקרו שניות. במצב Standby או Shutdown כמעט הכול כבוי, הצריכה יורדת למיקרואמפרים בודדים, אך המערכת מתעוררת כמו לאחר איפוס ומאבדת את מצב הזיכרון. הבחירה בין המצבים היא תמיד פשרה בין צריכה, זמן התעוררות וכמות ההקשר שנשמרת.

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

לתכנן סביב אירועים ולא סביב לולאה

הטעות הנפוצה ביותר היא קושחה שרצה בלולאה אינסופית ובודקת חיישנים שוב ושוב. ארכיטקטורה חסכונית עובדת הפוך: הבקר ישן, ואירוע חיצוני מעיר אותו — פסיקה מפין, טיימר בזמן אמת, או חיישן שמדווח על חריגה בעצמו. כך זמן הפעילות מצטמצם למינימום. הבחירה בין ארכיטקטורות משפיעה ישירות על היכולת הזו, ולכן כדאי לקרוא על RTOS או Bare Metal לפני שקובעים את המבנה. בפרויקטים רבים בתחום פיתוח תוכנה embedded מעבר לגישה מונחית אירועים הוריד את הצריכה הממוצעת בסדר גודל שלם. כדאי גם לוודא שהקושחה אינה נשארת ערה בגלל משימת רקע שולית: חוט יחיד שמתעורר כל עשר מילישניות כדי לבדוק דגל מספיק כדי לבטל את מרבית החיסכון.

מה שגונב את החשמל אינו הבקר

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

חישוב מחזור העבודה בפועל

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

למדוד, לא לנחש

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

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

רוצים להפוך רעיון למוצר? צרו קשר עם צוות פרוג'קטס האוס בע"מ – טלפון: 054-8936922 | דוא"ל: info@projects-house.com – ונשמח ללוות אתכם משלב הרעיון ועד המדף.