- सामग्री की आवश्यकता
- सर्किट आरेख
- STM32 विकास बोर्ड में मेपल बूट लोडर अपलोड करना
- Arduino IDE तैयार करना और ड्राइवरों को स्थापित करना
- प्रोग्रामिंग एसटीएम 32 (ब्लू पिल) सीधे यूएसबी पोर्ट के माध्यम से
STM32 विकास बोर्ड आवास STM32F103C8 Microcontroller अपने एआरएम कॉर्टेक्स एम 3 वास्तुकला के लिए तेजी से लोकप्रिय धन्यवाद हो रही है, यह उच्च परिचालन की गति और अधिक परिधीय विकल्प है। इसके अलावा, इस बोर्ड को आसानी से Arduino IDE का उपयोग करके क्रमादेशित किया जा सकता है क्योंकि यह त्वरित रूप से प्रोटोटाइप के लिए कई शौकीनों और इंजीनियरों के लिए एक बेहतर विकल्प बन गया है।
हमारे पिछले ट्यूटोरियल में हमने STM32 डेवलपमेंट बोर्ड की मूल बातें सीखीं और एक एलईडी ब्लिंक करने के लिए इसे प्रोग्राम किया। लेकिन इसके साथ एक बड़ी खामी थी। बोर्ड को प्रोग्राम करने के लिए हमने एक FTDI प्रोग्रामर मॉड्यूल का उपयोग किया और एक कोड अपलोड और परीक्षण करते समय बूट 0 जम्पर के बीच और 1 स्थिति में टॉगल करना था, जो निश्चित रूप से एक चुनौतीपूर्ण काम है। इसके अलावा विकास बोर्ड पर मिनी-यूएसबी पोर्ट पूरी तरह से अप्रयुक्त छोड़ दिया गया था। ऐसा करने का कारण यह है कि जब STM32 डेवलपमेंट बोर्ड खरीदा जाता है तो यह Arduino रेडी बूट लोडर के साथ नहीं आता है और इसलिए USB के माध्यम से कनेक्ट होने पर बोर्ड आपके कंप्यूटर द्वारा खोजा नहीं जाएगा।
उम्मीद है कि हालांकि, मेपल मिनी बोर्डों के लिए लीफलैब्स द्वारा विकसित एक प्रयोगात्मक बूट लोडर मौजूद है । इस बूट लोडर को एक बार STM32 में फ्लैश किया जा सकता है और इसके बाद हम किसी अन्य Arduino बोर्ड की तरह ही प्रोग्राम अपलोड करने के लिए सीधे STM32 बोर्ड के USB पोर्ट का उपयोग कर सकते हैं। हालाँकि यह बूट लोडर अभी भी इस ट्यूटोरियल के दस्तावेजीकरण के समय विकासात्मक अवस्था में है और महत्वपूर्ण अनुप्रयोगों के लिए उचित नहीं है। इस ट्यूटोरियल के साथ कार्यवाही करने से पहले सुनिश्चित करें कि आपने इस ट्यूटोरियल की विशिष्टताओं और पिन-आउट सहित विवरणों को समझने के लिए पिछले ट्यूटोरियल को पढ़ा है।
सामग्री की आवश्यकता
- STM32 - (ब्लूपिल) विकास बोर्ड (STM32F103C8)
- FTDI प्रोग्रामर
- ब्रेड बोर्ड
- तारों को जोड़ना
- इंटरनेट के साथ लैपटॉप
सर्किट आरेख
USB पोर्ट के माध्यम से सीधे STM32 ब्लू पिल बोर्ड को प्रोग्राम करने के लिए हमें पहले MCU में मेपल बूट लोडर को फ्लैश करना होगा। ऐसा करने के लिए हमें एक सीरियल FTDI बोर्ड का उपयोग करने की आवश्यकता है। यह बोर्ड STM32 के Rx और Tx पिन से जुड़ा है जैसा कि नीचे दिखाया गया है।
FTDI बोर्ड का Vcc पिन बोर्ड के STM32 5V पिन से जुड़ा है। ग्राउंड एसटीएम 32 के ग्राउंड से जुड़ा हुआ है। FTDI बोर्ड का Rx और Tx पिन क्रमशः ST932 के A9 और A10 पिन से जुड़ा है। जहां A9 STM32 MCU का Tx पिन है और A10 Rx पिन है।
सुनिश्चित करें कि बूट लोडर अपलोड करते समय बोर्ड पर बूट 0 जम्पर पिन 1 (प्रोग्रामिंग मोड) पर सेट है। एक बार बूट लोडर फ्लैश हो जाने के बाद इस पिन को प्रारंभिक स्थिति (ऑपरेटिंग मोड) में वापस बदला जा सकता है।
STM32 विकास बोर्ड में मेपल बूट लोडर अपलोड करना
एक बार जब हमने उपरोक्त कनेक्शन को अपने कंप्यूटर से FTDI बोर्ड कनेक्ट किया और एसटीएमएम 32 में बूट लोडर को फ्लैश करने के लिए चरणों का पालन किया।
चरण 1: हमें बूट लोडर प्रोग्राम फ़ाइल बायनेरिज़ (बिन फ़ाइल) को जीथूब पेज बनाना है। बिन फ़ाइल के कई संस्करण हैं, ब्लू पिल बोर्ड के लिए इस गिट लिंक का उपयोग करें और बिन फ़ाइल डाउनलोड करने के लिए डाउनलोड बटन पर क्लिक करें।
चरण 2: आगे हमें डाउनलोड की गई बिन फ़ाइल को एसटीएम 32 में फ्लैश करने के लिए एसटीएम फ्लैश लोडर सॉफ्टवेयर डाउनलोड और इंस्टॉल करना होगा। ST वेबसाइट में जाने के लिए इस लिंक पर क्लिक करें और नीचे की ओर स्क्रॉल करें और सॉफ्टवेयर प्राप्त करें पर क्लिक करें
चरण 3: सॉफ्टवेयर डाउनलोड करने के लिए आपको अपना ई-मेल पता दर्ज करना होगा और डाउनलोड लिंक आपके ई-मेल पर भेजा जाएगा। फिर वेबसाइट पर लिंक का पालन करें और फिर से सॉफ्टवेयर प्राप्त करें पर क्लिक करें और आप डाउनलोड करना शुरू कर देंगे। हां यह थोड़ा निराश करने वाला है लेकिन यह इस तरह से होना चाहिए। ई-मेल के लिए अपने स्पैम फ़ोल्डर की जांच करना न भूलें, कभी-कभी ई-मेल आने में कुछ मिनट लगते हैं।
चरण 4: एक बार सॉफ़्टवेयर इंस्टॉल करने के बाद, सुनिश्चित करें कि आपका STM32 बोर्ड आपके कंप्यूटर से कनेक्ट है, हालांकि FTDI बोर्ड और फिर सॉफ़्टवेयर लॉन्च करें। यदि डिवाइस प्रबंधक का उपयोग नहीं करता है तो सॉफ़्टवेयर स्वचालित रूप से COM पोर्ट का पता लगाएगा और सुनिश्चित करेगा कि आप सही COM पोर्ट नंबर का चयन करें। मेरे मामले में यह COM4 है। शेष सेटिंग को छोड़ दें जैसा कि नीचे दिखाया गया है।
चरण 5: दो बार नेक्स्ट बटन पर क्लिक करें और सॉफ्टवेयर फिर से नीचे दिए गए अनुसार बोर्ड विवरण और डिस्प्ले का स्वतः पता लगा लेगा। जिस बोर्ड का हम उपयोग कर रहे हैं वह STM32F1 है जिसमें 128K फ्लैश मेमोरी है।
चरण 6: अगले चरण में, डिवाइस पर डाउनलोड करें का चयन करें और उस स्थान पर ब्राउज़ करें जहां हमने चरण 1 में अपनी बिन फ़ाइल डाउनलोड की है और इसे चुनें। नेक्स्ट पर क्लिक करें।
चरण 7: सॉफ्टवेयर नीचे दिखाए गए अनुसार कुछ आवश्यक फ़ाइलों को डाउनलोड करेगा और फिर चमकती की प्रक्रिया शुरू करेगा।
चरण 8: एक बार चमकती सफलतापूर्वक पूरा हो जाने के बाद, हम नीचे की स्क्रीन प्राप्त करेंगे। एप्लिकेशन को बंद करें और बाहर निकलें पर क्लिक करें। हमने Arduino बूट लोडर के साथ STM32 बोर्ड को सफलतापूर्वक फ्लैश किया है। अब हमें Arduino IDE तैयार करना होगा और STM32 बोर्ड को प्रोग्राम करने से पहले ड्राइवरों को इंस्टॉल करना होगा।
Arduino IDE तैयार करना और ड्राइवरों को स्थापित करना
STM 32 डेवलपमेंट बोर्ड के साथ उपयोग किए जाने वाले Arduino IDE को डाउनलोड करने और तैयार करने के लिए नीचे दिए गए चरणों का पालन करें।
चरण 1: - यदि आपने अभी तक Arduino IDE स्थापित नहीं किया है, तो इस लिंक से डाउनलोड और इंस्टॉल करें। सुनिश्चित करें कि आप अपने सही ऑपरेटिंग सिस्टम का चयन करें।
चरण 2: - Arduino IDE इंस्टॉल करने के बाद STM32 बोर्ड के लिए आवश्यक संकुल को खोलें और डाउनलोड करें। यह File -> Preferences का चयन करके किया जा सकता है ।
चरण 3: - प्राथमिकताएं पर क्लिक करने से नीचे दिखाए गए संवाद बॉक्स खुल जाएगा। अतिरिक्त बोर्डों प्रबंधक URL टेक्स्ट बॉक्स में नीचे दिए गए लिंक को पेस्ट करें
dan.drown.org/stm32duino/package_STM32duino_index.json
और ओके दबाएं।
चरण 4: - अब टूल -> बोर्ड -> बोर्ड मैनेजर पर जाएं । यह बोर्ड मैनेजर डायलॉग बॉक्स खोलेगा, "STM32F1" के लिए खोजें और जो पैकेज दिखाई दे, उसे इंस्टॉल करें।
चरण 5: पैकेज स्थापित होने के बाद, C: \ Program Files (x86) Arduino \ हार्डवेयर \ Arduino_STM32-master \ driver \ जीत पर जाएँ जहाँ आपको install_drivers.bat और install_STM -COM_drivers.bat मिलेगा ।
चरण 6: दोनों बैट फ़ाइलों पर क्लिक करें और ड्राइवरों को स्थापित करें। आपको नीचे दिखाए गए अनुसार DOS स्क्रीन मिलेगी।
अब Arduino IDE STM32 (ब्लू पिल) डेवलपमेंट बोर्ड की प्रोग्रामिंग के लिए तैयार किया गया है और ड्राइवर भी स्थापित किए गए हैं।
प्रोग्रामिंग एसटीएम 32 (ब्लू पिल) सीधे यूएसबी पोर्ट के माध्यम से
एफटीडीआई बोर्ड और सभी मौजूदा कनेक्शनों को आप एसटीएम 32 से हटा दें। इसे नीचे दिखाए अनुसार कंप्यूटर से कनेक्ट करने के लिए STM32 बोर्ड पर माइक्रो-यूएसबी पोर्ट का उपयोग करें। सुनिश्चित करें कि जम्पर 0 पिन 0 (ऑपरेटिंग मोड) पर वापस स्थित है । इसके बाद हमें कार्यक्रमों को अपलोड करने और चलाने के लिए जम्पर को टॉगल करने की आवश्यकता नहीं है।
आप कंप्यूटर को अब बोर्ड की खोज करने में सक्षम होना चाहिए। यदि आपको कोई अतिरिक्त ड्राइवर स्थापित हो रहा है, तो थोड़ी देर प्रतीक्षा करें। इसके बाद डिवाइस मैनेजर में जाएं और देखें कि आपके STM32 बोर्ड को COM और पोर्ट सेक्शन के तहत खोजा गया है जैसा कि नीचे दिखाया गया है। मेरा COM8 से मेपल मिनी नाम से जुड़ा हुआ है।
नीचे दिखाए गए अनुसार जेनेरिक STM32F103C श्रृंखला को खोजने के लिए टूल पर जाएं और स्क्रॉल करें। फिर सुनिश्चित करें कि संस्करण 64k फ्लैश प्रकार है , सीपीयू की गति 72MHz है और अपलोड विधि को STM32duino बूटलोडर में बदल दें । अपने डिवाइस मैनेजर पर एक के अनुसार सही COM पोर्ट का चयन करें।
सभी परिवर्तन किए जाने के बाद, Arduino IDE के निचले दाएं कोने की जांच करें और आपको निम्न सेटिंग सेट होने की सूचना देनी चाहिए। मेरा STM32 बोर्ड COM8 से जुड़ा है, लेकिन आपका अलग हो सकता है
अब Arduino IDE STM 32 ब्लू पिल डेवलपमेंट बोर्ड्स को प्रोग्राम करने के लिए तैयार है। हमें यह सुनिश्चित करने के लिए कि सब कुछ ठीक से काम कर रहा है, Arduino IDE से STM32 ब्लू पिल बोर्ड में सैंपल ब्लिंक प्रोग्राम अपलोड करें। उदाहरण कार्यक्रम में पाया जा सकता है
खुलने वाले उदाहरण कार्यक्रम में, हमें एक छोटा सा बदलाव करना होगा । डिफ़ॉल्ट रूप से प्रोग्राम PB1 के लिए लिखा जाएगा, लेकिन हमारे बोर्ड पर ऑन-बोर्ड LED PC13 से जुड़ा है, इसलिए सभी PB1 को PC13 से बदल दें और हम आगे बढ़ना अच्छा है। पूर्ण उदाहरण कार्यक्रम जो संशोधित किया गया है भी इस पृष्ठ के तल पर पाया जा सकता है।
अकेले लूप फंक्शन के अंदर का कोड नीचे दिखाया गया है, जहाँ हम देख सकते हैं कि 1000 मिलीसेकंड के लिए PC13 पिन को हाई (ऑन) रखा गया है और फिर एक और 1000 मिलीसेकंड के लिए LOW (ऑफ) किया गया है और यह अनंत समय से किया जाता है। पाश समारोह। इस प्रकार एलईडी 1000 मिलीसेकंड के अंतराल के साथ निमिष प्रतीत होता है।
digitalWrite (PC13, HIGH); // एलईडी चालू करें (उच्च वोल्टेज स्तर है) देरी (1000); // एक दूसरे digitalWrite (PC13, LOW) की प्रतीक्षा करें ; // वोल्टेज को कम विलंब (1000) बनाकर एलईडी बंद करें; // एक सेकंड के लिए प्रतीक्षा करें
Arduino IDE पर अपलोड बटन दबाएं और आपके प्रोग्राम को संकलित और अपलोड किया जाना चाहिए। यदि सब कुछ उम्मीद के मुताबिक काम किया है, तो आपको अपने Arduino IDE कंसोल पर निम्न देखना चाहिए।
यदि प्रोग्राम सफलतापूर्वक अपलोड किया गया है, तो आपको 1 सेकंड के अंतराल पर ग्रीन एलईडी ब्लिंकिंग देखना चाहिए जैसा कि नीचे दिए गए वीडियो में दिखाया गया है । आप विलंब को बढ़ाने या कम करने के लिए कार्यक्रम के साथ चारों ओर बेला कर सकते हैं। अब आप किसी भी अन्य Arduino बोर्डों की तरह STM32 (ब्लू पिल) डेवलपमेंट बोर्ड का उपयोग शुरू कर सकते हैं, जो कि अब आपको प्रोग्रामर्स को अपलोड करने और परीक्षण करने के लिए जंपर्स की स्थिति बदलने या बाहरी हार्डवेयर का उपयोग करने की आवश्यकता नहीं है।
आशा है कि आप ट्यूटोरियल को समझ गए हैं और एसटीएम 32 बोर्ड के साथ आरंभ करना उपयोगी पाया । यदि आपको कोई समस्या है, तो उन्हें टिप्पणी अनुभाग में छोड़ दें, मुझे यह भी बताएं कि हमें भविष्य में इस एसटीएम 32 बोर्ड के साथ क्या परियोजनाएँ आज़माना चाहिए।