विषयसूची:

एक और Arduino के साथ एक AVR (arduino) प्रोग्राम कैसे करें: 7 कदम
एक और Arduino के साथ एक AVR (arduino) प्रोग्राम कैसे करें: 7 कदम

वीडियो: एक और Arduino के साथ एक AVR (arduino) प्रोग्राम कैसे करें: 7 कदम

वीडियो: एक और Arduino के साथ एक AVR (arduino) प्रोग्राम कैसे करें: 7 कदम
वीडियो: अरुडिनो मास्टरक्लास | 90 मिनट में पूर्ण प्रोग्रामिंग कार्यशाला! 2024, नवंबर
Anonim
एक और Arduino के साथ AVR (arduino) प्रोग्राम कैसे करें
एक और Arduino के साथ AVR (arduino) प्रोग्राम कैसे करें
एक और Arduino के साथ एक AVR (arduino) प्रोग्राम कैसे करें
एक और Arduino के साथ एक AVR (arduino) प्रोग्राम कैसे करें
एक और Arduino के साथ AVR (arduino) प्रोग्राम कैसे करें
एक और Arduino के साथ AVR (arduino) प्रोग्राम कैसे करें

यह निर्देश उपयोगी है यदि:

* आपको 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 के साथ प्रयोग करना
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 फर्मवेयर को एक Attiny2313. में बर्न करना
USBtinyISP फर्मवेयर को एक Attiny2313. में बर्न करना
USBtinyISP फर्मवेयर को एक Attiny2313. में बर्न करना
USBtinyISP फर्मवेयर को एक Attiny2313. में बर्न करना
USBtinyISP फर्मवेयर को एक Attiny2313. में बर्न करना
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 बूटलोडर को जलाना

Arduino बूटलोडर को जलाना
Arduino बूटलोडर को जलाना
Arduino बूटलोडर को जलाना
Arduino बूटलोडर को जलाना
Arduino बूटलोडर को जलाना
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 कैप्स) लापता ?)

सिफारिश की: