STM32 (ARM Cortex M3) पर अप्रयुक्त पिन के लिए डिफ़ॉल्ट सेटिंग्स के लिए सिफारिश - ऊपर खींचो / नीचे खींचो?


15

वर्तमान में हम STM32 माइक्रोकंट्रोलर परिवार के विभिन्न वेरिएंट का उपयोग कर रहे हैं। मैं निम्नलिखित जानना चाहूंगा:

  1. यदि आपके पास पुल अप या पुल डाउन दोनों का चयन करने का विकल्प है, तो सामान्य रूप से माइक्रोकंट्रोलर के पिन के लिए अनुशंसित डिफ़ॉल्ट सेटिंग्स क्या हैं? एक या दूसरे के साथ जाने के पेशेवरों और विपक्ष क्या हैं? (मान लें कि आप उन्हें इनपुट के रूप में डिफ़ॉल्ट रूप से सेट करेंगे)

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

  3. महत्वपूर्ण पिनों के लिए, क्या हमें फर्मवेयर को सही डिफ़ॉल्ट स्थिति पर सही ढंग से सेट करने के लिए फर्मवेयर पर निर्भर होना चाहिए या क्या यह जिम्मेदारी बाहरी हार्डवेयर (बाहरी पुल अप्स या पुल डाउन को जोड़ने) के साथ झूठ होनी चाहिए? यदि बाहरी प्रतिरोधों के लिए चुना गया मान आंतरिक पुल अप या पुल डाउन से अधिक है, तो फ़र्मवेयर में सेटिंग मायने नहीं रखती है।

प्रो जो मैं ऊपर करने के लिए देख सकता हूं, वह यह है कि यदि माइक्रो किसी भी कारण (दोषपूर्ण हार्डवेयर या पसंद) के लिए ठीक से इनिशियलाइज़ नहीं करता है, तो हम पिन को सही तरीके से सेट करने के लिए फ़र्मवेयर पर निर्भर नहीं हैं।

मुझे जो कॉन दिखाई दे रहा है वह यह है कि ऐसा करने के लिए अधिक लागत है हार्डवेयर।

कोई भी प्रकाश जिसे आप उपरोक्त पर बहा सकते हैं, वास्तव में सराहना की जाएगी।

धन्यवाद..


आउटपुट के रूप में अप्रयुक्त पिन क्यों नहीं सेट करें? यह पुल-अप बनाम पुल-डाउन समस्या को समाप्त करेगा।
कॉनर वुल्फ

ध्यान दें: "किसी भी रीसेट घटना पर सभी GPIO फ़्लोटिंग इनपुट हैं। यह आपातकालीन स्थिति में GPIO को किसी भी आकस्मिक क्षति से बचाता है।" एम्बेडेड-
lab.com/blog/stm32-gpio-ports-insights

जवाबों:


11

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

यह किसी को इन सरल लेकिन बुनियादी सवालों को देखने और एक जागरूकता दिखाने के लिए प्रोत्साहित करना है कि इस तरह की "छोटी चीजें" वास्तविक जीवन में 'गैंग अग्ला' कैसे कर सकती हैं।

यानी "यदि माइक्रो ठीक से इनिशियलाइज़ नहीं करता है ..." वास्तव में पढ़ता है "... जब माइक्रो ठीक से इनिशियलाइज़ नहीं करता है ..." :-) - और यह स्पष्ट है कि आपको इसका एहसास है।

इसलिए:

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

  • पुलअप या डाउन का बेहतर परिणाम नहीं दिखता है। यह IC के बीच भिन्न हो सकता है लेकिन डेटा शीट से निर्धारित किया जा सकता है। सभी चीजें समान होने के नाते (जैसा कि वे हो सकता है) मैं पुल-डाउन का पक्ष लेता हूं क्योंकि डिवाइस के बाहरी सर्किटरी में कम रिसाव धाराओं के लिए एक क्षमता है - लेकिन यह एक अनुरूपता वाले पीसीबी और / या सौम्य वातावरण में न्यूनतम होना उचित है।

  • यदि आप वास्तव में देखभाल करते हैं तो आप स्टार्टअप कार्रवाई को देखना चाह सकते हैं। उदाहरण के लिए एक पुल अप पिन कम शुरू होगा और कुछ स्तर पर उच्च पारगमन करेगा। एक खींचा हुआ पिन संभवतः पूरे समय कम रहेगा। यह शायद महत्वपूर्ण नहीं है लेकिन पूर्णता के लिए उल्लेख किया गया है।

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

  • पुनः प्रश्न 3 - बाहरी पुल्किनक्स वांछनीय है लेकिन यह उन मूल्यों का उपयोग करने के लिए सुरक्षित लगता है जो उचित डिजाइन के उच्च अंत तक सीमित हैं और फिर वांछित होने पर समानांतर में आंतरिक xxx का उपयोग करते हैं। हालाँकि, जैसा कि आंतरिक पुल xxxs में अक्सर 2: 1 होता है, आप केवल बाहरी उपयोग करके सबसे बड़ा R और सबसे छोटा वर्तमान प्राप्त कर सकते हैं। आप निश्चित रूप से बचना चाहते हैं बाहरी खींच अप और आंतरिक पुल चढ़ाव या उपाध्यक्ष bersa - लेकिन यह एक मुद्दा होने की संभावना नहीं है।

  • जब मैं कहता हूं "... उचित डिजाइन के उच्च अंत को सीमित कर रहा हूं ..." मेरा मतलब सिर्फ इतना है कि "अतीत को सीमित करना ..."। यानी पिन में प्रतिरोध का एक निर्दिष्ट मूल्य होगा जो सबसे खराब स्थिति विन युक्ति को पूरा करने की अनुमति देता है। एक बड़ा रोकनेवाला अवरोध में कम धारा ले सकता है लेकिन आंतरिक स्विच पर बहुत कम चालू हो सकता है। यानी यह हो सकता है कि एक Rpulldown_current बनाम सबसे कम वर्तमान ट्रेडऑफ़ है क्योंकि आंतरिक ड्राइवर को लीकेज करंट (जो कि बहुत छोटा होगा) से डाइवर में करंट बढ़ जाता है और बहुत कम इस पर फुसफुसाते हुए दिखाई देता है।

  • यदि आप उदाहरण के लिए पुलडाउन का उपयोग करते हैं, तो आपको पिन को आउटपुट पर सेट करने और इसे कम ड्राइव करने के लिए कम शक्ति मिल सकती है, लेकिन यह एक ऐसा विकल्प है जिस पर नियत समय में निर्णय लिया जा सकता है।

  • लगभग एक तरफ - ऑपरेशन के दौरान किसी भी स्तर पर "किसी भी महत्वपूर्ण धाराओं" को संभालने के लिए सुरक्षा डायोड की अनुमति न दें। ऐसा करने के लिए उन्हें अनुमति देने से पूरी तरह से अक्षम्य प्रोसेसर कार्रवाई हो सकती है। जितना कम वर्तमान में चीजों की संभावना उतनी ही कम गलत होगी - और जब वे ऐसा करते हैं, तो इसे ढूंढना कठिन होता है।


1
बहुत ही व्यावहारिक जवाब। आपका बहुत बहुत धन्यवाद। क्या आप इस पर थोड़ा और विस्तार कर सकते हैं - "यदि आप ईएसडी के बारे में बहुत परवाह करते हैं तो आप पुल डाउन के साथ कम आउटपुट का उपयोग करने की इच्छा कर सकते हैं - जैसा कि कम कम प्रतिबाधा पथ (शायद) बेहतर ईएसडी सुरक्षा प्रदान करेगा"? यदि किसी आउटपुट पर सेट किया जाता है - तो क्या आप डिफॉल्ट रूप से ओपन ड्रेन या पुश पुल (हाई / लो) जाएंगे?
इंटेलीचेक

@IntelliChick यह सेट करने का पूरा बिंदु एक आउटपुट है इसे कम प्रतिबाधा पर एक ज्ञात स्थिति में ड्राइव करना है जिसका मतलब है कि आप निश्चित रूप से इसे नाली खोलने के लिए सेट नहीं करेंगे, विशेष रूप से एक उच्च आउटपुट के साथ HI आउटपुट के साथ खुली नाली।
DKNguyen

@DKNguyen 8+ साल पर ... :-)। और Intellichick को इन 8+ वर्षों में नहीं देखा गया है - लेकिन अभी भी अपनी टिप्पणी जोड़ने के लायक है।
रसेल मैकमोहन

@RussellMcMahon समय की पारंपरिक धारणा है कि जेल से अपने आप को रिहा।
DKNguyen

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

2

आप किस चीज के लिए अनुकूलन कर रहे हैं? लागत अनुकूलन यह निर्धारित करता है कि आपने आउटपुट में अप्रयुक्त पिन सेट किए हैं। विश्वसनीयता अनुकूलन बताता है कि सभी पिन स्तरों को परिभाषित किया गया है, यहां तक ​​कि फर्मवेयर से पहले छोटी अवधि में भी अप्रयुक्त पिनों को सेट करने का मौका है जो इसे उपयुक्त मानते हैं।

मुझे एक बार एक प्रोसेसर बोर्ड की विश्वसनीयता गणना की जांच करनी थी। यह अच्छी तरह से डिजाइन किया गया था, जिसमें सभी जगह पर डिकूपिंग कैप्स थे और सभी I / O पिन पर जो भी प्रतिरोधक थे, उन्हें खींच दिया गया था। विश्वसनीयता इंजीनियर ने अपनी हैंडबुक निकाली, इसमें शामिल सभी घटकों की विफलता दर को जोड़ा, और एक आंकड़े के साथ समाप्त हो गया जो कि निष्क्रिय घटकों की विफलता दरों पर हावी था। वह आंकड़ा आवश्यकता से अधिक था, इसलिए हमें समस्या थी। उन प्रतिरोधों को हटा दें, और आंकड़ा ठीक होगा। लेकिन उस प्रस्ताव पर इलेक्ट्रिकल इंजीनियरों ने गुस्से में चिल्लाना शुरू कर दिया (ठीक है, आईएमओ)। मुझे याद नहीं है कि कहानी कैसे समाप्त हुई; मुझे लगता है कि हम ग्राहक के पास गए और गणना से प्रतिरोधों की विफलता दरों को छोड़ने के लिए वितरण को इस आधार पर कहा कि उन्होंने कोई महत्वपूर्ण करंट नहीं लगाया।


1

मैं सिर्फ अप्रयुक्त पिंस को आउटपुट के रूप में कॉन्फ़िगर करता हूं और उन्हें कम सेट करता हूं।


क्या आप सामान्य रूप से उन्हें पुश-पुल या ओपन ड्रेन पर सेट करेंगे? और दोनों मामलों में आप उन्हें कम पर सेट करेंगे? क्या आप मुझे बता सकते हैं कि आप दूसरे को क्यों चुनेंगे।
इंटेलीचेक

@ लीलर हेलर - जो "आमतौर पर काम करता है" परीक्षण से मिलता है, लेकिन विफल रहता है "जब माइक्रोप्रोसेसर उचित रूप से आरंभ नहीं करता है, या जब मर्फी थोड़ा अर्ध यादृच्छिक रूप से फ़्लिप करता है, जैसा कि वह कभी-कभी करता है। आपका 'पिन आउटपुट और कम' प्लस पुलडाउन सेट करता है। , काम करता है।
रसेल मैकमोहन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.