שלמות הספק של PCB: DC PI של ה-PDN ב-STM32MP215F-DK (MB2059) עם שני מנתחי הספק
KiPI ו-FYPA הם שני מנתחי שלמות הספק (Power Integrity) בקוד פתוח, ושניהם טובים מאוד. KiPI, שמתוחזק על ידי Drew Maatman (github.com/drewsum/KiPI), מתמקד ב-KiCad וקורא גם ODB++, ולכן הוא הפך לבסיס לניפוי באגים ולאימות של הזרימה מ-Tomachie לכלים האלה. FYPA, שמתוחזק על ידי anarthrous-eda (github.com/anarthrous-eda/FYPA), מתמקד ב-Altium.
השתמשנו בלוח MB2059 של STMicroelectronics כי יש לו גם קובץ Altium .PcbDoc וגם פלט ODB++. הזנו את ה-ODB++ ל-KiPI יחד עם קובץ ה-pdn.json של Tomachie, ו-FYPA השתמש בקובץ ה-.PcbDoc עם אותו pdn.json של Tomachie.
מטרת התרגיל לא הייתה לקבוע איזה כלי טוב יותר, אלא לקבל אימות ולמצוא שגיאות בשני הכלים וגם ב-Tomachie. כתוצאה מכך תרמנו תיקונים לשני הפרויקטים המקוריים: שש בקשות משיכה (pull requests) שמוזגו ל-KiPI ואחת ל-FYPA, ואנו משתפים כאן את התוצאות. למרות שהם משתמשים בפותרים שונים ובנתוני PCB שונים (ODB++ ו-.PcbDoc), שני הכלים מתאימים כעת בטווח 0.2 mV בכל מסילה.
Tomachie קרא את השרטוט החשמלי של MB2059 ואת דפי הנתונים וכתב קובץ עץ הספק אחד: כל מסילה, הווסת שלה, טולרנס המוצא של הווסת, הפינים והזרם המרבי של כל עומס, ומתח האספקה המינימלי שדף הנתונים של כל עומס מתיר. אחר כך KiPI ו-FYPA פתרו את אותו קובץ על הנחושת של הלוח עצמו.
מקרה גרוע בכל מקום: כל ווסת בקצה התחתון של תחום המוצא שלו לפי דף הנתונים, כל עומס בזרם המרבי שלו, כניסת ה-USB במינימום שלה. השאלה לכל מסילה היא אם המתח בפינים של העומס נשאר מעל המינימום שבדף הנתונים שלו.
הדוח המלא של STM32MP215F-DK (MB2059)
תוצאות DC PI, מסילה אחר מסילה
| מסילה | נומינלי (V) | קצה תחתון של הווסת (V) | העומס הקריטי ביותר | מינימום העומס (V) | KiPI (V) | FYPA (V) | KiPI − FYPA (mV) | מרווח (mV) | תוצאה |
|---|---|---|---|---|---|---|---|---|---|
| VDDCORE | 0.82 | 0.8077 | U7 STM32MP215 | 0.792 | 0.8034 | 0.8034 | 0.0 | +11.4 | PASS |
| VDDCPU | 0.80 | 0.7880 | U7 STM32MP215 | 0.768 | 0.7861 | 0.7861 | 0.0 | +18.1 | PASS |
| VDD2_DDR | 1.10 | 1.0835 | U7 STM32MP215 | 1.060 | 1.0793 | 1.0795 | −0.2 | +19.3 | PASS |
| VDD1_DDR | 1.80 | 1.7280 | U8 LPDDR4 | 1.700 | 1.7273 | 1.7271 | +0.2 | +27.1 | PASS |
| VDDA1V8 | 1.80 | 1.7280 | U7 STM32MP215 | 1.710 | 1.7262 | 1.7260 | +0.2 | +16.0 | PASS FYPA: מרווח נמוך |
| VDDA1V8_AON | 1.80 | 1.7280 | U7 STM32MP215 | 1.710 | 1.7272 | 1.7271 | +0.1 | +17.1 | PASS FYPA: מרווח נמוך |
| VDDIO | 3.30 | 3.2300 | U7 STM32MP215 | 2.700 | 3.2282 | 3.2281 | +0.1 | +528.1 | PASS |
| 3V3 | 3.30 | 3.1530 | U15 LAN8742A | 3.000 | 3.1043 | 3.1042 | +0.1 | +104.2 | PASS |
מרווח = הנמוך מבין שני המתחים שחושבו פחות המינימום שבדף הנתונים של העומס. FYPA מסמן עומס שהמרווח שלו קטן מ-1 % מהערך הנומינלי של המסילה (ברירת המחדל שלו); KiPI מדווח על המתח והמרווח ללא רצועת אזהרה.
מינימום העומסים: STM32MP215 טבלה 17 עמ' 87; Micron MT53E LPDDR4 VDD1 / VDD2; LAN8742A פעולה ב-3.3 V. תחומי הווסתים: דיוק המוצא של STPMIC2 (±1.5 % ממירי buck, ±4 % LDO1, ±2 % LDO2 / 5 / 6), ST1S31 עבור 3V3.
מה הטבלה מראה
שני מנתחי ההספק מתאימים בטווח 0.2 mV בכל מסילה. אין להם קוד פתרון משותף; ההתאמה נובעת מכך ששניהם קוראים את אותו עץ הספק ואת אותה נחושת.
רוב כל מרווח נלקח בידי הטולרנס של הווסת, לא בידי הנחושת. ה-LDO של 1.8 V מוגדר ב-±4 %, ולכן הקצה התחתון שלו (1.728 V) נמצא רק 18 mV מעל המינימום של 1.71 V של STM32MP215 עוד לפני הנחושת. הנחושת של הלוח לוקחת מזה כ-2 mV (מתוכם 0.5 mV בנתיב החזרה דרך האדמה) ומשאירה 16–17 mV: מתחת לקו ה-1 % של FYPA, סימון נכון לגבי בחירת הווסת. ל-VDDCORE המרווח הקטן ביותר במיליוולט (11.4 mV) והוא עובר בשניהם, כי זה 1.4 % מתוך 0.82 V שלו.
מפל הנחושת הגדול ביותר בלוח הוא ב-3V3: רכיב ה-Ethernet PHY מסוג LAN8742A צורך 139 mA בנקודת העבודה הגרועה ביותר שלו (10BASE-T עם תעבורה, זרם שידור דרך שנאי ה-Ethernet, דף הנתונים טבלה 5-5 עמ' 105), ומתוכם 93 mA זורמים דרך הפריט L4 אל פיני האספקה האנלוגיים שלו. הנתיב הזה מפיל 48 mV ומשאיר 3.104 V ב-U15 מול מינימום של 3.0 V. לכל עומס ב-3V3 יש זרם מדף הנתונים: 213.6 mA בסך הכול.
קודם DC PI, אחר כך AC PI
זהו DC PI: מפל המתח בזרם של המקרה הגרוע, שכל מסילה חייבת לעבור קודם. AC PI בוחן את האימפדנס של ה-PDN לאורך התדר מול אימפדנס יעד, עבור קפיצות עומס וניתוק (decoupling). KiPI יכול גם לסרוק את האימפדנס של ה-PDN; AC PI של הלוח הזה הוא השלב הבא.
דוחות
- דוח KiPI, זרם מרבי · 36 MB, HTML עצמאי
- דוח KiPI, זרם טיפוסי · 36 MB
- דוח FYPA, זרם מרבי · 1.7 MB
- דוח FYPA, זרם טיפוסי · 1.7 MB
- כל ארבעת הדוחות · zip, 32 MB
KiPI, שמתוחזק על ידי Drew Maatman: מנתח שלמות ההספק בקוד פתוח ל-KiCad
FYPA, שמתוחזק על ידי anarthrous-eda: כלי שלמות הספק DC בקוד פתוח ל-Altium