मायक्रो कंट्रोलरचे विश्व- प्रकरण १

काही महत्वाच्या संकल्पना

मायक्रो कंट्रोलर शिकण्यासाठी आणखी काही महत्वाच्या संकल्पनांची ओळख करून घ्यावी लागेल. या विभागात ती थोडक्यात करून दिली आहे.

मध्यवर्ती प्रक्रिया केंद्र (CPU)

CPU म्हणजे Central Processing Unit. संगणकीय परिभाषेत आपल्या संगणकाच्या मदरबोर्डवरचा मायक्रो प्रोसेसर म्हणजे खऱ्या अर्थाने CPU. मायक्रो कंट्रोलरच्या बाबतीत, विविध मेमरी व काही आजूबाजूच्या सोयी (peripherals) या त्याच चिपमधे सामावलेल्या असतात. त्याशिवाय ALU (Artihmetic Logic Unit) व CU (control Unit) या यंत्रणाही त्याच चिपमधे असतात. त्यामुळे जेव्हा CPU असा उल्लेख मायक्रो कंट्रोलरच्या बाबतीत केला जातो, तेव्हा त्याचा अर्थ मायक्रो कंट्रोलर चिप (या पुस्तकात ATMEGA8)असा केला जातो.

बाइट्स हाताळण्याची क्षमता

कोणताही CPU एका वेळी किती बाइट्स हाताळू शकतो ती क्षमता म्हणजे बाइट्स हाताळण्याची क्षमता. आपण ज्या AVR मालिकेचा अभ्यास करीत आहोत, त्या मालिकेतील सर्व CPU, एका वेळी एका बाइट (८ बिट्सची एक ओळ) मधे मावणाऱ्या संख्या हाताळू शकतात. याचा अर्थ असा की ० ते २५५ या दरम्यानच्या कोणत्याही संख्यांवर मायक्रो कंट्रोलर प्रक्रिया करू शकतो. या प्रक्रियांमधे बेरीज, वजाबाकी, गुणाकार, बिट-शिफ्टिंग व त्या शिवाय AND, OR, NOT, XOR अशा तार्किक प्रक्रिया (logical operations) करू शकतो. म्हणजे वरील सर्व क्रिया कोणत्याही दोन (० ते २५५ दरम्यानच्या) संख्यावर एकाच झटक्यात केल्या जातात. संख्या त्यापेक्षा जास्त मोठ्या असतील तर त्यासाठी प्रोग्राम लिहावे लागतात. या मालिकेतील मायक्रो कंट्रोलर थेट भागाकार करू शकत नाही हे वरील वर्णनावरून तुमच्या लक्षात आले असेल. भागाकार करण्यासाठी छोटे प्रोग्राम लिहावे लागतात. या मायक्रो कंट्रोलर मालिकेची ही मर्यादा आहे.

मायक्रो कंट्रोलरचे एक अत्यंत महत्वाचे वैशिष्ट्य म्हणजे सर्व प्रक्रिया बाइट्सवरच होतात असे नाही. स्वतंत्रपणे बिट्सही नियंत्रित करता येतात. उदाहरणार्थ, एखादाच LED, बझर किंवा रीले चालू किंवा बंद करण्यासाठी, तेवढी एकच पिन नियंत्रित करण्याची सूचना उपलब्ध असते. त्यासाठी अमुक बाइट मधली अमुक पिन अशी आडवाट वापरण्याची गरज नसते. मायक्रो प्रोसेसर आणि मायक्रो कंट्रोलर यामधील हा महत्वाचा फरक मानला जातो.

सूचनासंख्यांकः MIPS

एका सेकंदात किती दशलक्ष सूचना (Million Instructions Per Second) atmega8 चिप पाळते ती संख्या म्हणजे MIPS. कोणता क्रिस्टल घड्याळासाठी वापरला आहे या वर ही संख्या अवलंबून असते. कमाल 16MHz चा क्रिस्टल वापरला तर ही संख्या प्रतिसेकंद १६ दशलक्ष सूचनांपर्यंत जाते.

EEPROM

EEPROM म्हणजे Electrically Erasable Programmable Read Only Memory. जी मेमरी विद्युतशक्ती वापरून लिहिता येते व खोडताही येते अशी मेमरी म्हणजे EEPROM. एखादा प्रोग्राम कार्य करीत असताना माहिती (संख्या) या मेमरीत साठवता येते. ही माहिती चिपचा पॉवर सप्लाय काढून घेतल्यावरही तशीच रहाते, व नंतर पुढील वेळी प्रोग्राम पुन्हा कार्यान्वित झाला, की वापरता येते. प्रोग्राम मेमरी आणि EEPROEM यामधील महत्वाचा फरक म्हणजेः

प्रोग्राम मेमरीत एकदा प्रोग्राम भरला की मग ती मेमरी प्रोग्राम बदलण्याच्या वेळीच बदलता येते.
प्रोग्राम कार्य करीत असतानाही EEPROM भरता किंवा खोडता वा बदलता येते.

लेखन/खोडणे क्षमताः Write/Erase Cycles

एकाच चिपमधे किती वेळा प्रोग्राम भरता येतो त्याला त्या चिपमधील मेमरीची लेखन/खोडण्याची क्षमता असे म्हणतात. एका चिपमधे भरण्याच्या प्रोग्राममधे अनेक सुधारणा अनेकदा करणे आवश्यक ठरते. पहिला प्रोग्राम खोडून त्याच मेमरीत नव्याने प्रोग्राम भरण्याचे असे सुमारे १०,००० प्रयत्न करता येतात.
EEPROM प्रकारच्या मेमरीत माहिती साठवता येते व पूर्वी साठवलेली खोडताही येते. असे सुमारे १ लाख प्रयत्न करता येतात.

महत्वाच्या अंतर्गत सोयी

मायक्रो कंट्रोलर चिपच्या अंतर्गत फक्त ALU व CU इतकेच विभाग नसतात. त्या शिवाय पुढील सोयी त्याच चिपमधे उपलब्ध होतातः

टायमर/काउंटर

प्रोग्राम लिहून ठराविक काळ एखादी गोष्ट सूरू (किंवा बंद) ठेवणे हे शक्य असते. पण त्याऐवजी चिपमधील अंतर्गत टायमर-काउंटर वापरले तर कालमापनाचे काम टायमरद्वारे व प्रोग्राममध्ये लिहिलेली इतर कामे प्रोग्राम द्वारे एकाच वेळी चालू राहतात. हे एक स्वतंत्र व किचकट हार्डवेअर सर्किट मायक्रो कंट्रोलरचा अविभाज्य भाग आहे. वारंवार घडणारी बाह्य घटना काउंटर द्वारे मोजताही येते.

PWM चॅनेल्स

PWM म्हणजे Pulse Width Modulation. तुटक संख्यांचे (digital) रूपांतर सलग सिग्नलमध्ये (analog signal) करण्याचे काम ही चॅनेल्स करू शकतात. हे एक प्रकारचे Digital to Analog Conversion असते असे म्हणता येईल.

सलग ते तुटक रुपांतर : Analog to Digital Conversion

वास्तव जग हे डिजिटल नाही. त्यातून कंट्रोलरकडे येणारे बरेचसे सिग्नल हे सलग रूपात (analog) असतात. ही माहिती वापरून त्यावर डिजिटल प्रक्रिया करण्यासाठी प्रथम त्या सिग्नलचे रूपांतर संख्यांमधे करावे लागते. त्यासाठी Analog to Digital Conversion ची गरज असते. असे (सहा निरनिराळे सिग्नल घेऊन संख्येत रूपांतर) काम करणारी ६ चॅनेल्स एकाच ATMEGA8 या चिपमधे उपलब्ध आहेत.

Two Wire Interface

अनेक AVR मायक्रो कंट्रोलर (व रास्पबेरी पाय सारखे संगणकही) एकमेकांशी फक्त दोन वायर्स वापरून संवाद साधू शकतात. त्यासाठी TWI पद्धत वापरता येते. हल्ली प्रचलित असलेल्या IOT (Internet of Things) या तंत्रज्ञानासाठीची ही एक महत्वाची सोय आहे.

एकसर संवादः Serial Communication

एका मागून एक बिट्स दुसऱ्या संगणकाला किंवा मायक्रोकंट्रोलरला पाठवून अशा दोन(च) यंत्रणा एकमेकांशी संवाद साधू शकतात. ही सोय वापरून मायक्रो कंट्रोलर मधे काय चालले आहे हे पहाण्यासाठी तत्कालिन माहिती संख्यारूपात संगणकाच्या पडद्यावर पहाता येते. प्रोग्राम विकसित करताना ही सोय फार महत्वाची ठरते. सुमारे १ मिटर ते २० मिटर अंतर दोन यंत्रणांमधे असले तरी असा संवाद घडू शकतो.

SPI -Serial Peripheral Interface

एकाच वेळी दोन कंट्रोलर जवळच्या अंतरावर एकमेकांशी वेगवान संवाद या पद्धतीने साधू शकतात.

वॉचडॉग टायमर

संगणक हँग होतो हे अनेकांना माहिती असते. मायक्रो कंट्रोलरसुद्धा बाहेरून येणाऱ्या नॉइजमुळे हँग होऊ शकतो. अशा वेळी त्याला त्या दुष्टचक्रातून बाहेर काढण्यासाठी वॉचडॉग टायमर वापरला जातो.

अॅनालॉग कंपॅरेटर Analog Comparator

बाहेरून येणाऱ्या सलग (analog) सिग्नलची तुलना ठराविक व्होल्टेजशी केल्याने येणारा परिणामी सिग्नल HIGH किंवा LOW या रूपात आणता येतो. त्यासाठी अॅनालॉग कंपॅरेटरचा वापर केला जातो.

अशा अनेक सोयी मायक्रो कंट्रोलर ATMEGA8 मधे उपलब्ध आहेत. बॅटरी व्होल्टेज कमी झाल्यास कंट्रोलरचे आपोआप झोपी जाणे, क्रिस्टल विना अंतर्गत घड्याळ वापरून कालमापन व नियंत्रण करणे, चालू असलेला प्रोग्राम तात्पुरता तहकूब करून आणीबाणीच्या वेळी महत्वाच्या कामांना प्राधान्य देणे (Interrupt signals) अशाही सोयी ATMEGA8 हा मायक्रो कंट्रोलर आपल्याला उपलब्ध करून देतो. या पुस्तकातील पुढील प्रकरणांत त्यांची चर्चा होईलच.