PCB Power Integrity: 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
เราใช้ PCB MB2059 ของ STMicroelectronics เพราะมีทั้งไฟล์ Altium .PcbDoc และเอาต์พุต ODB++ เราป้อน ODB++ เข้า KiPI พร้อมไฟล์ pdn.json ของ Tomachie ส่วน FYPA ใช้ .PcbDoc กับไฟล์ pdn.json ของ Tomachie ไฟล์เดียวกัน
จุดประสงค์ของงานนี้ไม่ใช่การตัดสินว่าเครื่องมือใดดีกว่า แต่เพื่อให้ได้การตรวจสอบยืนยัน และหาข้อผิดพลาดทั้งในเครื่องมือทั้งสองและใน Tomachie ผลที่ได้คือเราได้ส่งการแก้ไขกลับไปยังโปรเจกต์ต้นทางทั้งสอง: pull request ที่ถูกรวมแล้วหกรายการใน KiPI และหนึ่งรายการใน FYPA และแบ่งปันผลลัพธ์ไว้ที่นี่ แม้จะใช้ตัวแก้สมการต่างกันและข้อมูล PCB ต่างกัน (ODB++ และ .PcbDoc) ตอนนี้ทั้งสองให้ผลตรงกันภายใน 0.2 mV ในทุกเรล
Tomachie อ่านแผนผังวงจรของ MB2059 และดาต้าชีต แล้วเขียนไฟล์ power tree หนึ่งไฟล์: ทุกเรล เรกูเลเตอร์ของเรลนั้น พิกัดความคลาดเคลื่อนเอาต์พุตของเรกูเลเตอร์ ขาและกระแสสูงสุดของโหลดแต่ละตัว และแรงดันจ่ายต่ำสุดที่ดาต้าชีตของโหลดแต่ละตัวยอมรับ จากนั้น 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 (buck ±1.5 %, LDO1 ±4 %, LDO2 / 5 / 6 ±2 %), ST1S31 สำหรับ 3V3
ตารางบอกอะไร
เครื่องมือวิเคราะห์พลังงานทั้งสองตรงกันภายใน 0.2 mV ในทุกเรล ทั้งสองไม่ได้ใช้โค้ดคำนวณร่วมกัน ผลตรงกันเพราะทั้งคู่อ่าน power tree เดียวกันและทองแดงชุดเดียวกัน
มาร์จินส่วนใหญ่ของแต่ละเรลถูกใช้ไปกับความคลาดเคลื่อนของเรกูเลเตอร์ ไม่ใช่ทองแดง LDO 1.8 V กำหนดไว้ที่ ±4 % ขอบล่าง (1.728 V) จึงสูงกว่าค่าต่ำสุด 1.71 V ของ STM32MP215 เพียง 18 mV ก่อนนับทองแดง ทองแดงบนบอร์ดใช้ไปราว 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 ตามความถี่เทียบกับอิมพีแดนซ์เป้าหมาย สำหรับการเปลี่ยนโหลดแบบขั้นและการดีคัปปลิง 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: เครื่องมือวิเคราะห์ power integrity แบบโอเพนซอร์สสำหรับ KiCad
FYPA ที่ดูแลโดย anarthrous-eda: เครื่องมือ DC power integrity แบบโอเพนซอร์สสำหรับ Altium