क्या आप कंप्यूटर के बिना एक माइक्रोकंट्रोलर प्रोग्राम कर सकते हैं?


16

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

मैं समझता हूँ कि तुम सच में करने के लिए उपयुक्त की आवश्यकता होगी मैं / हे और स्मृति करना कुछ भी, लेकिन यदि आप ऐसा लगे और उनका समय था थे, तो आप ऐसा कर सकता है? मुझे लगता है, ऐतिहासिक रूप से, यह कैसे किया गया था जब कंप्यूटर / संकलक / कोडांतरक के साथ शुरू करने के लिए नहीं था? बेझिझक मुझे बाहर के संसाधन से जोड़ सकते हैं। धन्यवाद! :)


3
अल्टेयर पर एक नजर। 1. फ्रंट पैनल स्विच और मैनुअल मशीन प्रोग्रामिंग ही थे इसका उपयोग करने का तरीका था।
pjc50

@ pj50 उन्होंने एक माइक्रोकंट्रोलर के बारे में पूछा, माइक्रोप्रोसेसर नहीं। माइक्रोकंट्रोलर अपना कोड हमारे फ्लैश चलाते हैं जो किसी प्रकार के इंटरफेस के बिना सुलभ नहीं है।
tcrosley

आपको कितने प्रोग्राम यूनिट की आवश्यकता है? कई निर्माता अपने कोड के साथ अपने माइक्रो-पूर्व-प्रोग्राम की आपूर्ति करेंगे; हालाँकि, यह व्यावहारिक नहीं है अगर आपको पूर्ण रील से कम की आवश्यकता हो।
ओलेग Mazurov

2
70 के दशक में आपने टॉगल स्विच और लाइट का एक पैनल बनाया होगा ताकि आप कार्यक्रम में प्रवेश कर सकें। मैंने कभी भी शुरुआती माइक्रोकंट्रोलरों में से एक के साथ काम नहीं किया, लेकिन कई अलग-अलग माइक्रोप्रोसेसरों के साथ काम किया, और यही आपने इसे डिफ़ॉल्ट रूप से किया। और I / O क्षमताओं के अलावा अन्य प्रारंभिक माइक्रोकंट्रोलर और माइक्रोप्रोसेसर के बीच कोई मूलभूत अंतर नहीं था और कार्यक्रम मेमोरी को कैसे कॉन्फ़िगर किया गया था, इसके कुछ विवरण।
गर्म लंड

मैं इसे एक टिप्पणी के रूप में छोड़ दूंगा क्योंकि मुझे इस कहानी का स्रोत नहीं मिल रहा है। मुझे कुछ समय पहले एक ऐसे बच्चे की कहानी याद है, जिसने डिजिटल तर्क की अपनी समझ के आधार पर एक विज्ञान मेले के लिए ट्रांजिस्टर से अपना खुद का कंप्यूटर (सिर्फ सीपीयू वास्तव में) डिजाइन और निर्माण किया था। वह उस समय एक कंप्यूटर का खर्च नहीं उठा सकता था और टॉगल स्विच के माध्यम से अपनी रचना को प्रोग्राम कर सकता था (मुझे लगता है कि मुझे याद है कि घड़ी सिर्फ एक बटन है)। न्यायाधीशों में से एक इतना प्रभावित हुआ कि उसने बच्चे को एक कंप्यूटर खरीदा।
स्लीवेटमैन

जवाबों:


37

क्या आप अपना कोड असेंबली में लिख सकते हैं, इसे (मैन्युअल रूप से) मशीन कोड में बदल सकते हैं,

हाँ!
यदि आप चाहें तो कोड को "आपके सिर के बाहर" लिखा जा सकता है।
लंबे (लंबे समय से पहले) यह है कि मैंने कैसे (तब) माइक्रोप्रोसेसरों का उपयोग करना शुरू किया।
मैं और दोस्त असेंबली भाषा में कोड लिखेंगे, इसे मैन्युअल रूप से मशीन कोड पर संकलित करेंगे (कुछ अभ्यास के बाद आप "निरीक्षण द्वारा" कर सकते हैं) फिर इसे विभिन्न तरीकों से प्रोसेसर में दर्ज करें। हमने जो सिस्टम बनाया था, उस पर हम बाइनरी (ऑन) स्विच का पता सेट करेंगे या प्रोसेसर के ऑटो इन्क्रीमेंट फीचर का इस्तेमाल करेंगे, बाइनरी स्विच पर 8 डेटा बिट्स दर्ज करेंगे और फिर मेमोरी में डेटा दर्ज करने के लिए "क्लॉक" स्विच दबाएंगे।

समकक्ष कार्यक्षमता को सीरियल SPI प्रोग्रामिंग का उपयोग करके एक आधुनिक माइक्रोकंट्रोलर पर भी कम स्विच के साथ प्राप्त किया जा सकता है - नीचे देखें।

... और फिर एक वोल्टेज स्रोत का उपयोग करके उचित पिन को शक्ति लागू करें?

हाँ!
लेकिन यह करने के लिए अविश्वसनीय रूप से धीमा होगा !
कई आधुनिक माइक्रोकंट्रोलर प्रोग्रामिंग के लिए "एसपीआई" इंटरफ़ेस का उपयोग करने की अनुमति देते हैं।
इसमें आम तौर पर इनपुट और आउटपुट डेटा लाइन और "क्लॉक" लाइन और आमतौर पर एक रीसेट लाइन शामिल होती है।

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

कुछ इंटरफेस इंटरैक्टिव हैं - प्रोग्रामिंग के दौरान प्रोसेसर द्वारा डेटा आउटपुट किया जाता है (उदाहरण के लिए AVIS प्रोसेसर पर डेटा आउट = MISO = मास्टर इन सीरियल आउट)। इसे पढ़ने के लिए आपको उदाहरण के लिए एक एलईडी और एक अवरोधक जोड़ना होगा (और यदि ड्राइव की क्षमता वास्तव में कम थी तो सिर्फ एक बफर या ट्रांजिस्टर।


MC6800:

अर्ध लुप्त होती मेमोरी से (लगभग 40 साल!)

LDI A, $ 7F ...... 86 7F ...... 1000 0110 0111 1111
STA, $ 1234 ...... B7 12 34 ... 1011 0111 0001 0010 0011 0100
LDI X, $ 2734 ।। । सीई 27 34 ... 1100 1110 0010 0111 0011 0100
...


1
स्थैतिक डिजाइन का उल्लेख करने के लिए +1, घड़ी को डीसी तक जाने की अनुमति देता है।
पेरीसिनेशन

2
इससे यादें वापस आती हैं। मैंने वास्तव में स्कूल में वापस बटन का उपयोग करके Z80 कोड दर्ज करना सीखा। यह 1990 के आसपास था। मेरे शिक्षक ने जोर देकर कहा कि प्रोग्रामिंग सीखना कठिन तरीका है। 25 साल बाद मुझे सहमत होना है।
निल्स पिपेनब्रिनक

@NilsPipenbrinck मैं इस समय C कोड लिख रहा हूं और सबक सीख रहा हूं जो मैंने पहली बार फोरट्रान के साथ सीखा है :) !!! - और जो तब एम्बेडेड सिस्टम और विधानसभा भाषा के साथ सम्मानित किया गया। ये पाठ मानसिक-टाइपिंग को वैरिएबल और पोर्ट एक्सेस पर लागू करके त्रुटियों की संभावना को कम करते हैं जो अन्यथा उन चीजों को कर सकते हैं जो अनुमत हैं लेकिन वांछित या उपयोगी नहीं हैं। असेंबलर अंतिम तेज हथियार है - बिना हाथ वाले गार्ड के साथ एक डबल एंडेड तलवार। उसके बाद "उच्च स्तर" की भाषाएँ कम तेज लगती हैं :-)। Z80 बटन प्रविष्टि आपके सीखने के अनुभवों पर समान रूप से कार्य करती है; ;-)
रसेल मैकमोहन

@Erbureth धन्यवाद :-) 1111 के लिए हाँ ffff स्पष्ट मस्तिष्क फीका था। ... सिर्फ "आप विचार प्राप्त करते हैं" लेकिन पूरा करने की रेखा को चोट नहीं पहुंचती है।
रसेल मैकमोहन

हां, मुझे यह विचार मिला, लेकिन जब मैं उस पर था ... :)
एरब्यूरथ कहते हैं, मोनिका

10

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

यह, सचमुच, एक कार्ड के साथ वहां बैठा था और मैन्युअल रूप से इसमें छेद बना रहा था।

यहाँ छवि विवरण दर्ज करें

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

अब अगर यह सब फ्लैश मेमोरी है, और हाँ, पहली जगह में डेटा प्राप्त करना सामान्य रूप से इसे करने के लिए एक कंप्यूटर की आवश्यकता होती है। लेकिन यह सख्ती से 100% सच नहीं है।

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

शायद बहुत सारे स्विच शामिल हैं, कुछ शिफ्ट रजिस्टर, एक घड़ी जनरेटर, आदि।

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


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

@tcrosley Z80 उपाख्यानों के प्रयोजनों के लिए अधिक था - यह दर्शाते हुए कि विज़ुअल स्टूडियो द्वारा सभी कौशल को दूर करने से पहले कंप्यूटर को कैसे प्रोग्राम किया जाता था।
माजेंको

हालांकि मैं ऐसा करने के लिए बनाए गए किसी भी मशीन से अनजान हूं, लेकिन कार्ड के अनुक्रम में संग्रहीत कोड के साथ माइक्रोकंट्रोलर को प्रोग्राम करने के लिए कार्ड रीडर में कुछ सर्किटरी को जोड़ना मुश्किल नहीं होगा। पेपर टेप अधिक व्यावहारिक हो सकता है, हालांकि।
सुपरकाट

2
मैं उन में मैन्युअल रूप से छेद काटता था। यह केवल चरम परिस्थितियों में संभव है (10pm, टर्म पेपर कल के कारण, एक मेनफ्रेम रन लेफ्ट, पंच रूम लेडी दिन के लिए छोड़ दिया गया)। फ्रंट पैनल से एक ही मेनफ्रेम प्रोग्रामिंग करना (कुछ साल बाद) वास्तव में तेज था।
ओलेग Mazurov

1
@ माजेंको - मैंने बैबेज मशीन के पुनर्निर्माण को देखा है, और यह निश्चित रूप से टेलीफोन उपकरण से नहीं बनाया गया था। निश्चित रूप से शोर, हालांकि।
हॉट लाइक्स

7

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

सबसे पहले, सी जैसी किसी भी उच्च स्तरीय भाषाओं के बारे में भूल जाएं। फिर सबसे आसान तरीका यह है कि आप अपने प्रोग्राम को असेंबली भाषा में लिखें, लेकिन मशीन कोड में अनुवाद करने के लिए कोडांतरक का उपयोग न करें । इसके बजाय, प्रोग्रामिंग मैनुअल में विधानसभा निर्देशों में से प्रत्येक को देखें, उनके समतुल्य हेक्स कोडिंग ढूंढें, और नीचे लिखें।

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

लगभग सभी माइक्रोकंट्रोलर पर बाहरी पते और डेटा की कमी के कारण (क्योंकि वे बहुत अधिक पिन लेंगे जो I / O पोर्ट और बाह्य उपकरणों द्वारा आवश्यक हैं), वस्तुतः सभी माइक्रोकंट्रोलर को इस तरह एक विशेष इंटरफ़ेस के माध्यम से प्रोग्राम किया जाता है:

यहाँ छवि विवरण दर्ज करें

आम तौर पर बाईं ओर "प्रोग्रामर" एक पीसी से जुड़ा होगा, जो एक कंपाइलर / लिंकर द्वारा उत्पन्न मशीन फ़ाइल डाउनलोड करेगा।

हालाँकि अगर प्रोग्रामर के पास एक कीबोर्ड है, जैसे नीचे दिया गया है:

यहाँ छवि विवरण दर्ज करें

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

बहुत कम प्रोग्रामर के पास इस तरह कीबोर्ड होते हैं। यह एक शौक़ीन व्यक्ति के लिए उपयुक्त नहीं होगा क्योंकि इसकी कीमत शायद कुछ हज़ार डॉलर है।

यह विशेष रूप से प्रोग्रामर प्रोग्राम भागों को बोर्ड पर डालने से पहले; इंटरफेस और सॉकेट कई PIC और Atmel AVR के लिए भी उपलब्ध हैं।


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

1
@RussellMcMahon कौन कहता है कि प्रोग्रामर में एक कंप्यूटर है? उनमें से कई बस FPGAs का उपयोग करते हैं (जो असतत तर्क द्वारा प्रतिस्थापित किया जा सकता है।) आप एक SPI इंटरफ़ेस के माध्यम से माइक्रोकंट्रोलर को कैसे प्रोग्राम करने जा रहे हैं, जब तक कि इसमें बूटलोडर न हो? यदि हां, तो आप बूटलोडर को कैसे प्रोग्राम करते हैं?
tcrosley

3
अनिवार्य रूप से बूटलोडर मुफ्त मानक कम वोल्टेज सीरियल प्रोग्रामिंग इंटरफ़ेस कई (संभवतः सबसे अधिक) माइक्रोकंट्रोलर अनिवार्य रूप से सीरियल इंटरफ़ेस में कुछ पंक्तियों का उपयोग करता है। यदि बातचीत होती है तो MOSI MCLK (Vdd Gnd Reset) न्यूनतम MISO है। 3 स्विच (जिनमें से केवल एक) को मुफ्त में उछालने की आवश्यकता है) और MISO और "आप बंद हैं" के लिए एक एलईडी। बहुत धीरे धीरे। यदि एक FPGA को "कंप्यूटर" के रूप में गिनने की अनुमति नहीं है, तो यह कई प्रोसेसर आधारित प्रणालियों को लागू करने में कोई समस्या नहीं होगी। मुझे संदेह है कि "कोई दहनशील तर्क नहीं" उनके अनुरोध की भावना को पूरा करेगा।
रसेल मैकमोहन

मुझे कहना है, इलेक्ट्रॉनिक्स उपकरण के साथ काम करते समय आतिशबाजी गलत पृष्ठभूमि है :)
अनाम पेंगुइन

6

एक व्यावहारिक बात के रूप में, JTAG पिन को मैन्युअल रूप से टॉगल करने जैसा कुछ बहुत ही त्रुटि वाला होगा। किसी भी सभ्य आकार के एक कार्यक्रम के लिए हजारों टॉगल लगेंगे। लेकिन सैद्धांतिक रूप से, यह संभव है।

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

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

बेशक, आप एक माइक्रोकंट्रोलर का उपयोग भी कर सकते हैं जो बाहरी मेमोरी इंटरफ़ेस से कोड चलाता है, लेकिन यह धोखा है। :-)


2
वास्तव में, मैंने 1976/77 में एक Imsai 8800 "क्लोन" का निर्माण किया और टॉगल स्विच का उपयोग करके इसे बाइनरी में नियमित रूप से प्रोग्राम करेगा। मेरे पास एक बूट-लोड अनुक्रम था जो लगभग 40- या 60-विषम बाइट्स था (यह एक जीवन भर पहले था!) ​​जो मेरे एएसआर -33 टेलेटाइप से एक पैपर्टपे पढ़ेगा और मुझे एक कीबोर्ड मॉनीटर में मिलेगा। टेलेटाइप काम करने से पहले मैं बाइनरी में सख्ती से 8085 (मेरे "क्लोन" और इम्सई के बीच के अंतरों में से एक) को प्रोग्राम करूंगा। लेकिन वह स्विच की एक पंक्ति के साथ समानांतर में था। मैंने धारावाहिक एन्कोडिंग करने के लिए एक टेलीग्राफ कुंजी का उपयोग किया है और यह वास्तव में त्रुटि-प्रवण है, जैसा कि एडम ने कहा है।
user6297

3

पूर्ण रूप से। वास्तव में, मैंने जो पहला माइक्रोप्रोसेसर कोर्स लिया (लगभग 87) एक मोटोरोला 68000 बोर्ड का उपयोग किया। हम असेंबली में कोड काम करेंगे, विधानसभा के लिए हेक्स देखेंगे, और बोर्ड को प्रोग्राम करने के लिए हेक्स को एक टर्मिनल में टाइप करेंगे। यदि आपने संपादित किया है, तो आपको यह सुनिश्चित करना होगा कि आपके द्वारा डाला गया कोड आपके द्वारा प्रतिस्थापित किए जा रहे कोड से कम है, और फिर शेष ईओपी के साथ बफर करें। अगर coDE अधिक लंबा था, तो आपको सब कुछ फिर से लिखना होगा! हमने बहुत सारे NOP जोड़ना सीखा।


68000 एक माइक्रोकंट्रोलर नहीं था। उन्होंने एक माइक्रोकंट्रोलर के बारे में पूछा, न कि एक माइक्रोप्रोसेसर। माइक्रोकंट्रोलर अपना कोड हमारे फ्लैश चलाते हैं जो किसी प्रकार के इंटरफेस के बिना सुलभ नहीं है।
tcrosley

5
@tcrosley यह कड़ाई से सच नहीं है। ऐसे माइक्रोकंट्रोलर होते हैं जिन्हें बाहरी रॉम की आवश्यकता होती है क्योंकि उनके पास स्वयं का कोई रॉम या फ्लैश नहीं होता है। जो उन्हें एक माइक्रोकंट्रोलर बनाता है वह रैम या रोम में नहीं बनाया जाता है, लेकिन बाह्य उपकरणों (IO पोर्ट, UART, आदि) में बनाया जाता है।
माजेंको

हालांकि बहुत कम - क्योंकि I / O बाह्य उपकरणों का आपने अभी उल्लेख किया है, बहुत कम लोगों के पास बाहरी पता और डेटा बसेस हैं क्योंकि उन्हें दो कई पिनों की आवश्यकता होती है।
tcrosley

2

पूर्ण रूप से। एक बार जब आपके पास वास्तविक निर्देशों (अच्छी तरह से निर्दिष्ट अनुदेश सेटों के लिए आसान) का द्विआधारी प्रारूप होता है, तो आपको केवल प्रोग्रामिंग प्रोटोकॉल को लागू करना होगा।

उदाहरण के लिए, AVR टिनी 4 की तरह कुछ छोटा लें । धारा 14 में प्रोटोकॉल और भौतिक परत सहित प्रोग्रामिंग इंटरफ़ेस का विवरण है। यह अपेक्षाकृत सरल है और आपको सिर्फ 1 या 0. भेजने या प्राप्त करने के लिए कुछ बटन और पुलअप / डाउन रेसिस्टर्स की आवश्यकता है। यदि आप महत्वाकांक्षी महसूस कर रहे हैं, तो आउटपुट को पढ़ने के लिए कुछ एलईडी जोड़ें।

अंतिम शेष मुद्दा यह है कि यदि आप इसे पर्याप्त तेजी से कर सकते हैं, जो सौभाग्य से * AVR टिनी 4 (धारा 16) के लिए है, तो इसे प्रोग्रामिंग करने के लिए कोई न्यूनतम आवृत्ति नहीं है।

* नोट: जहां तक ​​डेटाशीट निर्दिष्ट करता है। यह वास्तविकता में भिन्न हो सकता है ... मुझे संदेह है कि किसी ने भी इसे मेगाहर्ट्ज घड़ी की गति पर प्रोग्रामिंग करने की कोशिश की है।

वांछित के रूप में इस प्रक्रिया के रूप में ज्यादा / थोड़ा स्वचालित करने के लिए स्वतंत्र महसूस करें। यह वही है जो अधिकांश प्रोग्रामिंग डिवाइस वैसे भी करते हैं: प्रक्रिया को स्वचालित करते हैं।


2

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

तो मैं इस सवाल का इलाज करूंगा कि "मैं बड़े पैमाने पर एक यूसी के साथ कैसे इंटरफेस कर सकता हूं- (इलेक्ट्रॉनिक के विपरीत) इंटरफेस हार्डवेयर में, और संभव के रूप में एक शांत तरीके से?"

जिस पर मेरा जवाब है, प्रोग्राम को पियानो रोल के रूप में इनपुट करें। एक खिलाड़ी पियानो से पियानो रोल "ट्रैकर बार" मूल रूप से आपको कम से कम 65 (प्रारूप के आधार पर) बिट्स देता है जिसे आप कागज में छिद्रों के आधार पर स्वतंत्र रूप से चालू और बंद कर सकते हैं। बाकी एक सटीक चाकू के साथ सटीक काम है। लेकिन कम से कम आपका कार्यक्रम, एक बार चल रहा है, (कुछ) स्थायी रूप से संग्रहीत (फ्लिप-द-स्विच-मैन्युअल दृष्टिकोण के विपरीत) है।


2

न केवल कंप्यूटर के बिना एक माइक्रोकंट्रोलर को प्रोग्राम करना संभव है, लेकिन आप वास्तव में आज एक कंप्यूटर खरीद सकते हैं जो विशेष रूप से हार्डवेयर टॉगल स्विच के साथ प्रोग्राम करने के लिए डिज़ाइन किया गया है। किट को एक सदस्यता कार्ड कहा जाता है , और यह 1970 के दशक से COSMAC एल्फ कंप्यूटर का पुन: निर्माण है। किट का वर्णन आईईईई स्पेक्ट्रम पत्रिका के एक हालिया लेख में किया गया था । पीसी से सदस्यता कार्ड के अधिक हाल के संस्करणों को प्रोग्राम करना भी संभव है।


2

ठीक है। इसके बारे में कैसे: आप असेंबलर में प्रोग्राम लिखते हैं और पहले से सुझाए गए अनुसार खुद को ऑप्कोड देखते हैं। इसे कंप्यूटर में कैसे प्राप्त करें: एक पुराने टेप प्लेयर लें, प्लेबैक सिर को हटा दें, लेकिन केपस्टर और चुटकी रोलर को छोड़ दें। यह आपका परिवहन होगा। यदि आपके पास रील-टू-रील खिलाड़ी है, तो आप प्लेबैक सिर को जगह में छोड़ सकते हैं।

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

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


1

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


उन्होंने एक माइक्रोकंट्रोलर के बारे में पूछा, न कि एक माइक्रोप्रोसेसर। माइक्रोकंट्रोलर अपना कोड हमारे फ्लैश चलाते हैं जो किसी प्रकार के इंटरफेस के बिना सुलभ नहीं है।
tcrosley

4
@tcrosley - आरंभिक UCs के पास फ़्लैश नहीं था। उनके पास प्रोग्राम स्टोर के लिए रैम या रोम था।
हॉट लाइक्स

@HotLicks सही। और केवल कुछ अपवादों के साथ, ये सभी माइक्रोप्रोसेसर थे, न कि माइक्रोकंट्रोलर। यह मेरी बात थी, यह नहीं कि प्रोग्राम स्टोर फ़्लैश था, या रोम, या PROM, या EPROM, या EEPROM। मुद्दा यह था कि प्रोग्राम स्टोर चिप (माइक्रोकंट्रोलर) पर था या नहीं (माइक्रोप्रोसेसर)। 8048 में, इंटेल का पहला माइक्रोकंट्रोलर 1977 में पेश किया गया था, जिसमें आंतरिक रोम था।
tcrosley

3
@ टैक्रस्ली तुम कौन हो? और आपने आमतौर पर सहायक और ऑब्जेक्टी टैक्रॉली के साथ क्या किया है? :-) | उनका पहला अवलोकन यह था कि आप प्रोग्रामिंग इंटरफ़ेस के साथ बातचीत कर सकते हैं - जो अक्सर होगा लेकिन हमेशा मान्य नहीं होगा। "IF" पुनः पता और डेटा बस एक IF है। यह कुछ बड़े और बॉर्डरलाइन हाइब्रिड माइक्रोकंट्रोलर पर लागू होता है, लेकिन उनका मूल आईएफ काफी ठीक था (यद्यपि कठोर और धीमा)।
रसेल मैकमोहन

3
माइक्रोप्रोसेसर और माइक्रोकंट्रोलर के बीच एक कठिन अंतर बनाए रखने की कोशिश उपयोगी से अधिक पांडित्य है, खासकर जब यह हर एक उत्तर के लिए एक टिप्पणी में है।
pjc50

1

40 साल पहले डिजिटल उपकरण के पीडीपी -8 मिनी कंप्यूटर में स्वचालित बूटिंग क्षमता नहीं थी। प्रोग्राम आमतौर पर छिद्रित पेपर टेप से लोड किए गए थे, लेकिन पेपर टेप को लोड करने के लिए लोडर को मैन्युअल रूप से फ्रंट पैनल स्विच पर दर्ज किया जाना था।

यहाँ छवि विवरण दर्ज करें

डिजिटल और पीडीपी -8 के ग्राहकों की साइटें जैसे कि ओईएम जो उन्हें दिन के एम्बेडेड-कंट्रोलर के रूप में इस्तेमाल करते हैं, उपयोगकर्ताओं के लिए बूट लोडर को याद रखना और बूट में प्रवेश करने के लिए सबसे तेज़ समय के लिए एक दूसरे के साथ प्रतिस्पर्धा करना असामान्य नहीं था। मशीन में लोडर। मशीनों ने चुंबकीय-कोर यादों (दुनिया के दूर-दराज के हिस्सों में हाथ से चलने वाली, छोटी उंगलियों वाली महिलाओं द्वारा, सुइयों और बाल-ठीक तार का उपयोग करके) का इस्तेमाल किया।

यहाँ छवि विवरण दर्ज करें

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


कई साल पहले जब हमें दोनों तरह से ऊपर की ओर बर्फ में नंगे पांव स्कूल जाना पड़ता था, तो हमारे हाई स्कूल में पीडीपी -8 को सामने वाले पैनल से बूटलोडर में टॉगल करके बूट करना पड़ता था, जैसा कि आप वर्णन करते हैं। शिक्षकों में से कोई भी कंप्यूटर के बारे में ज्यादा नहीं जानता था, इसमें वह भी शामिल है जो इसके लिए जिम्मेदार था। उन्होंने सोचा था कि 0 था और 1 नीचे था, इसलिए बूटलोडर में कभी भी टॉगल नहीं किया जा सकता था। जब मैं अंग्रेजी कक्षा में था तब मैं कंप्यूटर को क्रैश करने की व्यवस्था करूँगा ताकि मुझे कंप्यूटर को पुनरारंभ करने के लिए बुलाया जाए। मैंने उसे उसके ऊपर बनाम गलत धारणा के बारे में कभी नहीं बताया - यह मेरे लिए बहुत उपयोगी था।
ओलिन लेथ्रोप

मुझे पीडीपी -8 बहुत पसंद था। मेरे पास लगभग तीन वर्षों के लिए एकमात्र पहुंच थी - इसलिए पीसी का आविष्कार करने से बहुत पहले यह एक व्यक्तिगत कंप्यूटर होने जैसा था। कमाल है जो स्मृति के 4K में फिट हो सकता है। यकीन है कि बहुत सारे पेपर टेप के माध्यम से चला गया (हालांकि इसमें कोई DECtape नहीं था), और टेलेटाइप पेपर।
tcrosley

0

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

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