GPIO की स्थिति पर शक्ति क्या है?


35

पावर लागू होने के बाद GPIO की स्थिति क्या है? जैसे हाई, लो, हाय-जेड?

क्या कोई भी OS लोड होने पर किसी भी GPIO की स्थिति को बदलता है? ऐसा न होने की अपेक्षा है।


जब तक यह डेटाशीट में नहीं है, तब तक आपको यह सुनिश्चित करने के लिए मापना होगा। GPIO के बारे में लिनक्स "नहीं" जानता है, इसलिए यह उन्हें बूट अप के दौरान नहीं बदलेगा (जब तक कि आपने एक स्टार्टअप स्क्रिप्ट नहीं किया है), लेकिन हमेशा एक मौका है कि ROM हो सकता है।
माल्विनस

@ गलत, आप गलत हैं। लिनक्स GPIO के बारे में जानता है और समर्थन कर्नेल में बनाया गया है। यहाँ कुछ दस्तावेज़ीकरण हैं: kernel.org/doc/Documentation/gpio.txt
एमाल्मी विल्सन

2
@ डस्टीविलसन: क्षमा करें यदि मैं अस्पष्ट था, तो मेरा मतलब था कि बूट के दौरान कोर लिनक्स कर्नेल GPIO का उपयोग नहीं करता है। यह उन्हें केवल उपयोक्ता और विशेष चालकों के लिए उपलब्ध कराता है। इसलिए स्टॉक कर्नेल को बूट के दौरान GPIO पिन की स्थिति में परिवर्तन नहीं करना चाहिए।
माल्विनस

@ मालविनस: आह, गच्चा।
एम्लली विल्सन

जवाबों:


11

मुझे यहां उत्तर मिला है कि रसेलस्ट्रॉन्ग का धन्यवाद । मैं संबंधित भाग नीचे उद्धृत करता हूं

मैं प्रतिरोधों को खींचने के लिए अपने सर्किट के प्रति मेरे प्रतिरोधों / संवेदनशीलता के बारे में निष्कर्ष पर कूद गया हूं। RPI पहले बूट होने पर आउटपुट में GPIO सेट नहीं कर रहा है। यह 740 मिलीसेकंड के लिए पुल डाउन रेज़िस्टर को चालू कर रहा है।

मैंने दो 18K प्रतिरोधों (3v3 -> GPIO -> GND) का उपयोग किया है ताकि पिन के साथ वास्तव में क्या हो सके। यहाँ ट्रेस है। ब्लू लाइन 3v3 पावर है, पीली लाइन GPIO लाइन है।

यहाँ छवि विवरण दर्ज करें


क्या आप थोड़ा स्पष्ट कर सकते हैं? जब रास्पबेरी पाई जूते, GPIO एक उच्च प्रतिबाधा, इनपुट स्थिति पर सेट होते हैं?
एलेक्स चैम्बरलेन

1
@AlexChamberlain, ब्रॉडकॉम चिप की तरह दिखता है pulldowns के साथ शुरू होता है, लेकिन लोडर pulldowns को साफ करता है, इसलिए वे उच्च प्रतिबाधा (आदानों)
जॉन ला Rooy

9

जब आरपीआई के लिए अनुशंसित डेबियन डिस्ट्रो का उपयोग शुरू किया जाता है, तो जीपीआईओ अक्षम होता है। आपको प्रत्येक पिन को व्यक्तिगत रूप से सक्षम करना होगा।

यदि आप इसे / sys के माध्यम से कर रहे हैं, तो आपको "Paths in Sysfs" दिलचस्प ( http://www.kernel.org/doc/Documentation/gpio.txt के भीतर खोज ) मिलेगा । विशेष रूप से, आप इसे "निर्यात" करके एक पिन को सक्षम कर रहे होंगे। नीचे दिए गए किसी भी आदेश को मान लें कि आप रूट विशेषाधिकार (sudo या अन्यथा) के साथ चल रहे हैं या आपने संशोधित की जा रही वर्चुअल फ़ाइलों की अनुमति / स्वामित्व को बदल दिया है।

echo 4 > /sys/class/gpio/export

यह GPIO पिन # 4 को सक्षम करता है जो तब / sys / class / gpio / gpio4 का कारण बनता है, जिसमें कई वर्चुअल फाइलें होती हैं। उन फ़ाइलों में "दिशा" शामिल है जो परिभाषित करती है कि क्या यह एक इनपुट या आउटपुट पिन है, "मान" जो या तो केवल इनपुट के लिए पढ़ा जाता है या आउटपुट के लिए उपयुक्त है और इसमें वर्तमान मूल्य और अन्य शामिल हैं।

echo out > /sys/class/gpio/gpio4/direction # set it as an output pin
echo 1 > /sys/class/gpio/gpio4/value # set the value to ON
echo 0 > /sys/class/gpio/gpio4/value # set the value to OFF
echo in > /sys/class/gpio/gpio4/direction # set it as input
cat /sys/class/gpio/gpio4/value # get the value
echo 4 > /sys/class/gpio/unexport # disables pin 4 and removes the gpio4 directory

बेशक, आप शायद अपनी पसंद की भाषा के साथ या संगत GPIO की आपूर्ति करने के लिए कुछ आकर्षक लाइब्रेरी का उपयोग करना पसंद करेंगे। लेकिन अगर आप कुछ सरल चाहते हैं, तो आप बहुत मूल GPIO करने के लिए सीधे sysfs के साथ इंटरफ़ेस कर सकते हैं।


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

3
यह एक महान जवाब है, लेकिन मुझे यकीन नहीं है कि यह वास्तव में सवाल का जवाब देता है। सक्षम होने के बाद सीधे GPIO की स्थिति क्या है? और दिशा निर्धारित?
एलेक्स चैंबरलेन

@gnibbler: मेरा मानना ​​है कि आपको इसका परीक्षण करने की आवश्यकता होगी। मैंने इसे कुछ समय पहले खुद आजमाया था और मैंने कुछ भी अप्रत्याशित नहीं देखा, जिसके बारे में कुछ कहा गया हो। मैं नहीं जानता या वादा नहीं करता कि मेरा अनुभव अपेक्षित है। मैं कहता हूं कि आपको बस एक मल्टीमीटर या ऐसे पिन पर टॉस करना चाहिए जिसे आप परीक्षण करना चाहते हैं और फिर परीक्षण करने के लिए कई बार पाई को रीबूट या पावर-साइकल करें। मैंने देखा कि सभी पिन बंद थे, जैसे कि जब तक मैं प्रत्येक पिन को सक्षम नहीं करता, तब तक पाई को कोई शक्ति नहीं थी।
एमाले विल्सन

@ डस्टीविल्सन, शायद उन्हें इनपुट के रूप में सेट किया गया है, जिसमें कोई पुल अप नहीं है या फिर डाउन पुल डाउन है। इसका मतलब है कि अगर वे एफईटी से जुड़े हैं तो प्रभावी ढंग से तैर रहे हैं और अगर गेट
जॉन ला रोय जूल

वास्तव में ... cat /sys/class/gpio/gpio4/direction"में" कहते हैं। मैंने डेटाशीट में पढ़ा कि पुलअप्स / पुलडाउन की स्थिति को पढ़ना संभव नहीं है। मैं उन्हें मापने की कोशिश करूँगा
जॉन ला रोय
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.