यह उन विषयों में से एक है जिन पर अत्यधिक बहस हो सकती है। बहुत सारे अलग-अलग दृष्टिकोण हैं, और विभिन्न चीजें अलग-अलग लोगों के लिए महत्वपूर्ण हैं। मैं एक व्यापक जवाब देने की कोशिश करूंगा, लेकिन यह समझिए कि हमेशा कोई न कोई असहमत होगा। बस यह समझ लीजिए कि जो मुझसे असहमत हैं, वे गलत हैं। (मजाक कर रहा हूं।)
त्वरित सारांश:
यह उत्तर एक लंबा होने जा रहा है, इसलिए मुझे इसके बारे में संक्षेप में बताना चाहिए। अधिकांश लोगों के लिए ARM Cortex-M0 / M3 / M4 चिप्स की नवीनतम फसल सबसे अच्छा समाधान प्रदान करती है, जो लागत के लिए सबसे अच्छी सुविधा है। यह सच भी है जब इन 32-बिट MCUs की तुलना PIC और MSP430s जैसे 8 और 16 बिट पूर्वजों से की जाती है। M0 के यूएस $ 1 / से कम और M4 के लिए US $ 2 / से कम के लिए खरीदा जा सकता है, इसलिए बहुत ही संवेदनशील संवेदनशील अनुप्रयोगों को छोड़कर ARM समाधान बहुत अच्छे हैं। M0 की शक्ति बहुत कम है और अधिकांश लोगों के लिए पर्याप्त होनी चाहिए। जो लोग MSP430s के प्रति बहुत संवेदनशील हैं, वे अभी भी एक बेहतर विकल्प हो सकते हैं, लेकिन M0s इन अनुप्रयोगों के लिए भी विचार करने योग्य हैं।
यदि आप अधिक गहराई से विश्लेषण में रुचि रखते हैं, तो आगे पढ़ें, अन्यथा अब आप पढ़ना बंद कर सकते हैं।
अब मैं प्रत्येक क्षेत्र को देखूंगा और विभिन्न MCU की तुलना करूंगा:
निष्पादन की गति
बेशक 32-बिट MCU तेजी से होने जा रहे हैं। वे घड़ी की गति को तेज़ करते हैं, लेकिन उनमें से प्रत्येक घड़ी के लिए अधिक काम भी करते हैं। एआरएम कॉर्टेक्स-एम 4 जैसे एमसीयू में डीएसपी प्रसंस्करण निर्देश शामिल हैं, और यहां तक कि हार्डवेयर में फ्लोटिंग पॉइंट सपोर्ट हो सकता है। 8 और 16 बिट सीपीयू 32-बिट नंबरों पर काम कर सकते हैं, लेकिन यह ऐसा करने में कुशल नहीं है। ऐसा करने से सीपीयू रजिस्टर, सीपीयू क्लॉक साइकिल और प्रोग्राम मेमोरी के लिए फ्लैश मेमोरी जल्दी से खपत होगी।
विकास में आसानी
मेरी राय में, यह आधुनिक 32-बिट MCUs का उपयोग करने के लिए सबसे मूल्यवान कारण है - लेकिन सबसे अधिक प्रशंसा भी है। मुझे पहली बार 8-बिट PICs की तुलना करें। यह सबसे खराब मामला है, लेकिन मेरी बातों को समझाने के लिए यह सबसे अच्छा है।
मूल रूप से छोटे PIC की आवश्यकता होती है कि प्रोग्रामिंग असेंबली भाषा में की जाए। सच है, 8-बिट PICs के लिए भी C कंपाइलर उपलब्ध हैं लेकिन वे कंपाइलर्स या तो फ्री या अच्छे हैं। आपको ऐसा कंपाइलर नहीं मिल सकता जो अच्छा और मुफ्त दोनों हो। संकलक के मुक्त संस्करण में अपंग है कि इसका अनुकूलन "प्रो" संस्करण के रूप में अच्छा नहीं है। प्रो संस्करण लगभग US $ 1,000 है और केवल PIC चिप्स (8, 16, या 32 बिट चिप्स) के एक परिवार का समर्थन करता है। यदि आप एक से अधिक परिवार का उपयोग करना चाहते हैं तो आपको दूसरे यूएस $ 1,000 के लिए एक और कॉपी खरीदनी होगी। संकलक का "मानक" संस्करण एक मध्यम स्तर का अनुकूलन करता है और प्रत्येक चिप परिवार के लिए लगभग $ 500 का खर्च करता है। 8-बिट PICs आधुनिक मानकों से धीमी हैं और अच्छे अनुकूलन की आवश्यकता होती है।
तुलना करके, एआरएम एमसीयू के लिए कई अच्छे सी कंपाइलर हैं जो मुफ्त हैं। जब सीमाएं होती हैं, तो वे सीमाएँ आमतौर पर फ्लैश मेमोरी के अधिकतम आकार पर होती हैं जो समर्थित होती हैं। फ्रीस्केल कोडवर्ड टूल्स पर यह सीमा 128Kbytes है। यह इस मंच पर ज्यादातर लोगों के लिए बहुत कुछ है।
सी कंपाइलर का उपयोग करने का लाभ यह है कि आपको सीपीयू के मेमोरी मैप के निम्न-स्तरीय विवरणों से परेशान नहीं होना चाहिए। पीआईसी पर पेजिंग विशेष रूप से दर्दनाक है और यदि संभव हो तो सबसे अच्छा बचा जाता है। एक और लाभ यह है कि आपको 8-बिट MCU (या 16-बिट MCU पर 32 बिट संख्या) पर 16 और 32 बिट संख्याओं को सौंपने की गड़बड़ी से परेशान नहीं होना है। हालांकि यह असेंबली लैंग्वेज में करना ज्यादा मुश्किल नहीं है, लेकिन यह रियर में दर्द है और एरर प्रोन है।
अन्य गैर-एआरएम सी कंपाइलर हैं जो अच्छी तरह से काम करते हैं। MSP430 संकलक एक उचित काम करने लगता है। सरू PSoC उपकरण (विशेष रूप से PSoC1) छोटी गाड़ी हैं।
फ्लैट मेमोरी मॉडल
एक MCU जिसने RAM / रजिस्टरों / Flash को पृष्ठांकित किया है वह केवल बेवकूफ है। हाँ, मैं 8-बिट PICs के बारे में बात कर रहा हूँ। गूंगा, गूंगा, गूंगा। इसने मुझे PIC से इतना दूर कर दिया कि मैंने उनके नए सामान को देखने की जहमत नहीं उठाई। (अस्वीकरण: इसका मतलब है कि नए PIC में सुधार हो सकता है और मुझे अभी यह पता नहीं है।)
8-बिट MCU के साथ 256 बाइट्स से बड़े डेटा संरचनाओं तक पहुंचना मुश्किल (लेकिन असंभव नहीं) है। 16-बिट MCU के साथ जो 64 kbytes या kwords को बढ़ जाता है। 32-बिट MCUs के साथ जो 4 गीगाबाइट तक जाता है।
एक अच्छा सी कंपाइलर प्रोग्रामर (उर्फ यू) से बहुत कुछ छिपा सकता है, लेकिन फिर भी यह प्रोग्राम के आकार और निष्पादन की गति को प्रभावित करता है।
ऐसे कई MCU अनुप्रयोग हैं, जिनके लिए यह कोई समस्या नहीं होगी, लेकिन निश्चित रूप से कई अन्य हैं जिनके साथ यह समस्या होगी। यह ज्यादातर रैम या फ्लैश में आपको कितने डेटा (सरणियों और संरचनाओं) की आवश्यकता का एक मुद्दा है। बेशक, सीपीयू की गति बढ़ जाती है, इसलिए बड़ी डेटा संरचनाओं का उपयोग करने की संभावना बढ़ जाती है!
पैकेज का आकार
कुछ छोटे PIC और अन्य 8-बिट MCUs वास्तव में छोटे पैकेज में उपलब्ध हैं। 6 और 8 पिन! वर्तमान में सबसे छोटा ARM Cortex-M0 जो मुझे पता है कि QFN-28 में है। जबकि QFN-28 अधिकांश के लिए काफी छोटा है, यह सभी के लिए पर्याप्त छोटा नहीं है।
लागत
सबसे सस्ता PIC सबसे सस्ता ARM Cortex-M0 की कीमत का एक तिहाई है। लेकिन यह वास्तव में US $ 0.32 बनाम US $ 0.85 है। हां, कुछ के लिए यह कीमत अंतर मायने रखता है। लेकिन मेरा मानना है कि इस वेब साइट पर अधिकांश लोगों को लागत के उस छोटे अंतर के बारे में परवाह नहीं है।
इसी तरह, जब ARM Cortex-M0 / M3 / M4 के साथ अधिक सक्षम MCUs की तुलना आमतौर पर ARM Cortex "मोटे तौर पर भी" या शीर्ष पर आती है। जब अन्य चीजों में फैक्टरिंग (विकास में आसानी, संकलक लागत, आदि) तो एआरएम बहुत आकर्षक हैं।
दूसरा सारांश
मुझे लगता है कि असली सवाल यह है: आप एआरएम कॉर्टेक्स-एम0 / एम 3 / एम 4 का उपयोग क्यों नहीं करेंगे ? जब पूर्ण लागत सुपर महत्वपूर्ण है। जब सुपर कम बिजली की खपत महत्वपूर्ण है। जब सबसे छोटे पैकेज आकार की आवश्यकता होती है। जब गति महत्वपूर्ण नहीं है। लेकिन अधिकांश अनुप्रयोगों के लिए इनमें से कोई भी लागू नहीं होता है और एआरएम वर्तमान में सबसे अच्छा समाधान है।
कम लागत को देखते हुए, जब तक कि एआरएम कॉर्टेक्स का उपयोग न करने का एक अच्छा कारण है, तो यह एक का उपयोग करने के लिए समझ में आता है। यह अधिकांश अन्य MCU की तुलना में कम सिरदर्द और बड़े डिजाइन मार्जिन के साथ तेज और आसान विकास समय की अनुमति देगा।
अन्य गैर-एआरएम कॉर्टेक्स 32-बिट एमसीयू उपलब्ध हैं, लेकिन मुझे उनके लिए कोई लाभ नहीं दिखता है। एक मानक सीपीयू वास्तुकला के साथ जाने के कई फायदे हैं, जिसमें बेहतर विकास उपकरण, और प्रौद्योगिकी का तेजी से नवाचार शामिल है।
बेशक, चीजें बदल सकती हैं और कर सकती हैं। मैं जो कहता हूं वह आज मान्य है, लेकिन एक साल या अब से एक महीने में भी मान्य नहीं हो सकता है। अपना होमवर्क करो।