แหล่งจ่ายไฟ Arduino นี้ออกแบบมาเพื่อ "ทำในสิ่งที่ถูกต้อง" ไม่ว่าจะเสียบปลั๊กแหล่งจ่ายไฟใด
สิ่งที่ถูกต้อง
"สิ่งที่ถูกต้อง" คือ:
- เมื่อมีคนเสียบสาย USB เท่านั้น CPU และทุกสิ่งอื่นที่ขับเคลื่อนโดยสาย + 5V จะใช้พลังงานจาก + 5V USB
- เมื่อบุคคลเสียบปลั๊กไฟผนังอย่างถูกต้องเพียง 12 โวลต์ซีพียูและทุกอย่างอื่นที่ขับเคลื่อนโดยสาย + 5V จะได้รับพลังงานจากตัวควบคุมแรงดันไฟฟ้า + 5V ที่ขับเคลื่อนโดยกำแพงหูด
- เมื่อมีคนเสียบสาย USB และผนังหูดอย่างถูกต้องในเวลาเดียวกันพลังงานทั้งหมดมาจากผนังหูดและไม่มีกระแสไฟฟ้า "ไหลย้อนกลับ" ไปยังโฮสต์ USB
- เมื่อบุคคลทำการเสียบและถอดปลั๊กสายไฟจะทำการเปลี่ยนจากที่หนึ่งไปยังอีกที่หนึ่งอย่างราบรื่นดังนั้นตราบใดที่มีอย่างน้อยหนึ่งที่เสียบอย่างถูกต้องตลอดเวลา CPU จะยังคงทำงานอย่างต่อเนื่อง
- เมื่อ (ไม่ใช่ "If"!) เมื่อมีคนเสียบผนังหูด 12 V ไม่ถูกต้อง - ขั้วกลับขั้ว - ไม่มีกระแสไหลเข้าหรือออกจากผนังหูดไม่มีความเสียหายและระบบจะทำหน้าที่เหมือนกับว่า หูดที่ผนังไม่ได้เสียบอยู่เลย
หูดผนัง
ระบบจำนวนมากใช้ 1 ไดโอดสำหรับแหล่งพลังงานแต่ละแหล่งเพื่อให้พลังงานระบบจากแรงดันไฟฟ้าขาเข้าที่สูงกว่าซึ่งจะจัดการกับข้อกำหนด "การเปลี่ยนผ่านอย่างราบรื่น" โดยอัตโนมัติ
ไดโอดทำงานได้ดีบนด้านพลังงานผนังหูด
พลังงาน USB
อนิจจาไดโอดทางด้านพลังงาน USB ไม่สามารถใช้งานกับ Arduino ได้ เมื่อปิดการใช้งาน USB เพียงอย่างเดียวการลดลงของไดโอด (โดยทั่วไปจะประมาณ 0.6 V) จะทำให้ทุกอย่างของการทำงานลดลงไดโอดที่ต่ำกว่าพลังงาน USB - ดังนั้นโดยทั่วไปแล้วจะมี 4.4 V ซึ่งไม่เพียงพอ
ส่วนลึกลับ
วงจร Arduinoรุ่นที่ใหม่กว่าติดป้ายกล่อง 3 พิน "powersupply DC 21mm" ไว้อย่างชัดเจนเพื่อระบุปลั๊กกระบอกขนาด 21 มม.
พิน "4" และ "8" ลึกลับที่อยู่ด้านบนซ้ายของวงจร Arduinoคือพินพาวเวอร์ของ op-amp คู่ 8 พิน op-amp นั้นถูกใช้ที่นี่เป็นตัวเปรียบเทียบ
ความคิด
ฉันไม่รู้ว่าทำไมผู้ออกแบบไม่ได้ใช้ตัวเปรียบเทียบ IC หรือทำไมนักออกแบบจึงใช้ทั้ง op-amps ในแพ็คเกจเมื่อ op-amp เพียงอันเดียวเพียงพอ - แต่เนื่องจากมันใช้งานได้อย่างชัดเจนฉันจะไม่ไป บอกว่ามันเป็น "ผิด"
op-amp และ pFET ใช้บางสิ่งบางอย่างที่ใกล้เคียงกับ "ไดโอดในอุดมคติ": เมื่อเสียบสาย USB เท่านั้น op-amp จะขับเคลื่อน pFET อย่างหนักใน ON ทำให้แรงดันตกคร่อม pFET น้อยกว่า 0.1 V (เช่นนั้น ทุกอย่างทำงานบนบางสิ่งที่ใกล้พอถึง 5.0 V)
เมื่อมีคนเสียบสาย USB เข้ากับ Arduino ที่ก่อนหน้านี้ไม่มีอะไรเสียบเข้าร่างกายของ pFET "T1" จะให้พลังงานจากสายเคเบิล USB รั่วไหลออกมาเพียงพอที่จะบูตแรงดันไฟฟ้าของ op-amp ได้ถึง 4.6 V มากเกินพอที่จะจ่ายไฟให้กับ op-amp ซึ่งเปลี่ยนเป็น pFET อย่างหนักดึงแรงดันไฟฟ้าที่เหลือไปจนถึงมากกว่า 4.9 V
เมื่อมีคนเสียบผนังหูดเข้ากับแจ็คไฟ Arduino, op-amps ปิด pFET ยาก ไดโอดตัว pFET ป้องกันไฟจากตัวปรับแรงดันไฟฟ้ากลับไปยังโฮสต์ USB ตามหลักการแล้วพลังงาน USB สามารถไหลผ่านไดโอดตัว pFET ไปยัง Arduino ได้ แต่มันจะไม่สำคัญเลยทีเดียวเนื่องจากพลังงาน USB นั้นใกล้เคียงกับแรงดันไฟฟ้าเดียวกับแรงดันไฟฟ้าควบคุมที่เกิดจากผนังหูด
ps: เมื่อ บริษัท เล็ก ๆ ขาย250,000 บอร์ดฉันใช้คำว่า "ประสบความสำเร็จ" โดยส่วนตัวแทนที่จะเป็น "หุ่น"