พอร์ต microcontoller แบบระบายน้ำออก


9

ฉันต้องการเข้าใจแนวคิดของพอร์ตแบบ open-drain เช่นพอร์ต P0 ของไมโครคอนโทรลเลอร์ 8051 ทำไมเราต้องเชื่อมต่อตัวต้านทานแบบดึงขึ้นกับพอร์ต P0

ฉันมีความรู้พื้นฐานเกี่ยวกับ MOSFET และอุปกรณ์อิเล็กทรอนิกส์อื่น ๆ


โอเคดังนั้นสิ่งที่ฉันเข้าใจคือมันทำหน้าที่เหมือนกับพอร์ตอื่น ๆ แต่เราต้องให้แหล่งจ่ายไฟผ่านแหล่งภายนอก ฉันถูกไหม ?
abkds

คำตอบ:


13

ไม่สนใจรายละเอียดเกี่ยวกับการทำงานของ mosfet เอาต์พุตทำหน้าที่เหมือนสวิตช์ลงกราวด์ ไม่สามารถสร้างสัญญาณสูง (+ 5V) ด้วยตัวเอง ตัวต้านทานแบบดึงขึ้นจะถูกใช้เพื่อที่ว่าเมื่อสวิตช์เปิดอยู่เอาต์พุตจะมีค่าสูง เมื่อปิดสวิตช์เอาต์พุตจะต่ำ (0V)

ป้อนคำอธิบายรูปภาพที่นี่


9

มีสองแอปพลิเคชันทั่วไปของ open-drain (หรือ open-collector ในกรณีของ BJTs):

1) การเชื่อมต่อมากกว่าหนึ่งเอาต์พุตไปยังบรรทัดเดียวกัน สิ่งนี้เรียกว่า Wired-OR ตัวอย่างเช่นคุณอาจมีพินการรีเซ็ตสูงตามปกติบนอุปกรณ์ซึ่งถูกรีเซ็ตจากทั้งไมโครคอนโทรลเลอร์พินและแหล่งอื่นพูดด้วยปุ่มกด ขาตั้งค่าถูกผูกไว้สูงพร้อมตัวต้านทานแบบดึงขึ้น ไมโครคอนโทรลเลอร์ถูกกำหนดค่าให้เป็นเอาท์พุทแบบระบายน้ำออก ปุ่มกดถูกผูกติดกับพื้นเมื่อกด หากไมโครคอนโทรลเลอร์ดึงเอาต์พุตเป็น 0 หรือกดปุ่มกดอุปกรณ์จะถูกรีเซ็ต

โปรดทราบว่าเมื่อไมโครคอนโทรลเลอร์ตั้งค่าเอาต์พุตของพินเป็น 1 พินจะถูกตัดการเชื่อมต่อจากบรรทัด มันไม่ได้ขับสาย ("การจัดหา") ด้วยแรงดันไฟฟ้าใด ๆ ดังนั้นเมื่อปุ่มกดดึงสายไปยังพื้นดินจะไม่มีสั้น

เนื่องจากการกำหนดค่าแบบมีสายหรือ OR มีประโยชน์มากนี่คือเหตุผลที่ว่าทำไมพินเช่นตั้งค่าใหม่บนไมโครคอนโทรลเลอร์เส้นขัดจังหวะล้างและเปิดใช้งานสายบนอุปกรณ์เช่น flip-flop เป็น "active low" ทั้งหมด - หมายถึงพวกมันมักจะถูกผูกไว้สูง ผ่านตัวต้านทานแบบดึงขึ้น) และอุปกรณ์ใด ๆ ที่กำหนดค่าเป็น open-drain อาจทำให้พวกมันต่ำ อินพุตเหล่านี้มักจะถูกกำหนดให้เป็นแบบแอคทีฟต่ำโดยมีทั้งแถบที่อยู่ด้านบนของชื่อสัญญาณหรือนำหน้า! (! CLR) หรือเครื่องหมาย # ต่อท้าย (CLR #)

2) การควบคุมอุปกรณ์ที่เชื่อมต่อกับแรงดันไฟฟ้าที่แตกต่างกัน สมมติว่าคุณมีรีเลย์ที่ต้องใช้ 20 mA แต่มีแรงดันไฟฟ้า 5 โวลต์ แต่เอาท์พุทไมโครคอนโทรลเลอร์ของคุณสามารถขับหมุดขึ้นกับแรงดันไฟฟ้าของแหล่งจ่ายไฟ (VCC) ที่ 3.3v ด้วยเอาต์พุตแบบ open-drain คุณสามารถเชื่อมต่อด้านหนึ่งของรีเลย์ไปที่ 5 V และอีกด้านหนึ่งไปยังขาออกของไมโครคอนโทรลเลอร์ เมื่อเอาต์พุตของไมโครคอนโทรลเลอร์เป็น 1 จะไม่มีสิ่งใดเกิดขึ้น (อีกครั้งทำหน้าที่เหมือนเข็มถูกตัดการเชื่อมต่อ) เมื่อมันถูกตั้งค่าเป็น 0 บริเวณนี้จะอยู่ที่ด้านล่างของรีเลย์เพื่อให้ครบวงจรและใช้งานรีเลย์ ในแอปพลิเคชันดังกล่าวเป็นสิ่งสำคัญที่จะต้องวางไดโอด "fly-back" ข้ามขดลวดรีเลย์เพื่อป้องกันความเสียหายต่อไมโครคอนโทรลเลอร์เมื่ออุปกรณ์ไม่ทำงาน

สำหรับไดรเวอร์เอาต์พุตเช่น ULN2803 (อาร์เรย์ทรานซิสเตอร์ดาร์ลิงตัน) คุณสามารถขับโหลดที่เชื่อมต่อกับแรงดันไฟฟ้าสูงถึง 50 v และควบคุมด้วยอินพุตที่เข้ากันได้ทางตรรกะ


a microcontroller can often sink more current (drive to ground) than it can source (drive to the VCC of the microcontroller)นั่นไม่เป็นความจริงอีกต่อไปแล้วกับไมโครคอนโทรลเลอร์ CMOS ที่ทันสมัย
m.Alin

1
กรณีการใช้งานครั้งที่สองของคุณไม่ค่อยมีผลกับไมโครคอนโทรลเลอร์: ในกรณีส่วนใหญ่หมุด IO ของพวกเขาไม่สามารถทนต่อแรงดันไฟฟ้านอกช่วงพลังงานพื้นดินได้ ข้อยกเว้นคือพิน RA4 ของ Microchip uc บางตัว แต่ชิปไดรเวอร์สไตล์ 2003/2803 เป็นตัวอย่างที่ดีเยี่ยมของการใช้งานครั้งที่สองของคุณ
Wouter van Ooijen

ระหว่าง MSP430, Atmel AVRs และ Pic 16 / 18s ฉันยังไม่เห็นไมโครคอนโทรลเลอร์ที่ทันสมัยที่ไม่สามารถจมหรือแหล่งกำเนิดกระแสในปริมาณเดียวกัน
Passerby

m.Alin, Wouter_van_Ooijen, Passerby - ขอบคุณสำหรับความคิดเห็นของคุณฉันได้แก้ไขคำตอบของฉันแล้ว
tcrosley

2

เอาท์พุทท่อระบายน้ำเปิดเป็นเพียงสวิตช์เปิดเชื่อมต่อกับ 0V ในการผ่านกระแสไฟฟ้าคุณต้องป้อนกระแสไฟฟ้าเข้าไปและสิ่งนี้สามารถทำได้ด้วยตัวต้านทานแบบดึงขึ้น หากคุณไม่ส่งกระแสไฟฟ้าเข้ามาในพินคุณจะไม่สามารถมองเห็นแรงดันไฟฟ้า: -

ป้อนคำอธิบายรูปภาพที่นี่

ต่อไปนี้เป็นอุปกรณ์สองตัวที่ใช้เอาต์พุต open-drain เดียวกัน - สังเกตตัวต้านทานแบบ pull-up เป็น + 5V ในความเป็นจริงวงจรนี้ใช้ "open-drain" เพื่อดำเนินการตรรกะ - ถ้าเกท NAND ใด "เปิดใช้งาน" ด้วย 1,1 พวกเขาจะดึง BUS ลงไปที่ 0V ดังนั้นตรรกะที่ส่งไปยัง BUS คือ

การกลับเข้า BUS = AB + CD

MOSFET มักใช้เป็นอุปกรณ์แบบ open-drain แม้ว่า BJT ปกติจะสามารถทำหน้าที่นี้ได้ เอาท์พุทแบบ open-drain เป็นการลดความซับซ้อนของเอาท์พุท CMOS ปกติ - มันรวดเร็วเมื่อพลิกลงมาที่พื้น แต่มันจะช้าลงในการเดินทางกลับไปที่ + ลอจิกเพราะเวลาประจุของตัวเก็บประจุกาฝากผ่านตัวต้านทานแบบดึงขึ้น

Open collector บน wikiนั้นอ่านได้ดี - มันเหมือนกับ open open และถูกกล่าวถึงในบทความตามที่เป็นแผนภาพเล็ก ๆ ที่แสดงด้านบน


0

1) เพื่อลดความซับซ้อนของจุดแรกในคำตอบโดย tcrosley ข้อดีของการไม่ให้ตัวต้านทานแบบดึงขึ้นภายในเอาต์พุตมีความสามารถในการแบ่งปันตัวต้านทานแบบดึงขึ้นที่มากในหลาย ๆ เอาต์พุต เอาต์พุตจะถูกต่อสายแบบขนานและทั้งหมดเชื่อมต่อกับตัวต้านทานที่ใช้ร่วมกันและกราวด์ 3) หากคุณไม่ต้องการรวบรวมเอาท์พุทรวมจากหลาย ๆ เอาต์พุต (และวงจรใช้แหล่งจ่ายแรงดันไฟฟ้าเดียวกันทุกที่) จากนั้นคุณไม่ต้องการใช้เอาต์พุตที่ไม่มีชิ้นส่วนแบบดึงขึ้น มิฉะนั้นคุณจะได้รับเอาต์พุต "ไม่สมบูรณ์" (ในทาง) เพื่อให้คุณสามารถปรับแต่งตามความต้องการของคุณ

2) จุด“ ด้านล่าง” ตัวต้านทาน (ในแผนผัง) เป็นสถานที่ที่เอาท์พุทรวมกันถูกเก็บรวบรวมโดยส่วนอื่น ๆ ของวงจร (แน่นอนว่ามันอาจเป็นวิธีอื่นที่เกี่ยวข้องกับพื้นดินและอุปทาน)


ฉันแยกข้อความผนังของคุณออกเป็นย่อหน้าที่มีหมายเลข ทำให้เข้าใจได้ง่ายขึ้นเมื่ออ่านและแสดงความคิดเห็นในบางส่วนหรือข้อความที่คุณทำ สังเกตว่าย่อหน้าเริ่มต้นที่การเปลี่ยนแปลงของบริบทในคำตอบของคุณ
Sparky256
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.