- सामग्री की आवश्यकता:
- फ्लैश मेमोरी:
- ICSP (सर्किट सीरियल प्रोग्रामिंग में):
- सर्किट और हार्डवेयर:
- MPLAB IPE का उपयोग करके कोड को जलाना:
हमारे पिछले दो ट्यूटोरियल में हमने चर्चा की कि MPLABX और XC8 कंपाइलर का उपयोग करके PIC के साथ कैसे शुरुआत करें, हमने PIC के साथ अपना पहला एलईडी ब्लिंकिंग प्रोग्राम भी बनाया है और सिमुलेशन द्वारा इसे सत्यापित किया है। अब यह हमारे लिए हार्डवेयर पर अपना हाथ लाने का समय है। इस ट्यूटोरियल में हम PIC का उपयोग करके एलईडी को ब्लिंक करने के लिए एक परफेक्ट बोर्ड पर एक छोटा सर्किट बनाएंगे । हम अपने PIC माइक्रोकंट्रोलर को प्रोग्राम को डंप करेंगे और एलईडी ब्लिंकिंग को सत्यापित करेंगे। PIC MCU को प्रोग्राम करने के लिए हम MPLAB IPE का उपयोग करेंगे।
सामग्री की आवश्यकता:
जैसा कि हमारे पिछले ट्यूटोरियल में चर्चा की गई है, हमें निम्नलिखित सामग्रियों की आवश्यकता होगी:
- PicKit 3
- PIC16F877A आईसी
- 40 - पिन आईसी धारक
- परफ़ेक्ट बोर्ड
- 20 मेगाहर्ट्ज क्रिस्टल ओएससी
- महिला और पुरुष बर्गस्टिक पिंस
- 33pf कैपेसिटर - 2Nos, 100uf और 10uf कैप।
- 680 ओम, 10K और 560ohm रेसिस्टर
- किसी भी रंग का एलईडी
- 1Soldering किट
- आईसी 7805
- 12V एडाप्टर
क्या होता है जब हम "बर्न" एक माइक्रोकंट्रोलर !!
कोड को MCU में अपलोड करना और MCU के अंदर काम करना एक सामान्य बात है।
इसे समझने के लिए, हमारे कार्यक्रम पर एक नज़र डालते हैं
जैसा कि हम देख सकते हैं कि यह कोड सी-लैंग्वेज में लिखा गया है और इससे हमारे एमसीयू को कोई मतलब नहीं होगा। यह वह जगह है जहाँ हमारे संकलक का हिस्सा आता है; एक कंपाइलर वह है जो इस कोड को मशीन पठनीय रूप में परिवर्तित करता है। इस मशीन को पठनीय रूप में HEX कोड कहा जाता है , हमारे द्वारा बनाई गई प्रत्येक परियोजना में एक HEX कोड होगा जो निम्नलिखित निर्देशिका में होगा
** आपका स्थान ** \ Blink \ Blink.X \ dist \ default \ उत्पादन \ Blink.X.production.hex
यदि आपको यह जानने में दिलचस्पी है कि यह HEX कोड कैसा दिखता है, तो इसे नोटपैड का उपयोग करके खोलें। हमारे ब्लिंक प्रोग्राम के लिए, HEX कोड निम्नलिखित की तरह दिखेगा:
: 060000000A128A11FC2F18: 100FAA008316031386018312031386018312031324: 100FBA0086150D30F200AF30F100C130F000F00BB1: 100FCA00E42FF10BE42FF20BE42F0000831203133A: 100FDA0086110D30F200AF30F100C130F000F00B95: 100FEA00F42FF10BF42FF20BF42F0000DB2F830107: 060FFA000A128A11D52F36: 02400E007A3FF7: 00000001FF
इसे कैसे पढ़ा जाए और इसे कैसे वापस लें और इसे असेंबली लैंग्वेज में बदला जाए, इसके तरीके हैं, लेकिन यह पूरी तरह से इस ट्यूटोरियल के दायरे से बाहर है। तो, बस इसे संक्षेप में डालने के लिए; एचईएक्स हमारी कोडिंग का अंतिम सॉफ्टवेयर परिणाम है और एमसीयू को जलाने के लिए एमपीलैब आईपीई द्वारा इसे भेजा जाएगा।
फ्लैश मेमोरी:
हेक्स कोड एक जगह फ्लैश मेमोरी कहा जाता है में एमसीयू में संग्रहीत किया जाता है । फ्लैश मेमोरी वह जगह है जहां हमारे कार्यक्रम को एमसीयू के अंदर संग्रहीत किया जाएगा और वहां से निष्पादित किया जाएगा। एक बार जब हम अपने MPLABX में कार्यक्रम संकलित करते हैं, तो हमें आउटपुट कंसोल पर स्मृति के प्रकार के बारे में निम्नलिखित जानकारी मिली होगी
चूँकि हमने अभी एक छोटे से एलईडी ब्लिंकिंग प्रोग्राम को संकलित किया है, मेमोरी सारांश से पता चलता है कि हमने उपलब्ध प्रोग्राम स्पेस का केवल 0.5% और डेटा स्पेस का 1.4% खपत किया है।
PIC16F877 माइक्रोकंट्रोलर की मेमोरी मूल रूप से 3 प्रकारों में विभाजित है:
प्रोग्राम मेमोरी: इस मेमोरी में वह प्रोग्राम होता है (जिसे हमने लिखा था), उसके जलने के बाद। एक अनुस्मारक के रूप में, प्रोग्राम काउंटर प्रोग्राम मेमोरी में संग्रहीत कमांड निष्पादित करता है, एक के बाद एक। चूंकि हमने बहुत छोटा कार्यक्रम लिखा है, इसलिए हमने कुल अंतरिक्ष का केवल 0.5% ही खाया है। यह एक गैर-वाष्पशील मेमोरी है, इसका मतलब है कि संग्रहीत डेटा बिजली बंद होने के बाद खो नहीं जाएगा।
डेटा मेमोरी: यह रैम मेमोरी प्रकार है, जिसमें एसएफआर (स्पेशल फंक्शन रजिस्टर) जैसे एक विशेष रजिस्टर होता है जिसमें वॉचडॉग टाइमर, ब्राउन आउट रीसेट आदि और जीपीआर (सामान्य प्रयोजन रजिस्टर) जिसमें टीआरआईएस और पोर्ट आदि शामिल होते हैं जो चर संग्रहित होते हैं। प्रोग्राम के दौरान डेटा मेमोरी में हम MCU को बंद करने के बाद डिलीट हो जाते हैं। कार्यक्रम में घोषित कोई भी चर डेटा मेमोरी के अंदर होगा। यह भी एक अस्थिर मेमोरी है।
डेटा EEPROM (विद्युत रूप से मिटाए जाने योग्य प्रोग्राम-रीड-ओनली मेमोरी): एक मेमोरी जो लिखित प्रोग्राम को जलाने के परिणामस्वरूप चर को संग्रहीत करने की अनुमति देती है। उदाहरण के लिए, यदि हम इसमें 5 का मान बचाने के लिए एक चर "a" असाइन करते हैं और इसे EEPROM में संग्रहीत करते हैं, तो पावर बंद होने पर भी यह डेटा खो नहीं जाएगा। यह एक गैर-वाष्पशील मेमोरी है।
कार्यक्रम मेमोरी और EEPROM गैर-वाष्पशील यादें हैं, और फ्लैश मेमोरी या EEPROM के रूप में कहा जाता है ।
ICSP (सर्किट सीरियल प्रोग्रामिंग में):
हम अपने MC16 में उपलब्ध ICSP विकल्प का उपयोग करके हमारे PIC16F877A की प्रोग्रामिंग करेंगे।
अब, ICSP क्या है?
ICSP एक सरल तरीका है जो हमें अपने प्रोजेक्ट बोर्ड के अंदर रखे जाने के बाद भी MCU को प्रोग्राम करने में मदद करता है। MCU को प्रोग्राम करने के लिए एक अलग प्रोग्रामर बोर्ड की आवश्यकता नहीं है, हम सभी की आवश्यकता PicKit3 प्रोग्रामर से हमारे बोर्ड के 6 कनेक्शन है जो निम्नानुसार है:
1 |
VPP (या MCLRn) |
प्रोग्रामिंग मोड में प्रवेश करने के लिए। |
२ |
Vcc |
पावर पिन 11 या 32 |
३ |
GND |
ग्राउंड पिन 12 या 31 |
४ |
पीजीडी - डेटा |
RB7। पिन 40 |
५ |
पीजीसी - घड़ी |
RB6। पिन 39 |
६ |
PGM - LVP सक्षम करें |
आरबी 3 / आरबी 4। अनिवार्य नहीं |
ICSP सभी PIC पैकेज के लिए उपयुक्त है; हम सभी की जरूरत है एमसीयू से पिकेट 3 तक इन पांच पिन (6 वें पिन पीजीएम वैकल्पिक है) को नीचे चित्र में दिखाया गया है।
सर्किट और हार्डवेयर:
अब, हमारे पास अपना एचईएक्स कोड तैयार है और हम यह भी जानते हैं कि आईसीएसपी का उपयोग करके अपने PicKit 3 को हमारे PIC MCU से कैसे जोड़ा जाए। तो, चलो आगे बढ़ते हैं और नीचे योजनाबद्ध की मदद से सर्किट को मिलाते हैं:
उपरोक्त सर्किट में मैंने अपने PIC MCU में आउटपुट 5V को विनियमित करने के लिए 7805 का उपयोग किया है। यह नियामक 12V वॉल मार्ट एडॉप्टर द्वारा संचालित होगा । RED LED का उपयोग यह दर्शाने के लिए किया जाता है कि क्या PIC संचालित है। कनेक्टर J1 का उपयोग ICSP प्रोग्रामिंग के लिए किया जाता है। उपरोक्त तालिका में चर्चा के अनुसार पिन जुड़े हुए हैं।
पहले पिन MCLR को डिफ़ॉल्ट रूप से 10k की मदद से उच्च आयोजित किया जाना चाहिए। यह MCU को रीसेट करने से रोकेगा। MCU को रीसेट करने के लिए पिन MCLR को जमीन पर रखना होगा जो स्विच SW1 की मदद से किया जा सकता है।
एलईडी मूल्य 560 ओम के एक रोकनेवाला के माध्यम से पिन आरबी 3 से जुड़ा हुआ है (एलईडी प्रतिरोध कैलकुलेटर देखें)। यदि हमारे कार्यक्रम के अपलोड होने के बाद सब कुछ उचित है तो कार्यक्रम के आधार पर इस एलईडी को ब्लिंक करना चाहिए । संपूर्ण सर्किट को परबोर्ड पर बनाया गया है, इस पर सभी घटकों को मिलाते हुए जैसा कि आप शीर्ष पर छवि में देख सकते हैं।
MPLAB IPE का उपयोग करके कोड को जलाना:
कोड को जलाने के लिए, निम्न चरणों का पालन करें:
- MPLAB IPE लॉन्च करें।
- अपने पीसी के लिए अपने PicKit 3 के एक छोर को कनेक्ट करें और दूसरे बोर्ड को पूर्ण बोर्ड पर अपने ICSP पिन से जोड़ें।
- कनेक्ट बटन पर क्लिक करके अपने PIC डिवाइस से कनेक्ट करें।
- पलक HEX फ़ाइल के लिए ब्राउज़ करें और प्रोग्राम पर क्लिक करें।
यदि, सब कुछ योजना के अनुसार चलता है तो आपको स्क्रीन पर सफलता का संदेश मिलना चाहिए। पूर्ण प्रदर्शन के लिए नीचे दिए गए कोड और वीडियो की जांच करें और यदि आपको कोई संदेह है तो टिप्पणी अनुभाग का उपयोग करें।
धन्यवाद!!!
आइए मिलते हैं नेक्स्ट ट्यूटोरियल में जहां हम अधिक एलईडी और एक स्विच के साथ खेलेंगे।