विषयसूची:

KIM Uno - एक 5€ माइक्रोप्रोसेसर देव किट एम्यूलेटर: 13 चरण (चित्रों के साथ)
KIM Uno - एक 5€ माइक्रोप्रोसेसर देव किट एम्यूलेटर: 13 चरण (चित्रों के साथ)

वीडियो: KIM Uno - एक 5€ माइक्रोप्रोसेसर देव किट एम्यूलेटर: 13 चरण (चित्रों के साथ)

वीडियो: KIM Uno - एक 5€ माइक्रोप्रोसेसर देव किट एम्यूलेटर: 13 चरण (चित्रों के साथ)
वीडियो: Solution || Bioassay - Insulin, d-tubocurarine, Digitalis || Types || Unit 5 || Pharmacology 5 sem 2024, जून
Anonim
Image
Image
KIM Uno - एक 5€ माइक्रोप्रोसेसर देव किट एम्यूलेटर
KIM Uno - एक 5€ माइक्रोप्रोसेसर देव किट एम्यूलेटर
KIM Uno - एक 5€ माइक्रोप्रोसेसर देव किट एम्यूलेटर
KIM Uno - एक 5€ माइक्रोप्रोसेसर देव किट एम्यूलेटर

KIM Uno (रेट्रो) माइक्रोप्रोसेसरों के लिए एक पोर्टेबल, सॉफ्टवेयर परिभाषित देव किट है। लेकिन मैं समय पर वापस जाकर इसके विचार का परिचय देता हूं:

2018 के अंत में मेरे दिमाग में यह आया, कि मैं MOS Technology, Inc. के प्रसिद्ध KIM-1 की तरह एक छोटा पोर्टेबल माइक्रोप्रोसेसर देव किट बनाना चाहता था और चक पेडल द्वारा डिज़ाइन किया गया था, जो 6502 CPU बनाने में भी शामिल था।

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

इसलिए, मैंने KIM Uno को एक पोर्टेबल डिवाइस के रूप में डिज़ाइन किया है, जो एक हाथ में फिट बैठता है और दो CR2032 बैटरी द्वारा संचालित होता है। यह वांछित CPU का अनुकरण (या अनुकरण) करने के लिए 8 MHz पर चलने वाले ATMega328p ("Arduino") माइक्रोकंट्रोलर का उपयोग करता है। यह आर्किटेक्चर यह भी सुनिश्चित करता है कि एमुलेटेड सीपीयू माइक्रोकंट्रोलर की फ्लैश मेमोरी के अंदर फिट होने वाली किसी भी चीज के लिए विनिमेय हैं। तो यह एक बहुउद्देश्यीय उपकरण है।

संयोग से मैंने बाद में YouTube पर एक बहुत अच्छी बात देखी - जिसे द अल्टीमेट अपोलो गाइडेंस कंप्यूटर टॉक (34C3) कहा जाता है - जहाँ "वन इंस्ट्रक्शन सेट कंप्यूटर" या OISCs का उल्लेख किया गया है। मैं उनके बारे में नहीं जानता था और इसे लागू करने के लिए इसे सही उम्मीदवार के रूप में पाया।

KIM Uno केवल एक निर्देश के साथ CPU का अनुकरण करता है: subleq - घटाना और शाखा यदि शून्य से कम या बराबर है।

यदि आप इस निर्देश के माध्यम से मेरे साथ चलते हैं, तो आप कुछ ही समय में अपना KIM Uno बना सकते हैं। और सबसे अच्छी बात - इस तथ्य के अलावा कि आप इसे अपने स्वाद के लिए संशोधित कर सकते हैं - यह है कि इसे बनाने में केवल 4, 75 € का खर्च आता है (2018 के अंत तक)।

एक संकेत: एक गिट रिपॉजिटरी है जिसमें इस निर्देश के विभिन्न चरणों द्वारा प्रदान की गई सभी फाइलें हैं। यदि आप कुछ संसाधनों को संशोधित करना चाहते हैं और उन्हें हम सभी के साथ साझा करना चाहते हैं तो आप एक पीआर बना सकते हैं। लेकिन आप वहां एक साथ सभी फाइलों को डाउनलोड भी कर सकते हैं। बस https://github.com/maxstrauch/kim-uno पर। धन्यवाद!

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

चरण 1: पीसीबी की सोर्सिंग

पीसीबी की सोर्सिंग
पीसीबी की सोर्सिंग
पीसीबी की सोर्सिंग
पीसीबी की सोर्सिंग

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

मैंने चीन में अपने PCB को PCBWay पर सिर्फ $5 में ऑर्डर किया। पीसीबीवे को पीसीबी के लिए मेरे गोटो निर्माता के रूप में पेश करने के लिए मुझे कोई लाभ नहीं मिलता है, यह सिर्फ इतना है कि यह मेरे लिए ठीक काम करता है और आपके लिए भी ठीक काम कर सकता है। लेकिन आप इन्हें JLCPCB, OSH Park या किसी स्थानीय PCB कंपनी जैसी किसी अन्य जगह पर ऑर्डर कर सकते हैं।

लेकिन अगर आप उन्हें PCBWay पर ऑर्डर करने के इच्छुक हैं तो आप संलग्न ज़िप फ़ाइल "kim-uno-rev1_2018-12-12_gerbers.zip" को डाउनलोड कर सकते हैं और बिना किसी बदलाव के सीधे PCBWay पर अपलोड कर सकते हैं। यह मूल फ़ाइल है जिसका उपयोग मैंने पीसीबी को ऑर्डर करने के लिए किया था जिसे आप छवियों में देख सकते हैं।

यदि आप उन्हें किसी अन्य निर्माता से मंगवा रहे हैं, तो आपको उन्हें मूल KiCad स्रोतों से फिर से निर्यात करने की आवश्यकता हो सकती है, क्योंकि मैंने उन्हें PCBWay के विनिर्देशों के साथ उत्पन्न किया है जो आप यहां पा सकते हैं। मूल KiCad स्रोतों के लिए, "kim-uno-kicad-sources.zip" डाउनलोड करें और इसे निकालें।

लेकिन एक दूसरा तरीका भी है: यदि आप पीसीबी को ऑर्डर नहीं करना चाहते हैं, तो आप परफ़ॉर्म या ब्रेडबोर्ड का उपयोग करके अपना स्वयं का संस्करण बना सकते हैं।

वैसे भी: चूंकि पीसीबी अब रास्ते में हैं, हम अन्य भागों पर ध्यान केंद्रित कर सकते हैं! आओ मेरे पीछे चलो।

चरण 2: घटकों की सोर्सिंग

घटकों की सोर्सिंग
घटकों की सोर्सिंग
घटकों की सोर्सिंग
घटकों की सोर्सिंग
घटकों की सोर्सिंग
घटकों की सोर्सिंग

अब आपको घटकों को प्राप्त करने की आवश्यकता है। इसके लिए आपको इस चरण के साथ-साथ एक बीओएम (सामग्री का बिल) के साथ संलग्न सभी घटकों और मात्राओं की एक सिंहावलोकन छवि मिलेगी।

बीओएम में ईबे के लिंक हैं। हालाँकि जब आप इसे पढ़ते हैं तो वे ऑफ़र बंद हो सकते हैं, आप इसे एक शुरुआती बिंदु के रूप में उपयोग कर सकते हैं। प्रयुक्त घटक बहुत मानक हैं।

निम्नलिखित में मैं आपको सभी आवश्यक घटकों के बारे में बताऊंगा:

  • सात खंड प्रदर्शित करने के लिए 7x 1 kΩ प्रतिरोधक। आप उन्हें चमकदार बनाने के लिए मूल्य (जैसे 470) को कम कर सकते हैं, लेकिन इसे बहुत कम नहीं करें अन्यथा एल ई डी मर जाएंगे या बैटरी बहुत जल्दी खत्म हो जाएगी। मैंने पाया कि यह मान मेरे लिए काम करता है
  • 1x 10 kΩ माइक्रोकंट्रोलर की RESET लाइन के लिए पुल-अप रेसिस्टर के रूप में
  • 1x 100nF संधारित्र किसी भी वोल्टेज स्पाइक्स को सुचारू करने के लिए (जो तब नहीं होना चाहिए क्योंकि हम बैटरी का उपयोग कर रहे हैं, ठीक है, लेकिन अच्छे उपाय के लिए …)
  • DIP-28 पैकेज में 1x ATMega328P (आमतौर पर ATMega328P-PU नाम दिया गया)
  • 1x मुख्य पीसीबी - पिछला चरण देखें; या तो आदेश दिया या स्वयं द्वारा निर्मित
  • 2x CR2032 बैटरी धारक
  • 1x SPDT (सिंगल पोल, डबल थ्रो) स्विच जिसमें मूल रूप से तीन संपर्क होते हैं और इसके प्रत्येक दो राज्यों में (या तो चालू या बंद) यह दो संपर्कों को जोड़ता है
  • कीबोर्ड के लिए 20x स्पर्शनीय पुश बटन। पीसीबी के पिछले हिस्से का उपयोग करने के लिए मैंने एसएमडी स्पर्श पुश बटन (मानक 6x6x6 मिमी वाले) का उपयोग किया - वे सोल्डर के लिए बहुत आसान हैं जैसा कि आप देखेंगे
  • वैकल्पिक: प्रोग्रामर को जोड़ने के लिए 1x 1x6 पिन हेडर, लेकिन यह वैकल्पिक है जैसा कि आप बाद में देखेंगे
  • 4 अंकों के साथ 1x सात खंड का प्रदर्शन और 2 अंकों के साथ 1x सात खंड का प्रदर्शन - बोर्ड सामान्य एनोड तारों के साथ केवल 0.36 इंच (9, 14 मिमी) तत्व लेगा। एक कार्यशील इकाई प्राप्त करने के लिए दोनों आवश्यकताएं महत्वपूर्ण हैं। लेकिन इस प्रकार के सात खंड प्रदर्शन भी बहुत आम हैं

इस चरण से संलग्न आप "घटक-डेटाशीट.ज़िप" फ़ाइल पा सकते हैं जिसमें उपयोग किए गए घटकों के आयामों और प्रकारों के बारे में अधिक सटीक जानकारी है। लेकिन अधिकांश घटक बहुत मानक हैं और कम पैसे में आसानी से प्राप्त किए जा सकते हैं।

अब आपको तब तक प्रतीक्षा करने की आवश्यकता है जब तक आपके पास सोल्डरिंग जारी रखने के लिए सभी घटक तैयार न हों। इस समय के दौरान आप पहले से ही अंत तक जा सकते हैं और यदि आप चाहें तो KIM Uno के उपयोग के बारे में थोड़ा पढ़ सकते हैं।

चरण 3: सोल्डरिंग टूल अवलोकन

सोल्डरिंग टूल अवलोकन
सोल्डरिंग टूल अवलोकन
सोल्डरिंग टूल अवलोकन
सोल्डरिंग टूल अवलोकन

KIM Uno को टांका लगाने और बनाने के लिए आपको छवियों द्वारा दिखाए गए टूल की आवश्यकता होती है:

  • वायर कटर (घटक तारों के अंत को काटने के लिए)
  • सपाट सरौता
  • चिमटी की जोड़ी
  • (सभ्य) मिलाप जो मोटा नहीं है - मैं 0.56 मिमी सोल्डर का उपयोग करता हूं
  • सोल्डरिंग आयरन - आपको हाई-एंड सोल्डरिंग आयरन की आवश्यकता नहीं है (क्योंकि हम यहां रॉकेट साइंस भी नहीं कर रहे हैं) - मैं लंबे समय से एर्सा फाइनटिप 260 का उपयोग करता हूं और यह वास्तव में अच्छा है
  • एक फ्लक्स पेन: कंपोनेंट्स और पैड्स में फ्लक्स जोड़ने से उन्हें सोल्डर करना इतना आसान हो जाता है क्योंकि सोल्डर तब अपने आप सही जगह पर "बहता है" *
  • वैकल्पिक रूप से: आपके सोल्डरिंग आयरन के लिए एक स्पंज (मेटलवूल से)

बाद में KIM Uno को प्रोग्राम करने के लिए आपको इसकी भी आवश्यकता होगी:

  • फर्मवेयर अपलोड करने के लिए AVR-GCC टूलचेन और avrdude वाला कंप्यूटर
  • एक आईएसपी (प्रोग्रामर) - जैसा कि आप छवि पर देख सकते हैं कि मैं एक विशेष स्केच के साथ आईएसपी के रूप में अपने Arduino Uno का उपयोग कर रहा हूं - इसलिए कोई फैंसी हार्डवेयर खरीदने की आवश्यकता नहीं है

* मनुष्यों द्वारा कुछ मार्गदर्शन की आवश्यकता;-)

आप तैयार हैं? अगले चरण में हम KIM Uno को असेंबल करना शुरू करने जा रहे हैं।

चरण 4: सोल्डरिंग # 1: रेसिस्टर्स और कैपेसिटर जोड़ना

सोल्डरिंग # 1: रेसिस्टर्स और कैपेसिटर जोड़ना
सोल्डरिंग # 1: रेसिस्टर्स और कैपेसिटर जोड़ना
सोल्डरिंग # 1: रेसिस्टर्स और कैपेसिटर जोड़ना
सोल्डरिंग # 1: रेसिस्टर्स और कैपेसिटर जोड़ना
सोल्डरिंग # 1: रेसिस्टर्स और कैपेसिटर जोड़ना
सोल्डरिंग # 1: रेसिस्टर्स और कैपेसिटर जोड़ना
सोल्डरिंग # 1: रेसिस्टर्स और कैपेसिटर जोड़ना
सोल्डरिंग # 1: रेसिस्टर्स और कैपेसिटर जोड़ना

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

इसके अलावा, छवियों में नहीं दिखाया गया है, उसी तरह छोटे १०० nF संधारित्र को जोड़ें।

एक टिप: उन तार पैरों को एक छोटे कंटेनर में रखें, वे कभी-कभी काम में आते हैं।

चरण 5: सोल्डरिंग # 2: कीबोर्ड को असेंबल करना

सोल्डरिंग # 2: कीबोर्ड को असेंबल करना
सोल्डरिंग # 2: कीबोर्ड को असेंबल करना
सोल्डरिंग # 2: कीबोर्ड को असेंबल करना
सोल्डरिंग # 2: कीबोर्ड को असेंबल करना
सोल्डरिंग # 2: कीबोर्ड को असेंबल करना
सोल्डरिंग # 2: कीबोर्ड को असेंबल करना

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

हम ऊपर से नीचे तक काम करेंगे (या अगर पीसीबी तस्वीरों में दिखाया गया है तो बाएं से दाएं) और पहली पंक्ति से शुरू करें: प्रत्येक स्विच के लिए चार पैड में से एक चुनें और इसे फ्लक्स पेन से गीला करें।

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

तीरों के साथ छवि एक आवर्धन दिखाती है कि टांका लगाने का कार्य बिल्कुल कैसे किया गया था।

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

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

एक पंक्ति या तो टांका लगाने के बाद आप देखेंगे कि आप इसे लटका लेते हैं और यह उतना कठिन नहीं है बल्कि दोहराव वाला है। तो बस बाकी काम करें और आप कुछ ही समय में एक तैयार कीबोर्ड के साथ समाप्त हो जाएंगे।

चरण 6: सोल्डरिंग # 3: सेवन सेगमेंट डिस्प्ले, स्विच और पिन हैडर

सोल्डरिंग #3: सेवन सेगमेंट डिस्प्ले, स्विच और पिन हैडर
सोल्डरिंग #3: सेवन सेगमेंट डिस्प्ले, स्विच और पिन हैडर
सोल्डरिंग #3: सेवन सेगमेंट डिस्प्ले, स्विच और पिन हैडर
सोल्डरिंग #3: सेवन सेगमेंट डिस्प्ले, स्विच और पिन हैडर
सोल्डरिंग #3: सेवन सेगमेंट डिस्प्ले, स्विच और पिन हैडर
सोल्डरिंग #3: सेवन सेगमेंट डिस्प्ले, स्विच और पिन हैडर

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

सावधान रहें कि आप अपने आप को गर्म टांका लगाने वाले लोहे से न जलाएं। यदि आप इसके साथ सहज नहीं हैं, तो आप घटक को पकड़ने के लिए थोड़ा सा टेप (जैसे चित्रकार का टेप) का उपयोग कर सकते हैं। इस तरह आपके दोनों हाथ चलने के लिए स्वतंत्र हैं।

सात खंडों के डिस्प्ले को उसी तरह से मिलाया जाता है (चित्र देखें): आप इसे डालते हैं, इसे अपने हाथ या टेप से पकड़ते हैं और दो विपरीत पिनों को मिलाते हैं, जबकि आप अन्य पिनों को मिलाप कर सकते हैं।

लेकिन सावधान रहें और सात खंडों के प्रदर्शन को सही दिशा में रखें (दशमलव बिंदुओं के साथ कीबोर्ड की ओर)। नहीं तो आप मुश्किल में हैं…

चरण 7: सोल्डरिंग # 4: माइक्रोकंट्रोलर को मिलाप करना

सोल्डरिंग #4: माइक्रोकंट्रोलर को सोल्डर करना
सोल्डरिंग #4: माइक्रोकंट्रोलर को सोल्डर करना

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

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

चरण 8: टांका लगाना # 5: बैटरी धारकों को जोड़ें (अंतिम चरण)

सोल्डरिंग # 5: बैटरी होल्डर्स जोड़ें (अंतिम चरण)
सोल्डरिंग # 5: बैटरी होल्डर्स जोड़ें (अंतिम चरण)
सोल्डरिंग # 5: बैटरी होल्डर्स जोड़ें (अंतिम चरण)
सोल्डरिंग # 5: बैटरी होल्डर्स जोड़ें (अंतिम चरण)
सोल्डरिंग # 5: बैटरी होल्डर्स जोड़ें (अंतिम चरण)
सोल्डरिंग # 5: बैटरी होल्डर्स जोड़ें (अंतिम चरण)

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

चरण 9: एम्यूलेटर चमकाना

एम्यूलेटर चमकाना
एम्यूलेटर चमकाना
एम्यूलेटर चमकाना
एम्यूलेटर चमकाना
एम्यूलेटर चमकाना
एम्यूलेटर चमकाना

संलग्न ज़िप संग्रह "kim-uno-firmware.zip" में आप पहले से संकलित "main.hex" के साथ एमुलेटर के लिए स्रोत कोड पा सकते हैं जिसे आप सीधे माइक्रोकंट्रोलर पर अपलोड कर सकते हैं।

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

avrdude -c stk500v1 -b 9600 -v -v -P /dev/cu.usbmodem1421 -p m328p -U lfuse:w:0xe2:m -U hfuse:w:0xd9:m -U efuse:w:0xff:m

यदि आप avrdude नहीं जानते हैं: यह एक माइक्रोकंट्रोलर पर प्रोग्राम अपलोड करने का एक प्रोग्राम है। आप इसके बारे में यहां और जान सकते हैं। मूल रूप से आप इसे स्थापित करते हैं और फिर यह उपयोग के लिए तैयार है। आपके सेटअप के लिए आपको "-P" के तर्क को दूसरे सीरियल पोर्ट में बदलने की आवश्यकता हो सकती है। कृपया अपने कंप्यूटर पर जांचें कि किस सीरियल पोर्ट का उपयोग किया गया है (उदाहरण के लिए Arduino IDE के अंदर)।

इसके बाद आप इस आदेश के साथ फर्मवेयर को माइक्रोकंट्रोलर पर फ्लैश कर सकते हैं:

avrdude -c stk500v1 -b 9600 -v -v -P /dev/cu.usbmodem1421 -p m328p -U फ़्लैश:w:main.hex

दोबारा: वही बात ऊपर के रूप में "-पी" पर लागू होती है।

चूँकि मेरे पास "पेशेवर" ISP (इन-सिस्टम प्रोग्रामर) नहीं है, मैं हमेशा अपने Arduino UNO (छवि देखें) और मेरे द्वारा संलग्न स्केच ("arduino-isp.ino", रान्डेल बोहन से) का उपयोग करता हूं। मुझे पता है कि एक नया संस्करण है, लेकिन इस संस्करण के साथ पिछले पांच वर्षों में मुझे शून्य परेशानी हुई है, इसलिए मैं इसे रखता हूं। यह सिर्फ काम करता है। स्केच के हेडर में टिप्पणी का उपयोग करके आपको Arduino UNO पर पिनआउट मिलता है और KIM Uno (संलग्न देखें) के योजनाबद्ध का उपयोग करके आप KIM Uno पर 1x6 ISP हेडर का पिनआउट प्राप्त कर सकते हैं। वर्गाकार पिन, सात खंड डिस्प्ले के निकट पिन 1 (GND) है। निम्नलिखित पिन हैं (सही क्रम में): RESET, MOSI, MISO, SCK, VCC। आप VCC को 3V3 या 5V से कनेक्ट कर सकते हैं।

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

मेरे पास दो उपकरण हैं: पिन हेडर के बिना एक उत्पादन संस्करण और पिन हेडर के साथ एक विकास संस्करण जिसे मैं जुड़ा हुआ छोड़ देता हूं और विकास के दौरान इसे बार-बार उपयोग करता हूं। यह बहुत अधिक आरामदायक है।

चरण 10: समाप्त

ख़त्म होना
ख़त्म होना
ख़त्म होना
ख़त्म होना

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

KIM Uno मेमोरी लोकेशन 0x0a से शुरू होने वाले प्री-प्रोग्राम्ड फाइबोनैचि कंप्यूटेशन के साथ आता है। यह डिफ़ॉल्ट रूप से n = 6 पर सेट होता है, इसलिए इसका परिणाम 8 का मान होना चाहिए। गणना शुरू करने के लिए "गो" दबाएं।

चरण 11: पीसीबी डिजाइन विश्लेषण

पीसीबी डिजाइन विश्लेषण
पीसीबी डिजाइन विश्लेषण
पीसीबी डिजाइन विश्लेषण
पीसीबी डिजाइन विश्लेषण

इस परियोजना को पूरा करने के बाद मुझे कुछ ऐसे बिंदु मिले जो उल्लेखनीय हैं और जिन्हें बोर्ड के नए संशोधन में संबोधित किया जाना चाहिए:

  • ATMega328p की सिल्क स्क्रीन में सामान्य पायदान नहीं है जहां पहला पिन स्थित है। DIP-28 फुटप्रिंट में स्क्वायर पैड भी नहीं होता है जहां पहला पिन स्थित होता है। भ्रम को रोकने के लिए इसे निश्चित रूप से अधिक विस्तृत सिल्क्सस्क्रीन के साथ सुधारा जाना चाहिए
  • ISP हेडर में सिल्क स्क्रीन पर कोई कनेक्शन लेबल नहीं होता है। इससे यह पहचानना मुश्किल हो जाता है कि इसे ISP से कैसे जोड़ा जाए
  • आईएसपी हेडर को किसी भी भ्रम को रोकने के लिए मानक पिन लेआउट के साथ 2x6 पिन हेडर में बदला जा सकता है

उन बिंदुओं के अलावा मैं बहुत खुश हूं कि यह कैसे निकला और पहली कोशिश में काम किया।

चरण 12: SUBLEQ कैसे प्रोग्राम करें?

Image
Image
SUBLEQ कैसे प्रोग्राम करें?
SUBLEQ कैसे प्रोग्राम करें?
SUBLEQ कैसे प्रोग्राम करें?
SUBLEQ कैसे प्रोग्राम करें?

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

सबलेक निर्देश शून्य से कम या उसके बराबर होने पर घटाना और शाखा के लिए है। छद्म कोड में यह निम्न जैसा दिखता है:

सबलेक ए बी सी मेम [बी] = मेम [बी] - मेम [ए]; अगर (मेम [बी] <= 0) गोटो सी;

चूंकि KIM Uno 8-बिट मशीन का अनुकरण करता है, सभी तर्क A, B और C 8 बिट मान हैं और इसलिए यह 256 बाइट की कुल मुख्य मेमोरी को संबोधित कर सकता है। जाहिर है इसे ए, बी और सी मल्टी-बाइट मान बनाकर बढ़ाया जा सकता है। लेकिन अभी के लिए इसे सरल रखें।

KIM Uno में "पेरिफेरल" भी हैं: डिस्प्ले और कीबोर्ड। यह उन बाह्य उपकरणों को इंटरफ़ेस करने के लिए मेमोरी मैप्ड आर्किटेक्चर का उपयोग करता है, हालांकि मेमोरी मैप बहुत सरल है:

  • 0x00 = Z रजिस्टर (शून्य) और शून्य रखा जाना चाहिए।
  • 0x01 - 0x06 = छह बाइट्स जो प्रत्येक डिस्प्ले सेगमेंट (दाएं से बाएं) के मूल्य का प्रतिनिधित्व करते हैं। एक मान 0xf - अधिक विवरण के लिए स्रोत कोड (main.c) देखें।
  • 0x07, 0x08, 0x09 = तीन बाइट्स जहां प्रत्येक बाइट दो सात सेगमेंट डिस्प्ले (दाएं से बाएं) का प्रतिनिधित्व करता है। यह स्मृति स्थान परिणाम को दो निबल्स में विभाजित किए बिना केवल एक परिणाम प्रदर्शित करने की अनुमति देता है ताकि इसे एकल अंक स्मृति स्थानों 0x01 - 0x06 में रखा जा सके।
  • 0x0a+ = एक प्रोग्राम 0x0a से शुरू होता है। वर्तमान में "गो" कुंजी 0x0a निश्चित से निष्पादित होती है।

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

इस चरण से संलग्न आप फ़ाइल "फिबोनैकी.एस" और हस्तलिखित कार्यक्रम की एक छवि भी पा सकते हैं जो फाइबोनैचि का एक उदाहरण कार्यान्वयन है। लेकिन रुकिए: तीन निर्देशों का उपयोग किया जाता है - विशेष रूप से ADD, MOV और HLT - जो सबलेक नहीं हैं। "सौदा क्या है? क्या आपने नहीं कहा कि केवल एक ही निर्देश है, सबलेक?" आप पूछ रही हो? यह बहुत आसान है: सबलेक के साथ उन निर्देशों की बहुत आसानी से नकल कर सकते हैं:

MOV a, b - स्थान a से b पर डेटा की प्रतिलिपि बनाई जा सकती है:

  1. सबलेक बी, बी, 2 (अगला निर्देश)
  2. सबलेक ए, जेड, 3 (अगला निर्देश)
  3. सबलेक जेड, बी, 4 (अगला निर्देश)
  4. सबलेक जेड, जेड, उदा। 5 (अगला निर्देश)

सबलेक की घटाव सुविधा का उपयोग करना, जो मेम [बी] - मेम [ए] करता है और परिणाम के साथ मेम [बी] को ओवरराइट करता है, शून्य रजिस्टर का उपयोग करके मूल्य की प्रतिलिपि बनाई जाती है। और "subleq Z, Z, …" Z के मान की परवाह किए बिना, शून्य रजिस्टर को 0 पर रीसेट करता है।

ADD a, b - मान a + b जोड़ता है और योग को b में संग्रहीत करता है:

  1. सबलेक ए, जेड, 2 (अगला निर्देश)
  2. सबलेक जेड, बी, 3 (अगला निर्देश)
  3. सबलेक जेड, जेड, उदा। 4 (अगला निर्देश)

यह निर्देश केवल मेम [बी] - (- मेम [ए]) की गणना करता है जो मेम [बी] + मेम [ए] है जो घटाव सुविधा का उपयोग करके भी है।

HLT - CPU को रोकता है और निष्पादन को समाप्त करता है:

परिभाषा के अनुसार एमुलेटर जानता है कि यदि सीपीयू 0xff (या -1 गाए जाने पर) कूदता है तो सीपीयू समाप्त करना चाहता है। तो एक सरल

सबलेक जेड, जेड, -1

काम करता है और एम्यूलेटर को इंगित करता है कि उसे अनुकरण समाप्त करना चाहिए।

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

इस चरण के साथ संलग्न आप ज़िप संग्रह "kim_uno_tools.zip" भी पा सकते हैं। इसमें KIM Uno के लिए कुछ बुनियादी कोडांतरक और सिम्युलेटर शामिल हैं। वे NodeJS में लिखे गए हैं - सुनिश्चित करें कि आपने इसे स्थापित किया है।

कोडांतरण कार्यक्रम

यदि आप "फिबोनैकी/फिबोनैकी.एस" पर एक नज़र डालते हैं तो आप पाएंगे कि यह चर्चा किए गए फाइबोनैचि कार्यान्वयन के लिए स्रोत कोड है। इसे असेंबल करने और उसमें से एक प्रोग्राम बनाने के लिए, कि किम यूनो चल सके, आप निम्न कमांड दर्ज करें (निकाले गए "किम_यूनो_टूल्स.ज़िप" संग्रह की जड़ में):

नोड असेंबल.जेएस फाइबोनैचि/फिबोनैकी.एस

और यह या तो एक त्रुटि प्रिंट करेगा यदि आपने कोई गलती की है या परिणामी प्रोग्राम को बाहर कर दिया है। इसे सहेजने के लिए, आप आउटपुट को कॉपी कर सकते हैं और इसे एक फ़ाइल में सहेज सकते हैं या बस इस कमांड को चला सकते हैं:

नोड असेंबल.जेएस फाइबोनैचि/फिबोनैकी.एस > yourfile.h

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

नोड सिम.जेएस yourfile.h

और आपको सिम्युलेशन परिणाम और प्रदर्शन पर KIM Uno से अपेक्षित आउटपुट के साथ प्रस्तुत किया जाएगा।

यह इस उपकरण का एक बहुत ही संक्षिप्त परिचय था; मेरा सुझाव है कि आप उनके साथ खेलें और देखें कि वे कैसे काम करते हैं। इस तरह आप एक गहन ज्ञान प्राप्त करते हैं और सीपीयू, निर्देश, असेंबलर और एमुलेटर के पीछे के कामकाज के सिद्धांतों को सीखते हैं;-)

चरण 13: आउटलुक

आउटलुक
आउटलुक
आउटलुक
आउटलुक
आउटलुक
आउटलुक

बधाई हो

यदि आप इसे पढ़ते हैं तो आप शायद इस पूरे निर्देश को पढ़ चुके हैं और अपना खुद का KIM Uno बनाया है। यह वाकई अच्छा है।

लेकिन यात्रा यहीं समाप्त नहीं होती है - अनंत संख्या में विकल्प हैं कि आप KIM Uno को कैसे संशोधित कर सकते हैं और इसे अपनी आवश्यकताओं और पसंद के अनुसार अनुकूलित कर सकते हैं।

उदाहरण के लिए किम ऊनो एक "वास्तविक" रेट्रो सीपीयू एमुलेटर से लैस हो सकता है जो प्रसिद्ध एमओएस 6502 या इंटेल 8085, 8086 या 8088 का अनुकरण कर सकता है। फिर यह ओआईएससी के बारे में जानने से पहले मेरी प्रारंभिक दृष्टि का रास्ता तय करेगा।

लेकिन अन्य उपयोग भी संभव हैं, क्योंकि हार्डवेयर डिज़ाइन बहुत सामान्य है। किम ऊनो के रूप में इस्तेमाल किया जा सकता है …

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

मुझे आशा है कि आपको KIM Uno का अनुसरण करने में उतना ही मज़ा आया होगा जितना कि मैंने इसे डिजाइन और योजना बनाने में किया था। और यदि आप इसे बढ़ाते हैं या इसे संशोधित करते हैं - तो कृपया मुझे बताएं। चीयर्स!

पीसीबी प्रतियोगिता
पीसीबी प्रतियोगिता
पीसीबी प्रतियोगिता
पीसीबी प्रतियोगिता

पीसीबी प्रतियोगिता में उपविजेता

सिफारिश की: