Tomachie

סקר תכן ברמה מסחרית לכל PCB.

הגשה דוגמאות כיצד זה עובד פרטיות אודות סטטיסטיקה ביקורות בלוג
← חזרה לבלוג

שלמות הספק של 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 במינימום שלה. השאלה לכל מסילה היא אם המתח בפינים של העומס נשאר מעל המינימום שבדף הנתונים שלו.

תוצאות DC PI, מסילה אחר מסילה

מסילהנומינלי (V)קצה תחתון של הווסת (V)העומס הקריטי ביותרמינימום העומס (V)KiPI (V)FYPA (V)KiPI − FYPA (mV)מרווח (mV)תוצאה
VDDCORE0.820.8077U7 STM32MP2150.7920.80340.80340.0+11.4PASS
VDDCPU0.800.7880U7 STM32MP2150.7680.78610.78610.0+18.1PASS
VDD2_DDR1.101.0835U7 STM32MP2151.0601.07931.0795−0.2+19.3PASS
VDD1_DDR1.801.7280U8 LPDDR41.7001.72731.7271+0.2+27.1PASS
VDDA1V81.801.7280U7 STM32MP2151.7101.72621.7260+0.2+16.0PASS FYPA: מרווח נמוך
VDDA1V8_AON1.801.7280U7 STM32MP2151.7101.72721.7271+0.1+17.1PASS FYPA: מרווח נמוך
VDDIO3.303.2300U7 STM32MP2152.7003.22823.2281+0.1+528.1PASS
3V33.303.1530U15 LAN8742A3.0003.10433.1042+0.1+104.2PASS

מרווח = הנמוך מבין שני המתחים שחושבו פחות המינימום שבדף הנתונים של העומס. 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, שמתוחזק על ידי Drew Maatman: מנתח שלמות ההספק בקוד פתוח ל-KiCad

FYPA, שמתוחזק על ידי anarthrous-eda: כלי שלמות הספק DC בקוד פתוח ל-Altium