विषयसूची:

VUSBTiny AVR SPI प्रोग्रामर: ३ चरण
VUSBTiny AVR SPI प्रोग्रामर: ३ चरण

वीडियो: VUSBTiny AVR SPI प्रोग्रामर: ३ चरण

वीडियो: VUSBTiny AVR SPI प्रोग्रामर: ३ चरण
वीडियो: AVR ATtiny85 Programming: SPI Communication (I/O Expander MCP23S08) 2024, नवंबर
Anonim
VUSBTiny AVR SPI प्रोग्रामर
VUSBTiny AVR SPI प्रोग्रामर

एक usbtiny isp प्रोग्रामर बनाने और 6 महीने तक इसका इस्तेमाल करने के बाद, मैं एक और बनाने के लिए देख रहा था। मुझे usbtiny isp डिज़ाइन की सादगी पसंद है, लेकिन मैं इसे और भी छोटा बनाना चाहता हूँ और कम हिस्से लेना चाहता हूँ। मूल डिजाइन में एक चीज जिसे मैं बदलना चाहता हूं, वह है क्लॉक क्रिस्टल के उपयोग को खत्म करना। एक समाधान मैंने पाया है कि v-usb ड्राइवर attiny25/45/85 उपकरणों पर 16.5Mhz आंतरिक थरथरानवाला का समर्थन करता है। इसलिए मैं यूएसबी संचार के लिए यूएसबीटीनी आईएसपी वी-यूएसबी नियोजित करने के लिए इस परियोजना को शुरू करता हूं। इसका तात्कालिक लाभ यह है कि यह स्थान बचाता है और इसमें घटकों की संख्या कम होती है (कोई और क्रिस्टल नहीं)। https://www.xs4all.nl/~dicks/avr/usbtiny/ USBtiny USB कम गति का एक सॉफ्टवेयर कार्यान्वयन है। Atmel ATtiny माइक्रोकंट्रोलर के लिए प्रोटोकॉल। बेशक, यह ATmega सीरीज़ पर भी काम करेगा। सॉफ्टवेयर 12 मेगाहर्ट्ज पर देखे गए एवीआर के लिए लिखा गया है। इस आवृत्ति पर, यूएसबी बस में प्रत्येक बिट 8 घड़ी चक्र लेता है, और बहुत सारी चालबाजी के साथ, सॉफ्टवेयर द्वारा यूएसबी तरंगों को डीकोड और एन्कोड करना संभव है। कॉन्फ़िगरेशन और कंपाइलर संस्करण के आधार पर USB ड्राइवर को लगभग 1250 से 1350 बाइट्स फ्लैश स्पेस (वैकल्पिक पहचान स्ट्रिंग्स को छोड़कर) और 46 बाइट्स RAM (स्टैक स्पेस को छोड़कर) की आवश्यकता होती है। सी इंटरफ़ेस में 3 से 5 कार्य होते हैं, जो https://www.obdev.at/products/vusb/ से कॉन्फ़िगरेशन.vusb विवरण पर निर्भर करता है। AVR माइक्रोकंट्रोलर, लगभग किसी भी AVR माइक्रोकंट्रोलर के साथ USB हार्डवेयर बनाना संभव बनाता है, इसके लिए किसी अतिरिक्त चिप की आवश्यकता नहीं होती है। निर्माण और उपयोग पर वीडियो

चरण 1: सुविधाएँ और भाग

विशेषताएं और भाग
विशेषताएं और भाग

* usbtiny isp से प्रोग्रामिंग लॉजिक, परिपक्व avr-dude सपोर्ट * छोटा फुट-प्रिंट * न्यूनतम घटक * पॉवर्स टारगेट डिवाइस ध्यान दें कि लक्ष्य mcus के लिए io लाइनें सुरक्षित नहीं हैं। आप SCK और MOSI में 1k-2k रेसिस्टर्स जोड़ सकते हैं और संभावित गलत कनेक्शन से सुरक्षा कर सकते हैं। nl/~dicks/avr/usbtiny/भागों की सूची * attiny45/85 (85 से आना अधिक आसान है) * 3.6v जेनर डायोड (1n747, BZX79,..1W प्रकार से बचें) * 68ohm रोकनेवाला x 2 * 1.5K रोकनेवाला * मिनी ब्रेडबोर्ड 170 टाईप्वाइंट * यूएसबी केबल (डॉलर शॉप यूएसबी प्रिंटर केबल ठीक है) * आईओ लाइन्स सुरक्षा के लिए 1k/2k रेसिस्टर्स (वैकल्पिक) टूल्स की आवश्यकता है * एक वर्किंग एवीआर प्रोग्रामर (हाँ, यह एक कैच 22 है, हमें एक बनाने के लिए एक की आवश्यकता है) * काम कर रहे avr प्रोग्रामिंग वातावरण

चरण 2: ब्रेडबोर्ड लेआउट, योजनाबद्ध और निर्माण

ब्रेडबोर्ड लेआउट, योजनाबद्ध और निर्माण
ब्रेडबोर्ड लेआउट, योजनाबद्ध और निर्माण
ब्रेडबोर्ड लेआउट, योजनाबद्ध और निर्माण
ब्रेडबोर्ड लेआउट, योजनाबद्ध और निर्माण

निर्माण

* ब्रेडबोर्ड लेआउट का पालन करें, इसमें घटक नहीं हो सकते हैं, 3 प्रतिरोधक, 2 डायोड, 1 कैप, प्लस एक 8 पिन एमसीयू। * एक डॉलर की दुकान यूएसबी प्रिंटर केबल को प्रिंटर के छोर से काट लें, 4 उजागर तार होंगे, सुरक्षित होंगे और उन्हें 4 पिन पुरुष हेडर में बनाएंगे, हम इसका उपयोग ब्रेडबोर्ड से कनेक्ट करने के लिए करेंगे। लेआउट और पिन असाइनमेंट (J1) के लिए योजनाबद्ध परामर्श लें। * डायोड ध्रुवीयता के लिए देखें।

परियोजना का निर्माण और चमकाना

प्रोजेक्ट को avr-gcc टूलचेन के साथ एक linux ubuntu ल्यूसिड बॉक्स में बनाया गया था। यह माना जाता है कि आपके पास पहले से ही ऐसा वातावरण है, या आप इंटरनेट से पता लगा सकते हैं कि इसे कैसे सेटअप किया जाए। स्रोत कोड gnu gpl v2 हैं जिन्हें इनहेरिटेंस से लाइसेंस प्राप्त है।

स्रोत कोड v-usb द्वारा अनुशंसित एक परंपरा का अनुसरण करता है, आप स्रोत पैकेज vusbtiny.tgz डाउनलोड कर सकते हैं और प्रोजेक्ट निर्देशिका में अतारांकित कर सकते हैं। आपकी स्रोत निर्देशिका के भीतर, एक main.c है, जो संशोधित usbtiny प्रोग्रामर का मेरा संस्करण है। और एक usbdrv उप-निर्देशिका, जिसमें v-usb परत होती है। कृपया इसे बनाते समय उपरोक्त दो परियोजनाओं से लाइसेंसिंग अवधि का पालन करें। प्रोग्रामर तर्क पर मेरा स्रोत डिक स्ट्रीफलैंड संस्करण पर आधारित है न कि लेडीडा संस्करण पर (हालांकि वे लगभग समान हैं)।

उन लोगों के लिए जिनके पास बिल्ड टू-चेन नहीं है, आप निम्न बाइनरी का उपयोग कर सकते हैं

डाउनलोड करने के लिए क्लिक करें vusbtiny.hex

और फर्मवेयर फ्लैश करने के लिए avrdude का उपयोग करें

avrdude -c usbtiny -p t45 -e -V -U फ़्लैश:w:usbtiny.hex

(यदि आपका उपकरण एक छोटा 85 है, तो -p t45 w/ -p t85 को बदलें)

स्रोत यहां डाउनलोड किया जा सकता है vusbtiny.tgz डाउनलोड करने के लिए क्लिक करें

स्रोत पैकेज को अपनी कार्यशील निर्देशिका में अनटार करें

टार -zxvf vusbtiny.tgz

* cd vssubtiny करें, vusbtiny वर्किंग डायरेक्टरी में बदलने के लिए * जिस चिप का आप उपयोग कर रहे हैं, उसके अनुसार टारगेट डिवाइस के लिए मेकफाइल को एडजस्ट करें। यानी PROGRAMMER_MCU=t45 या t85 * एक मेक करें * अपने पसंदीदा ISP प्रोग्रामर को अटैच करें * मेकफाइल को संशोधित करें और जरूरत पड़ने पर अपने एवरड्यूड मापदंडों को बदलें। स्टॉक एक USBTiny प्रोग्रामर मानता है। यानी AVRDUDE_PROGRAMMERID=usbtiny * मेक इंस्टाल के जरिए फ्लैश फर्मवेयर

फर्मवेयर चमकाने के बाद, हमें फ़्यूज़ को ठीक से सेट करने की आवश्यकता है, हम इस प्रोजेक्ट में पिन 1 रीसेट को io के रूप में उपयोग कर रहे हैं

* यूएसबी टाइमिंग के लिए वी-यूएसबी परत द्वारा आवश्यक पीपीएल घड़ी का उपयोग किया जाता है * रीसेट पिन अक्षम किया जाता है क्योंकि हमें इसे आईओ के रूप में उपयोग करने की आवश्यकता होती है

avrdude -c usbtiny -p t45 -V -U lfuse:w:0xe1:m -U hfuse:w:0x5d:m -U efuse:w:0xff:m

यह सेटिंग 5V SPI के माध्यम से आगे की प्रोग्रामिंग को अक्षम कर देती है क्योंकि हमें io के लिए RESET पिन (pin1) की आवश्यकता होती है। फ़्यूज़ को पुनर्प्राप्त करने के लिए आपको एक एचवीएसपी प्रोग्रामर तक पहुंच की आवश्यकता होगी।

चरण 3: उपयोग और अनुप्रयोग

उपयोग और अनुप्रयोग
उपयोग और अनुप्रयोग
उपयोग और अनुप्रयोग
उपयोग और अनुप्रयोग
उपयोग और अनुप्रयोग
उपयोग और अनुप्रयोग

ब्रेडबोर्ड पर प्रत्यक्ष चमकती

यदि आप 8 पिन AVR उपकरणों को फ्लैश करने के लिए vusbtiny का उपयोग कर रहे हैं, तो आप प्रोग्रामर डिवाइस के ऊपर अपने लक्ष्य डिवाइस को दबा सकते हैं। प्रोग्रामर को इस तरह से डिजाइन किया गया था कि प्रोग्रामिंग पिन w/लक्ष्य से मेल खाते हों। हालांकि एक चाल है, आपको प्रोग्रामर एमसीयू पर पिन 2 और 3 को अलग करना होगा, क्योंकि वे पीसी से कनेक्ट होने वाले यूएसबी डी+ और डी-पिन हैं। मैं इसे प्राप्त करने के लिए स्कॉच टेप के एक कट का उपयोग करता हूं, आप इसे तस्वीरों पर देख सकते हैं। फर्मवेयर प्राप्त करने के लिए तैयार, छोटे45 पर एक छोटा 13v "सवारी" नीचे दिखाएं।

जम्पर के माध्यम से चमकती आईएसपी

ISP (इन-सिस्टम प्रोग्रामिंग) के माध्यम से एक लक्ष्य सर्किट को प्रोग्राम करने के लिए, आपको एक ISP केबल की आवश्यकता होती है। यहां मैं मानक 2x3 या 2x5 पिन हेडर का उपयोग नहीं कर रहा हूं। इसके बजाय मैं एक 1x6 जम्पर का उपयोग कर रहा हूं जो अधिक ब्रेडबोर्ड के अनुकूल है, आप 2x3 या 2x5 पिन हेडर को J2 में मैप करके बना सकते हैं जैसा कि ब्रेडबोर्ड लेआउट और स्कीमैटिक्स पर दिखाया गया है। निम्नलिखित तस्वीर आईएसपी के माध्यम से फ्लैश होने के लिए तैयार एक छोटा 2313 दिखाती है।

समस्या निवारण

* फर्मवेयर फ्लैश नहीं कर सकता? अपने मूल प्रोग्रामर की जाँच करें, avrdude में -B ध्वज के माध्यम से समय को समायोजित करने की आवश्यकता हो सकती है। चिप 1 पढ़ने की कोशिश करें, खराब फ्यूज हो सकता है, हो सकता है कि आपकी चिप को बाहरी घड़ी सिग्नल की आवश्यकता हो। आपको अपनी चिप को वापस डिफ़ॉल्ट 1 पर ठीक करने की आवश्यकता हो सकती है। * कनेक्शन जांचें * यदि अलग-अलग आईओ पिन का उपयोग करें, कोड और कनेक्शन जांचें * आप जेनर डायोड w / 500mw, 400mw प्रकार को प्रतिस्थापित कर सकते हैं * आप R3 मान को 1.2K या उससे कम करने का प्रयास कर सकते हैं * आपको एवरड्यूड टाइमिंग समस्याओं का सामना करने की अधिक संभावना है, कोशिश करें -बी अवरूड का ध्वज, एक छोटा यूएसबी केबल है जो सभी मदद करता है

सिफारिश की: