- USB के माध्यम से ATtiny85 प्रोग्राम करने के लिए आवश्यक घटक
- ATtiny85 माइक्रोकंट्रोलर आईसी - परिचय
- Arduino Uno का उपयोग करके ATtiny85 पर फ्लैशिंग बूट-लोडर
- एटीटीनी प्रोग्रामर के लिए सर्किट आरेख
- Digispark ड्राइवर स्थापित करना
- कार्यक्रम ATttiny85 के लिए Arduino IDE की स्थापना
एटिआर बाजार में एटिनी परिवार एक सबसे छोटे माइक्रोकंट्रोलर की श्रृंखला है। ये माइक्रोकंट्रोलर Arduino प्लेटफॉर्म पर उपलब्ध कई पुस्तकालयों का उपयोग करने में सक्षम हैं। ATtiny85 माइक्रोकंट्रोलर चिप 8-पिन, 8-बिट, AVR माइक्रोकंट्रोलर है। इसका छोटा आकार और कम बिजली की खपत इसे छोटे पैरों के निशान और कम बिजली की आवश्यकताओं के साथ पोर्टेबल परियोजनाओं के लिए एक शानदार मैच बनाती है। लेकिन चिप पर अपना कोड प्राप्त करना थोड़ा चुनौती भरा हो सकता है क्योंकि इसमें माइक्रोकंट्रोलर बोर्ड की तरह कोई भी यूएसबी इंटरफ़ेस नहीं है।
हमारे पिछले ट्यूटोरियल में, हमने Arduino Uno का उपयोग करके ATtiny85 को क्रमादेशित किया । लेकिन Attiny85 को Arduino से जोड़ना और ISP के रूप में Arduino का उपयोग करना मुश्किल और समय लेने वाला हो सकता है। इसलिए इस ट्यूटोरियल में, हम ATtiny85 प्रोग्रामिंग बोर्ड बनाने जा रहे हैं, ताकि हम अन्य माइक्रोकंट्रोलर बोर्ड की तरह इसे सीधे प्लगइन और प्रोग्राम कर सकें।
USB के माध्यम से ATtiny85 प्रोग्राम करने के लिए आवश्यक घटक
- Arduino UNO (बूटलोडर अपलोड करते समय केवल पहली बार)
- ATtiny85 आईसी
- USB A- प्रकार प्लग पुरुष
- 3 प्रतिरोध (2 × 47Ω & 1 × 1k ×)
- 3 डायोड (2 × जेनर डायोड और 1 × IN5819 डायोड)
- 8-पिन आईसी बेस
- ब्रेड बोर्ड
- जम्पर तार
ATtiny85 माइक्रोकंट्रोलर आईसी - परिचय
Atmel का ATtiny85 उन्नत RISC आर्किटेक्चर पर आधारित एक उच्च प्रदर्शन, कम शक्ति वाला 8-बिट माइक्रोकंट्रोलर है । इस माइक्रोकंट्रोलर चिप में 8KB ISP फ्लैश मेमोरी, 512B EEPROM, 512-बाइट SRAM, 6 सामान्य-उद्देश्य I / O लाइनें, 32 सामान्य प्रयोजन कार्य रजिस्टर, एक 8-बिट टाइमर / काउंटर की तुलना मोड के साथ, एक 8-बिट हाई-स्पीड है। टाइमर / काउंटर, यूएसआई, आंतरिक और बाहरी इंटरप्ट, 4-चैनल 10-बिट ए / डी कनवर्टर, आंतरिक थरथरानवाला के साथ प्रोग्राम वॉचडॉग टाइमर, तीन सॉफ्टवेयर चयन करने योग्य बिजली की बचत मोड, और ऑन-चिप डीबगिंग के लिए डीबगवायर। ATtiny85 पिनआउट नीचे दिया गया है:
चिप के अधिकांश I / O पिनों में एक से अधिक कार्य होते हैं। प्रत्येक पिन के लिए ATtiny85 पिन विवरण नीचे दी गई तालिका में दिया गया है:
पिन नं। |
पिन नाम |
पिन विवरण |
1 |
PB5 (PCINT5 / ADC0 / dW) |
PCINT5: पिन चेंज इंटरप्ट 0, Source5 परिणाम: पिन रीसेट करें ADC0: ADC इनपुट चैनल 0 dW: डिबग तार I / O |
२ |
PB3 (PCINT3 / XTAL1 / CLKI / ADC3) |
PCINT3: पिन चेंज इंटरप्ट 0, Source3 XTAL1: क्रिस्टल थरथरानवाला Pin1 सीएलकेआई: बाहरी घड़ी इनपुट ADC3: ADC इनपुट चैनल 3 |
३ |
PB4 (PCINT4 / XTAL2 / CLKO / OC1B / ADC2) |
PCINT4: पिन चेंज इंटरप्ट 0, सोर्स 4 XTAL2: क्रिस्टल थरथरानवाला पिन 2 CLKO: सिस्टम क्लॉक आउटपुट OC1B: टाइमर / काउंटर 1 मैच बी आउटपुट से तुलना करें ADC2: ADC इनपुट चैनल 2 |
४ |
GND |
ग्राउंड पिन |
५ |
PB0 (MOSI / DI / SDA / AIN0 / OC0A / AREF / PCINT0) |
MOSI: SPI मास्टर डेटा आउटपुट / स्लेव डेटा इनपुट DI: USI डेटा इनपुट (तीन वायर मोड) SDA: USI डेटा इनपुट (दो वायर मोड) AIN0: एनालॉग तुलनित्र, धनात्मक इनपुट OC0A: टाइमर / काउंटर 0 मैच ए आउटपुट से तुलना करें क्षेत्र: बाहरी एनालॉग संदर्भ PCINT0: पिन चेंज इंटरप्ट 0, सोर्स 0 |
६ |
PB1 (MISO / D0 / AIN1 / OC0B / OC1A / PCINT1) |
MISO: SPI मास्टर डेटा इनपुट / स्लेव डेटा आउटपुट DO: USI डेटा आउटपुट (तीन वायर मोड) एआईएन 1: एनालॉग तुलनात्मक, नकारात्मक इनपुट OC0B: टाइमर / काउंटर 0 मैच बी आउटपुट से तुलना करें OC1A: टाइमर / काउंटर 1 मैच ए आउटपुट से तुलना करें PCINT1: पिन चेंज इंटरप्ट 0, सोर्स 1 |
। |
PB2 (SCK / USCK / SCL / ADC1 / T0 / INT0 / PCINT2) |
SCK: सीरियल क्लॉक इनपुट USCK: USI क्लॉक (थ्री वायर मोड) SCL: USI क्लॉक (दो वायर मोड) ADC1: ADC इनपुट चैनल 1 T0: टाइमर / काउंटर 0 क्लॉक सोर्स INT0: बाहरी बाधा 0 इनपुट PCINT2: पिन चेंज इंटरप्ट 0, सोर्स 2 |
। |
वीसीसी |
आपूर्ति वोल्टेज पिन |
Arduino Uno का उपयोग करके ATtiny85 पर फ्लैशिंग बूट-लोडर
के लिए Arduino के बिना ATtiny85 प्रोग्रामिंग, हम पहले इसे में एक बूटलोडर अपलोड करने के लिए एक Arduino संयुक्त राष्ट्र संघ बोर्ड का उपयोग कर के लिए होता है, यह एक बार की प्रक्रिया है और ऐसा करने के बाद, हम संयुक्त राष्ट्र संघ बोर्ड फिर से की आवश्यकता होगी, नहीं किया जाएगा। बूट-लोडर एक विशेष कार्यक्रम है जो माइक्रोकंट्रोलर में चलता है जिसे प्रोग्राम करना पड़ता है। माइक्रोकंट्रोलर पर अपने प्रोग्राम डेटा को लोड करने के सबसे सुविधाजनक तरीकों में से एक बूट-लोडर के माध्यम से है। बूट-लोडर MCU पर बैठता है और आने वाले निर्देशों को निष्पादित करता है, और फिर माइक्रोकंट्रोलर की मेमोरी में नए प्रोग्राम की जानकारी लिखता है। एक माइक्रोकंट्रोलर पर बूट-लोडर को फ्लैश करने से माइक्रोकंट्रोलर को प्रोग्राम करने के लिए विशेष बाहरी हार्डवेयर (प्रोग्रामर बोर्ड्स) की आवश्यकता दूर हो जाती है और आप सीधे यूएसबी कनेक्शन का उपयोग करके इसे प्रोग्राम कर पाएंगे। Digispark ATtiny85बोर्ड "माइक्रोन्यूक्लियस टिनी 85" बूट-लोडर चलाता है, जो मूल रूप से ब्लूबी द्वारा लिखा गया है। बूट-लोडर वह कोड है जो Digispark पर पूर्व-प्रोग्राम किया गया है और इसे USB डिवाइस के रूप में कार्य करने की अनुमति देता है ताकि इसे Arduino IDE द्वारा प्रोग्राम किया जा सके। हम भी ATtiny85 पर एक ही digispark attiny85 बूटलोडर फ्लैश करने जा रहे हैं ।
Arduino Uno और Arduino IDE का उपयोग करके ATtiny85 पर बूटलोडर को फ्लैश करने के लिए एक कदम गाइड नीचे दिया गया है:
Step1: Arduino Uno को ISP के रूप में कॉन्फ़िगर करना:
चूंकि ATtiny85 सिर्फ एक माइक्रोकंट्रोलर है, इसे प्रोग्राम करने के लिए ISP (इन-सिस्टम प्रोग्रामिंग) की आवश्यकता होती है। इसलिए ATtiny85 प्रोग्राम करने के लिए, हमें पहले Arduino Uno को ISP के रूप में कॉन्फ़िगर करना होगा ATtiny85 के प्रोग्रामर के रूप में कार्य करने के लिए। उसके लिए, Arduino Uno को लैपटॉप से कनेक्ट करें और Arduino IDE खोलें। उसके बाद, फ़ाइल> उदाहरण> ArduinoISP पर नेविगेट करें और Arduino ISP कोड अपलोड करें।
चरण 2: ATTiny85 पर फ्लैशिंग बूट-लोडर के लिए सर्किट आरेख:
ATtiny85 पर फ्लैशिंग बूट-लोडर के लिए पूर्ण योजनाबद्ध नीचे दिया गया है:
एक 10 कैप संधारित्र Arduino के रीसेट और GND पिन के बीच जुड़ा हुआ है। पूरा कनेक्शन नीचे दी गई तालिका में दिया गया है:
ATtiny85 पिन |
अरुडिनो उनो पिन |
Vcc |
5 वी |
GND |
GND |
पिन २ |
१३ |
पिन १ |
१२ |
पिन 0 |
1 1 |
रीसेट |
१० |
अब लैपटॉप के लिए Arduino Uno में प्लग-इन करें और Arduino IDE खोलें। पता लगाएं कि COM पोर्ट Uno किससे जुड़ा है। मेरे मामले में, यह COM5 है।
इसके बाद, दिए गए लिंक से ATtiny85 बूट-लोडर फ़ाइलों को डाउनलोड करें। " Burn_AT85_bootloader.bat " खोलें और COM पोर्ट नंबर "PCOM5" को अपने यूएनओ से जुड़े COM पोर्ट नंबर के साथ बदलें। बाहर निकलने से पहले परिवर्तन सहेजें।
अब Arduino IDE रूट फोल्डर (C: \ Program Files (x86) Arduino) में " Burn_AT85_bootloader.bat " और " ATtiny85.hex " फाइलों को स्थानांतरित करें ।
उसके बाद, " Burn_AT85_bootloader.bat " पर राइट-क्लिक करें और "Run as Admin" चुनें। बूट-लोडर को फ्लैश करने में लगभग 5 से 6 सेकंड लगते हैं। यदि सब कुछ ठीक हो गया है, तो आपको यह संदेश प्राप्त करना चाहिए "AVRdude किया। धन्यवाद। जारी रखने के लिए कोई भी कुंजी दबाएं…"।
इसके साथ, बूट-लोडर को सफलतापूर्वक ATtiny85 चिप पर स्थापित किया गया है। अब USB को ATtiny85 के साथ जोड़ने का समय है ताकि हम इसे सीधे प्रोग्राम कर सकें। USB के माध्यम से ATtiny85 प्रोग्रामिंग के लिए सर्किट आरेख नीचे दिया गया है:
एटीटीनी प्रोग्रामर के लिए सर्किट आरेख
योजनाबद्ध Digispark ATtiny85 बोर्ड योजनाबद्ध से लिया गया है, लेकिन जैसा कि हमने ATtiny85 के लिए एक प्रोग्रामर बनाने का लक्ष्य रखा है, हम केवल ATTiny85 के साथ Male USB प्लग कनेक्ट कर रहे हैं।
R3 एक पुल-अप अवरोधक है जो IC के Vcc और PB3 पिन के बीच जुड़ा होता है जबकि Zener Diodes (D1-D2) को कुल USB इंटरफ़ेस सुरक्षा के लिए जोड़ा जाता है। पूर्ण बोर्ड पर सभी घटकों को टांका लगाने के बाद, यह नीचे की तरह दिखाई देगा:
Digispark ड्राइवर स्थापित करना
USB का उपयोग करके ATtiny85 प्रोग्राम करने के लिए, आपके पास अपने लैपटॉप पर Digispark ड्राइवर्स होने चाहिए, यदि आपके पास नहीं है, तो आप ऊपर दिए गए लिंक का उपयोग करके इसे डाउनलोड कर सकते हैं। फिर, ज़िप फ़ाइल को निकालें और ड्राइवरों को स्थापित करने के लिए " DPinst64.exe " एप्लिकेशन पर डबल क्लिक करें ।
एक बार ड्राइवर सफलतापूर्वक स्थापित हो जाने के बाद, अपने ATtiny85 बोर्ड को लैपटॉप में प्लग करें। अब अपने विंडोज पर डिवाइस मैनेजर पर जाएं और ATtiny85 डिवाइस को "लीगीसब-विन 32 डिवाइसेस" के तहत "डिजिस्पार्क बूटलोडर" के रूप में सूचीबद्ध किया जाएगा। यदि आपको डिवाइस मैनेजर पर 'libusb-win32 डिवाइस' नहीं मिल रहा है, तो देखें और 'हिडन डिवाइस दिखाएं' पर क्लिक करें।
कार्यक्रम ATttiny85 के लिए Arduino IDE की स्थापना
Arduino IDE के साथ ATtiny85 बोर्ड को प्रोग्राम करने के लिए, सबसे पहले, हमें Arduino IDE में Digispark Board Support को जोड़ना होगा। उसके लिए, फ़ाइल> प्राथमिकताएं पर जाएं और अतिरिक्त बोर्डों प्रबंधक URL में नीचे लिंक जोड़ें और 'ठीक' पर क्लिक करें।
उसके बाद, टूल्स> बोर्ड> बोर्ड मैनेजर पर जाएं और 'डिजीस्टम्प एवीआर' को खोजें और नवीनतम संस्करण को स्थापित करें।
इसे स्थापित करने के बाद, अब आप 'डिजिस्पार्क' शीर्षक वाले बोर्ड मेनू में एक नई प्रविष्टि देख पाएंगे ।
अब, फ़ाइल> उदाहरण> मूल बातें पर जाएं और ब्लिंक उदाहरण खोलें।
LED_BUILTIN से 0 पर वहां पिन नंबर बदलें।
अब टूल -> बोर्ड पर वापस जाएँ और " Digispark (डिफ़ॉल्ट - 16mhz) " बोर्ड चुनें। फिर Arduino IDE में अपलोड बटन पर क्लिक करें।
नोट: कंप्यूटर से ATtiny85 बोर्ड कनेक्ट करें, केवल जब Arduino IDE एक संदेश प्रदर्शित करता है, जिसमें कहा गया है कि "प्लगिन डिवाइस अभी"।
कोड अपलोड होने के बाद, ATtiny85 से जुड़ी एलईडी को ब्लिंक करना शुरू करना चाहिए।
यह आप अपने खुद के ATtiny85 Arduino प्रोग्रामिंग बोर्ड का निर्माण कर सकते हैं। उसी का एक काम करने वाला वीडियो नीचे दिया गया है। यदि आपके कोई प्रश्न हैं, तो उन्हें टिप्पणी अनुभाग में छोड़ दें। किसी भी अन्य तकनीकी प्रश्न के लिए, आप हमारे मंचों पर भी चर्चा शुरू कर सकते हैं।