Arduino से सीधे माइक्रोकंट्रोलर का उपयोग करने के लिए स्नातक कैसे करें?


19

मैं एक Arduino प्रोजेक्ट पर काम कर रहा हूं। जब मुझे Arduino का उपयोग करके सब कुछ मिल जाता है, तो मैं एक ऐसे समाधान की ओर बढ़ना चाहूंगा जो Arduino का उपयोग न करे। यही है, मैं Arduino बोर्ड को शामिल किए बिना एक माइक्रोकंट्रोलर का उपयोग करना चाहूंगा। यह एक एकल बोर्ड, कोई ढाल समाधान की अनुमति देगा।

मुझे पता है कि एक ब्रेडबोर्ड पर अपने खुद के अरुडिनो बनाने के तरीके हैं, लेकिन यह वास्तव में ऐसा नहीं है जो मैं करने की कोशिश कर रहा हूं।

मैं वास्तव में यह कैसे करना सुनिश्चित नहीं कर रहा हूँ।

जब तक कोई बेहतर विकल्प न हो, मैं ATmega328 का उपयोग करने की ओर झुक रहा हूं, जिसका उपयोग Arduino द्वारा किया जाता है। मैं समझता हूं कि विकास उपकरण मुफ्त उपलब्ध हैं या कम से कम बहुत महंगे नहीं हैं।

इस प्रश्न के उद्देश्य के लिए, मान लें कि मैं अपने सर्किट में + 5V प्राप्त कर सकता हूं।

मेरा पहला सवाल यह है कि MCU को कैसे प्रोग्राम किया जाए। मेरा मानना ​​है कि दो विकल्प हैं:

  1. एक प्रोग्रामर खरीदें, एमसीयू प्रोग्राम करें, और फिर चिप को मेरे सर्किट में रखें।
  2. इन-सर्किट प्रोग्रामिंग के लिए समर्थन शामिल करने के लिए मेरे सर्किट को डिज़ाइन करें।

मैं मान रहा हूं कि अगर मैं विकल्प # 1 के साथ जाता हूं, तो यह मेरे सर्किट में प्रोग्राम्ड चिप डालने जैसा ही सरल है; मुझे किसी और चीज की जरूरत नहीं है। बेशक सॉफ्टवेयर को बदलना असुविधाजनक होगा।

लेकिन विकल्प # 2 के लिए, मुझे यकीन नहीं है कि मुझे क्या चाहिए। मैंने जो कुछ पढ़ा है, उससे मुझे लगता है कि मुझे एक प्रोग्रामिंग केबल की आवश्यकता है, और मेरे बोर्ड पर एक कनेक्टर (क्या प्रकार?)। तब मुझे लगता है कि मैं (ठीक से) कनेक्टर को एटीमेगा पर कुछ पिनों को तार करता हूं।

किसी भी तरह से, मुझे Atmel स्टूडियो की आवश्यकता होगी।

दूसरा, बिजली की आपूर्ति के अलावा, क्या Arduino पर कुछ भी है जो मुझे पूरी तरह से चाहिए? मुझे लगता है कि शायद एक रीसेट स्विच?


2
आप AVR के प्रोग्राम के लिए एक Arduino का उपयोग कर सकते हैं। मैं व्यक्तिगत रूप से एक आईडीई के बजाय कमांड लाइन टूल्स और एक मेकफाइल का उपयोग करना पसंद करता हूं।
जिप्पी

1
यह प्रश्न Arduino Stack Exchange के लिए अधिक उपयुक्त हो सकता है। arduino.stackexchange.com यह अब सार्वजनिक बीटा में है
akellyirl

4
लेकिन मेरा लक्ष्य एक डिजाइन है जो बिना आर्डिनो के है।
रिक

"क्या वहाँ कुछ है कि मैं पूरी तरह से जरूरत है?" मुझे लगता है कि आपको UART (उर्फ सीरियल पोर्ट) पिन की आवश्यकता होगी, यह डिबगिंग के लिए काम आता है।
viv

Atmel स्टूडियो बिल्कुल आवश्यक नहीं है। मैं अपने चिप्स को कमांड लाइन (और एक टेक्स्ट एडिटर) से प्रोग्राम करता हूं। हालांकि बड़े प्रोजेक्ट्स के लिए दी गई Atmel स्टूडियो निश्चित रूप से आसान बना देगा
Chris Laplante

जवाबों:


10

Atmel की अद्भुत दुनिया में आपका स्वागत है। मुझे अपने शौक और पेशेवर अनुभव के आधार पर अपने प्रश्नों के कुछ उत्तर प्रदान करते हैं।

सर्किट प्रोग्रामिंग में कुछ भी परेशान न करें। जब तक आप एक सही कोडर नहीं होते हैं, तब तक हर बार जब आप इसे प्रोग्राम करना चाहते हैं, तो एक चिप को हटा दें। मैं AVRISPmkII को एक प्रवेश स्तर के प्रोग्रामिंग टूल के रूप में सुझाता हूं। नुकसान यह है कि कोई हार्डवेयर डिबग समर्थित नहीं है। एक विकल्प ड्रैगन है लेकिन मुझे इसके साथ कोई अनुभव नहीं है। मैं कह सकता हूं कि JTAGICEmk3 एक अच्छा सक्षम डिबग टूल है।

Atmel स्टूडियो प्रोग्रामिंग के लिए अच्छा है। यह वास्तव में मेरा पसंदीदा एम्बेडेड विकास वातावरण है। आप AVRDUDE और AVR-GCC जैसे CLI टूल का उपयोग कर सकते हैं लेकिन IDE आपके लिए इसका ध्यान रखता है।

संक्षेप में:

केवल प्रोग्रामिंग के लिए एक AVRISP खरीदें (आसान, प्लग एंड प्ले) या एक ड्रेगन (मैं सलाह नहीं दे सकता)।

अपने बोर्ड पर, ICSP पिन को 6-पिन दोहरी पंक्ति 0.100 "हेडर पर लाएं - इस डेटाशीट में कनेक्शन वर्णित हैं ।

रीसेट स्विच की आवश्यकता नहीं है।


1
मेरे पास एक EvUSBasp के साथ उत्कृष्ट परिणाम हैं।
इग्नासियो वाज़केज़-अब्राम्स

एक बार जब मैं अपने बोर्ड पर ICSP पिन निकालता हूं, तो क्या मुझे उन्हें सर्किट प्रोग्रामिंग के लिए समर्पित करना होगा, या क्या मैं अभी भी उन्हें किसी तरह GPIO पिन के रूप में उपयोग कर सकता हूं?
रिकार्डो

2
SPI के साथ फ़ंक्शन साझा करने के बाद से आप उन्हें GPIO के रूप में उपयोग कर सकते हैं। प्रोग्रामर चिप को रीसेट में डालता है और फिर इसके साथ संचार करता है।
HL-SDK

1
संबंधित ट्यूटोरियल श्रृंखला शुरुआत में माइक्रोकंट्रोलर प्रोग्रामिंग । वे AVRMega का उपयोग करते हैं और ISP, और शानदार C कोड को एलईडी ब्लिंक करने की प्रक्रिया से गुजरते हैं।
एमडीमोहोरे 313

1
@ HL-SDK सही है कि केवल RESET पिन को सही मायने में ICSP के लिए समर्पित होने की आवश्यकता है, लेकिन कुछ अन्य पिनों के लिए भी सावधानी बरतने की आवश्यकता है, अर्थात उन्हें संभवतः इनपुट पिन के बजाय आउटपुट पिन के रूप में उपयोग किया जाना चाहिए (ताकि सिग्नल डॉन न हों) टी आईसीएसपी मोड में बाहरी सर्किटरी से परेशान हो जाते हैं), और जो कुछ भी उनके साथ जुड़ा हुआ है उसे डिज़ाइन किया जाना चाहिए ताकि प्रोग्रामिंग ट्रैफ़िक जो भी यादृच्छिक सिग्नल संयोजन भेजता है, उसके विपरीत प्रतिक्रिया न करें।
माइक्रोथियॉन

10

आपको एक बार में "स्नातक" नहीं होना है। यहां बताया गया है कि मैंने कैसे रूपांतरण किया:

शुरू करने के लिए, मैं एक Arduino का उपयोग करता रहा लेकिन कॉल को Arduino लाइब्रेरी में रजिस्टर रीड और राइट में परिवर्तित कर दिया, एक समय में एक पंक्ति, यह देखते हुए कि क्या मेरे कार्यक्रम अभी भी काम कर रहे हैं। इस तरह मुझे रजिस्टरों का उपयोग करने की आदत हो गई और मैंने देखा कि वे चीजों को करने के Arduino रास्ते के साथ मौलिक रूप से अलग नहीं थे। Arduino DigitalWrite () की तरह कार्य करता है, बस रजिस्टरों में हेरफेर करता है - आप सीधे अपने स्केच में उन्हें पढ़ने और लिखने के लिए स्वतंत्र हैं।

मेरा अगला कदम एक ब्रेडबोर्ड पर ATTiny 85 लगाना और इसे Arduino के साथ ISP ( http://highlowtech.org/?p=1695 ) के रूप में प्रोग्राम करना था । यदि आप एक ब्रेडबोर्ड बिजली की आपूर्ति खरीदते हैं और ATTiny के आंतरिक थरथरानवाला का उपयोग करते हैं, तो इसके लिए बहुत कम तारों की आवश्यकता होती है। मैंने संकलन करने के लिए Arduino IDE का उपयोग किया लेकिन मैं जितना हो सके रजिस्टरों का उपयोग करता रहा।

फिर, मैंने फ्री क्रॉसपैक कमांड लाइन टूलचैन स्थापित किया और एक ब्लिंक प्रोग्राम संकलित किया। कुछ और परीक्षण और त्रुटि के बाद, मैं केवल एर्दोइन पारिस्थितिकी तंत्र के बाहर रहकर, एट्रूड के साथ एटीटीआईएन को प्रोग्राम करने में कामयाब रहा।

एक बार जब आप कमांड लाइन टूल के साथ ब्लिंक प्राप्त कर लेते हैं, तो आप Arduino से मुक्त हो जाते हैं। विभिन्न परिधीयों और उनके रजिस्टरों का अन्वेषण करें और जल्द ही यह पूरी तरह से प्राकृतिक हो जाएगा।

इस सब के बाद, मैं अक्सर अपने आप को Arduino का उपयोग कर पाता हूं क्योंकि यह तेज है। मैंने पाया है कि रजिस्टर विवरण पर थोपना थोड़े बेकार है; ऐसा करने में कोई समझदारी नहीं है अगर आपके पास नहीं है। यह जानना अच्छा है कि कैसे।


8

मैं ऊपर HL-DSK की टिप्पणी से सहमत हूं। मैं अतिरिक्त पैसे खर्च करता हूं और डिबग क्षमताओं के साथ एक प्रोग्रामर प्राप्त करता हूं। मैं JTAGICE3, डिजी-की पर $ 110 का उपयोग करता हूं।

ISP प्रोग्रामिंग पर यहाँ पढ़ें । यह आपको दिखाएगा कि एसपीआई कनेक्शन कैसे लाया जाए। आपकी चिप पर SPI कनेक्शन ATmega डेटाशीट में होगा। MISO / MOSI / SCK / RESET पिन के लिए पृष्ठ 2 देखें। प्रोग्रामर को रीसेट लाइन को नियंत्रित करने में सक्षम होना चाहिए। रीसेट लाइन पर पुल-अप रेसिस्टर का उपयोग करना याद रखें ताकि प्रोग्रामर के डिस्कनेक्ट होने के बाद आपकी चिप चले।

अपने आप को यहां 2x3 हैडर प्राप्त करें । या ब्रेकअवे हेडर का उपयोग करके अपना खुद का बनाएं।


2
मैं डिबग समर्थन के साथ एक प्रोग्रामर प्राप्त कर रहा हूं। इस महीने की शुरुआत में मुझे PIC32 प्रोजेक्ट पर बिना किसी निम्न स्तर के अनुभव के गहरे अंत में फेंक दिया गया था। यहां तक ​​कि किसी और के साथ सबसे कम स्तर की बिट बैंगिंग कार्यक्षमता लिखने के बावजूद, मैं यह भी नहीं सोचना चाहता कि मेरी समस्याओं के बारे में कितना मुश्किल है, अगर मुझे अंदर देखना है तो एक ही लाल / हरी एलईडी थी।
डैन नीली

यह, आपके पास एक बार पेशेवर उपकरण होने के बाद, वापस नहीं जाना है।
मैट यंग

7

एक Arduino और एक नंगे ATmega328 के बीच का अंतर केवल दो चीजें हैं। Arduino बूटलोडर, और Arduino लाइब्रेरी। आप किसी भी पुस्तकालयों का उपयोग किए बिना नंगे सी या सी ++ के साथ एक Arduino कोड कर सकते हैं। आप इसके बजाय असेंबली का उपयोग भी कर सकते हैं। बूटलोडर आपको सर्किट (सीरियल)-प्रोग्रामिंग (मूल रूप से एसपीओ) में अधिक जटिल (थोड़ा) के माध्यम से जाने के बिना धारावाहिक के माध्यम से नए कोड लोड करने की अनुमति देता है।

आप लगभग किसी भी विचारधारा के साथ मानक प्रोग्रामिंग पुस्तकालयों और avr-gcc का उपयोग कर सकते हैं। दूसरों के कहने के विपरीत, एक Arduino कोडिंग मूल रूप से एक नंगे माइक्रोकंट्रोलर को कोड करने की तरह है, कुछ प्रदर्शन की कीमत पर कुछ अतिरिक्त उपयुक्तताओं के साथ।


4
लेकिन आप नंगे ATmega328 के साथ Arduino बूटलोडर और लाइब्रेरी का भी उपयोग कर सकते हैं।
इग्नासियो वाज़केज़-अब्राम्स

@ इग्नासिओवेज़ज़-एब्राम्स जो इसे नंगे-हड्डियों वाले अरुडुइनो में बदल देता है।
राहगीर

5

मैं पहले से लोड किए हुए Atmega328P चिप्स खरीदता हूं और उन्हें FTDI केबल और एवरड्यूड के साथ सर्किट में प्रोग्राम करता हूं, यह पहचानकर कि मैं Arduino को कैसे प्रोग्राम करूंगा। मुझे ग्रहण आईडीई पसंद है लेकिन आप अपनी पसंद के किसी भी वातावरण का उपयोग कर सकते हैं - एटम स्टूडियो, अरुडिनो आईडीई, ईमैक्स, या कमांड-लाइन पर नंगे पांव।

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

NotDuino

चूँकि आपके पास एक Arduino है, आप थोड़े से पैसे बचा सकते हैं और अन-प्रोग्राम्ड चिप्स का उपयोग कर सकते हैं, बूस्टर को स्थापित करने के लिए Arduino का उपयोग कर रहे हैं। अच्छा नीले पिन-आउट लेबल मदद मेरी गड़बड़-दर कम रखने के! मैं 16 मेगाहर्ट्ज क्रिस्टल का उपयोग करता हूं लेकिन अगर आप आंतरिक थरथरानवाला के साथ चल सकते हैं तो आपके हिस्से की गिनती 3 (xtal और 2 कैपेसिटर) से नीचे चली जाती है।


2

Arduino से स्थानांतरित करने के लिए जहां हार्डवेयर प्रदान किया गया है और सॉफ्टवेयर C भाषा ओवरले है, मैं कुछ सुझाव देना चाहूंगा। मैं देख रहा हूं कि लोगों ने कुछ उपयोगी उत्तर पोस्ट किए हैं, लेकिन मैं वहां हूं जहां आप हैं और मैं चीजों को एक अलग तरह से करूंगा।

  1. डिबगर चुनें। डीबगर्स आपको माइक्रोकंट्रोलर के साथ-साथ डिबग को प्रोग्राम करने की क्षमता प्रदान करते हैं जिसमें step स्टेप बाय स्टेप ’प्रोसेसिंग, you ब्रेकप्वाइंट’ शामिल हैं जो आपको कोड की जाँच करने के लिए कोड की एक निश्चित लाइन पर प्रोग्राम को पॉज करने की अनुमति देता है। आईएसपी (इन-सर्किट प्रोग्रामिंग) एक सीरियल इंटरफ़ेस है, 3 पिन का उपयोग करता है जो अच्छा है लेकिन पूर्ण कार्यक्षमता प्रदान नहीं करता है जो एक शुरुआतकर्ता चाहेगा। JTAG इंटरफ़ेस 4 पिन का उपयोग करता है जो आपको ब्रेकपॉइंट और सामान का उपयोग करने के मामले में मूल रूप से पूर्ण कार्यक्षमता प्रदान करता है। लोग आमतौर पर आईएसपी की ओर अधिक झुकाव रखते हैं क्योंकि इसकी 'अपेक्षाकृत' स्थापना के लिए आसान है लेकिन अगर आप मुझसे पूछते हैं कि जेटीजी को सेटअप करना मुश्किल नहीं है, लेकिन यह व्यक्तिगत प्राथमिकता में भी आता है। और डिबग वायर है इंटरफ़ेस जिसे मैं इस चर्चा में छोड़ना चाहूंगा क्योंकि आप डिबग वायर के बजाय आईएसपी का उपयोग करते हैं।
  2. एक डीबगर खरीदें जिसमें ISP और JTAG कार्यक्षमता हो। मुझे लगता है कि आप एक बार खरीदते हैं लेकिन अच्छा खरीदते हैं जो भविष्य में आपकी मदद करेगा यदि आप अपना डिज़ाइन बदलना चाहते हैं। मैं AVR ड्रैगन या जेटजी को सलाह देता हूं। दोनों USB के माध्यम से पीसी से कनेक्ट होते हैं और दोनों ISP और JTAG प्रदान करते हैं। जेटीजीएवी एवीआर ड्रैगन की तुलना में थोड़ा महंगा है लेकिन मैं निश्चित रूप से एवीआर ड्रैगन की सिफारिश करता हूं।
  3. आप पाएंगे कि अधिकांश Atmel माइक्रोकंट्रोलर्स में ISP कार्यक्षमता है, लेकिन कई में JTAG नहीं है। छोटे माइक्रोकंट्रोलर जैसे कि AT90S2313 या ATTINY श्रृंखला ISP श्रृंखला का उपयोग करते हैं क्योंकि ये आकार में छोटे होते हैं। लेकिन अगर आप न केवल कुछ एलइडी को ब्लिंक करने के लिए देख रहे हैं, बल्कि एक एलसीडी स्क्रीन या एक कीपैड या आपके पास जो है उसके साथ इंटरफेस करना चाहते हैं तो मैं थोड़ा बड़े माइक्रोकंट्रोलर के लिए जाने की सलाह देता हूं। यदि आप 5V आपूर्ति का उपयोग कर रहे हैं तो मैं आपको ATMega8 या ATMega16 या ATMega128 (मेरा fav) की सलाह देता हूं। ATMega16 और ATMega128 में ISP और JTAG इंटरफ़ेस है।
  4. जहां तक ​​आईडीई का संबंध है, मैं कोड विजन और एवीआर स्टूडियो का उपयोग करता था, लेकिन मैं Atmel स्टूडियो 6.0 या नए का उपयोग करने की सलाह देता हूं जो आपकी सभी जरूरतों को पूरा करता है।

मेरे पास कुछ योजनाबद्ध विचार हैं जो मैंने अपने दम पर सीखा है ताकि आपके पास अपने माइक्रो के लिए एक साफ और चिकनी इंटरफ़ेस हो। मुझे बताना अगर आपको मदद की आवश्यकता हो।


1

ईमानदार सलाह

Arduino शुरुआती लोगों के लिए है, यहां से जाने के दो तरीके हैं

तरीका 1: यह समझना कि माइक्रो कंट्रोलर / प्रोसेसर कैसे काम करता है (बेहतर तरीका)

एटम 8051

इसके द्वारा मेरा मतलब है कि माइक्रो पी / सी के लिए आर्किटेक्चर और असेंबली कोड (या नंगे धातु) सीखना। यदि आपको इसके लिए एक प्रारंभिक बिंदु की आवश्यकता है, तो मैं Atmel 8051 का सुझाव दूंगा जो कि सबसे सरल वास्तुकला और विधानसभा निर्देश सेट के साथ 8 बिट माइक्रो नियंत्रक है। किसी भी अन्य आधुनिक 32 बिट या 64 बिट प्रोसेसर में वास्तुकला का एक व्युत्पन्न रूप है। यह माइक्रो कंट्रोलर अभी भी मेरे ग्रेजुएट कोर्सवर्क के हिस्से के रूप में इस्तेमाल किया जा रहा है क्योंकि यह एक अच्छी शुरुआत है और बहुत सारा साहित्य उपलब्ध है।

ओह, और आपके आईएसपी बोर्ड बनाने के लिए किट बेचे जाते हैं (पूरी तरह से इकट्ठे किट को प्रोसेसो, सोल्डर घटकों के साथ एक बोर्ड किट में बेचा जाता है और आप स्वयं विकास बोर्ड का निर्माण कर सकते हैं, जिसके लिए आपको केवल कुछ और आईसी -२३५ केबल / सॉकेट की आवश्यकता होती है)

चूंकि यह कम-तकनीक है इसलिए सभी घटक सस्ते होंगे।

रास्ता 2: एक हार्डवेयर-सॉफ़्टवेयर दृष्टिकोण पर जाएं (कम बेहतर)

रास्पबेरी पाई बीगल हड्डी काला

यह स्लैकर्स के लिए दृष्टिकोण है जो थोड़ा सा असेंबली में डूबा हुआ है और "टैप आउट" या वे लोग जो हार्डवेयर की तुलना में अधिक सॉफ़्टवेयर में स्थानांतरित करना चाहते हैं। मैं सुझाव दूंगा कि एक और हॉबीस्टार बोर्ड जैसे रास्पबेरी पाई या बीगलबोनबैक एआरएम प्रोसेसर के साथ आगे बढ़ें और प्रोजेक्ट्स को अपनी रचनात्मकता के साथ शुरू करें।


0

आप Arduino बोर्ड का उपयोग कर सकते हैं, सैंडबॉक्स पुस्तकालयों और पर्यावरण का उपयोग किए बिना, आप सीधे सब कुछ स्वयं प्रोग्राम कर सकते हैं। यदि आप प्रोग्राम के लिए उनके बूटलोडर का उपयोग करना चाहते हैं, तो यह ठीक काम करता है। लेकिन अधिकांश / सभी एवीआर भागों को रीसेट किए गए भाग के साथ दूसरे तरीके से भी प्रोग्राम किया जा सकता है, जिसका अर्थ है कि यह ईंट योग्य नहीं है। यह एक arduino या अन्य माइक्रोकंट्रोलर से या कुछ स्वाद से बाहर ftdi के साथ बिट बैंग स्पि के लिए काफी आसान है। स्पार्कफुन में आर्डिनो और नॉन-अरडिनो बोर्ड (उदाहरण के लिए 32u) है जो स्पाई हेडर स्पष्ट है। और ftdi ब्रेकआउट बोर्ड जिसे आप ftdi की लाइब्रेरी या linux के साथ आने वाले ftdi लाइब्रेरी का उपयोग करके आसानी से बिटबैंग कर सकते हैं।

प्रत्येक भाग के लिए प्रलेखन बूटिंग विकल्प और फ्लैश प्रोग्रामिंग विकल्प दिखाता है। हाँ, केवल कुछ हिस्सों को खरीदना और अपना ब्रेकआउट बोर्ड बनाना मुश्किल नहीं है। मैं ऐसा नहीं करूंगा, जब तक कि आपने एक मौजूदा ब्रेकआउट या सरल ईवैल बोर्ड का उपयोग नहीं किया है और तब क्लोन किया जाता है कि यदि आवश्यक हो। आदर्श रूप से आंतरिक आरसी थरथरानवाला, मूल रूप से बिजली, जमीन और प्रोग्रामिंग पिन के साथ एक भाग के साथ शुरू ...

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