कम बिजली पर बूटअप कार्य नहीं कर रहा है


9

मेरे पास एक कस्टम Arduino ATMega328 बोर्ड है जो आम तौर पर 5V @ 8MHz (Arduino Pro 3.3V 8MHz प्रोफ़ाइल और बूटलोडर का उपयोग करके) पर चलता है। इस सेटअप का उपयोग करने का मुख्य कारण यह है कि मैं बोर्ड को सोने के लिए रख सकता हूं जब मुख्य बिजली काट दी जाती है और यह बैटरी पावर (एक सिक्का सेल से 3V) से चलना शुरू हो जाता है। 5V और 3V स्रोत डायोड OR'ed एक साथ हैं और 5V इनपुट INT0 से बंधा है। कोड में, जब यह पता लगाता है कि INT0 कम हो गया है, तो यह स्लीप मोड को इनिशियलाइज़ करता है और वॉचडॉग टाइमर के अपवाद के साथ सब कुछ डाउन हो जाता है जो कि एक आंतरिक गिनती रखने के लिए 1Hz का चक्र रखता है और इसकी जाँच करता है कि चिप बैक अप हो जाना चाहिए। यह खूबसूरती से काम करता है जब 5V पावर पहले लागू किया जाता है, तब बैटरी डाली जाती है, फिर5V काट दिया जाता है। यह सो जाता है और जब 5 वी लाया जाता है तो यह जाग जाता है और मैं देख सकता हूं कि यह खोई हुई गिनती नहीं है।

हालाँकि, समस्या तब आती है जब 3V को पहले लागू किया जाता है । मैं ईमानदारी से यकीन नहीं कर रहा हूँ अगर यह भी बूट हो रहा है। लेकिन यह माना जाता है कि बूट करना है, तो जांचें कि क्या INT0 (डिजिटल 2) कम है और यदि हां, तो सोने के लिए सही जाएं। वर्तमान ड्रा को देखकर मैं देखता हूं कि यह कुछ सेकंड के लिए कुछ एमए तक की शक्ति रखता है, फिर लगभग 0.3mA (फिर भी यह नींद मोड में अधिक होना चाहिए) तक गिर जाता है। लेकिन जब मैं 5V को फिर से लागू करता हूं, तो कुछ भी नहीं । पावर ड्रॉ वापस हो जाता है, लेकिन यह अनुत्तरदायी (FTDI सीरियल पर) है।

वहाँ शायद कुछ मुझे याद आ रहा है कि यह 3V पर बूट नहीं किया जा सकता है ... सिद्धांत रूप में यह ठीक चलना चाहिए।

अद्यतन: मैंने D13 पर एक एलईडी को गिरा दिया और पलक स्केच की कोशिश की। 3V या 5V से शुरू होने पर ठीक काम करता है। हालांकि, जब मैं अपना फर्मवेयर चलाता हूं और इसे 3V से शुरू करता हूं, तो एलईडी बस बेतहाशा चमकने लगती है। मुझे नहीं पता कि इसका क्या कारण है क्योंकि मैंने अपने कोड में कभी भी D13 को सेटअप नहीं किया है। लेकिन यह मुझे बात यह है कि यह बूटलोडर के साथ कुछ करना है ...


1
बीओडी क्या है, और स्टार्टअप पर वर्तमान ड्रा क्या है?
इग्नासियो वाज़क्वेज़-अब्राम्स

यह 2.7V पर सेट है। वर्तमान ड्रा जबकि 3V पहले कुछ सेकंड के लिए लगभग 4mA है, फिर बूँदें और एलईडी पागल हो जाता है।
एडम हैली

क्या आपने बूटलोडर के बिना आईएसपी के माध्यम से प्रयास किया है?
इग्नासियो वाज़क्वेज़-अब्राम्स

नहीं, मैंने अभी तक कोशिश नहीं की है। क्या अजीब है जब बस पलक स्केच चल रहा है
एडम हैली

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

जवाबों:


6

तो ... क्या हुआ सब कोड में था। यह बताता है कि मैं INT0 पर एक अवरोध को शुरू कर रहा था, जब यह मेरे कोड की शुरुआत में कम था। समस्या यह थी कि जब यह 3V बैकअप पावर पर शुरू हुआ था, तो INT0 हमेशा कम था क्योंकि INT0 5V लाइन से बंधा हुआ है (यह कैसे सो जाना जानता है)। क्योंकि INT0 कम था और यह अवरोध कम होने के कारण ट्रिगर हो रहा था, जिससे लगातार अवरोध उत्पन्न हो रहा था, कभी भी शेष कार्यक्रम को चलाने का समय नहीं दिया गया। पूर्ण अवरोधन मोड में प्रवेश करने के बाद केवल एक बार उस अवरोध को सक्षम करने के लिए स्विच किया गया और यह अब ठीक काम करता है।


4

वास्तव में क्या हो रहा है और क्यों प्रदान की गई जानकारी के आधार पर निर्धारित नहीं किया जा सकता है। हालांकि, मुझे कम से कम एक संभावित समस्या दिखाई देती है जो कम से कम आंशिक रूप से वर्णित लक्षणों को समझाएगी।

आपने कहा था कि आप वोल्टेज की आपूर्ति का चयन करने के लिए डायोड का उपयोग कर रहे हैं, और एक आपूर्ति 3V बैटरी है। यदि आप मानक डायोड का उपयोग कर रहे हैं जो ~ 0.6V छोड़ देता है तो MCU को आपूर्ति वोल्टेज केवल ~ 2.4V है। यदि आप 0.15-0.45 के बीच एक वोल्टेज ड्रॉप के साथ Schottky डायोड का उपयोग कर रहे हैं, तो आपूर्ति वोल्टेज संभवतः 2.5V से कम है। आपके पास 2.7 वोल्ट पर बीओडी वोल्टेज सेट है, इसलिए सिद्धांत रूप में एमसीयू कभी बैटरी के साथ बूट नहीं करेगा।

जैसा कि आप इसे 5v से शुरू कर सकते हैं, 3v तक छोड़ सकते हैं, और इसे फिर से वापस ला सकते हैं- मुझे यकीन नहीं है। आप कोड में BOD को अक्षम कर सकते हैं ... हो सकता है ... निश्चित नहीं है कि यह क्यों काम करता है, लेकिन यह काम करने की गारंटी नहीं है।

मैं 5v और 3.3v के साथ एक डायोड स्विच सर्किट को सेटअप करता हूं, यह देखने के लिए कि यह मेरे आस्टसीलस्कप पर कैसा दिखता है जब वोल्टेज स्विच करता है। जब 3.3v 5 वी पर स्विच कर रहा है, तो वोल्टेज शुरू में काफी कम हो जाता है। जब MCU नींद से बाहर आने की कोशिश करता है तो इससे कुछ समस्याएं हो सकती हैं। VCC और GND के बीच एक कैप लगाने से सिग्नल बहुत अच्छी तरह से स्मूथ हो गया। जब 5v से 3.3v पर स्विच किया जाता है, तो वास्तव में कोई ऑसिलेटिंग नहीं था, बस एक साफ ड्रॉप।

इस जानकारी से, ऐसा लगता है कि आपको BOD सीमा को कम करना चाहिए या BOD को बंद करना चाहिए, और VCC और GND के बीच एक डिकूपिंग कैप लगाना चाहिए। आपको शायद यह भी सुनिश्चित करना चाहिए कि आपके पास INT0 पर एक पुल-डाउन रोकनेवाला है, और एमसीयू डेटाशीट अनुभागों को पढ़ते हुए नींद और जागने के लिए सभी नींद के विभिन्न तरीकों को समझाते हुए - यह बहुत शामिल है। चियर्स


2

मुझे लगता है कि समस्या आपके बूटलोडर के साथ है, लेकिन आपके सोचने के तरीके में नहीं।

जब एक Arduino शुरू होता है, एक बूटलोडर कई कार्यों को पेश करता है, जैसे कि एक सीरियल होस्ट या फ्लैश से प्रोग्राम डेटा लोड करने की तलाश में एक नींद Arduino की तुलना में बहुत अधिक ऊर्जा लेने वाला है।

मुझे लगता है कि इसका कारण यह है कि आपका Arduino शुरू नहीं होगा क्योंकि बूटलोडर को एक सटीक घड़ी स्रोत की आवश्यकता होती है, लेकिन 3v को लागू करने से उस घड़ी को गड़बड़ कर देगा और यह शायद दुर्घटनाग्रस्त हो जाएगा या स्थिर स्रोत के लिए 3.3v के लागू होने की प्रतीक्षा करेगा।

डेटाशीट को देखते हुए:

कॉपीराइट ATMEL

हम देखते हैं कि जागने के दौरान करंट ड्रा (बूटलोडर चलाना) संभवत: 2mA के आसपास होता है, जबकि स्लीपिंग करंट लगभग 0.8 सेंटीमीटर होता है । यह निश्चित रूप से उचित वर्तमान के बिना स्टार्टअप पर एक अंधकार को जन्म दे सकता है।

शायद आपको इसे केवल 5 वी पावर के साथ चालू करना चाहिए, या हो सकता है कि आपको उच्च धारा, उच्च वोल्टेज बैटरी की आवश्यकता हो।


इसका मतलब यह नहीं होगा कि पलक भी काम नहीं करेगी? इसके अलावा, मैं कुछ मुद्दों के साथ सिक्का कोशिकाओं से कुछ Arduino से अधिक चल रहा हूँ। वे थोड़े समय के लिए बहुत अधिक वर्तमान प्रदान कर सकते हैं।
Cybergibbons

-5

टूल> बर्न बूटलोडर पर जाकर अपने arduino को पुनः बूट करने का प्रयास करें


1
क्या आप इस बारे में अधिक जानकारी जोड़ सकते हैं कि आगे कैसे करें? यह बहुत विशिष्ट नहीं है: आप Arduino से क्या कनेक्ट कर सकते हैं? क्या कोई जोखिम हैं? धन्यवाद!
अनाम पेंगुइन

मैं सुरक्षित होने के लिए सब कुछ अनप्लग कर दूंगा, लेकिन कोई भी खतरा नहीं होना चाहिए
डेवलपर

यहां बूटलोडर को जलाने का तरीका बताया गया है: arduino.stackexchange.com/a/474/37 । आपका जवाब यह नहीं बताता कि यह कैसे करना है।
द गाईट विथ द हैट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.