इनपुट या आउटपुट MCU पिन पर पुल-अप और पुल-डाउन रेसिस्टर उपयोग


18

क्या केवल MCU INPUT पिन के लिए पुल-अप / डाउन रेसिस्टर्स (चाहे आंतरिक हो या बाहरी) की आवश्यकता होती है? इसके विपरीत, एक MCU पिन एक OUTPUT के रूप में कॉन्फ़िगर किया गया है "जानता है कि यह किस स्तर पर है" क्योंकि यह ड्राइविंग करता है - एक "फ्लोटिंग" MCU OUTPUT पिन किसी अन्य सर्किट के कुछ इनपुट से बंधा हुआ है, इससे कोई मतलब नहीं है, क्योंकि MCU पिन की स्थिति केवल उच्च या निम्न हो सकता है ... क्या मुझे यह अधिकार है? अब, MCU बूटअप या विफलता पर, यह सुनिश्चित करना फायदेमंद हो सकता है कि इस "MCU आउटपुट टू IC इनपुट" लाइन से बंधा हुआ है ताकि यह सुनिश्चित किया जा सके कि कुछ IC के लिए इनपुट फ्लोटिंग नहीं है।

हो सकता है कि मैंने सिर्फ अपने ही सवाल का जवाब यहां दिया हो ... पुल-अप / डाउन रेसिस्टर्स का उपयोग इनपुट और आउटपुट पिन दोनों पर किया जा सकता है, जो आवेदन पर निर्भर करता है?

जवाबों:


21

पुल-अप और पुल-डाउन का उपयोग आम तौर पर यह सुनिश्चित करने के लिए किया जाता है कि सक्रिय रूप से संचालित न होने के दौरान एक पंक्ति में एक परिभाषित स्थिति हो। वे फ्लोटिंग लाइनों को रोकने के लिए इनपुट पर उपयोग किए जाते हैं, तेजी से उच्च और निम्न और एक "अपरिभाषित" क्षेत्र के बीच स्विच करते हैं। आम तौर पर आउटपुट की जरूरत नहीं होती है।

लेकिन ज्यादातर mcu पिन GPIO हैं, और कभी-कभी स्टार्टअप पर आउटपुट के बजाय इनपुट के रूप में परिभाषित किया जाता है। जैसा कि आपने कहा, कभी-कभी आप स्टार्टअप पर एक आईसी पिन इनपुट नहीं चाहते हैं, विशेष रूप से एक रीसेट पिन की तरह जिसे आप सामान्य रूप से अपने माइक्रोकंट्रोलर के GPIO के साथ ड्राइव करेंगे।

यह तब होता है जब आप लाइन पर एक कमजोर पुल-अप या पुल-डाउन का उपयोग करते हैं। क्योंकि वे कमजोर हैं, और आप डिफ़ॉल्ट स्थिति चुनते हैं, वे आपके सर्किट के साथ कोई हस्तक्षेप नहीं करते हैं (यदि इनपुट हर समय कम माना जाता है, तो उच्च खींचा जाता है, आप एक कमजोर पुल-डाउन और विज़ वर्सा चुनते हैं), लेकिन वे वर्तमान का एक सा उपभोग करते हैं। यही कारण है कि आप एक अवरोधक कमजोर (उच्च मूल्य, कमजोर) को नौकरी के लिए पर्याप्त चुनते हैं।

एक और सामान्य आउटपुट सेटअप जो पुल-अप (या पुल-डाउन, रेयर) का उपयोग करता है, वह है ओपन ड्रेन या ओपन कलेक्टर कनेक्शन। ये केवल एक कनेक्शन को कम चलाते हैं, या लाइन छोड़ते हैं, जिससे यह तैरता है। एक उच्च तर्क स्थिति के लिए लाइन लाने के लिए पुल-अप का उपयोग किया जाता है।


आप ओपन ड्रेन और ओपन कलेक्टर कनेक्शन का उल्लेख करते हैं, ये माइक्रोकंट्रोलर पर लागू नहीं होते हैं? तार्किक स्तर सेट करने के लिए मर्ली मोस्फ़ेट्स का उपयोग किया जा रहा है? मैं स्पष्ट करना चाहता था कि क्या कोई माइक्रोकंट्रोलर लाइन को ड्राइव कर सकता है या नहीं जिसमें पुल डाउन रेज़र हाई है।
जेनेरिक रिप्लेक्टल

9

आपके पास इसके बारे में अधिकार है; आम तौर पर आपको आउटपुट पर पुलअप की आवश्यकता नहीं होती है, लेकिन वे बूट समय आदि के दौरान सुरक्षा बनाए रखने के लिए उपयोगी हो सकते हैं।

एक आउटपुट पर पुल-अप का उपयोग करने का एक अन्य कारण: यदि कई MPUs से कई आउटपुट एक-दूसरे से जुड़े हैं, तो आप वास्तव में एक ड्राइविंग वीसीसी और दूसरा ड्राइविंग वीवी एक ही तार पर नहीं चाहते हैं! तो आप या तो आउटपुट पर 0V ड्राइव करते हैं या आउटपुट को बंद करते हैं (शायद इसे इनपुट के रूप में कॉन्फ़िगर करके)। जब सभी आउटपुट बंद हो जाते हैं, तो वायर को पुलअप द्वारा '1' (Vcc) में ले जाया जाता है। इसे "वायर्ड एंड" सिग्नल कहा जाता है। (आप एक ही ड्राइविंग '1' या ऑफ कर सकते हैं, एक पुलडाउन आर के साथ, फिर इसे वायर्ड OR कहा जाता है)।

इस पैटर्न के कई उपयोग हैं जिनमें किसी एक एमपीयू को एक त्रुटि का संकेत देना या एक एलईडी चालू करना, या उन सभी को एक ही तार पर एक दूसरे को संदेश भेजने की अनुमति देना सहित कई उपयोग हैं।


4

जैसा कि आपने कहा था, पिंस पर पुलअप / पुलडाउन रेसिस्टर्स का उपयोग करके आउटपुट पिन होने की उम्मीद की जा सकती है।

यह फर्मवेयर / MCU विफलता को कम करने के लिए किया जाता है, लेकिन यह केवल हाय-इम्पीडेंस राज्य (मूल रूप से पिन को दुर्घटना के रूप में इनपुट के रूप में कॉन्फ़िगर किया गया है) से बचाने के लिए काम करेगा।

अधिकांश MCU की मैं बूट पर उच्च प्रतिबाधा इनपुट स्थिति के लिए डिफ़ॉल्ट IO पिन से परिचित हूं (लेकिन कोई गारंटी नहीं है, और मुझे सभी MCU परिवारों के पास कहीं भी अनुभव नहीं है), जिसका अर्थ है कि पिन को प्रारंभ करने के लिए कोड से पहले कुछ समय लग सकता है राज्य निष्पादित किया जाता है।

कभी-कभी यह कोई फर्क नहीं पड़ता, अन्य बार ऐसा होता है।


उत्तर के लिए धन्यवाद, जो अन्य उत्तरों की भी तारीफ करता है! FYI करें, PIC24F श्रृंखला रीसेट (I / O पिन डेटापत्रक) पर उच्च प्रतिबाधा (इनपुट) के लिए GPIO पिन को डिफॉल्ट करती है।
the_Ders

3

इसका उत्तर यह है कि यह माइक्रोकंट्रोलर परिवार पर निर्भर करता है और पावर ऑन रीसेट पर इसका डिफ़ॉल्ट व्यवहार क्या है। यदि माइक्रोकंट्रोलर को केवल पिन पर "आउटपुट" या "इनपुट" के लिए कॉन्फ़िगर किया जा सकता है, तो इसका आमतौर पर मतलब यह है कि यह आउटपुट के लिए टोटेम-पोल ड्राइवर का उपयोग कर रहा है - जो यह कहना है कि यह अनिवार्य रूप से एक सीएमओएस गेट का आउटपुट है, जिस स्थिति में आउटपुट हमेशा एक रेल से संचालित होता है, इसलिए इसे निष्क्रिय रूप से प्रभावित करने का कोई कारण नहीं है। एकमात्र मामला जहां यह आउटपुट पर पुल-अप / पुल-डाउन का उपयोग करने के लिए समझ में आता है, जब इसे ओपन कलेक्टर / ओपन ड्रेन टोपोलॉजी के रूप में कॉन्फ़िगर किया गया है। आंतरिक पुल-अप / पुल-डाउन विकल्पों को देखना बहुत आम है जो केवल तभी लागू होते हैं जब एक इनपुट के रूप में पिन को कॉन्फ़िगर किया जाता है। यदि आप यह गारंटी दे सकते हैं कि आपके सिस्टम में इनपुट हमेशा किसी न किसी चीज से संचालित होता है, तो इससे थोड़ी शक्ति बर्बाद होती है।


हार्डवेयर-स्तर पर शानदार व्याख्या। धन्यवाद!
the_Ders

2

आपके पास एक पिन हो सकता है जो कुछ समय का आउटपुट है , जैसे कि I2C करने के लिए।


भविष्य में I2C के साथ काम करते समय मैं इसे ध्यान में रखूंगा। मैं PIC24F श्रृंखला के साथ विश्वास करता हूं, I2C मॉड्यूल पिंस पर पूर्ण नियंत्रण मानता है और लाइनों को बाहरी पुल-अप की आवश्यकता होती है। अब मुझे पता है कि यह क्यों है - I2C मॉड्यूल अनिवार्य रूप से डेटा पिन को ओपन-ड्रेन / कलेक्टर आउटपुट (पुल-अप रेज़िस्टर की आवश्यकता) या उच्च-प्रतिबाधा इनपुट के रूप में कॉन्फ़िगर कर रहा है, यह इस बात पर निर्भर करता है कि डेटा आउटपुट / से इनपुट किया जा रहा है या नहीं I2C मॉड्यूल ... क्या मुझे यह अधिकार है? मैं I2C से परिचित नहीं हूं।
the_Ders

यह बिल्कुल सही है।
pjc50

I2C वायर्ड-एंड पैटर्न का एक उदाहरण है। ओपन कलेक्टर आपको सरल बनाता है जैसा कि आप GPIO पिन के साथ कर सकते हैं।
ब्रायन ड्रमंड
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.