पता लगाएँ कि कौन से क्षणिक स्विच के कारण STM32 सीपीयू जाग्रत हुआ


10

संपादित करें : यह प्रश्न गलत है। Stm325105 में केवल एक वेकअप पिन है। लेकिन अन्य एसटी-पुर्जों में एक से अधिक वेकअप पिन होते हैं, इसलिए दिए गए उत्तर उन लोगों के लिए मान्य हैं।


मेरे पास एक stm32f105 है जिसमें वेकअप इनपुट से जुड़े दो क्षणिक बटन हैं। प्रोसेसर को STANDBY MODE में डाला जाता है। जब कोई भी बटन दबाया जाता है, या RTC टाइमर में आग लग जाती है, तो सीपीयू जाग जाता है।

समस्या यह है कि मैं सीपीयू को अलग-अलग चीजें करना चाहता हूं जिसके आधार पर वेकप इनपुट ट्रिगर किया गया था। एसटी stm32f105xx संदर्भ मैनुअल से 5.3.5 के अनुसार , कोई रजिस्टर पंजीकृत नहीं है सिवाय एक स्थिति रजिस्टर के, जो यह दर्शाता है कि हम जाग गए हैं (लेकिन कौन नहीं) और 42 बैकअप रजिस्टर।

स्टैंडबाई मोड सबसे कम बिजली की खपत को प्राप्त करने की अनुमति देता है। यह कॉर्टेक्स ® -M3 डीपस्लीप मोड पर आधारित है, जिसमें वोल्टेज रेगुलेटर अक्षम है। 1.8 वी डोमेन फलस्वरूप संचालित है। PLL, HSI थरथरानवाला और HSE थरथरानवाला भी बंद हैं। SRAM और रजिस्टर सामग्री बैकअप डोमेन और स्टैंडबाय सर्किटरी में रजिस्टरों को छोड़कर खो जाती है।

स्टैंडबाई मोड से जागने के बाद, प्रोग्राम निष्पादन उसी तरह से शुरू होता है जैसे कि रीसेट (बूट पिन सैंपलिंग के बाद, वेक्टर रीसेट प्राप्त होता है, आदि)। पावर कंट्रोल / स्टेटस रजिस्टर (PWR_CSR) में SBF स्टेटस फ्लैग इंगित करता है कि MCU स्टैंडबाय मोड में था।

यह ST मंच पोस्ट, स्टैंडबाय से वेकअप की उत्पत्ति का निर्धारण कैसे करें? , सुझाव देता है कि मैं यह नहीं पता लगा सकता कि सॉफ्टवेयर में कौन सा वेकअप ट्रिगर हुआ। मुझे वहाँ कोई अन्य पद नहीं मिला जिसने कोई और ज्ञान दिया हो।

मैं जागने के बाद सॉफ्टवेयर या हार्डवेयर का उपयोग कैसे कर सकता हूं, किस वेकअप इनपुट को ट्रिगर किया गया था?


1
बटन को एक कैप पर चार्ज करें और पढ़ें कि
प्लाज़्मा एचएच

1
कुछ STM32F105 वेरिएंट को देखा, तो उनके पास केवल एक वेकअप पिन है। आप किस हिस्से का बिल्कुल मतलब है, और कौन सा पिन?
बेरींडी -

@berendi My STM32F105 है, जैसा कि आप कहते हैं, बस एक वेकअप पिन। यह STOP MODE में कॉन्फ़िगर किया गया है, STANDBY मोड में नहीं जैसा कि मैंने अपने प्रश्न में कहा है। यह जागने के लिए EXTI घटनाओं का उपयोग करता है। मैंने उन "EXTI घटनाओं" का अर्थ "वेकअप पिंस" के साथ मिलाया था। लेकिन मुझे लगता है कि ओलिन द्वारा प्रदान किया गया उत्तर अभी भी उपयोगी है अगर किसी को "आरटीसी द्वारा वोकन" या "वॉकन बाय वेकप पिन" के बीच अंतर करने की आवश्यकता है। क्या किसी के पास इस सवाल को संपादित करने के लिए सुझाव हैं कि ओलिन्स उत्तर से मिलान कैसे करें? शुरुआत में एक छोटा सा नोट यह बताता है कि क्या गलत है? संपूर्ण पुन: संपादित करें? या क्या मुझे पूरा प्रश्न हटा देना चाहिए?
डैनियल नेल्सलंड

1
F0, F3, L0, या L1 जैसे एक से अधिक वेकअप पिन के साथ ST कंट्रोलर होते हैं, जहां स्रोत स्टैंडबाय से बाहर निकलने के बाद वास्तव में निर्धारित नहीं किया जा सकता है, क्योंकि उनके पास एक सिंगल वेकअप इनपुट फ्लैग है। ST ने सबसे पहले F7 और L4 सीरीज़ में इस ओवरसाइट को सही किया है, जिसमें प्रत्येक वेकअप इनपुट के लिए अलग झंडे हैं।
बेरेन्डी - विरोध

जवाबों:


11

मुझे इस एसटी भाग का विवरण नहीं पता है, इसलिए मुझे लगता है कि इसका विवरण सही है।

बटन दबाते ही प्रोसेसर को बहुत जल्दी जागना चाहिए। यह विशेष रूप से सच होना चाहिए अगर इसमें एक आंतरिक आरसी थरथरानवाला है। यहां तक ​​कि अगर आपको सटीकता के कारणों के लिए अंततः क्रिस्टल से चलने की आवश्यकता है, तो शायद आपके पास आंतरिक आरसी से भाग शुरू हो सकता है, फिर बाद में क्रिस्टल पर स्विच करें। ऐसे कई काम कर सकते हैं, हालांकि मुझे नहीं पता कि तुम्हारा उनमें से एक है।

किसी भी स्थिति में, आप जागने के बाद जितनी जल्दी हो सके दोनों इनपुट पढ़ते हैं। जब तक कि इस एसटी माइक्रो के बारे में कुछ असामान्य न हो, जो कि बटन प्रेस से एक एमएस से कुछ 10 एमएस तक होना चाहिए।

यह गारंटी देने के लिए कि लाइन अभी भी कम है, बटन जारी होने के बाद लाइन को 100 एमएस तक कम रखने के लिए संधारित्र का उपयोग करें।

उदाहरण के लिए, मान लें कि गारंटीकृत तर्क कम इनपुट स्तर आपूर्ति वोल्टेज का 20% है। लाइन को एक रोकनेवाला के साथ ऊपर खींचा जाता है, और जमीन पर संधारित्र होता है। बटन जमीन पर लाइन को छोटा करता है। लाइन इसलिए उच्च तैरती है, और बटन दबाए जाने पर सक्रिय रूप से जमीन पर मजबूर हो जाती है। जब बटन जारी किया जाता है, तो वोल्टेज तेजी से आपूर्ति की ओर बढ़ जाता है।

अंतिम मूल्य का 20% तक घटने का समय 0.22 समय स्थिरांक में होता है। मान लें कि आप गारंटी देना चाहते हैं कि बटन दबाने के बाद लाइन 100 एमएस के लिए कम लगती है। इसका मतलब है कि RC समय स्थिर 450 ms होना चाहिए। 100 k need पुलअप के साथ, समाई 4.5 µF होनी चाहिए। तो एक 4.7 aF 10 V टोपी अच्छी तरह से करना होगा।

संक्षेप में, यहाँ सर्किट है:


1
दूसरा रास्ता होना चाहिए, STM32s बढ़ती बढ़त पर जागते हैं। इसके अलावा, afaik वे हमेशा आंतरिक घड़ी से शुरू करते हैं, बाहरी क्रिस्टल और pll पर स्विच करना सॉफ्टवेयर द्वारा किया जाता है। समस्या क्यूबएक्सएक्स टूल द्वारा आपूर्ति या उत्पन्न स्टार्टअप कोड के साथ है, जो घड़ी के पेड़ की स्थापना से पहले उपयोगकर्ता कोड को चलाने के लिए कुछ हद तक मुश्किल बनाता है।
बेर्डी -
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.