मैं बूटलोडर को कैसे जलाऊं?


15

मुझे मेरे Arduino को "बूटलोडर को जलाने" के लिए निर्देश दिया गया था जो मुझे मिल रही एक त्रुटि को ठीक करने के लिए था। मैं यह कैसे कर सकता हूँ? (और वास्तव में बूटलोडर क्या है?)


यह बहुत आसान है कि आप सही कदमों का पालन करें बशर्ते आप को बर्ड लोडर को जलाना आसान हो। यह वीडियो आपकी सहायता कर सकता है: YouTube - ATMEGA328P-AU (SMD) पर बूटलोडर को कैसे जलाएं घर का बना ARDUINO MINI
Sandesh HS

जवाबों:


15

बूटलोडर एक छोटा प्रोग्राम है जो हमेशा (लगभग) एक अरुडिनो पर होता है। यह आपके द्वारा बनाए गए स्केच को अपलोड करने और शुरू करने का प्रबंधन करता है, और जब भी बोर्ड रीसेट करता है तो पिन 13 एलईडी को ब्लिंक करता है।


बूटलोडर को जलाने के लिए:

  1. एक प्राप्त AVR आईएसपी , USBtinyISP , ParallelProgrammer , या एक और Arduino बोर्ड । यह आपका आईएसपी होगा।
  2. जब तक अन्यथा निर्देश न दिया जाए, अपने बोर्ड पर ISP को ICSP पिन से कनेक्ट करें।
  3. USB केबल या बाहरी बिजली की आपूर्ति के साथ अपने बोर्ड को पावर दें।
  4. Arduino IDE खोलें।
  5. सुनिश्चित करें कि आपने सही बोर्ड का चयन किया है जिसे आप Tools ► Board ►आईडीई में जला रहे हैं । यदि आप प्रोग्राम को सही तरीके से अपलोड कर सकते हैं, तो भी इसे दोबारा जांचें; अपलोड करने के लिए हमेशा सही बोर्ड की आवश्यकता नहीं होती है।
  6. पर उपयुक्त प्रोग्रामर का चयन करें Tools ► Programmer ►
  7. क्लिक करें Tools ► Burn Bootloader, और प्रतीक्षा करें। यह एक मिनट से अधिक नहीं लेना चाहिए, और अक्सर केवल कुछ सेकंड लगते हैं।

सूत्रों का कहना है:


1
इस बिंदु पर AVRISP बहुत ज्यादा EOL (जीवन का अंत) है। कम से कम, आप एक AVRISPmk2 चाहते हैं। बहुत सारे अन्य, कट्टर उपकरण (AVR One! उदाहरण के लिए) भी हैं। आपको शायद सिर्फ इतना कहना चाहिए{line 1} or other dedicated ISP programmer.
कॉनर वुल्फ

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

@FedericoFissore - यही कारण है कि यह इतना लंबा समय लगता है?
द डॉक्टर

हां, वह और यह तथ्य कि GPIO बिटबैंगिंग धीमा है। इसे गति देने का प्रयास जारी है।
फेडरिको फिशोर

8

बूटलोडर क्या है?

और वास्तव में बूटलोडर क्या है?

बूटलोडर प्रोग्राम मेमोरी के "उच्च" भाग में रहने वाला कोड का एक छोटा सा टुकड़ा है। जब आप नए स्केच अपलोड करते हैं तो आम तौर पर इसे मिटाया नहीं जाता है। इसका उद्देश्य इसे एक रीसेट के तुरंत बाद सक्रिय किया जाना है (फ़्यूज़ को बूटलोडर पते पर कोड शुरू करने के लिए कॉन्फ़िगर किया गया है बजाय 0x0000 पते के)। बूटलोडर थोड़े समय (जैसे एक सेकंड) इंतजार करेगा यह देखने के लिए कि क्या "प्रोग्रामिंग" डेटा सीरियल पोर्ट पर आ रहा है।

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

  • यदि कोई निर्देश नहीं आता है, तो बूटलोडर बोर्ड पर मौजूदा स्केच को निष्पादित करने के लिए 0x0000 को संबोधित करता है।


बूटलोडर को कैसे बदलें

बूटलोडर को प्रोग्राम करने के लिए एक वैकल्पिक विधि एक स्केच का उपयोग करना है जो मैंने थोड़ी देर पहले लिखा था जो एक पर चलता है:

  • ऊनो (या समान, जैसे डुमिलानोव)
  • लियोनार्डो
  • Mega2560

"प्रोग्रामिंग" बोर्ड स्केच चलाता है जिसमें कई बोर्डों के लिए बूट-लोडर होते हैं जो इसमें हार्ड-कोडित होते हैं। आप प्रोग्रामिंग बोर्ड को 6 हुक-अप तारों के साथ लक्ष्य बोर्ड (बूटलोडर को चाहने वाला बोर्ड) से जोड़ते हैं।

ऊनो के लिए बूटलोडर प्रोग्रामर

वह विशेष तस्वीर एक यूनो प्रोग्रामिंग को एक दूसरे से दर्शाती है।

आप स्केच चलाते हैं (इसे कमांड देने के लिए सीरियल मॉनिटर के माध्यम से)। पहले यह लक्ष्य चिप की पहचान करता है:

Atmega chip programmer.
Written by Nick Gammon.
Entered programming mode OK.
Signature = 0x1E 0x95 0x0F 
Processor = ATmega328P
Flash memory size = 32768 bytes.
LFuse = 0xFF 
HFuse = 0xDE 
EFuse = 0xFD 
Lock byte = 0xCF 
Bootloader address = 0x7E00
Bootloader length = 512 bytes.
Type 'L' to use Lilypad (8 MHz) loader, or 'U' for Uno (16 MHz) loader ...
Type 'G' to program the chip with the bootloader ...

आप इसे प्रोग्राम करने के लिए G दबाते हैं ।

Erasing chip ...
Writing bootloader ...
Committing page starting at 0x7E00
Committing page starting at 0x7E80
Committing page starting at 0x7F00
Committing page starting at 0x7F80
Written.
Verifying ...
No errors found.
Writing fuses ...
LFuse = 0xFF 
HFuse = 0xDE 
EFuse = 0xFD 
Lock byte = 0xCF 
Done.
Type 'C' when ready to continue with another chip ...

एक ऊनो के लिए यह एक सेकंड लगता है। एक मेगा2560 प्रोग्राम करने के लिए 3 सेकंड लगते हैं।

Atmega बूटलोडर प्रोग्रामर पर विस्तृत निर्देश

कोड को जीथब से डाउनलोड किया जा सकता है : निकगैमोन / आर्दुइनो_स्केट्स


क्या आपको उस प्रकार के चिप का चयन करना है जो आपके जल रहे हैं (उपकरण-> बोर्ड ..)? जब मैं बूटलोडर को अकेले चिप करने के लिए जला रहा हूं तो मैं किस बोर्ड का चयन करूं?
कैमिलो

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