השאלה ששווה הרבה כסף בייצור

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

מה צורך Flash — ומה צורך RAM

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

  • מחסניות תקשורת אלחוטית. BLE דורש בדרך כלל עשרות KB של Flash וכ-8–16KB של RAM; Wi-Fi עם TLS יכול לדרוש מאות KB של Flash ו-50KB ומעלה של RAM. פירוט על צד ה-BLE במאמר פיתוח BLE בקושחה.
  • הצפנה ואבטחה. ספריות TLS, חתימות ואימות קושחה — תוספת ניכרת גם ב-Flash וגם ב-RAM.
  • מערכת הפעלה. RTOS קומפקטי צורך מעט; סביבה עשירה יותר — הרבה יותר. ראו RTOS או Bare Metal.
  • תצוגה גרפית. Framebuffer למסך צבעוני קטן יכול לבדו לצרוך יותר RAM מכל שאר המערכת יחד.
  • לוגים ונתונים. שמירת היסטוריית מדידות ב-Flash הפנימי דורשת הקצאה ייעודית וניהול שחיקה.

הגורם שכולם שוכחים: עדכוני קושחה

אם המוצר תומך בעדכון מרחוק (OTA) בסכימת שני בנקים — וזה הסטנדרט המומלץ למוצר מחובר — צריך מקום לשתי גרסאות מלאות של הקושחה בו-זמנית, ועוד bootloader. בפועל: הכפילו את גודל האפליקציה, והוסיפו 16–64KB למטען האתחול. מי שמדלג על זה מגלה שאין דרך לעדכן מוצרים בשטח — הרחבה במאמרים Bootloader במיקרו-בקר ועדכוני תוכנה מרחוק במוצר.

שיטת הערכה מעשית

  1. בנו אב-טיפוס קושחה מוקדם. גם שלד עם המחסניות העיקריות (תקשורת, RTOS, דרייברים) נותן מספר בסיס אמין הרבה יותר מכל טבלה תיאורטית.
  2. מדדו, אל תנחשו. ה-linker map מראה בדיוק מי צורך מה. עברו עליו אחרי כל אבן דרך.
  3. הוסיפו רזרבה של 30–50%. קושחה רק גדלה עם הזמן: תיקוני באגים, פיצ'רים שנוספו, דרישות אבטחה חדשות. מוצר שמגיע לייצור עם 95% ניצול Flash הוא בעיה מתוזמנת.
  4. בחרו משפחה עם מדרגות זיכרון. עדיף מיקרו-בקר שקיים באותה אריזה עם 256KB, 512KB ו-1MB — כך אפשר לעלות או לרדת מדרגה בלי לשנות את המעגל. שיקולי הבחירה הרחבים מפורטים במאמר בחירת מיקרו-בקר למוצר.

ומה אם בכל זאת חסר זיכרון

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

סדרי גודל להתמצאות ראשונית

  • בקר פשוט (חיישן, ממסר, לוגיקה בסיסית): 32–128KB Flash, ‏4–16KB RAM.
  • מוצר BLE (חיישן חכם, מוצר לביש בסיסי): 256–512KB Flash, ‏32–64KB RAM.
  • מוצר Wi-Fi/ענן עם OTA והצפנה: ‏1MB Flash ומעלה, 128–256KB RAM.
  • מוצר עם מסך גרפי או עיבוד אות כבד: לרוב נדרש גם זיכרון חיצוני.

אלה נקודות פתיחה, לא מפרט — הפרויקט שלכם ייקבע לפי מדידה בפועל.

שורה תחתונה

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

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