हमें हार्डवेयर प्रोग्रामर की आवश्यकता क्यों है?


22

मैं अपने ATtiny को प्रोग्राम करने के लिए एक बोर्डुइनो और एक 30-पंक्ति ब्रेड बोर्ड का उपयोग करता हूं। मैं ArduinoISP नामक एक बहुत जटिल स्केच लोड नहीं करता (Arduino IDE में डिफ़ॉल्ट रूप से शामिल है), और अचानक मेरे पास एक प्रोग्रामर है। Atmel $ 30 और $ 40 के बीच एक अच्छा प्रोग्रामर बेचता है , और सस्ता बनाने के लिए बहुत सारे किट हैं।

अपने कामकाजी प्रोग्रामर को पाकर मैं बहुत खुश था और नन्ही पलकों को कुछ नीचा दिखाया। हालांकि, अब मेरा गरीब बोर्डूइन प्रोग्रामर ड्यूटी पर फंस गया है।

जहां तक ​​मैं बता सकता हूं कि यह प्रोग्रामर रीसेट बटन को दबाए रखता है, और फिर MOSI और MISO पिन पर प्रसारित और प्राप्त करता है। मुझे लगता है कि SCK अप्रयुक्त है या कम से कम अनावश्यक है। (एटीकेटी डेटशीट के अनुसार एससीके की आवश्यकता है, मेरा प्रोग्रामर इसके बिना काम नहीं करता है, और मुझे वह स्थान नहीं मिल सकता है जो मुझे लगा कि मैंने पढ़ा है कि इसकी आवश्यकता नहीं थी।)

सिर्फ सीरियल प्रसारित करने के लिए मुझे एक हार्डवेयर प्रोग्रामर की आवश्यकता क्यों है? मेरा मतलब है, चलो मान लें कि मैं एक आईसी का उपयोग करने के बजाय अपनी उंगली से रीसेट बटन दबाए रखने को तैयार हूं। जो कुछ बचा है वह धारावाहिक भेजना और प्राप्त करना है, इसलिए मुझे तीन तारों जीएनडी, आरएक्सडी और TXD की आवश्यकता है। हेक, अगर मेरे पास "डीटीआर" लाइन या जो कुछ भी है, तो आप सीरियल केबल के साथ रीसेट बटन को दबाए रख सकते हैं।

क्यों इन सभी हार्डवेयर समाधान है कि देखते हैं भी फैंसी सॉफ्टवेयर की आवश्यकता होती (AVRdude की तरह, या AVR स्टूडियो, या जो कुछ भी)?

मेरा मतलब है कि मैं एक छोटे से यूएसबी केबल को समझ सकता हूं जिसने माइक्रोकंट्रोलर को एक स्टोरेज डिवाइस के रूप में प्रस्तुत किया है और आपको प्रोग्रामिंग के लिए बाइनरी फाइलों को खींचना है (जैसे एआरएम देव बोर्ड )। केवल हार्डवेयर, मानक सॉफ्टवेयर ड्राइवरों का उपयोग।

मैं एक सॉफ्टवेयर केवल सॉल्यूशन (USB से चिप तक मोडुलो हुकिंग वायर, कुछ भी यूज़ कर सकता हूं जैसे कि FTDI चिप को सरल बनाने के लिए तारों को नीचे ले जाता है) को समझ सकता हूं। फैंसी प्रोग्रामिंग प्रोटोकॉल के सभी कंप्यूटर पर सॉफ्टवेयर द्वारा नियंत्रित किया जाएगा, और हार्डवेयर सिर्फ कुछ तारों होगा।

क्यों हम दोनों (जटिल) सॉफ्टवेयर और हार्डवेयर शामिल हैं? मेरा मतलब है, जहां तक ​​मैं बता सकता हूं, माइक्रोकंट्रोलर प्रोग्रामिंग बहुत आसान है, लेकिन जब मैं बस इस में हो रहा था, तो मैं वास्तव में चिंतित था कि मैं किसी गुरु को बूटलोडर का भुगतान किए बिना किसी मूसर या डाइजेकी से चिप खरीदने के लिए कैसे जा रहा हूं। मेरे लिए।

मुझे यकीन है कि एक अच्छा कारण है (ऐसा नहीं है कि मैंने सॉफ्टवेयर लिखा है या ड्रैग-एन-ड्रॉप यूएसबी प्रोग्रामर का निर्माण शुरू कर दिया है), लेकिन एक नवागंतुक के रूप में, मुझे नहीं पता कि यह क्या है।


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

1
कुछ ऐसा है जो आप से, खुश किया जा सकता है hackaday.com/2013/05/10/...
binarysmacker

जवाबों:


18

आप सही हैं, AVRs प्रोग्रामिंग बहुत आसान है। यह सिर्फ एक कस्टम प्रोटोकॉल है जो SPI के शीर्ष पर लागू किया जाता है, कम वोल्टेज पर चल रहा है। SCK की जरूरत है।

हालांकि, पुराने PIC (और गैर ISP AVR प्रोग्रामिंग) की प्रोग्रामिंग के लिए उच्च वोल्टेज और एक अलग कस्टम प्रोटोकॉल की आवश्यकता होती है। यह एक विशेष हार्डवेयर प्रोग्रामर की आवश्यकता है।

अन्य उपकरण अधिक जटिल हैं। अधिकांश एआरएम माइक्रोकंट्रोलरों को जेटीएजी के माध्यम से प्रोग्राम किया जाना चाहिए, यहां मेमोरी को सीधे लिखा जा रहा है और प्रोसेसर को फ्लैश पर लिखने का निर्देश दिया गया है। फिर, हर डिवाइस अलग है।


किसी भी विचार क्यों उन बहुत अधिक जटिल हैं? AVR तरीका (कम वोल्टेज, मानक प्रोटोकॉल) इतना एक कस्टम प्रोग्रामर की आवश्यकता होती है और अधिक से अधिक समझदार लगता है (एक 8051/8052 प्रोग्रामर की आवश्यकता के साथ इस आदमी की तरह - मदद चाहता था, प्रतिनिधि उपलब्ध है! Electronics.stackexchange.com/questions/4104 )
केविन वर्मी

2
वास्तव में PIC प्रोग्रामर के बारे में कुछ विशेष या महंगा नहीं है; कई डिज़ाइन ऑनलाइन उपलब्ध हैं, और अधिकांश नए PIC कम वोल्टेज प्रोग्राम किए जा सकते हैं।
13 अक्टूबर को

4
आईसी निर्माता वास्तव में इस बात की परवाह नहीं करते हैं कि शौकियों के लिए कुछ जटिल कितना जटिल है। जब तक यह बड़ी मात्रा में उत्पादन में इस्तेमाल किया जा सकता है, यह अन्यथा लागत के बारे में सब है।
14

2
हाई-वोल्टेज प्रोग्रामिंग पहले थी, यह अस्सी के दशक में यूवी-इरेज़ेबल EPROM (और ऐसे EPROMs वाले माइक्रोकंट्रोलर) को प्रोग्राम करने का तरीका था।
starblue

SCK का दावा तय किया। मुझे यह विचार पसंद है कि केवल SPI की आवश्यकता है, लेकिन चूंकि कंप्यूटरों में SPI पोर्ट नहीं है (और FTDI केबल को पहले से ही इसमें $ 4 चिप है !!) हम एक $ 2 माइक्रोकंट्रोलर पर भी दिखा सकते हैं। JTAG अपलोड-एंड-डिबग तर्क ने मुझे सामान्य रूप से एक विकास बोर्ड के लाभों पर बेच दिया है, और मुझे लगता है कि एंडोलिथ का एक अच्छा बिंदु है कि कोई भी परवाह नहीं करता है कि मैं अपने $ 20 पर क्या खर्च करता हूं; निर्माताओं को परवाह है कि असली इंजीनियर (और उनके नियोक्ता) अपना बजट किस पर खर्च करने जा रहे हैं।
जैक श्मिट

5

मैंने बहुत शोध किया और एवीआर के साथ खेलना शुरू करने की तैयारी कर रहा हूं, लेकिन मैंने वास्तव में कभी भी इसका इस्तेमाल नहीं किया, इसलिए यह गलत हो सकता है, लेकिन:

अधिकांश सस्ते प्रोग्रामर AVR हाई वोल्टेज प्रोग्रामिंग का समर्थन नहीं करेंगे। यदि फ़्यूज़ बिट्स का उपयोग करके नियंत्रक को गैर-मानक रूप से सेट किया जाना है या यदि आपने किसी तरह कुछ गंभीर बग बनाए हैं और इसे चूक आदि के लिए इसे रीसेट करने की आवश्यकता है, तो इसकी आवश्यकता है।


2
AVRISP mkII [1] या USBtinyISP [2] जैसे लो-वोल्टेज प्रोग्रामर का उपयोग एवड्रिड या अन्य प्रोग्रामर के साथ फ़्यूज़ सेट करने के लिए किया जा सकता है, लेकिन वे AVR चिप को सहेज नहीं सकते हैं जो अन-बूट किए गए हैं या इसकी रीसेट लाइन चालू हो गई है एक GPIO। उस चीज़ के लिए आपको एक उच्च-वोल्टेज प्रोग्रामर की आवश्यकता होती है। [१] mouser.com/search/… [२] ladyada.net/make/usbtinyisp
blalor

@blalor इस जानकारी के प्रकाश में, मैं अपना उत्तर संपादित करूँगा।
आंद्रेजाको

मैंने एक उच्च वोल्टेज प्रोग्रामर बनाने के बारे में कुछ निर्देश देखे (और चिप के लिए डेटाशीट एक डिजाइनिंग पर बहुत विस्तृत निर्देश हैं), लेकिन मैं तब तक इंतजार कर रहा हूं जब तक मैं कोशिश नहीं करता। मेरे थरथरानवाला कल यहाँ मिलते हैं, इसलिए मैं फ़्यूज़ जला रहा हूँ और जल्द ही ईंट परी को लुभाऊंगा!
जैक श्मिट

यह उल्लेखनीय है कि इस समस्या को रोकने के लिए अपने फ्यूज बिट्स को दोबारा जांच लें। थोड़ी अधिक सामान्य समस्या चिप को बाहरी घड़ी में सेट कर रही है।
यन वर्नियर

4

अधिकांश सस्ते एवीआर प्रोग्रामर एक रीसेट लाइन के साथ केवल सीरियल इंटरफेस सिंक कर रहे हैं। आप सीरियल पेरीफेरल इंटरफेस (SPI) को बिटबैंग करने के लिए एक FT232 कर सकते हैं। FT232 को async सीरियल के लिए डिज़ाइन किया गया है, सिंक नहीं है इसलिए यह सभी सॉफ्टवेयर में किया गया है।

आप बस arduino जैसे एक बूटलोडर को अपलोड कर सकते हैं जो आपको सामान्य मोड में ft232 या किसी भी async सीरियल इंटरफ़ेस का उपयोग करके async सीरियल इंटरफ़ेस के माध्यम से कोड अपलोड करने की अनुमति देगा। बस अपनी घड़ी की गति के लिए सही बूटलोडर का उपयोग करना और फ़्यूज़ बाइट्स को सही ढंग से सेट करना न भूलें।


1

कई प्रोग्राम योग्य डिवाइसों को ऐतिहासिक रूप से आवश्यक है कि उन्हें सिग्नल के अपेक्षाकृत ठीक-ठीक समय अनुक्रमों का उपयोग करके प्रोग्राम किया जाए। कई मामलों में, यदि कोई केवल एक विशेष प्रकार के उपकरण को प्रोग्राम करना चाहता था, तो आवश्यक हार्डवेयर काफी सरल होगा, लेकिन चूंकि विभिन्न उपकरणों की अलग-अलग आवश्यकताएं थीं, इसलिए एक सामान्य-प्रयोजन प्रोग्रामर का निर्माण करना कुछ अधिक कठिन था।

आज, शायद कोई USB I / O केबल और पीसी सॉफ्टवेयर से अधिक कुछ भी उपयोग करने के लिए 50% से अधिक प्रोग्राम करने योग्य डिवाइस प्रोग्राम कर सकता है, लेकिन "हार्डवेयर" प्रोग्रामर को अभी भी काफी गति का फायदा है। पीसी के लिए एक यूएसबी डिवाइस द्वारा प्राप्त सिग्नल पर प्रतिक्रिया करने के लिए और एक प्रतिक्रिया भेजने के लिए आमतौर पर न्यूनतम 1-2 मिली सेकेंड लगते हैं। यदि प्रोग्रामिंग सीक्वेंस के लिए बार-बार किसी डिवाइस की आवश्यकता होती है, जब वह डेटा के अगले भाग के लिए तैयार हो और फिर उसे भेजना हो, तो एक साधारण I / O केबल का उपयोग करके प्रत्येक चंक को संभालने के लिए एक अतिरिक्त मिलीसेकंड या दो को जोड़ना होगा। विचाराधीन डिवाइस की प्रकृति के आधार पर, यह प्रोग्रामर के साथ तुलना में एक परिमाण के क्रम द्वारा प्रोग्रामिंग के लिए आवश्यक समग्र समय बढ़ा सकता है, जिसे बताया जा सकता है, जबकि डिवाइस के तैयार होने की प्रतीक्षा में, यह एक बार क्या करना चाहिए।

व्यक्तिगत रूप से, मुझे फैक्ट्री से फ्लैश से लैस उपकरणों को स्मृति में बूट-लोडर के साथ रखने का तरीका पसंद है जिसे न्यूनतम प्रोग्रामिंग हार्डवेयर के साथ उपयोग किया जा सकता है। यदि डिवाइस सॉफ़्टवेयर नियंत्रण के तहत फ्लैश प्रोग्रामिंग का समर्थन करता है, तो इस तरह के एक दृष्टिकोण से सिलिकॉन की लागत में कुछ भी जोड़कर उत्पादन को सरल बनाया जा सकता है, बहुत कम सीमांत समय से परे बूट-लोडर में फैक्ट्री परीक्षण स्थिरता कार्यक्रम होने के बाद यह सब कुछ किया है ।

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