IO หมุดแต่ละอันจะต้องมีตัวต้านทานแบบดึงขึ้น - ลงหรือไม่?


13

คำถามพื้นฐานมาก:

แต่ละขา IO ของไมโครคอนโทรลเลอร์ที่ทำหน้าที่เป็นอินพุตจากสวิตช์หรือจัมเปอร์จะต้องมีตัวต้านทานแบบดึงขึ้น / ลงของตัวเองหรือไม่

แผนผังวงจร IO แบบ 3 ขาอย่างง่าย

ในตัวอย่างนี้ตัวต้านทานแต่ละตัวจะถูกดึงลงโดยตัวต้านทานแล้วดึงขึ้นด้วยสวิตช์ 1P3T ไปที่ VCC

ดูเหมือนจะตรงไปตรงมา แต่เมื่อมีการใช้พิน IO มากขึ้นจำเป็นต้องมีตัวต้านทานมากขึ้นหรือไม่? มีวิธีที่ฉลาดในการรักษาตัวต้านทานนับถอยหลังหรือไม่?

คำถามที่เกี่ยวข้อง: การแชร์ตัวต้านทานแบบดึงขึ้น

คำตอบ:


16

ตามแผนผังที่ให้ไว้หากทั้ง 3 อินพุตมีการใช้ตัวต้านทานร่วมกันดังนั้นเส้นใด ๆ ที่ถูกดึงผ่านสวิทช์จะยกทั้ง 3 บรรทัดให้สูงเพื่อตอบโต้จุดประสงค์ของการออกแบบ - MCU จะไม่ทราบว่าตำแหน่งสวิตช์คืออะไร เลือก

วิธีทั่วไปในการลดจำนวนชิ้นส่วนไม่ใช่ตัวต้านทานนับสำหรับการออกแบบดังกล่าวคือการใช้เครือข่ายหรืออาร์เรย์ตัวต้านทานบัสทั่วไป:
อาร์เรย์บัสตัวต้านทานทั่วไป (จากที่นี่ )


สิ่งเหล่านี้มีให้ในรูปแบบ SIP / กรมทรัพย์สินทางปัญญาเช่นเดียวกับ SMD ในจำนวนตัวต้านทานที่หลากหลายขึ้นอยู่กับความต้องการของคุณ บัสบัสเชื่อมต่อกับกราวด์และหมุดอื่น ๆ เชื่อมต่อกับอินพุต MCU ที่เกี่ยวข้องเช่นเดียวกับในแผนผังของคุณ อาร์เรย์ตัวต้านทาน SIP (จากที่นี่ )

อาร์เรย์ตัวต้านทาน SMD (จากที่นี่ )


8

MCUs ส่วนใหญ่มีตัวต้านทานแบบดึงขึ้น (ไม่ลง) ในตัวสำหรับแต่ละขาดังนั้นจึงเป็นเรื่องปกติที่จะดึงหมุดลงด้วยสวิตช์ (และจัดการกับการกลับขั้วในซอฟต์แวร์)

ดังนั้น - ไม่จำเป็นต้องมีตัวต้านทาน

สำหรับสาเหตุที่การดึงไม่ลงมันเป็นนิสัยที่เหลืออยู่จากวงจรลอจิกของ TTL ในปี 1970 ซึ่งมันใช้กระแสไฟฟ้าน้อยกว่ามากในการดึงอินพุตขึ้นด้านล่าง - ตัวต้านทานแบบเลื่อนลงจะสิ้นเปลืองพลังงานมากขึ้น สิ่งนี้ไม่ได้ใช้กับตรรกะ CMOS ในปัจจุบันอีกต่อไป แต่ประเพณีการดึงขึ้นยังคงอยู่ดังนั้นชิป CMOS 5V รุ่นแรกจึงเข้ากันได้กับตรรกะ TTL รุ่นเก่า


ฉันคิดว่าเหตุผลในการดึงขึ้นมาเพราะการใช้งานทั่วไปของพวกเขานั้นมีเอาต์พุตแบบเปิดสะสมและเมื่อคุณอยู่ในนิสัยที่จะไปทางเดียวคุณจะไปทางนั้นโดยไม่มีเหตุผล
dunkers

นอกจากนี้ผลผลิต TTL สามารถจม 16mA แต่แหล่งที่มาเพียง 800uA ดังนั้นการดึงขึ้นอาจนำมาใช้เพื่อเพิ่มกล้ามเนื้อให้กับผลผลิต อินพุต TTL จะดึงตัวเองขึ้นมาหากคุณไม่ได้เชื่อมต่อดังนั้นการดึงขึ้นด้วยเหตุผลการป้อนข้อมูลจึงดูแปลกสำหรับฉัน (ขออภัยรอนานเกินไปในการแก้ไขความคิดเห็นก่อนหน้านี้ ... )
dunkers

"อินพุต TTL จะดึงตัวเองขึ้น" ... ในระดับหนึ่งใช่ แต่ไม่น่าเชื่อถือ - หนังสือสีส้มขนาดใหญ่ระบุ 40 ไมโครแอมป์ Ih เพื่อรับประกัน Vin> 2.4V (สำหรับ 7400; 20ua สำหรับ 74LS) อินพุต TTL ที่เปิดทิ้งไว้แน่นอน ไม่แนะนำให้ใช้ทุกที่ที่ฉันทำงาน ...
Brian Drummond

1
Pulldowns กับ pullups ไม่ได้เป็นเพียงแค่ประวัติศาสตร์ ด้วยตัวต้านทาน pullup ด้านอื่น ๆ ของสวิตช์สามารถกราวด์ซึ่งมักจะสะดวก
Olin Lathrop

1
ตระกูลไมโครคอนโทรลเลอร์ TI MSP430 มีทั้งแบบดึงขึ้นภายในและเลื่อนลง
Passerby

0

คุณไม่ต้องการให้อินพุตกับตรรกะเปิดอยู่บนสมมติฐานที่ว่ามันจะดึงตัวเองขึ้นหรือลง ถ้าอินพุตถูกเปิดทิ้งไว้มันเป็นเสาอากาศเล็ก ๆ และยังขึ้นอยู่กับกระแสภายในอุปกรณ์ลอจิก ดังนั้นคุณดึงขึ้นหรือลงเพื่อให้แน่ใจว่าคุณมีอินพุตที่สะอาดและคาดเดาได้ ฉันเรียนรู้กฎนี้ในขณะที่ทำงานที่ Fairchild Semiconductor ในปี 1980


1
สิ่งนี้ไม่ตอบคำถามที่ถูกถาม
โฟตอน

ฉันคิดว่าบริบทของคำถามเดิมคือมีปุ่มและสวิตช์ที่เป็นอินพุตสำหรับ MCU หากไม่ได้ใช้พิน I / O ก็สามารถสร้างเอาต์พุตจากนั้นให้แรงขับต่ำ (หรือสูง) จากเฟิร์มแวร์ ควรแก้ไขปัญหา EMI ที่ซุ่มซ่อนและไม่จำเป็นต้องมีตัวต้านทานภายนอก
Nick Alexeev
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.