विषयसूची:
- चरण 1: आपको क्या चाहिए?
- चरण 2: ब्रेडबोर्ड पर मेगा-आईएसपी प्रोग्रामर बनाना
- चरण 3: स्केच अपलोड करना
- चरण 4: Avrdude के साथ प्रयोग करना
- चरण 5: USBtinyISP फ़र्मवेयर को Attiny2313. में बर्न करना
- चरण 6: Arduino बूटलोडर को जलाना
- चरण 7: समस्या निवारण
वीडियो: एक और Arduino के साथ एक AVR (arduino) प्रोग्राम कैसे करें: 7 कदम
2024 लेखक: John Day | [email protected]. अंतिम बार संशोधित: 2024-01-30 09:24
यह निर्देश उपयोगी है यदि:
* आपको atmega168 के साथ अपना arduino मिला है और आपने स्थानीय इलेक्ट्रॉनिक्स स्टोर पर atmega328 खरीदा है। इसमें एक arduino बूटलोडर नहीं है * आप एक ऐसा प्रोजेक्ट बनाना चाहते हैं जो arduino का उपयोग न करे - बस एक नियमित AVR चिप (USBTinyISP की तरह) - आपके पास एक साफ attiny2313/attiny48 आदि है जिसे आप फर्मवेयर को जलाना चाहते हैं। आम तौर पर आपके पास अपनी नई चिप को प्रोग्राम करने के लिए USBTinyISP जैसा ISP (इन सिस्टम प्रोग्रामर) होना चाहिए। आर्डिनो होने के कारण आप इसे प्रोग्रामर बनना सिखा सकते हैं, रान्डेल बोहन द्वारा किए गए एक महान काम के लिए धन्यवाद। उन्होंने मेगा-आईएसपी बनाया - एक आर्डिनो स्केच जो एक प्रोग्रामर की तरह काम करता है।
चरण 1: आपको क्या चाहिए?
* एक काम कर रहे Arduino (या एक क्लोन - मैं BBB - BareBonesBoard और एक RBBB - RealBareBonesBoard by ModernDevices का उपयोग कर रहा हूं) * एक चिप जिसे आप प्रोग्राम करना चाहते हैं (atmega8, atmega168, atmega368, attiny2313, attiny13 के साथ परीक्षण किया गया) * एक ब्रेडबोर्ड या आईएसपी हेडर वाला एक बोर्ड * 3 एलईडी + 3 प्रतिरोधक * ब्रेडबोर्ड तार
चरण 2: ब्रेडबोर्ड पर मेगा-आईएसपी प्रोग्रामर बनाना
चिप को प्रोग्राम करने के लिए अपने Arduino को कनेक्ट करने के दो तरीके हैं।
आप अपनी avr चिप को ब्रेडबोर्ड पर प्लग कर सकते हैं और 5v और GND को संबंधित पिन से कनेक्ट कर सकते हैं (डेटाशीट की जांच करें!) + रीसेट करने के लिए एक पुलअप रेसिस्टर और आप arduino से चिप तक पिन वायर करें। ये Arduino और उनके कार्य 13 - SCK 12 - MISO 11 - MOSI 10 - RST (रीसेट) पर पंक्तियाँ हैं या आप एक 2x3pin ISP हेडर बना सकते हैं जिसे आप एक बोर्ड में प्लग कर सकते हैं जो एक (दूसरा arduino बोर्ड) प्रदान करता है। आईएसपी हेडर के लिए पिनआउट तीसरी छवि पर है प्रोग्रामर की स्थिति को इंगित करने के लिए 3 एलईडी हैं। पिन 9 - नीला एलईडी - यह प्रोग्रामर की धड़कन है। पिन 8 - लाल एलईडी - एक त्रुटि इंगित करता है पिन 7 - हरा एलईडी - इंगित करता है कि प्रोग्रामिंग हो रही है (मैं आलसी था इसलिए मैं अपने सेटअप में रंगों से मेल नहीं खाता) यहां फ्रिट्ज़िंग में बनाए गए चित्र हैं आप एक बना सकते हैं मेगा-आईएसपी शील्ड। यारोस्लाव ओसाडची ने चील में ढाल को डिजाइन किया। आप उसकी साइट पर चील की फाइलें प्राप्त कर सकते हैं:
चरण 3: स्केच अपलोड करना
मेगा-आईएसपी गूगल कोड से स्केच डाउनलोड करें। (लेखन के समय avrisp.03.zip)। इसे अनपैक करें और arduino ide चलाएं और avrisp.pde खोलें। इसे अपने arduino बोर्ड पर अपलोड करें। दिल की धड़कन का नेतृत्व करना शुरू कर देना चाहिए।
चरण 4: Avrdude के साथ प्रयोग करना
avrdude (और इसका उपयोग करने वाले सभी GUI) के साथ उपयोग करने के लिए आपको 'avrisp' प्रोग्रामर का चयन करना होगा। सबसे सुरक्षित बिटरेट 19200 है।
कमांडलाइन से अपने नए atmega168 का परीक्षण करने के लिए प्रयास करें: $ avrdude -p m168 -P /dev/ttyUSB0 -c avrisp -b 19200 /dev/USB0 वह पोर्ट है जो arduino मेरे लिनक्स बॉक्स से जुड़ा है (आपका com5 हो सकता है)। इसे टूल्स -> सीरियल पोर्ट में arduino IDE में चेक किया जा सकता है। आपको यह मिलना चाहिए: [kabturek@hal-9000 ~]# avrdude -p m168 -P /dev/ttyUSB0 -c avrisp -b 19200 avrdude: AVR डिवाइस इनिशियलाइज़ किया गया और निर्देशों को स्वीकार करने के लिए तैयार है पढ़ना | ############################################# | 100% 0.13s avrdude: डिवाइस सिग्नेचर = 0x1e9406 एवरड्यूड: सेफमोड: फ़्यूज़ ओके एवरड्यूड हो गया। धन्यवाद। यानी सब ठीक है। यदि आपको त्रुटियां मिलती हैं - अंतिम चरण की जांच करें।
चरण 5: USBtinyISP फ़र्मवेयर को Attiny2313. में बर्न करना
USBTinyISP LadyAda का एक बेहतरीन प्रोग्रामर है जो वास्तव में सस्ता है - 22$। मेरे पास एक अतिरिक्त attiny2313 और कुछ हिस्से थे इसलिए मैंने खुद एक बनाने का फैसला किया। यदि आपके पास पीसीबी बनाने का कोई अनुभव नहीं है, तो मेरी सलाह है कि आप किट खरीदें क्योंकि यह उच्च गुणवत्ता वाला है जितना आप स्वयं बना सकते हैं:)। यदि आप एक बनाना चाहते हैं तो कम से कम पीसीबी खरीदें। आप इसे एडफ्रूट से प्राप्त कर सकते हैं। ATtiny2313 कनेक्ट करेंआखिरी तस्वीर में आप attiny2313 को लाल रंग में ISP के लिए इस्तेमाल किए गए पिन के साथ देख सकते हैं। तस्वीर LadyAda avr ट्यूटोरियल की है। फ़र्मवेयर बर्न करना: USBTinyISP फ़र्मवेयर को अनपैक करें। spi dir पर जाएँ और $avrdude -p pt2313 -P /dev/ttyUSB0 -c avrisp -b 19200 चलाएँ यह जाँचने के लिए कि चिप के साथ सब कुछ ठीक है या नहीं। अब फ़्यूज़ सेट करें: $ avrdude -P /dev/ttyUSB0 -c avrisp -b 19200 -pt2313 -U hfuse:w:0xdf:m -U lfuse:w:0xef:m अब आपको चिप में 12mhz बाहरी ऑसीलेटर संलग्न करना चाहिए. और फर्मवेयर को बर्न करें: $ avrdude -B 1 -pt2313 -U flash:w:main.hex -P /dev/ttyUSB0 -c avrisp -b 19200 वोइला। आपके attiny2313 में USBTinyISP फर्मवेयर है।
चरण 6: Arduino बूटलोडर को जलाना
कनेक्टिंग मैंने थोड़ा धोखा दिया क्योंकि मैंने कनेक्शन को सरल बनाने के लिए आरबीबीबी का उपयोग किया था। स्कीमा चित्र #2 पर है। यदि आप 2 arduinos का उपयोग करते हैं तो चित्र # 3 का उपयोग करें और ISP पिन को दूसरे (दास) arduino पर ICSP 2x3header से कनेक्ट करें। केवल USB पावर को पहले बोर्ड से कनेक्ट करें। जीयूआई तरीका यह थोड़ा मुश्किल कारण है कि आप सिर्फ टूल्स-> बर्न बूटलोडर -> डब्ल्यू/एवीआर आईएसपी का उपयोग नहीं कर सकते क्योंकि मेगा-आईएसपी के लिए डिफ़ॉल्ट गति बहुत बड़ी है। avrdude.conf खोजें जो arduino IDE के साथ आता है (arduino/hardware/tools/avrdude.conf में) और avrisp प्रोग्रामर की सीमा को 115200 से 19200 (लगभग लाइन 312) में बदलें avrdude.conf प्रोग्रामर आईडी = "avrisp" में खोजें और बदलें; desc = "एटमेल एवीआर आईएसपी"; बॉड्रेट = ११५२००; # डिफ़ॉल्ट 115200 प्रकार = stk500 है;; सेवा मेरे: प्रोग्रामर आईडी = "एवरीस्प"; desc = "एटमेल एवीआर आईएसपी"; बॉड्रेट = १९२००; # डिफ़ॉल्ट 115200 प्रकार = stk500 है;; अब आप टूल्स -> बर्न बूटलोडर -> डब्ल्यू/एवीआर आईएसपी (टूल्स मेनू से उचित बोर्ड का चयन करने के बाद) का उपयोग कर सकते हैं। /SPEED to: # avrdude isp टूल ISPTOOL = avrisp ISPPORT = /dev/ttyUSB0 ISPSPEED = -b 19200 के लिए पैरामीटर दर्ज करें। ब्लिंकी को जलाओ!
चरण 7: समस्या निवारण
एवरड्यूड त्रुटियां: avrdude: ser_open (): डिवाइस नहीं खोल सकता "/ dev/ttyUSB0": ऐसी कोई फ़ाइल या निर्देशिका नहीं है आपके पास गलत पोर्ट (-P) निर्दिष्ट है या आपका arduino कनेक्ट नहीं है। कनेक्शन की जाँच करें avrdude: डिवाइस हस्ताक्षर = 0x000000 avrdude: ओह! अमान्य डिवाइस हस्ताक्षर। कनेक्शन दोबारा जांचें और पुन: प्रयास करें, या इस चेक को ओवरराइड करने के लिए -F का उपयोग करें। यह एक तरह की सामान्य त्रुटि है। आपकी चिप की पहचान नहीं हो पाई है. बोर्ड पर कनेक्शन की जाँच करें (GND/5V पिन से जुड़ा हुआ है?) आपको यह त्रुटि तब मिलेगी जब आपकी चिप को बाहरी थरथरानवाला का उपयोग करने के लिए कॉन्फ़िगर किया गया है और यह काम नहीं कर रहा है (एक नहीं है या यह उचित रूप से दोलन नहीं कर रहा है - 22pf कैप्स) लापता ?)
सिफारिश की:
Arduino IDE और Visuino के साथ ESP32 M5Stack StickC कैसे प्रोग्राम करें: 12 कदम
Arduino IDE और Visuino के साथ ESP32 M5Stack StickC प्रोग्राम कैसे करें: इस ट्यूटोरियल में हम सीखेंगे कि Arduino IDE और Visuino के साथ ESP32 M5Stack StickC को कैसे प्रोग्राम किया जाए। एक प्रदर्शन वीडियो देखें।
USBasp के साथ ATtiny85 प्रोग्राम और बूटलोड कैसे करें: 5 कदम
USBasp के साथ ATtiny85 प्रोग्राम और बूटलोड कैसे करें: इस निर्देश में आप सीखेंगे कि कैसे सबसे सरल तरीके से ATtiny85 माइक्रोचिप को बूटलोड और प्रोग्राम किया जाए। यह मेरा पहला निर्देश है, इसलिए यदि आपके पास बेहतर मार्गदर्शक बनाने के बारे में कोई सलाह या सुझाव है, तो कृपया बेझिझक सह
ब्रेडबोर्ड का उपयोग करके PICkit प्रोग्रामर के साथ PIC MCU को कैसे प्रोग्राम करें: 3 कदम
ब्रेडबोर्ड का उपयोग करके PICkit प्रोग्रामर के साथ PIC MCU को कैसे प्रोग्राम करें: PIC (या किसी अन्य) माइक्रोकंट्रोलर के साथ खेलने के लिए आपको महंगे और परिष्कृत टूल की आवश्यकता नहीं है। आपको बस एक ब्रेडबोर्ड चाहिए जहां आप अपने सर्किट और प्रोग्रामिंग का परीक्षण करें। बेशक किसी तरह का प्रोग्रामर और आईडीई जरूरी है। इस निर्देश में
Arduino Uno के साथ Arduino Pro Mini कैसे प्रोग्राम करें: 4 कदम
Arduino Uno के साथ Arduino Pro Mini कैसे प्रोग्राम करें: मैंने इसे एक अन्य प्रोजेक्ट के हिस्से के रूप में लिखा था, लेकिन फिर मैंने एक प्रो माइक्रो का उपयोग करने का फैसला किया जिसे सीधे लैपटॉप से प्रोग्राम किया जा सकता है। हालांकि, यह किसी दिन (या किसी के लिए) उपयोगी हो सकता है। मैं इसे यहाँ छोड़ दूँगा।
Arduino बोर्ड का उपयोग करके AVR बोर्ड को कैसे प्रोग्राम करें: 6 कदम
Arduino बोर्ड का उपयोग करके AVR बोर्ड को कैसे प्रोग्राम करें: क्या आपके पास AVR माइक्रोकंट्रोलर बोर्ड है? क्या इसे प्रोग्राम करना मुश्किल है? खैर, आप सही जगह पर हैं। यहां, मैं आपको एक प्रोग्रामर के रूप में Arduino Uno बोर्ड का उपयोग करके Atmega8a माइक्रोकंट्रोलर बोर्ड को प्रोग्राम करने का तरीका दिखाऊंगा। तो बिना आगे