सामग्री लपवा

एटमेल

Atmel 8-बिट AVR मायक्रोकंट्रोलर 2/4/8K बाइट इन-सिस्टम प्रोग्रामेबल फ्लॅशसहचिप

 

वैशिष्ट्ये

  • उच्च कार्यप्रदर्शन, कमी पॉवर AVR® 8-बिट मायक्रोकंट्रोलर
  • प्रगत RISC आर्किटेक्चर
  • 120 शक्तिशाली सूचना – सर्वाधिक एकल घड्याळ सायकल अंमलबजावणी
  • 32 x 8 सामान्य उद्देश कार्यरत नोंदणी
  • पूर्णपणे स्थिर ऑपरेशन
  • नॉन-अस्थिर कार्यक्रम आणि डेटा मेमरी
  • इन-सिस्टम प्रोग्राम करण्यायोग्य प्रोग्राम मेमरी फ्लॅशचे 2/4/8K बाइट्स
  • सहनशक्ती: 10,000 सायकल लिहा/मिटवा
  • 128/256/512 बाइट्स इन-सिस्टम प्रोग्राम करण्यायोग्य EEPROM
  • सहनशक्ती: 100,000 सायकल लिहा/मिटवा
  • 128/256/512 बाइट्स अंतर्गत SRAM
  • सेल्फ-प्रोग्रामिंग फ्लॅश प्रोग्राम आणि EEPROM डेटा सुरक्षिततेसाठी प्रोग्रामिंग लॉक

परिधीय वैशिष्ट्ये

  • प्रीस्केलर आणि दोन PWM चॅनेलसह 8-बिट टाइमर/काउंटर
  • 8-बिट हाय स्पीड टाइमर/विभक्त प्रीस्केलरसह काउंटर
  • 2 उच्च वारंवारता PWM आउटपुट विभक्त आउटपुट तुलना रजिस्टरसह
  • प्रोग्राम करण्यायोग्य डेड टाइम जनरेटर
  • USI - स्टार्ट कंडिशन डिटेक्टरसह युनिव्हर्सल सीरियल इंटरफेस
  • 10-बिट एडीसी

4 सिंगल एंडेड चॅनेल

प्रोग्रामेबल गेन (2x, 1x) सह 20 भिन्न एडीसी चॅनल जोडी

तापमान मोजमाप

स्वतंत्र ऑन-चिप ऑसिलेटरसह प्रोग्राम करण्यायोग्य वॉचडॉग टाइमर

ऑन-चिप अॅनालॉग तुलनाकर्ता

विशेष मायक्रोकंट्रोलर वैशिष्ट्ये

debugWIRE ऑन-चिप डीबग सिस्टम

SPI पोर्टद्वारे इन-सिस्टम प्रोग्राम करण्यायोग्य

बाह्य आणि अंतर्गत व्यत्यय स्रोत

कमी उर्जा निष्क्रिय, ADC आवाज कमी करणे आणि पॉवर-डाउन मोड

वर्धित पॉवर-ऑन रीसेट सर्किट

प्रोग्राम करण्यायोग्य ब्राऊन-आउट डिटेक्शन सर्किट

अंतर्गत कॅलिब्रेटेड ऑसिलेटर

I/O आणि पॅकेजेस

सहा प्रोग्राम करण्यायोग्य I/O लाईन्स

8-पिन PDIP, 8-पिन SOIC, 20-पॅड QFN/MLF, आणि 8-पिन TSSOP (केवळ ATtiny45/V)

संचालन खंडtage
ATtiny1.8V/5.5V/25V साठी 45 – 85V
– ATtiny2.7/5.5/25 साठी 45 – 85V

स्पीड ग्रेड
– ATtiny25V/45V/85V: 0 – 4 MHz @ 1.8 – 5.5V, 0 – 10 MHz @ 2.7 – 5.5V
– ATtiny25/45/85: 0 – 10 MHz @ 2.7 – 5.5V, 0 – 20 MHz @ 4.5 – 5.5V

औद्योगिक तापमान श्रेणी

कमी उर्जा वापर

सक्रिय मोड:

1 MHz, 1.8V: 300 µA

पॉवर-डाउन मोड:

पिन कॉन्फिगरेशन

पिनआउट ATtiny25/45/85 कॉन्फिगरेशन

वर्णन पिन करा

VCC: पुरवठा खंडtage.
GND: ग्राउंड.
पोर्ट B (PB5:PB0): पोर्ट B हे अंतर्गत पुल-अप प्रतिरोधकांसह (प्रत्येक बिटसाठी निवडलेले) 6-बिट द्वि-दिशात्मक I/O पोर्ट आहे. पोर्ट बी आउटपुट बफरमध्ये उच्च सिंक आणि स्त्रोत क्षमता दोन्हीसह सममितीय ड्राइव्ह वैशिष्ट्ये आहेत. इनपुट म्हणून, पोर्ट बी पिन जे बाहेरून कमी खेचले जातात, जर पुल-अप रेझिस्टर सक्रिय केले गेले तर ते विद्युत् प्रवाह प्राप्त करतील. जेव्हा घड्याळ चालू नसले तरीही रीसेट स्थिती सक्रिय होते तेव्हा पोर्ट बी पिन ट्राय-स्टेड असतात.

पोर्ट बी सूचीबद्ध केल्यानुसार ATtiny25/45/85 च्या विविध विशेष वैशिष्ट्यांचे कार्य देखील करते
ATtiny25 वर, प्रोग्रामेबल I/O पोर्ट PB3 आणि PB4 (पिन 2 आणि 3) ATtiny15 सह बॅकवर्ड कंपॅटिबिलिटीला समर्थन देण्यासाठी ATtiny15 कंपॅटिबिलिटी मोडमध्ये एक्सचेंज केले जातात.

रीसेट: इनपुट रीसेट करा. किमान पल्स लांबीपेक्षा जास्त काळ या पिनवर कमी पातळी रिसेट तयार करेल, जरी घड्याळ चालू नसेल आणि रीसेट पिन अक्षम केला गेला नसला तरीही. किमान नाडीची लांबी दिली आहे तक्ता 21-4 पृष्ठ 165 वर. लहान कडधान्ये रिसेट तयार करण्याची हमी देत ​​​​नाहीत.

रीसेट पिन (कमकुवत) I/O पिन म्हणून देखील वापरला जाऊ शकतो.

ओव्हरview

ATtiny25/45/85 हे AVR वर्धित RISC आर्किटेक्चरवर आधारित लो-पॉवर CMOS 8-बिट मायक्रोकंट्रोलर आहे. एकाच घड्याळाच्या चक्रात शक्तिशाली सूचना कार्यान्वित करून, ATtiny25/45/85 1 MIPS प्रति MHz पर्यंत पोहोचणारे थ्रूपुट प्राप्त करते ज्यामुळे सिस्टम डिझायनरला प्रक्रिया गती विरुद्ध उर्जा वापर ऑप्टिमाइझ करण्याची परवानगी मिळते.

ब्लॉक डायग्राम ब्लॉक आकृती

AVR कोर 32 सामान्य उद्देश कार्यरत रजिस्टर्ससह समृद्ध सूचना संच एकत्र करतो. सर्व 32 रजिस्टर्स थेट अंकगणित लॉजिक युनिट (ALU) शी जोडलेले आहेत, जे एका घड्याळाच्या चक्रात अंमलात आणलेल्या एकाच सूचनेमध्ये दोन स्वतंत्र रजिस्टर्समध्ये प्रवेश करू शकतात. परिणामी आर्किटेक्चर पारंपारिक CISC मायक्रोकंट्रोलरपेक्षा दहापट जलद थ्रूपुट प्राप्त करताना अधिक कोड कार्यक्षम आहे.

ATtiny25/45/85 खालील वैशिष्ट्ये प्रदान करते: इन-सिस्टम प्रोग्रामेबल फ्लॅशचे 2/4/8K बाइट्स, 128/256/512 बाइट्स EEPROM, 128/256/256 बाइट्स SRAM, 6 सामान्य उद्देश I/O लाइन्स, 32 सामान्य उद्देश कार्यरत नोंदणी, एक 8-बिट टाइमर/काउंटर तुलना मोडसह, एक 8-बिट हायस्पीड टाइमर/काउंटर, युनिव्हर्सल सिरीयल इंटरफेस, अंतर्गत आणि बाह्य व्यत्यय, एक 4-चॅनेल, 10-बिट एडीसी, अंतर्गत प्रोग्राम करण्यायोग्य वॉचडॉग टाइमर ऑसिलेटर, आणि तीन सॉफ्टवेअर निवडण्यायोग्य पॉवर सेव्हिंग मोड. निष्क्रिय मोड SRAM, टायमर/काउंटर, ADC, अॅनालॉग कंपॅरेटर आणि इंटरप्ट सिस्टमला कार्य चालू ठेवण्याची परवानगी देताना CPU थांबवतो. पॉवर-डाउन मोड पुढील व्यत्यय किंवा हार्डवेअर रीसेट होईपर्यंत सर्व चिप फंक्शन्स अक्षम करून, रजिस्टर सामग्री वाचवतो. ADC नॉइज रिडक्शन मोड CPU आणि ADC वगळता सर्व I/O मॉड्यूल्स थांबवतो, ADC रूपांतरण दरम्यान स्विचिंग आवाज कमी करण्यासाठी.

Atmel च्या उच्च घनता नॉन-व्होलॅटाइल मेमरी तंत्रज्ञानाचा वापर करून हे उपकरण तयार केले आहे. ऑन-चिप ISP फ्लॅश प्रोग्राम मेमरीला SPI सिरीयल इंटरफेसद्वारे, पारंपरिक नॉन-अस्थिर मेमरी प्रोग्रामरद्वारे किंवा AVR कोअरवर चालणाऱ्या ऑन-चिप बूट कोडद्वारे इन-सिस्टीममध्ये पुन्हा प्रोग्राम करण्याची परवानगी देतो.

ATtiny25/45/85 AVR ला प्रोग्राम आणि सिस्टम डेव्हलपमेंट टूल्सच्या संपूर्ण संचसह समर्थित आहे: C-कंपिलर्स, मॅक्रो असेंबलर्स, प्रोग्राम डीबगर/सिम्युलेटर आणि मूल्यांकन किट.

संसाधनांबद्दल

डेव्हलपमेंट टूल्स, अॅप्लिकेशन नोट्स आणि डेटाशीट्सचा एक सर्वसमावेशक संच डाउनलोड करण्यासाठी उपलब्ध आहे http://www.atmel.com/avr.

कोड उदाampलेस

या दस्तऐवजीकरणात साधा कोड उदाamples जे डिव्हाइसचे विविध भाग कसे वापरायचे ते थोडक्यात दाखवतात. हे कोड उदाamples असे गृहीत धरते की भाग विशिष्ट शीर्षलेख file संकलनापूर्वी समाविष्ट आहे. लक्षात ठेवा की सर्व C कंपाइलर विक्रेते हेडरमध्ये बिट व्याख्या समाविष्ट करत नाहीत files आणि C मधील व्यत्यय हाताळणी कंपाइलरवर अवलंबून आहे. अधिक तपशिलांसाठी कृपया C कंपाइलर दस्तऐवजीकरणासह पुष्टी करा.

विस्तारित I/O नकाशामध्ये असलेल्या I/O नोंदणींसाठी, “IN”, “OUT”, “SBIS”, “SBIC”, “CBI”, आणि “SBI” सूचना विस्तारित I मध्ये प्रवेश करण्यास अनुमती देणाऱ्या सूचनांसह बदलणे आवश्यक आहे. /ओ. सामान्यतः, याचा अर्थ “LDS” आणि “STS” बरोबर “SBRS”, “SBRC”, “SBR” आणि “CBR” असा होतो. लक्षात घ्या की सर्व AVR उपकरणांमध्ये विस्तारित I/O नकाशा समाविष्ट नाही.

कॅपेसिटिव्ह टच सेन्सिंग

Atmel QTouch Library Atmel AVR मायक्रोकंट्रोलर्सवरील स्पर्श संवेदनशील इंटरफेससाठी वापरण्यास सोपा उपाय प्रदान करते. QTouch लायब्ररीमध्ये QTouch® आणि QMatrix® संपादन पद्धतींसाठी समर्थन समाविष्ट आहे.

टच चॅनेल आणि सेन्सर्स परिभाषित करण्यासाठी QTouch लायब्ररीला लिंक करून आणि लायब्ररीचा ऍप्लिकेशन प्रोग्रामिंग इंटरफेस (API) वापरून कोणत्याही ऍप्लिकेशनमध्ये टच सेन्सिंग सहजपणे जोडले जाते. अनुप्रयोग नंतर चॅनेल माहिती पुनर्प्राप्त करण्यासाठी आणि टच सेन्सरची स्थिती निर्धारित करण्यासाठी API ला कॉल करते.

QTouch लायब्ररी विनामूल्य आहे आणि Atmel वरून डाउनलोड केली जाऊ शकते webजागा. अधिक माहितीसाठी आणि अंमलबजावणीच्या तपशीलांसाठी, QTouch लायब्ररी वापरकर्ता मार्गदर्शक पहा - Atmel वरून देखील उपलब्ध आहे webसाइट

डेटा धारणा

विश्वासार्हता पात्रता परिणाम दर्शविते की अंदाजित डेटा धारणा अयशस्वी होण्याचा दर 1 वर्षांमध्ये 20°C वर किंवा 85°C वर 100 वर्षांमध्ये 25 PPM पेक्षा खूपच कमी आहे.

AVR CPU कोर

परिचय

हा विभाग सर्वसाधारणपणे AVR कोर आर्किटेक्चरची चर्चा करतो. CPU कोरचे मुख्य कार्य म्हणजे प्रोग्रामची अचूक अंमलबजावणी सुनिश्चित करणे. म्हणून CPU मेमरी ऍक्सेस करण्यास, गणना करण्यास, परिधी नियंत्रित करण्यास आणि व्यत्यय हाताळण्यास सक्षम असणे आवश्यक आहे.

आर्किटेक्चरल ओव्हरview आर्किटेक्चर

कार्यप्रदर्शन आणि समांतरता वाढवण्यासाठी, AVR हार्वर्ड आर्किटेक्चरचा वापर करते - प्रोग्राम आणि डेटासाठी स्वतंत्र आठवणी आणि बसेससह. प्रोग्राम मेमरीमधील सूचना एकाच लेव्हल पाइपलाइनिंगसह अंमलात आणल्या जातात. एक सूचना अंमलात आणली जात असताना, पुढील सूचना प्रोग्राम मेमरीमधून प्री-फेच केली जाते. ही संकल्पना प्रत्येक घड्याळाच्या चक्रात सूचना अंमलात आणण्यास सक्षम करते. प्रोग्राम मेमरी इन-सिस्टम रीप्रोग्रामेबल फ्लॅश मेमरी आहे.

जलद-प्रवेश नोंदणी File एकल घड्याळ सायकल प्रवेश वेळेसह 32 x 8-बिट सामान्य उद्देश कार्यरत नोंदणी समाविष्ट आहे. हे सिंगल-सायकल अॅरिथमेटिक लॉजिक युनिट (ALU) ऑपरेशनला अनुमती देते. ठराविक ALU ऑपरेशनमध्ये, दोन ऑपरेंड रजिस्टरमधून आउटपुट होतात File, ऑपरेशन अंमलात आणले जाते, आणि परिणाम पुन्हा रजिस्टरमध्ये संग्रहित केला जातो File- एका घड्याळाच्या चक्रात.

डेटा स्पेस अॅड्रेसिंगसाठी 32 पैकी सहा रजिस्टर तीन 16-बिट अप्रत्यक्ष अॅड्रेस रजिस्टर पॉइंटर म्हणून वापरले जाऊ शकतात - कार्यक्षम अॅड्रेस कॅल्क्युलेशन सक्षम करणे. या अॅड्रेस पॉइंटरपैकी एक फ्लॅश प्रोग्रॅम मेमरीमध्ये लूक अप टेबलसाठी अॅड्रेस पॉइंटर म्हणून देखील वापरला जाऊ शकतो. हे जोडलेले फंक्शन रजिस्टर 16-बिट X-, Y- आणि Z-रजिस्टर आहेत, ज्याचे नंतर या विभागात वर्णन केले आहे.

ALU अंकगणित आणि लॉजिक ऑपरेशन्सला रजिस्टर्समध्ये किंवा कॉन्स्टंट आणि रजिस्टर दरम्यान सपोर्ट करते. ALU मध्ये सिंगल रजिस्टर ऑपरेशन्स देखील चालवता येतात. अंकगणित ऑपरेशननंतर, ऑपरेशनच्या परिणामाबद्दल माहिती प्रतिबिंबित करण्यासाठी स्टेटस रजिस्टर अपडेट केले जाते.

कार्यक्रम प्रवाह सशर्त आणि बिनशर्त उडी आणि कॉल सूचनांद्वारे प्रदान केला जातो, संपूर्ण पत्ता स्थान थेट संबोधित करण्यास सक्षम. बहुतेक AVR सूचनांमध्ये एकच 16-बिट शब्द स्वरूप असते, परंतु 32-बिट सूचना देखील असतात.

इंटरप्ट्स आणि सबरूटीन कॉल्स दरम्यान, रिटर्न अॅड्रेस प्रोग्राम काउंटर (PC) स्टॅकवर संग्रहित केला जातो. सामान्य डेटा SRAM मध्ये स्टॅक प्रभावीपणे वाटप केले जाते, आणि परिणामी स्टॅकचा आकार केवळ एकूण SRAM आकार आणि SRAM च्या वापराद्वारे मर्यादित आहे. सर्व वापरकर्ता प्रोग्राम्सनी रीसेट रूटीनमध्ये SP सुरू करणे आवश्यक आहे (उप-दिनचर्या किंवा व्यत्यय कार्यान्वित होण्यापूर्वी). स्टॅक पॉईंटर (SP) I/O स्पेसमध्ये वाचन/लिहाण्यायोग्य आहे. AVR आर्किटेक्चरमध्ये सपोर्ट केलेल्या पाच वेगवेगळ्या अॅड्रेसिंग मोडद्वारे डेटा SRAM वर सहज प्रवेश केला जाऊ शकतो.

AVR आर्किटेक्चरमधील मेमरी स्पेस सर्व रेषीय आणि नियमित मेमरी नकाशे आहेत.

लवचिक इंटरप्ट मॉड्यूलचे स्टेटस रजिस्टरमध्ये अतिरिक्त ग्लोबल इंटरप्ट इनेबल बिटसह I/O स्पेसमध्ये कंट्रोल रजिस्टर असतात. व्यत्यय वेक्टर सारणीमध्ये सर्व व्यत्ययांचा स्वतंत्र व्यत्यय वेक्टर असतो. व्यत्ययांना त्यांच्या व्यत्यय वेक्टर स्थानानुसार प्राधान्य असते. इंटरप्ट वेक्टर अॅड्रेस जितका कमी असेल तितका प्राधान्य जास्त असेल.

I/O मेमरी स्पेसमध्ये CPU परिधीय फंक्शन्ससाठी कंट्रोल रजिस्टर, SPI आणि इतर I/O फंक्शन्स म्हणून 64 पत्ते असतात. I/O मेमरीवर थेट प्रवेश केला जाऊ शकतो, किंवा डेटा स्पेस स्थाने म्हणून रजिस्टरच्या अनुषंगाने File, 0x20 – 0x5F.

ALU - अंकगणित तर्क एकक

उच्च-कार्यक्षमता AVR ALU सर्व 32 सामान्य उद्देश कार्यरत रजिस्टर्सशी थेट संबंधाने कार्य करते. एका घड्याळाच्या चक्रात, सामान्य उद्देशाच्या नोंदी किंवा रजिस्टर आणि तात्काळ यांच्या दरम्यान अंकगणितीय ऑपरेशन्स अंमलात आणल्या जातात. ALU ऑपरेशन्स तीन मुख्य श्रेणींमध्ये विभागल्या जातात - अंकगणित, तार्किक आणि बिट- फंक्शन्स. आर्किटेक्चरची काही अंमलबजावणी एक शक्तिशाली गुणक देखील प्रदान करते जे स्वाक्षरी केलेले/साइन केलेले गुणाकार आणि अपूर्णांक स्वरूप दोन्हीला समर्थन देते. तपशीलवार वर्णनासाठी "सूचना संच" विभाग पहा.

स्टेटस रजिस्टर

स्टेटस रजिस्टरमध्ये अलीकडेच अंमलात आणलेल्या अंकगणित निर्देशांच्या निकालाची माहिती असते. ही माहिती सशर्त ऑपरेशन्स करण्यासाठी प्रोग्राम प्रवाह बदलण्यासाठी वापरली जाऊ शकते. सूचना सेट संदर्भामध्ये नमूद केल्याप्रमाणे, सर्व ALU ऑपरेशन्सनंतर स्टेटस रजिस्टर अपडेट केले जाते याची नोंद घ्या. हे बर्‍याच प्रकरणांमध्ये समर्पित तुलना निर्देश वापरण्याची गरज दूर करेल, परिणामी जलद आणि अधिक संक्षिप्त कोड मिळेल.

इंटरप्ट रूटीनमध्ये प्रवेश करताना स्टेटस रजिस्टर आपोआप साठवले जात नाही आणि इंटरप्टमधून परत येताना पुनर्संचयित केले जात नाही. हे सॉफ्टवेअरद्वारे हाताळले जाणे आवश्यक आहे.

SREG - AVR स्टेटस रजिस्टर

AVR स्टेटस रजिस्टर – SREG – ची व्याख्या अशी केली आहे:

बिट 7 6 5 4 3 2 1 0
0x3F I T H S V N Z C SREG
वाचा/लिहा R/W R/W R/W R/W R/W R/W R/W R/W
प्रारंभिक मूल्य 0 0 0 0 0 0 0 0

बिट 7 – I: ग्लोबल इंटरप्ट सक्षम

इंटरप्ट्स सक्षम करण्यासाठी ग्लोबल इंटरप्ट सक्षम बिट सेट करणे आवश्यक आहे. वैयक्तिक व्यत्यय सक्षम नियंत्रण नंतर स्वतंत्र नियंत्रण नोंदणीमध्ये केले जाते. जर ग्लोबल इंटरप्ट सक्षम नोंदणी साफ केली असेल, तर वैयक्तिक व्यत्यय सक्षम सेटिंग्जपासून स्वतंत्रपणे कोणतेही व्यत्यय सक्षम केलेले नाहीत. व्यत्यय आल्यानंतर हार्डवेअरद्वारे I-bit साफ केला जातो आणि त्यानंतरचे व्यत्यय सक्षम करण्यासाठी RETI सूचनेद्वारे सेट केले जाते. SEI आणि CLI निर्देशांसह अनुप्रयोगाद्वारे I-bit देखील सेट आणि क्लिअर केले जाऊ शकते, जसे निर्देश सेट संदर्भामध्ये वर्णन केले आहे.

बिट 6 - टी: बिट कॉपी स्टोरेज

बिट कॉपी सूचना BLD (Bit LoaD) आणि BST (Bit store) T-bit चा वापर चालवलेल्या बिटसाठी स्रोत किंवा गंतव्यस्थान म्हणून करतात. रजिस्टर मधील एका नोंदवहीतून थोडा File BST सूचनेद्वारे T मध्ये कॉपी केली जाऊ शकते, आणि T मध्ये थोडीशी कॉपी रजिस्टरमधील रजिस्टरमध्ये कॉपी केली जाऊ शकते File BLD निर्देशानुसार.

बिट 5 – H: अर्धा कॅरी ध्वज

हाफ कॅरी फ्लॅग एच काही अंकगणित ऑपरेशन्समध्ये हाफ कॅरी दर्शवतो. बीसीडी अंकगणितात हाफ कॅरी उपयुक्त आहे. तपशीलवार माहितीसाठी "सूचना सेट वर्णन" पहा.

बिट 4 – S: साइन बिट, S = N ⊕ V

एस-बिट नेहमी एक अनन्य किंवा नकारात्मक ध्वज N आणि दोनचा पूरक ओव्हरफ्लो फ्लॅग V मधील असतो. तपशीलवार माहितीसाठी "सूचना सेट वर्णन" पहा.

बिट 3 – V: दोनचा पूरक ओव्हरफ्लो ध्वज

टूज कॉम्प्लिमेंट ओव्हरफ्लो फ्लॅग V दोनच्या पूरक अंकगणिताला सपोर्ट करतो. तपशीलवार माहितीसाठी "सूचना सेट वर्णन" पहा.

बिट 2 – N: नकारात्मक ध्वज

नकारात्मक ध्वज N अंकगणित किंवा तर्कशास्त्राच्या ऑपरेशनमध्ये नकारात्मक परिणाम दर्शवतो. तपशीलवार माहितीसाठी "सूचना सेट वर्णन" पहा.

बिट 1 - Z: शून्य ध्वज

शून्य ध्वज Z अंकगणित किंवा तर्कशास्त्र ऑपरेशनमध्ये शून्य परिणाम दर्शवतो. तपशीलवार माहितीसाठी "सूचना सेट वर्णन" पहा.

बिट 0 - C: ध्वज घेऊन जा

कॅरी फ्लॅग C अंकगणित किंवा लॉजिक ऑपरेशनमध्ये कॅरी दर्शवतो. तपशीलवार माहितीसाठी "सूचना सेट वर्णन" पहा.

सामान्य उद्देश रजिस्टर File

रजिस्टर File AVR वर्धित RISC सूचना संचासाठी ऑप्टिमाइझ केले आहे. आवश्यक कामगिरी आणि लवचिकता प्राप्त करण्यासाठी, खालील इनपुट/आउटपुट योजनांना नोंदणीद्वारे समर्थन दिले जाते. File:

एक 8-बिट आउटपुट ऑपरेंड आणि एक 8-बिट परिणाम इनपुट

दोन 8-बिट आउटपुट ऑपरेंड आणि एक 8-बिट परिणाम इनपुट

दोन 8-बिट आउटपुट ऑपरेंड आणि एक 16-बिट परिणाम इनपुट

एक 16-बिट आउटपुट ऑपरेंड आणि एक 16-बिट परिणाम इनपुट

आकृती 4-2 CPU मध्ये 32 सामान्य उद्देश कार्यरत रजिस्टर्सची रचना दाखवते. सामान्य हेतू

मध्ये दाखवल्याप्रमाणे आकृती 4-2, प्रत्येक रजिस्टरला डेटा मेमरी पत्ता देखील नियुक्त केला जातो, ते थेट वापरकर्त्याच्या डेटा स्पेसच्या पहिल्या 32 स्थानांवर मॅप करते. जरी एसआरएएम स्थाने म्हणून प्रत्यक्षरित्या अंमलात आणले जात नसले तरी, ही मेमरी संस्था रजिस्टर्समध्ये प्रवेश करण्यासाठी उत्कृष्ट लवचिकता प्रदान करते, कारण X-, Y- आणि Z-पॉइंटर नोंदणी कोणत्याही नोंदणीमध्ये अनुक्रमित करण्यासाठी सेट केली जाऊ शकते. file.रजिस्टरवर कार्यरत असलेल्या बहुतेक सूचना File सर्व नोंदणींमध्ये थेट प्रवेश आहे आणि त्यापैकी बहुतेक एकल सायकल सूचना आहेत.

एक्स-रजिस्टर, वाई-रजिस्टर आणि झेड-रजिस्टर

R26..R31 रजिस्टर्समध्ये त्यांच्या सामान्य उद्देशाच्या वापरासाठी काही अतिरिक्त कार्ये आहेत. हे रजिस्टर्स डेटा स्पेसच्या अप्रत्यक्ष पत्त्यासाठी 16-बिट अॅड्रेस पॉइंटर आहेत. तीन अप्रत्यक्ष पत्ता रजिस्टर्स X, Y आणि Z मध्ये वर्णन केल्याप्रमाणे परिभाषित केले आहेत आकृती 4-3.

नोंदणी करा

वेगवेगळ्या अॅड्रेसिंग मोड्समध्ये या अॅड्रेस रजिस्टर्समध्ये फिक्स्ड डिस्प्लेसमेंट, ऑटोमॅटिक इन्क्रि-मेंट आणि ऑटोमॅटिक डिक्रीमेंट (तपशीलांसाठी निर्देश सेट संदर्भ पहा) अशी कार्ये असतात.

स्टॅक पॉइंटर

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

स्टॅक पॉइंटर डेटा एसआरएएम स्टॅक क्षेत्राकडे निर्देश करतो जेथे सबरूटीन आणि इंटरप्ट स्टॅक स्थित आहेत. डेटा SRAM मधील ही स्टॅक स्पेस कोणतेही सबरूटीन कॉल कार्यान्वित होण्यापूर्वी किंवा इंटरप्ट्स सक्षम होण्यापूर्वी प्रोग्रामद्वारे परिभाषित केले जाणे आवश्यक आहे. स्टॅक पॉइंटर 0x60 च्या वर बिंदूवर सेट करणे आवश्यक आहे. पुश सूचनेसह स्टॅकवर डेटा ढकलला जातो तेव्हा स्टॅक पॉइंटर एकाने कमी होतो आणि जेव्हा सबरूटीन कॉल किंवा इंटरप्टसह परतीचा पत्ता स्टॅकवर ढकलला जातो तेव्हा तो दोनने कमी होतो. जेव्हा स्टॅकमधून डेटा POP सूचनेसह पॉप केला जातो तेव्हा स्टॅक पॉइंटर एकने वाढविला जातो आणि जेव्हा सबरूटीन RET मधून परतावा किंवा इंटरप्ट RETI मधून परतावा देऊन स्टॅकमधून डेटा पॉप केला जातो तेव्हा तो दोनने वाढतो.

AVR स्टॅक पॉइंटर I/O स्पेसमध्ये दोन 8-बिट रजिस्टर्स म्हणून लागू केले आहे. प्रत्यक्षात वापरलेल्या बिट्सची संख्या अंमलबजावणीवर अवलंबून असते. लक्षात घ्या की AVR आर्किटेक्चरच्या काही अंमलबजावणीमध्ये डेटा स्पेस इतका लहान आहे की फक्त SPL आवश्यक आहे. या प्रकरणात, SPH रजिस्टर उपस्थित राहणार नाही.

SPH आणि SPL — स्टॅक पॉइंटर रजिस्टर

बिट 15 14 13 12 11 10 9 8
0x3E SP15 SP14 SP13 SP12 SP11 SP10 SP9 SP8 SPH
0x3D SP7 SP6 SP5 SP4 SP3 SP2 SP1 SP0 SPL
7 6 5 4 3 2 1 0
वाचा/लिहा R/W R/W R/W R/W R/W R/W R/W R/W
वाचा/लिहा R/W R/W R/W R/W R/W R/W R/W R/W
प्रारंभिक मूल्य RAMEND RAMEND RAMEND RAMEND RAMEND RAMEND RAMEND RAMEND
प्रारंभिक मूल्य RAMEND RAMEND RAMEND RAMEND RAMEND RAMEND RAMEND RAMEND

सूचना अंमलबजावणीची वेळ

हा विभाग सूचना अंमलबजावणीसाठी सामान्य प्रवेश वेळेच्या संकल्पनांचे वर्णन करतो. AVR CPU हे CPU घड्याळ clkCPU द्वारे चालविले जाते, जे थेट चिपसाठी निवडलेल्या घड्याळ स्रोतातून तयार केले जाते. कोणतेही अंतर्गत घड्याळ विभाजन वापरले जात नाही.

अंजीर 4.4

आकृती 4-4 हार्वर्ड आर्किटेक्चर आणि फास्ट ऍक्सेस रजिस्टरद्वारे सक्षम केलेले समांतर इंस्ट्रक्शन फेचेस आणि इंस्ट्रक्शन एक्झिक्यूशन दाखवते File संकल्पना. फंक्शन्स प्रति किमती, फंक्शन्स प्रति क्लॉक आणि फंक्शन्स प्रति पॉवर-युनिटसाठी संबंधित अद्वितीय परिणामांसह 1 MIPS प्रति मेगाहर्ट्झ पर्यंत प्राप्त करण्यासाठी ही मूलभूत पाइपलाइनिंग संकल्पना आहे.

आकृती 4-5. सिंगल सायकल ALU ऑपरेशन

अंजीर 4.5

रीसेट आणि व्यत्यय हाताळणी

AVR अनेक भिन्न व्यत्यय स्त्रोत प्रदान करते. हे व्यत्यय आणि स्वतंत्र रीसेट वेक्टर प्रत्येकाला प्रोग्राम मेमरी स्पेसमध्ये स्वतंत्र प्रोग्राम वेक्टर असतो. सर्व व्यत्ययांना वैयक्तिक सक्षम बिट्स नियुक्त केले जातात ज्यात इंटरप्ट सक्षम करण्यासाठी स्टेटस रजिस्टरमध्ये ग्लोबल इंटरप्ट इनेबल बिटसह लॉजिक लिहिणे आवश्यक आहे.

प्रोग्राम मेमरी स्पेसमधील सर्वात कमी पत्ते डीफॉल्टनुसार रीसेट आणि इंटरप्ट व्हेक्टर म्हणून परिभाषित केले जातात. सदिशांची संपूर्ण यादी यामध्ये दर्शविली आहे पृष्ठ ४८ वर “व्यत्यय”. सूची विविध व्यत्ययांचे प्राधान्य स्तर देखील निर्धारित करते. पत्ता जितका कमी असेल तितका प्राधान्य स्तर जास्त असेल. RESET ला सर्वोच्च प्राधान्य आहे, आणि पुढे INT0 आहे - बाह्य व्यत्यय विनंती 0.

जेव्हा एखादा व्यत्यय येतो, तेव्हा ग्लोबल इंटरप्ट सक्षम I-bit साफ केले जाते आणि सर्व व्यत्यय अक्षम केले जातात. नेस्टेड इंटरप्ट्स सक्षम करण्यासाठी वापरकर्ता सॉफ्टवेअर आय-बिटवर एक तर्क लिहू शकतो. सर्व सक्षम केलेले व्यत्यय नंतर वर्तमान व्यत्यय दिनचर्यामध्ये व्यत्यय आणू शकतात. रिटर्न फ्रॉम इंटरप्ट इंस्ट्रक्शन – RETI – अंमलात आणल्यावर आय-बिट आपोआप सेट होतो.

मुळात व्यत्ययांचे दोन प्रकार असतात. पहिला प्रकार एखाद्या इव्हेंटद्वारे ट्रिगर केला जातो जो इंटरप्ट फ्लॅग सेट करतो. या व्यत्ययांसाठी, इंटरप्ट हँडलिंग रूटीन कार्यान्वित करण्यासाठी प्रोग्राम काउंटरला वास्तविक इंटरप्ट वेक्टरवर वेक्टर केले जाते आणि हार्डवेअर संबंधित इंटरप्ट फ्लॅग साफ करते. इंटरप्ट फ्लॅग्स क्लिअर करायच्या असलेल्या फ्लॅग बिट पोझिशनवर लॉजिक लिहून क्लिअर केले जाऊ शकतात. संबंधित व्यत्यय सक्षम बिट साफ करताना व्यत्यय स्थिती उद्भवल्यास, इंटरप्ट फ्लॅग सेट केला जाईल आणि जोपर्यंत व्यत्यय सक्षम होत नाही तोपर्यंत लक्षात ठेवला जाईल किंवा सॉफ्टवेअरद्वारे ध्वज साफ केला जाईल. त्याचप्रमाणे, ग्लोबल इंटरप्ट सक्षम बिट क्लिअर करताना एक किंवा अधिक व्यत्यय परिस्थिती उद्भवल्यास, संबंधित इंटरप्ट फ्लॅग(ले) सेट केले जातील आणि ग्लोबल इंटरप्ट सक्षम बिट सेट होईपर्यंत लक्षात ठेवले जातील, आणि नंतर प्राधान्य क्रमाने अंमलात आणले जातील.

जोपर्यंत व्यत्यय स्थिती अस्तित्वात आहे तोपर्यंत दुसरा प्रकारचा व्यत्यय ट्रिगर होईल. या व्यत्ययांमध्ये व्यत्यय ध्वज असणे आवश्यक नाही. व्यत्यय सक्षम होण्यापूर्वी व्यत्यय स्थिती अदृश्य झाल्यास, व्यत्यय ट्रिगर केला जाणार नाही.

जेव्हा AVR व्यत्ययातून बाहेर पडते, तेव्हा ते नेहमी मुख्य प्रोग्रामकडे परत येईल आणि कोणताही प्रलंबित व्यत्यय प्रदान करण्यापूर्वी आणखी एक सूचना कार्यान्वित करेल.

लक्षात घ्या की इंटरप्ट रूटीनमध्ये प्रवेश करताना स्टेटस रजिस्टर आपोआप साठवले जात नाही किंवा व्यत्यय रूटीनमधून परत येताना पुनर्संचयित केले जात नाही. हे सॉफ्टवेअरद्वारे हाताळले जाणे आवश्यक आहे.

व्यत्यय अक्षम करण्यासाठी CLI सूचना वापरताना, व्यत्यय त्वरित अक्षम केला जाईल. CLI सूचनेनंतर कोणताही व्यत्यय कार्यान्वित केला जाणार नाही, जरी तो CLI सूचनेसह एकाच वेळी आला असला तरीही. खालील माजीample हे दर्शविते की कालबद्ध EEPROM लेखन क्रम दरम्यान व्यत्यय टाळण्यासाठी हे कसे वापरले जाऊ शकते.

विधानसभा कोड उदाample
r16 मध्ये, SREG; स्टोअर SREG मूल्य

cli कालबद्ध अनुक्रमादरम्यान व्यत्यय अक्षम करा

sbi EECR, EEMPE ; EEPROM लिहिणे सुरू करा

sbi EECR, EEPE

SREG, r16 बाहेर; SREG मूल्य पुनर्संचयित करा (I-bit)

सी कोड उदाample
char cSREG;

cSREG = SREG; /* स्टोअर SREG मूल्य */

/* कालबद्ध अनुक्रमादरम्यान व्यत्यय अक्षम करा */

_CLI();

EECR |= (1<

EECR |= (1<

SREG = cSREG; /* SREG मूल्य (I-bit) पुनर्संचयित करा */

व्यत्यय सक्षम करण्यासाठी SEI सूचना वापरताना, SEI खालील सूचना कोणत्याही प्रलंबित व्यत्ययापूर्वी अंमलात आणल्या जातील, जसे की या एक्समध्ये दाखवले आहे.ampले

विधानसभा कोड उदाample
sei ; ग्लोबल इंटरप्ट सक्षम सेट करा

झोप; झोपेत प्रवेश करा, व्यत्ययाची प्रतीक्षा करा

; टीप: कोणत्याही प्रलंबित आधी स्लीपमध्ये प्रवेश करेल

; व्यत्यय

सी कोड उदाample
_SEI(); /* ग्लोबल इंटरप्ट सक्षम सेट करा */

_झोप(); /* झोपेत प्रवेश करा, व्यत्ययाची वाट पहा*/

/* टीप: कोणत्याही प्रलंबित व्यत्ययापूर्वी स्लीपमध्ये प्रवेश करेल */

व्यत्यय प्रतिसाद वेळ

सर्व सक्षम AVR व्यत्ययांसाठी व्यत्यय अंमलबजावणी प्रतिसाद किमान चार घड्याळ चक्रे आहेत. चार घड्याळ चक्रांनंतर वास्तविक व्यत्यय हाताळणी दिनचर्यासाठी प्रोग्राम वेक्टर पत्ता कार्यान्वित केला जातो. या चार घड्याळ चक्र कालावधी दरम्यान, प्रोग्राम काउंटर स्टॅकवर ढकलले जाते. सदिश सामान्यतः व्यत्यय दिनचर्यामध्ये एक उडी असते आणि या उडीला तीन घड्याळ चक्रे लागतात. मल्टी-सायकल निर्देशांच्या अंमलबजावणीदरम्यान व्यत्यय आल्यास, ही सूचना व्यत्यय पूर्ण होण्यापूर्वी पूर्ण केली जाते. MCU स्लीप मोडमध्ये असताना व्यत्यय आल्यास, इंटरप्ट एक्झिक्यूशन रिस्पॉन्स टाइम चार घड्याळ चक्रांनी वाढवला जातो. ही वाढ निवडलेल्या स्लीप मोडमधून स्टार्ट-अप वेळेव्यतिरिक्त येते.

इंटरप्ट हँडलिंग रूटीनमधून परत येण्यासाठी चार घड्याळ चक्रे लागतात. या चार घड्याळ चक्रादरम्यान, प्रोग्राम काउंटर (दोन बाइट्स) स्टॅकमधून परत येतो, स्टॅक पॉइंटर दोनने वाढतो आणि SREG मधील I-bit सेट केला जातो.

AVR आठवणी

हा विभाग ATtiny25/45/85 मधील वेगवेगळ्या आठवणींचे वर्णन करतो. AVR आर्किटेक्चरमध्ये दोन मुख्य मेमरी स्पेस आहेत, डेटा मेमरी आणि प्रोग्राम मेमरी स्पेस. याव्यतिरिक्त, ATtiny25/45/85 मध्ये डेटा स्टोरेजसाठी EEPROM मेमरी आहे. सर्व तीन मेमरी स्पेस रेषीय आणि नियमित आहेत.

इन-सिस्टम री-प्रोग्राम करण्यायोग्य फ्लॅश प्रोग्राम मेमरी

ATtiny25/45/85 मध्ये प्रोग्राम स्टोरेजसाठी 2/4/8K बाइट्स ऑन-चिप इन-सिस्टम रीप्रोग्रामेबल फ्लॅश मेमरी आहे. सर्व AVR सूचना 16 किंवा 32 बिट रुंद असल्याने, फ्लॅश 1024/2048/4096 x 16 म्हणून आयोजित केला आहे.

फ्लॅश मेमरीमध्ये किमान 10,000 राईट/इरेज सायकल्सची सहनशक्ती असते. ATtiny25/45/85 प्रोग्राम काउंटर (PC) 10/11/12 बिट रुंद आहे, अशा प्रकारे 1024/2048/4096 प्रोग्राम मेमरी स्थानांना संबोधित करते. "मेमरी प्रोग्राम - मिंग” पृष्ठ 147 वर SPI पिन वापरून फ्लॅश डेटा सीरियल डाउनलोड करण्याबाबत तपशीलवार वर्णन आहे.

संपूर्ण प्रोग्राम मेमरी अॅड्रेस स्पेसमध्ये कॉन्स्टंट टेबल्सचे वाटप केले जाऊ शकते (LPM - लोड प्रोग्राम मेमरी सूचना वर्णन पहा).

आकृती 5-1. कार्यक्रम मेमरी नकाशा स्मृती नकाशा

SRAM डेटा मेमरी

आकृती 5-2 ATtiny25/45/85 SRAM मेमरी कशी आयोजित केली जाते ते दाखवते.

खालील 224/352/607 डेटा मेमरी स्थाने दोन्ही रजिस्टरला संबोधित करतात File, I/O मेमरी आणि अंतर्गत डेटा SRAM. पहिली ३२ ठिकाणे रजिस्टरला संबोधित करतात File, पुढील 64 स्थाने मानक I/O मेमरी, आणि शेवटची 128/256/512 स्थाने अंतर्गत डेटा SRAM ला संबोधित करतात.

डेटा मेमरी कव्हरसाठी पाच भिन्न अॅड्रेसिंग मोड: थेट, विस्थापनासह अप्रत्यक्ष, अप्रत्यक्ष, प्री-डिक्रिमेंटसह अप्रत्यक्ष आणि पोस्ट-वाढीसह अप्रत्यक्ष. रजिस्टर मध्ये File, R26 ते R31 रजिस्टर्समध्ये अप्रत्यक्ष अॅड्रेसिंग पॉइंटर रजिस्टर्सची वैशिष्ट्ये आहेत.

थेट पत्ता संपूर्ण डेटा स्पेसपर्यंत पोहोचतो.

इनडायरेक्ट विथ डिस्प्लेसमेंट मोड Y- किंवा Z- रजिस्टरने दिलेल्या मूळ पत्त्यावरून 63 पत्त्याच्या ठिकाणी पोहोचतो.

ऑटोमॅटिक प्री-डिक्रिमेंट आणि पोस्ट-इन्क्रिमेंटसह नोंदणी अप्रत्यक्ष अॅड्रेसिंग मोड वापरताना, पत्ता नोंदणीकृत X, Y, आणि Z कमी किंवा वाढवले ​​जातात.

ATtiny32/64/128 मधील 256 सामान्य उद्देश कार्यरत नोंदणी, 512 I/O नोंदणी आणि अंतर्गत डेटा SRAM चे 25/45/85 बाइट्स हे सर्व या सर्व अॅड्रेसिंग मोडद्वारे प्रवेशयोग्य आहेत. रजिस्टर File मध्ये वर्णन केले आहे "जनरल- eral उद्देश रजिस्टर Fileपृष्ठ 10 वर.

आकृती 5-2. डेटा मेमरी नकाशा मेमरी नकाशा 2

डेटा मेमरी प्रवेश वेळा

हा विभाग अंतर्गत मेमरी प्रवेशासाठी सामान्य प्रवेश वेळेच्या संकल्पनांचे वर्णन करतो. अंतर्गत डेटा SRAM प्रवेश दोन clkCPU चक्रांमध्ये वर्णन केल्याप्रमाणे केला जातो आकृती 5-3.

आकृती 5-3. ऑन-चिप डेटा SRAM ऍक्सेस सायकल्स चिप डेटावर EEPROM डेटा मेमरी

ATtiny25/45/85 मध्ये 128/256/512 बाइट्स डेटा EEPROM मेमरी आहे. हे स्वतंत्र डेटा स्पेस म्हणून आयोजित केले आहे, ज्यामध्ये एकल बाइट्स वाचता आणि लिहिता येतात. EEPROM ची सहनशक्ती किमान 100,000 लेखन/मिटवणे चक्र आहे. EEPROM आणि CPU मधील प्रवेशाचे वर्णन खालील मध्ये केले आहे, EEPROM पत्ता नोंदणी, EEPROM डेटा रजिस्टर आणि EEPROM कंट्रोल रजिस्टर निर्दिष्ट करते. तपशीलांसाठी पहा पृष्ठ 151 वर “सीरियल डाउनलोडिंग”.

EEPROM वाचन/लेखन प्रवेश

EEPROM प्रवेश नोंदणी I/O जागेत प्रवेश करण्यायोग्य आहेत.

EEPROM साठी लिहिण्याच्या प्रवेशाच्या वेळा दिलेल्या आहेत पृष्ठ 5 वर तक्ता 1-21. सेल्फ-टाइमिंग फंक्शन, तथापि, वापरकर्ता सॉफ्टवेअरला पुढील बाइट कधी लिहिता येईल हे शोधू देते. वापरकर्ता कोडमध्ये EEPROM लिहिणाऱ्या सूचना असल्यास, काही खबरदारी घेणे आवश्यक आहे. जोरदारपणे फिल्टर केलेल्या वीज पुरवठ्यामध्ये, VCC हळूहळू वाढण्याची किंवा पडण्याची शक्यता असते

पॉवर-अप/डाउन. यामुळे काही कालावधीसाठी यंत्र व्हॉल्यूमवर चालतेtage वापरल्या जाणार्‍या घड्याळाच्या वारंवारतेसाठी किमान निर्दिष्ट केलेल्यापेक्षा कमी. पहा पृष्ठ 19 वर “EEPROM भ्रष्टाचार रोखणे” या परिस्थितीत समस्या कशा टाळाव्यात याच्या तपशीलांसाठी.

अनावधानाने EEPROM लेखन टाळण्यासाठी, विशिष्ट लेखन प्रक्रियेचे पालन करणे आवश्यक आहे. पहा "परमाणू बाइट प्रोग्रामिंग” पृष्ठ १७ वर आणि पृष्ठ १७ वर “स्प्लिट बाइट प्रोग्रामिंग” याच्या तपशीलासाठी.

जेव्हा EEPROM वाचले जाते, तेव्हा पुढील सूचना अंमलात येण्यापूर्वी CPU चार घड्याळ चक्रांसाठी थांबवले जाते. जेव्हा EEPROM लिहिले जाते, तेव्हा पुढील सूचना अंमलात आणण्यापूर्वी CPU दोन घड्याळ चक्रांसाठी थांबवले जाते.

अणु बाइट प्रोग्रामिंग

Atomic Byte Programming वापरणे हा सर्वात सोपा मोड आहे. EEPROM वर बाइट लिहिताना, वापरकर्त्याने EEAR रजिस्टरमध्ये पत्ता आणि डेटा EEDR रजिस्टरमध्ये लिहावा. जर EEPMn बिट्स शून्य असतील, तर EEPE (ईईएमपीई लिहिल्यानंतर चार चक्रांमध्ये) लिहिल्याने मिटवा/लेखन ऑपरेशन सुरू होईल. मिटवणे आणि लिहिणे हे दोन्ही चक्र एकाच ऑपरेशनमध्ये केले जाते आणि एकूण प्रोग्रामिंग वेळ दिला जातो पृष्ठ 5 वर तक्ता 1-21. EEPE बिट मिटवणे आणि लिहिण्याची क्रिया पूर्ण होईपर्यंत सेट राहते. डिव्हाइस प्रोग्रामिंगमध्ये व्यस्त असताना, इतर कोणतेही EEPROM ऑपरेशन करणे शक्य नाही.

स्प्लिट बाइट प्रोग्रामिंग

दोन वेगवेगळ्या ऑपरेशन्समध्ये मिटवणे आणि लेखन चक्र विभाजित करणे शक्य आहे. सिस्टीमला काही मर्यादित कालावधीसाठी कमी प्रवेश वेळ आवश्यक असल्यास हे उपयुक्त ठरू शकते (सामान्यत: वीज पुरवठा खंडtage पडतो). सल्ला घेण्यासाठी- tage या पद्धतीमध्ये, लिहिण्याची स्थळे लिहिण्याच्या ऑपरेशनपूर्वी मिटवली जाणे आवश्यक आहे. परंतु मिटवणे आणि लिहिणे ऑपरेशन्स विभाजित केल्यामुळे, सिस्टम वेळ-गंभीर ऑपरेशन्स (सामान्यत: पॉवर-अप नंतर) करण्यास परवानगी देते तेव्हा मिटवणे ऑपरेशन करणे शक्य आहे.

पुसून टाका

बाइट मिटवण्यासाठी, पत्ता EEAR वर लिहिला जाणे आवश्यक आहे. जर EEPMn बिट्स 0b01 असतील, तर EEPE (ईईएमपीई लिहिल्यानंतर चार चक्रांमध्ये) लिहिल्याने केवळ मिटवण्याची क्रिया सुरू होईल (प्रोग्रामिंग वेळ यामध्ये दिलेला आहे. टेबल 5-1 वर पृष्ठ 21). इरेज ऑपरेशन पूर्ण होईपर्यंत EEPE बिट सेट राहते. डिव्हाइस प्रोग्रामिंगमध्ये व्यस्त असताना, इतर कोणतेही EEPROM ऑपरेशन करणे शक्य नाही.

लिहा

स्थान लिहिण्यासाठी, वापरकर्त्याने पत्ता EEAR मध्ये आणि डेटा EEDR मध्ये लिहावा. जर EEPMn बिट्स 0b10 असतील, तर EEPE (ईईएमपीई लिहिल्यानंतर चार चक्रांमध्ये) लिहिल्याने फक्त लेखन ऑपरेशन सुरू होईल (प्रोग्रामिंग वेळ यामध्ये दिलेला आहे. पृष्ठ 5 वर तक्ता 1-21). लेखन ऑपरेशन पूर्ण होईपर्यंत EEPE बिट सेट राहते. लिहिण्याआधी लिहिण्याचे ठिकाण मिटवले गेले नसल्यास, संग्रहित केलेला डेटा गमावला आहे असे मानले पाहिजे. डिव्हाइस प्रोग्रामिंगमध्ये व्यस्त असताना, इतर कोणतेही EEPROM ऑपरेशन करणे शक्य नाही.

कॅलिब्रेटेड ऑसिलेटरचा वापर EEPROM ला प्रवेश करण्यासाठी वेळेत केला जातो. ऑसिलेटर वारंवारता मध्ये वर्णन केलेल्या आवश्यकतांमध्ये असल्याची खात्री करा पृष्ठ ३१ वर “OSCCAL – ऑसिलेटर कॅलिब्रेशन रजिस्टर”.

खालील कोड उदाampलेस EEPROM च्या पुसून टाकण्यासाठी, लिहिण्यासाठी किंवा अणू लेखनासाठी एक असेंबली आणि एक C फंक्शन दर्शवते. माजीamples असे गृहीत धरले जाते की व्यत्यय नियंत्रित केले जातात (उदा. जागतिक स्तरावर व्यत्यय अक्षम करून) जेणेकरून या फंक्शन्सच्या अंमलबजावणीदरम्यान कोणतेही व्यत्यय येणार नाहीत.

विधानसभा कोड उदाample
EEPROM_write:

; मागील लेखन पूर्ण होण्याची प्रतीक्षा करा

sbic EECR, EEPE

rjmp EEPROM_write

; प्रोग्रामिंग मोड सेट करा

ldi        r16, (0<<EEPM1)|(0<<EEPM0)

EECR, r16 बाहेर

; पत्ता रजिस्टरमध्ये पत्ता (r18:r17) सेट करा

EEARH, r18 बाहेर

बाहेर EEARL, r17

; डेटा रजिस्टरवर डेटा (r19) लिहा

EEDR, r19 बाहेर

; EEMPE ला तार्किक लिहा

sbi EECR, EEMPE

; EEPE सेट करून eeprom लेखन सुरू करा

sbi EECR, EEPE

ret

सी कोड उदाample
void EEPROM_write(अस्वाक्षरित चार ucAddress, स्वाक्षरी न केलेला char ucData)

{

/* मागील लेखन पूर्ण होण्याची प्रतीक्षा करा */ असताना(EECR आणि (1<

;

/* प्रोग्रामिंग मोड सेट करा */

EECR = (0<

/* पत्ता आणि डेटा रजिस्टर सेट करा */ EEAR = ucAddress;

EEDR = ucData;

/* EEMPE ला तार्किक लिहा */

EECR |= (1<

/* EEPE सेट करून eeprom लिहिणे सुरू करा */

EECR |= (1<

}

पुढील कोड उदाampLE EEPROM वाचण्यासाठी असेंब्ली आणि C फंक्शन्स दाखवतात. माजीamples असे गृहीत धरले जाते की व्यत्यय नियंत्रित केले जातात जेणेकरून या फंक्शन्सच्या अंमलबजावणी दरम्यान कोणतेही व्यत्यय येणार नाहीत.

विधानसभा कोड उदाample
EEPROM_read:

; मागील लेखन पूर्ण होण्याची प्रतीक्षा करा

sbic EECR, EEPE

rjmp EEPROM_read

; पत्ता रजिस्टरमध्ये पत्ता (r18:r17) सेट करा

EEARH, r18 बाहेर

बाहेर EEARL, r17

; EERE लिहून eeprom वाचणे सुरू करा

sbi EECR, EERE

; डेटा रजिस्टरमधील डेटा वाचा

R16 मध्ये, EEDR

ret

सी कोड उदाample
स्वाक्षरी न केलेले चार EEPROM_read(अस्वाक्षरित चार ucAddress)

{

/* मागील लेखन पूर्ण होण्याची प्रतीक्षा करा*/

तर(EECR आणि (1<

;

/* पत्ता रजिस्टर सेट करा */ EEAR = ucAddress;

/* EERE लिहून eeprom वाचणे सुरू करा */

EECR |= (1<

/* डेटा रजिस्टरमधून डेटा परत करा */

EEDR परत करा;

}

EEPROM भ्रष्टाचार रोखणे

कमी VCC च्या कालावधीत, EEPROM डेटा करप्ट होऊ शकतो कारण पुरवठा खंडtagCPU आणि EEPROM योग्यरित्या ऑपरेट करण्यासाठी e खूप कमी आहे. या समस्या EEPROM वापरणाऱ्या बोर्ड लेव्हल सिस्टीमच्या समान आहेत आणि त्याच डिझाइन सोल्यूशन्स लागू केल्या पाहिजेत.

EEPROM डेटा भ्रष्टाचार दोन परिस्थितींमुळे होऊ शकतो जेव्हा व्हॉल्यूमtage खूप कमी आहे. प्रथम, EEPROM वर नियमित लेखन क्रमासाठी किमान व्हॉल्यूम आवश्यक आहेtage योग्य रीतीने ऑपरेट करणे. दुसरे म्हणजे, CPU स्वतः सूचना चुकीच्या पद्धतीने कार्यान्वित करू शकतो, जर पुरवठा खंडtage खूप कमी आहे.

या डिझाइन शिफारसींचे अनुसरण करून EEPROM डेटा भ्रष्टाचार सहजपणे टाळता येऊ शकतो:

अपुऱ्या वीज पुरवठ्याच्या कालावधीत AVR RESET सक्रिय (कमी) ठेवाtagई हे अंतर्गत ब्राउन-आउट डिटेक्टर (BOD) सक्षम करून केले जाऊ शकते. जर अंतर्गत बीओडीची तपासणी पातळी जुळत नसेल तर

आवश्यक शोध पातळी, बाह्य कमी VCC रीसेट संरक्षण सर्किट वापरले जाऊ शकते. लेखन ऑपरेशन प्रगतीपथावर असताना रीसेट झाल्यास, लेखन ऑपरेशन पूर्ण केले जाईल बशर्ते पॉवर सप्लाय व्हॉल्यूमtagई पुरेसे आहे.

I/O मेमरी

ATtiny25/45/85 ची I/O स्पेस व्याख्या यामध्ये दर्शविली आहे पृष्ठ 200 वर “नोंदणी सारांश”.

सर्व ATtiny25/45/85 I/Os आणि peripherals I/O स्पेसमध्ये ठेवले आहेत. सर्व I/O स्थानांवर LD/LDS/LDD आणि ST/STS/STD निर्देशांद्वारे प्रवेश केला जाऊ शकतो, 32 सामान्य उद्देश कार्यरत रजिस्टर आणि I/O स्पेस दरम्यान डेटा हस्तांतरित करतो. 0x00 - 0x1F पत्ता श्रेणीतील I/O नोंदणी SBI आणि CBI निर्देशांचा वापर करून थेट बिट-अॅक्सेसिबल आहेत. या रजिस्टर्समध्ये, SBIS आणि SBIC निर्देशांचा वापर करून सिंगल बिट्सचे मूल्य तपासले जाऊ शकते. अधिक तपशीलांसाठी सूचना सेट विभाग पहा. I/O विशिष्ट आदेश IN आणि आउट वापरताना, I/O पत्ते 0x00 – 0x3F वापरणे आवश्यक आहे. LD आणि ST सूचना वापरून I/O नोंदणींना डेटा स्पेस म्हणून संबोधित करताना, या पत्त्यांवर 0x20 जोडणे आवश्यक आहे.

भविष्यातील उपकरणांशी सुसंगततेसाठी, प्रवेश केल्यास आरक्षित बिट शून्यावर लिहावे. आरक्षित I/O मेमरी पत्ते कधीही लिहू नयेत.

काही स्टेटस फ्लॅग्ज त्यांना लॉजिकल लिहून साफ ​​केले जातात. लक्षात ठेवा की सीबीआय आणि एसबीआय निर्देश केवळ निर्दिष्ट बिटवर कार्य करतील आणि त्यामुळे अशा स्टेटस फ्लॅग्स असलेल्या रजिस्टरवर वापरल्या जाऊ शकतात. सीबीआय आणि एसबीआयच्या सूचना फक्त 0x00 ते 0x1F या रजिस्टरसह कार्य करतात.

I/O आणि Peripherals Control Registers नंतरच्या विभागांमध्ये स्पष्ट केले आहेत.

नोंदणी वर्णन

EEARH - EEPROM पत्ता नोंदणी

बिट 7 6 5 4 3 2 1 0
0x1F EEAR8 EEARH
वाचा/लिहा R R R R R R R R/W
प्रारंभिक मूल्य 0 0 0 0 0 0 0 X/0

बिट्स 7:1 – Res: आरक्षित बिट्स

हे बिट्स भविष्यातील वापरासाठी राखीव आहेत आणि नेहमी शून्य म्हणून वाचले जातील.

बिट्स 0 - EEAR8: EEPROM पत्ता

ATtiny85 चा हा सर्वात महत्त्वाचा EEPROM अॅड्रेस बिट आहे. कमी EEPROM असलेल्या उपकरणांमध्ये, म्हणजे ATtiny25/ATtiny45, हा बिट आरक्षित आहे आणि नेहमी शून्य वाचतो. EEPROM अॅड्रेस रजिस्टर (EEAR) चे प्रारंभिक मूल्य अपरिभाषित आहे आणि त्यामुळे EEPROM ऍक्सेस होण्यापूर्वी योग्य मूल्य लिहिणे आवश्यक आहे.

EEARL - EEPROM पत्ता नोंदणी

बिट

0x1E EEAR7 EEAR6 EEAR5 EEAR4 EEAR3 EEAR2 EEAR1 EEAR0 EEARL
मागे/लिहा R/W R/W R/W R/W R/W R/W R/W R/W
प्रारंभिक मूल्य X X X X X X X X

बिट 7 – EEAR7: EEPROM पत्ता

ATtiny45 चा हा सर्वात महत्त्वाचा EEPROM अॅड्रेस बिट आहे. कमी EEPROM असलेल्या उपकरणांमध्ये, म्हणजे ATtiny25, हा बिट आरक्षित आहे आणि नेहमी शून्य वाचतो. EEPROM अॅड्रेस रजिस्टर (EEAR) चे प्रारंभिक मूल्य अपरिभाषित आहे आणि त्यामुळे EEPROM ऍक्सेस होण्यापूर्वी योग्य मूल्य लिहिणे आवश्यक आहे.

बिट्स 6:0 – EEAR[6:0]: EEPROM पत्ता

हे EEPROM अॅड्रेस रजिस्टरचे (कमी) बिट आहेत. EEPROM डेटा बाइट्स श्रेणी 0…(128/256/512-1) मध्ये रेषीयपणे संबोधित केले जातात. EEAR चे प्रारंभिक मूल्य अपरिभाषित आहे आणि म्हणून EEPROM मध्ये प्रवेश करण्यापूर्वी योग्य मूल्य लिहिणे आवश्यक आहे.

EEDR - EEPROM डेटा रजिस्टर

बिट 7 6 5 4 3 2 1 0
0x1D EEDR7 EEDR6 EEDR5 EEDR4 EEDR3 EEDR2 EEDR1 EEDR0 EEDR
वाचा/लिहा R/W R/W R/W R/W R/W R/W R/W R/W
प्रारंभिक मूल्य 0 0 0 0 0 0 0 0

EEPROM लेखन ऑपरेशनसाठी EEDR रजिस्टरमध्ये EEAR रजिस्टरने दिलेल्या पत्त्यावर EEPROM ला लिहायचा डेटा असतो. EEPROM रीड ऑपरेशनसाठी, EEDR मध्ये मधून वाचलेला डेटा असतो

EEAR ने दिलेल्या पत्त्यावर EEPROM.

 

5.5.4 EECR – EEPROM कंट्रोल रजिस्टर

बिट 7 6 5 4 3 2 1 0
0x1 सी        – EEPM1 EEPM0 EERIE EEMPE EEPE EERE EECR
R R R/W वाचा/लिहा R/W R/W R/W R/W R/W
प्रारंभिक मूल्य 0 0 X X 0 0 X 0

बिट 7 – Res: आरक्षित बिट

हा बिट भविष्यातील वापरासाठी राखीव आहे आणि ATtiny0/25/45 मध्ये नेहमी 85 म्हणून वाचला जाईल. भविष्यातील AVR डिव्हाइसेसशी सुसंगततेसाठी, हे बिट नेहमी शून्यावर लिहा. वाचल्यानंतर, हा थोडा मास्क करा.

बिट 6 – Res: आरक्षित बिट

हा बिट ATtiny25/45/85 मध्ये आरक्षित आहे आणि नेहमी शून्य म्हणून वाचला जाईल.

बिट्स 5:4 – EEPM[1:0]: EEPROM प्रोग्रामिंग मोड बिट्स

EEPROM प्रोग्रामिंग मोड बिट्स सेटिंग EEPE लिहिताना कोणती प्रोग्रामिंग क्रिया ट्रिगर केली जाईल हे परिभाषित करते. एका अणु ऑपरेशनमध्ये डेटा प्रोग्राम करणे शक्य आहे (जुने मूल्य पुसून टाका आणि नवीन मूल्य प्रोग्राम करा) किंवा मिटवणे आणि लिहा ऑपरेशन्स दोन भिन्न ऑपरेशन्समध्ये विभाजित करणे शक्य आहे. वेगवेगळ्या मोडसाठी प्रोग्रामिंग वेळा दर्शविल्या आहेत तक्ता 5-1. EEPE सेट केलेले असताना, EEPMn ला कोणतेही लेखन दुर्लक्षित केले जाईल. रीसेट दरम्यान, ईईपीएमएन बिट्स 0b00 वर रीसेट केले जातील जोपर्यंत EEPROM प्रोग्रामिंग व्यस्त नसेल.

तक्ता 5-1. EEPROM मोड बिट्स

EEPM1 EEPM0 प्रोग्रामिंग वेळ ऑपरेशन
0 0 3.4 ms एका ऑपरेशनमध्ये पुसून टाका आणि लिहा (अणू ऑपरेशन)
0 1 1.8 ms फक्त पुसून टाका
1 0 1.8 ms फक्त लिहा
1 1 भविष्यातील वापरासाठी राखीव

बिट 3 – EERIE: EEPROM रेडी इंटरप्ट सक्षम करा

एखाद्याला EERIE लिहिल्याने SREG मध्ये I-bit सेट असल्यास EEPROM रेडी इंटरप्ट सक्षम होतो. शून्यावर EERIE लिहिल्याने व्यत्यय अक्षम होतो. जेव्हा नॉन-व्होलॅटाइल मेमरी प्रोग्रामिंगसाठी तयार असते तेव्हा EEPROM रेडी इंटरप्ट सतत व्यत्यय निर्माण करतो.

बिट 2 - EEMPE: EEPROM मास्टर प्रोग्राम सक्षम करा

एखाद्याला EEPE लिहिल्याने परिणाम होईल की नाही हे EEMPE बिट ठरवते.

EEMPE सेट केल्यावर, EEPE चार घड्याळ चक्रांमध्ये सेट केल्याने निवडलेल्या पत्त्यावर EEPROM प्रोग्राम केला जाईल. EEMPE शून्य असल्यास, EEPE सेट करण्याचा कोणताही परिणाम होणार नाही. जेव्हा ईईएमपीई सॉफ्टवेअरद्वारे एकाला लिहिले जाते, तेव्हा हार्डवेअर चार घड्याळ चक्रांनंतर बिट शून्यावर साफ करते.

बिट 1 - EEPE: EEPROM प्रोग्राम सक्षम करा

EEPROM प्रोग्राम सक्षम सिग्नल EEPE हे EEPROM ला प्रोग्रामिंग सक्षम सिग्नल आहे. जेव्हा EEPE लिहिले जाते, तेव्हा EEPROM हे EEPMn बिट्स सेटिंगनुसार प्रोग्राम केले जाईल. EEPE ला लॉजिकल लिहीण्यापूर्वी EEMPE बिट एकाला लिहिणे आवश्यक आहे, अन्यथा EEPROM लेखन होत नाही. लेखन प्रवेश वेळ निघून गेल्यावर, EEPE बिट हार्डवेअरद्वारे साफ केले जाते. EEPE सेट केल्यावर, पुढील सूचना अंमलात येण्यापूर्वी CPU दोन चक्रांसाठी थांबवले जाते.

बिट 0 - EERE: EEPROM वाचन सक्षम करा

EEPROM रीड सक्षम सिग्नल – EERE – हा EEPROM साठी रीड स्ट्रोब आहे. जेव्हा EEAR रजिस्टरमध्ये योग्य पत्ता सेट केला जातो, तेव्हा EEPROM रीड ट्रिगर करण्यासाठी EERE बिट एखाद्याला लिहिणे आवश्यक आहे. EEPROM रीड ऍक्सेस एक सूचना घेते, आणि विनंती केलेला डेटा लगेच उपलब्ध होतो. जेव्हा EEPROM वाचले जाते, तेव्हा पुढील सूचना अंमलात येण्यापूर्वी CPU चार चक्रांसाठी थांबवले जाते. वाचन ऑपरेशन सुरू करण्यापूर्वी वापरकर्त्याने EEPE बिटचे मतदान केले पाहिजे. लेखन ऑपरेशन चालू असल्यास, EEPROM वाचणे किंवा EEAR रजिस्टर बदलणे शक्य नाही.

सिस्टम घड्याळ आणि घड्याळ पर्याय

घड्याळ प्रणाली आणि त्यांचे वितरण

घड्याळ वितरण

सीपीयू घड्याळ

CPU घड्याळ AVR कोरच्या ऑपरेशनशी संबंधित सिस्टीमच्या काही भागांकडे पाठवले जाते. उदाampअशा मॉड्युल्सचे लेस म्हणजे जनरल पर्पज रजिस्टर File, स्टेटस रजिस्टर आणि डेटा मेमरी ज्यामध्ये स्टॅक पॉइंटर आहे. CPU घड्याळ थांबवल्याने कोर सामान्य ऑपरेशन्स आणि गणना करण्यापासून प्रतिबंधित करते.

I/O घड्याळ - clkI/O

I/O घड्याळ बहुतेक I/O मॉड्यूल्सद्वारे वापरले जाते, जसे की टाइमर/काउंटर. I/O घड्याळ बाह्य व्यत्यय मॉड्यूलद्वारे देखील वापरले जाते, परंतु लक्षात घ्या की काही बाह्य व्यत्यय असिंक्रोनस लॉजिकद्वारे शोधले जातात, ज्यामुळे I/O घड्याळ थांबले तरीही अशा व्यत्ययांचा शोध घेतला जाऊ शकतो.

फ्लॅश घड्याळ - clkFLASH

फ्लॅश घड्याळ फ्लॅश इंटरफेसचे ऑपरेशन नियंत्रित करते. फ्लॅश घड्याळ सहसा CPU घड्याळासोबत एकाच वेळी सक्रिय असते.

ADC घड्याळ - clkADC

ADC ला समर्पित घड्याळ डोमेन प्रदान केले आहे. हे डिजिटल सर्किटरीद्वारे निर्माण होणारा आवाज कमी करण्यासाठी CPU आणि I/O घड्याळे थांबवण्यास अनुमती देते. हे अधिक अचूक ADC रूपांतरण परिणाम देते.

फास्ट पेरिफेरल क्लॉक जनरेशनसाठी अंतर्गत पीएलएल – clkPCK

ATtiny25/45/85 मधील अंतर्गत PLL एक घड्याळ वारंवारता निर्माण करते जी स्त्रोत इनपुटमधून 8x गुणाकार केली जाते. डीफॉल्टनुसार, PLL अंतर्गत, 8.0 MHz RC ऑसिलेटरचे आउटपुट स्त्रोत म्हणून वापरते. वैकल्पिकरित्या, जर PLLCSR चा बिट LSM सेट केला असेल तर PLL दोन ने भागलेल्या RC ऑसिलेटरचे आउटपुट वापरेल. अशा प्रकारे पीएलएलचे आउटपुट, वेगवान परिधीय घड्याळ 64 मेगाहर्ट्झ आहे. वेगवान परिधीय घड्याळ, किंवा त्यापासून प्रीस्केल केलेले घड्याळ, टाइमर/काउंटर1 किंवा सिस्टम घड्याळासाठी घड्याळ स्त्रोत म्हणून निवडले जाऊ शकते. पहा आकृती 6-2. जेव्हा PLLCSR चे LSM सेट केले जाते तेव्हा वेगवान परिधीय घड्याळाची वारंवारता दोनने भागली जाते, परिणामी घड्याळाची वारंवारता 32 MHz होते. लक्षात ठेवा, PLLCLK सिस्टम घड्याळ म्हणून वापरल्यास LSM सेट करता येणार नाही.

आकृती 6-2. PCK क्लॉकिंग सिस्टम. PCK घड्याळ

पीएलएल आरसी ऑसिलेटरवर लॉक केलेले आहे आणि OSCCAL रजिस्टरद्वारे आरसी ऑसिलेटर समायोजित केल्याने त्याच वेळी वेगवान परिधीय घड्याळ समायोजित होईल. तथापि, जरी RC ऑसीलेटर 8 MHz पेक्षा जास्त फ्रिक्वेन्सीवर नेले तरीही, वेगवान परिधीय घड्याळ वारंवारता 85 MHz (सर्वात वाईट स्थिती) वर संतृप्त होते आणि जास्तीत जास्त फ्रिक्वेन्सीमध्ये दोलन होत राहते. हे लक्षात घ्यावे की या प्रकरणातील पीएलएल आता आरसी ऑसिलेटर घड्याळाने लॉक केलेले नाही. म्हणून, PLL योग्य ऑपरेटिंग रेंजमध्ये ठेवण्यासाठी OSCCAL समायोजनांना 8 MHz पेक्षा जास्त वारंवारता न घेण्याची शिफारस केली जाते.

अंतर्गत PLL सक्षम केले जाते जेव्हा:

रजिस्टर PLLCSR मधील PLLE बिट सेट केला आहे.

CKSEL फ्यूज '0001' वर प्रोग्राम केलेले आहे.

CKSEL फ्यूज '0011' वर प्रोग्राम केलेले आहे.

PLL लॉक असताना PLLCSR बिट PLOCK सेट केला जातो. अंतर्गत RC ऑसिलेटर आणि PLL दोन्ही पॉवर डाउन आणि स्टँड-बाय स्लीप मोडमध्ये बंद आहेत.

ATtiny15 सुसंगतता मोडमध्ये अंतर्गत PLL

ATtiny25/45/85 हे ATtiny15 वापरकर्त्यांसाठी मायग्रेशन डिव्हाइस असल्याने बॅक-वॉर्ड सुसंगततेसाठी ATtiny15 सुसंगतता मोड आहे. CKSEL फ्यूज '15' ला प्रोग्रामिंग करून ATtiny0011 सुसंगतता मोड निवडला जातो.

ATtiny15 सहत्वता मोडमध्ये अंतर्गत RC ऑसिलेटरची वारंवारता 6.4 MHz पर्यंत खाली कॅलिब्रेट केली जाते आणि PLL चा गुणाकार घटक 4x वर सेट केला जातो. पहा आकृती 6-3. या समायोजनांसह क्लॉकिंग सिस्टम ATtiny15-सुसंगत आहे आणि परिणामी वेगवान परिधीय घड्याळाची वारंवारता 25.6 MHz आहे (ATtiny15 प्रमाणेच).

आकृती 6-3. ATtiny15 सुसंगतता मोडमध्ये PCK क्लॉकिंग सिस्टम. क्लॉकिंग सिस्टम

घड्याळ स्त्रोत

डिव्हाइसमध्ये खालील घड्याळ स्त्रोत पर्याय आहेत, जे खाली दर्शविल्याप्रमाणे फ्लॅश फ्यूज बिट्सद्वारे निवडता येऊ शकतात. निवडलेल्या स्रोतातील घड्याळ AVR घड्याळ जनरेटरमध्ये इनपुट केले जाते आणि योग्य मॉड्यूल्सकडे राउट केले जाते.

तक्ता 6-1. डिव्हाइस क्लॉकिंग पर्याय निवडा

डिव्हाइस क्लॉकिंग पर्याय CKSEL[3:0](१)
बाह्य घड्याळ (पहा पृष्ठ 26) 0000
उच्च वारंवारता PLL घड्याळ (पहा पृष्ठ 26) 0001
कॅलिब्रेटेड अंतर्गत ऑसिलेटर (पहा पृष्ठ 27) 0010(१)
कॅलिब्रेटेड अंतर्गत ऑसिलेटर (पहा पृष्ठ 27) 0011(१)
अंतर्गत 128 kHz ऑसिलेटर (पहा पृष्ठ 28) 0100
कमी-फ्रिक्वेंसी क्रिस्टल ऑसिलेटर (पहा पृष्ठ 29) 0110
क्रिस्टल ऑसिलेटर / सिरॅमिक रेझोनेटर (पहा पृष्ठ 29) ८७८ - १०७४
राखीव 0101, 0111

सर्व फ्यूजसाठी "1" म्हणजे अनप्रोग्राम केलेले तर "0" म्हणजे प्रोग्राम केलेले.

हा पर्याय निवडून डिव्हाइस पाठवले जाते.

हे ATtiny15 सुसंगतता मोड निवडेल, जेथे सिस्टम घड्याळ चार ने विभाजित केले जाते, परिणामी 1.6 MHz घड्याळ वारंवारता येते. अधिक माहितीसाठी, पहा पृष्ठ २७ वर “कॅलिब्रेटेड अंतर्गत ऑसिलेटर”.

प्रत्येक क्लॉकिंग पर्यायासाठी विविध पर्याय खालील विभागांमध्ये दिले आहेत. जेव्हा CPU पॉवर-डाउन वरून उठतो, तेव्हा निवडलेल्या घड्याळाचा स्रोत स्टार्ट-अपच्या वेळेसाठी वापरला जातो, निर्देशांची अंमलबजावणी सुरू होण्यापूर्वी स्थिर ऑसिलेटर ऑपरेशन सुनिश्चित करते. जेव्हा CPU रिसेटपासून सुरू होते, तेव्हा सामान्य ऑपरेशन सुरू करण्यापूर्वी पॉवर स्थिर स्तरावर पोहोचण्यास अनुमती देऊन अतिरिक्त विलंब होतो. वॉचडॉग ऑसिलेटरचा वापर स्टार्ट-अप वेळेच्या या रिअल-टाइम भागाच्या वेळेसाठी केला जातो. प्रत्येक टाइम-आउटसाठी वापरल्या जाणार्‍या WDT ऑसिलेटर सायकलची संख्या यामध्ये दर्शविली आहे तक्ता 6-2.

तक्ता 6-2. वॉचडॉग ऑसिलेटर सायकलची संख्या

टाइम-आउट टाइप करा सायकलची संख्या
4 ms 512
64 ms 8K (8,192)

बाह्य घड्याळ

बाह्य घड्याळ स्रोतावरून उपकरण चालवण्यासाठी, CLKI मध्ये दाखवल्याप्रमाणे चालवले पाहिजे आकृती 6-4. बाह्य घड्याळावर डिव्हाइस चालविण्यासाठी, CKSEL फ्यूज "00" वर प्रोग्राम केलेले असणे आवश्यक आहे.

आकृती 6-4. बाह्य घड्याळ ड्राइव्ह कॉन्फिगरेशन

अंजीर 6.4

जेव्हा हे घड्याळ स्त्रोत निवडले जाते, तेव्हा स्टार्ट-अप वेळा SUT फ्यूजद्वारे निर्धारित केल्या जातात तक्ता 6-3.

तक्ता 6-3. बाह्य घड्याळ निवडीसाठी स्टार्ट-अप वेळ

SUT[1:0] पॉवर-डाउन पासून स्टार्ट-अप वेळ रीसेट पासून अतिरिक्त विलंब शिफारस केलेला वापर
00 6 सीके 14CK BOD सक्षम
01 6 सीके 14CK + 4 ms वेगाने वाढणारी शक्ती
10 6 सीके 14CK + 64 ms हळूहळू वाढणारी शक्ती
11 राखीव

बाह्य घड्याळ लागू करताना, MCU चे स्थिर ऑपरेशन सुनिश्चित करण्यासाठी लागू घड्याळ वारंवारता मध्ये अचानक बदल टाळणे आवश्यक आहे. एका घड्याळाच्या चक्रापासून दुस-या घड्याळाच्या 2% पेक्षा जास्त वारंवारतेतील फरक अप्रत्याशित वर्तनास कारणीभूत ठरू शकतो. घड्याळाच्या वारंवारतेतील अशा बदलांदरम्यान MCU रीसेटमध्ये ठेवले आहे याची खात्री करणे आवश्यक आहे.

लक्षात ठेवा की सिस्टम क्लॉक प्रीसेलचा वापर स्थिर ऑपरेशन सुनिश्चित करताना अंतर्गत घड्याळ वारंवारतेच्या रन-टाइम बदलांची अंमलबजावणी करण्यासाठी केला जाऊ शकतो. पहा पृष्ठ ३१ वर “सिस्टम क्लॉक प्रीस्केलर” तपशीलांसाठी.

उच्च वारंवारता PLL घड्याळ

पेरिफेरल टाइमर/काउंटर64 वापरण्यासाठी आणि सिस्टम क्लॉक सोर्ससाठी आरसी ऑसिलेटरला लॉक केलेला एक अंतर्गत PLL आहे जो नाममात्र 1 MHz क्लॉक रेट प्रदान करतो. सिस्टीम क्लॉक सोर्स म्हणून निवडल्यावर, CKSEL फ्यूज '0001' ला प्रोग्रामिंग करून, त्यात दाखवल्याप्रमाणे चार ने भागले जाते. तक्ता 6-4.

तक्ता 6-4. उच्च वारंवारता PLL घड्याळ ऑपरेटिंग मोड

CKSEL[3:0] नाममात्र वारंवारिता
0001 16 MHz

जेव्हा हा घड्याळ स्रोत निवडला जातो, तेव्हा स्टार्ट-अपची वेळ SUT फ्यूजद्वारे निर्धारित केली जाते तक्ता 6-5.

तक्ता 6-5. उच्च वारंवारता PLL घड्याळासाठी स्टार्ट-अप वेळ

SUT[1:0] पॉवर डाउन पासून स्टार्ट-अप वेळ पॉवर-ऑन रीसेट पासून अतिरिक्त विलंब (VCC = 5.0V) शिफारस केलेला वापर
00 14CK + 1K (1024) CK + 4 ms 4 ms BOD सक्षम

तक्ता 6-5. उच्च वारंवारता PLL घड्याळासाठी स्टार्ट-अप वेळ

SUT[1:0] पॉवर डाउन पासून स्टार्ट-अप वेळ पॉवर-ऑन रीसेट पासून अतिरिक्त विलंब (VCC = 5.0V) शिफारस केलेला वापर
01 14CK + 16K (16384) CK + 4 ms 4 ms वेगाने वाढणारी शक्ती
10 14CK + 1K (1024) CK + 64 ms 4 ms हळूहळू वाढणारी शक्ती
11 14CK + 16K (16384) CK + 64 ms 4 ms हळूहळू वाढणारी शक्ती

कॅलिब्रेटेड अंतर्गत ऑसिलेटर

डीफॉल्टनुसार, अंतर्गत RC ऑसिलेटर अंदाजे 8.0 MHz घड्याळ प्रदान करते. जरी खंडtagई आणि तापमान अवलंबून, हे घड्याळ वापरकर्त्याद्वारे अगदी अचूकपणे कॅलिब्रेट केले जाऊ शकते. पहा "कॅलिब्रेटेड अंतर्गत आरसी ऑसिलेटर एक्यू- racy” पृष्ठ 164 वर आणि पृष्ठ 192 वर “इंटर्नल ऑसिलेटर स्पीड” अधिक तपशीलांसाठी. डिव्हाइस CKDIV8 फ्यूज प्रोग्राम केलेले पाठवले आहे. पहा पृष्ठ ३१ वर “सिस्टम क्लॉक प्रीस्केलर” अधिक तपशीलांसाठी.

हे घड्याळ सिस्टीम घड्याळ म्हणून CKSEL फ्यूज प्रोग्रामिंग करून निवडले जाऊ शकते पृष्ठावरील तक्ता 6-6

27. निवडल्यास, ते कोणत्याही बाह्य घटकांशिवाय कार्य करेल. रीसेट करताना, हार्डवेअर पूर्व-प्रोग्राम केलेले कॅलिब्रेशन मूल्य OSCCAL रजिस्टरमध्ये लोड करते आणि त्याद्वारे आपोआप RC ऑसिलेटर कॅलिब्रेट करते. या कॅलिब्रेशनची अचूकता फॅक्टरी कॅलिब्रेशन मध्ये दर्शविली आहे पृष्ठ 21 वर तक्ता 2-164.

SW वरून OSCCAL रजिस्टर बदलून, पहा पृष्ठ ३१ वर “OSCCAL – ऑसिलेटर कॅलिब्रेशन रजिस्टर”, फॅक्टरी कॅलिब्रेशन वापरण्यापेक्षा उच्च कॅलिब्रेशन अचूकता मिळवणे शक्य आहे. या कॅलिब्रेशनची अचूकता वापरकर्ता कॅलिब्रेशन मध्ये दर्शविली आहे पृष्ठ 21 वर तक्ता 2-164.

जेव्हा हे ऑसिलेटर चिप घड्याळ म्हणून वापरले जाते, तेव्हा वॉचडॉग ऑसिलेटर अजूनही वॉचडॉग टाइमर आणि रीसेट टाइम-आउटसाठी वापरला जाईल. प्री-प्रोग्राम केलेल्या कॅलिब्रेशन मूल्याबद्दल अधिक माहितीसाठी, विभाग पहा "कॅली- पृष्ठ 150 वर bration Bytes.

अंतर्गत ऑसीलेटरला 6.4 मेगाहर्ट्झचे घड्याळ CKSEL फ्यूज "0011" असे लिहून देखील सेट केले जाऊ शकते, जसे मध्ये दाखवले आहे. तक्ता 6-6 खाली या सेटिंगला ATtiny15 सुसंगतता मोड म्हणून संदर्भित केले जाते आणि ATtiny6.4 प्रमाणे 15 MHz वर कॅलिब्रेटेड घड्याळ स्त्रोत प्रदान करण्याचा हेतू आहे. ATtiny15 कंपॅटिबिलिटी मोडमध्ये PLL टाइमर/काउंटर6.4 साठी 25.6 MHz परिधीय घड्याळ सिग्नल तयार करण्यासाठी 1 MHz वर चालणारे अंतर्गत ऑसिलेटर वापरते (पहा “8-बिट टाइमर/काउंटर1 इंच पृष्ठ 15 वर ATtiny95 मोड”). लक्षात घ्या की ऑपरेशनच्या या मोडमध्ये 6.4 MHz घड्याळ सिग्नल नेहमी चार ने विभागलेला असतो, 1.6 MHz सिस्टम घड्याळ प्रदान करतो.

तक्ता 6-6. अंतर्गत कॅलिब्रेटेड आरसी ऑसिलेटर ऑपरेटिंग मोड्स

CKSEL[3:0] नाममात्र वारंवारिता
0010(१) 8.0 MHz
0011(१) 6.4 MHz

हा पर्याय निवडून डिव्हाइस पाठवले जाते.

हे सेटिंग ATtiny15 सुसंगतता मोड निवडेल, जेथे सिस्टीम घड्याळ चारने विभाजित केले जाते, परिणामी 1.6 MHz घड्याळ वारंवारता येते.

जेव्हा कॅलिब्रेटेड 8 मेगाहर्ट्झ अंतर्गत आंदोलक घड्याळाचा स्रोत म्हणून निवडला जातो तेव्हा स्टार्ट-अप वेळा SUT फ्यूजद्वारे निर्धारित केल्या जातात. तक्ता 6-7 खाली

तक्ता 6-7. अंतर्गत कॅलिब्रेटेड आरसी ऑसिलेटर घड्याळासाठी स्टार्ट-अप वेळ

SUT[1:0] पॉवर-डाउन पासून स्टार्ट-अप वेळ रीसेट करण्यासाठी अतिरिक्त विलंब (VCC = 5.0V) शिफारस केलेला वापर
00 6 सीके 14CK(१) BOD सक्षम
01 6 सीके 14CK + 4 ms वेगाने वाढणारी शक्ती
10(१) 6 सीके 14CK + 64 ms हळूहळू वाढणारी शक्ती
11 राखीव

1. जर RSTDISBL फ्यूज प्रोग्राम केलेले असेल, तर प्रोग्रामिंग मोडमध्ये प्रवेश करता येईल याची खात्री करण्यासाठी हा स्टार्ट-अप वेळ 14CK + 4 ms पर्यंत वाढवला जाईल.
2. निवडलेल्या या पर्यायासह डिव्हाइस पाठवले जाते.

ATtiny15 कंपॅटिबिलिटी मोडमध्ये स्टार्ट-अपची वेळ SUT फ्यूजद्वारे निर्धारित केली जाते. तक्ता 6-8 खाली

तक्ता 6-8. अंतर्गत कॅलिब्रेटेड आरसी ऑसिलेटर घड्याळासाठी स्टार्ट-अप वेळ (ATtiny15 मोडमध्ये)

SUT[1:0] पॉवर-डाउन पासून स्टार्ट-अप वेळ रीसेट करण्यासाठी अतिरिक्त विलंब (VCC = 5.0V) शिफारस केलेला वापर
00 6 सीके 14CK + 64 ms
01 6 सीके 14CK + 64 ms
10 6 सीके 14CK + 4 ms
11 1 सीके 14CK(१)

टीप: जर RSTDISBL फ्यूज प्रोग्राम केलेले असेल, तर प्रोग्रामिंग मोडमध्ये प्रवेश करता येईल याची खात्री करण्यासाठी ही स्टार्ट-अप वेळ 14CK + 4 ms पर्यंत वाढवली जाईल.

सारांश, ATtiny15 सुसंगतता मोडबद्दल अधिक माहिती विभागांमध्ये आढळू शकते “पोर्ट B (PB5:PB0)” चालू पृष्ठ 2पृष्ठ 15 वर “ATtiny24 सुसंगतता मोडमध्ये अंतर्गत PLL”“8-बिट टायमर/काउंटर1 ATtiny15 मोडमध्ये” चालू पृष्ठ 95पृष्ठ 140 वर "debugWIRE च्या मर्यादा".पृष्ठ 150 वर “कॅलिब्रेशन बाइट्स” आणि टेबलमध्ये "घड्याळ प्रीस्केलर पृष्ठ ३३ वर” निवडा.

अंतर्गत 128 kHz ऑसिलेटर

128 kHz अंतर्गत ऑसीलेटर हे 128 kHz चे घड्याळ प्रदान करणारे कमी पॉवर ऑसिलेटर आहे. वारंवारता 3V आणि 25°C वर नाममात्र आहे. हे घड्याळ CKSEL फ्यूजला "0100" वर प्रोग्रामिंग करून सिस्टम घड्याळ म्हणून निवडले जाऊ शकते.

जेव्हा हे घड्याळ स्त्रोत निवडले जाते, तेव्हा स्टार्ट-अप वेळा SUT फ्यूजद्वारे निर्धारित केल्या जातात तक्ता 6-9.

तक्ता 6-9. 128 kHz अंतर्गत ऑसिलेटरसाठी स्टार्ट-अप वेळ

SUT[1:0] पॉवर-डाउन पासून स्टार्ट-अप वेळ रीसेट पासून अतिरिक्त विलंब शिफारस केलेला वापर
00 6 सीके 14CK(१) BOD सक्षम
01 6 सीके 14CK + 4 ms वेगाने वाढणारी शक्ती
10 6 सीके 14CK + 64 ms हळूहळू वाढणारी शक्ती
11 राखीव

टीप: जर RSTDISBL फ्यूज प्रोग्राम केलेले असेल, तर प्रोग्रामिंग मोडमध्ये प्रवेश करता येईल याची खात्री करण्यासाठी ही स्टार्ट-अप वेळ 14CK + 4 ms पर्यंत वाढवली जाईल.

कमी-फ्रिक्वेंसी क्रिस्टल ऑसिलेटर

उपकरणासाठी घड्याळ स्रोत म्हणून 32.768 kHz वॉच क्रिस्टल वापरण्यासाठी, CKSEL फ्यूज '0110' वर सेट करून लो-फ्रिक्वेंसी क्रिस्टल ऑसिलेटर निवडणे आवश्यक आहे. मध्ये दाखवल्याप्रमाणे क्रिस्टल जोडलेले असावे आकृती 6-5. 32.768 kHz क्रिस्टलसाठी योग्य लोड कॅपेसिटन्स शोधण्यासाठी, कृपया निर्मात्याच्या डेटाशीटचा सल्ला घ्या.

जेव्हा हे ऑसिलेटर निवडले जाते, तेव्हा स्टार्ट-अप वेळा SUT फ्यूजद्वारे निर्धारित केल्या जातात तक्ता 6-10.

तक्ता 6-10. कमी वारंवारता क्रिस्टल ऑसिलेटर घड्याळ निवडीसाठी स्टार्ट-अप वेळ

SUT[1:0] पॉवर डाउन पासून स्टार्ट-अप वेळ रीसेट करण्यासाठी अतिरिक्त विलंब (VCC = 5.0V) शिफारस केलेला वापर
00 1K (1024) CK(१) 4 ms जलद वाढणारी शक्ती किंवा BOD सक्षम
01 1K (1024) CK(१) 64 ms हळूहळू वाढणारी शक्ती
10 32K (32768) CK 64 ms स्टार्ट-अपवर स्थिर वारंवारता
11 राखीव

टीप: स्टार्ट-अपमध्ये वारंवारता स्थिरता महत्त्वाची नसल्यासच हे पर्याय वापरले जावेत.

लो-फ्रिक्वेंसी क्रिस्टल ऑसिलेटर अंतर्गत लोड कॅपेसिटन्स प्रदान करतो, पहा तक्ता 6-11 प्रत्येक TOSC पिनवर.

तक्ता 6-11. कमी-फ्रिक्वेंसी क्रिस्टल ऑसिलेटरची क्षमता

साधन 32 kHz Osc. प्रकार कॅप (Xtal1/Tosc1) कॅप (Xtal2/Tosc2)
ATtiny25/45/85 सिस्टम Osc. 16 pF 6 pF

क्रिस्टल ऑसिलेटर / सिरॅमिक रेझोनेटर

XTAL1 आणि XTAL2 हे इनव्हर्टिंगचे अनुक्रमे इनपुट आणि आउटपुट आहेत ampलाइफायर जे ऑन-चिप ऑसिलेटर म्हणून वापरण्यासाठी कॉन्फिगर केले जाऊ शकते, जसे मध्ये दाखवले आहे आकृती 6-5. एकतर क्वार्ट्ज क्रिस्टल किंवा सिरेमिक रेझोनेटर वापरले जाऊ शकते.

C1 आणि C2 दोन्ही क्रिस्टल्स आणि रेझोनेटर्ससाठी नेहमी समान असले पाहिजेत. कॅपॅसिटरचे इष्टतम मूल्य वापरात असलेल्या क्रिस्टल किंवा रेझोनेटर, स्ट्रे कॅपेसिटन्सचे प्रमाण आणि पर्यावरणाच्या इलेक्ट्रोमॅग्नेटिक आवाजावर अवलंबून असते. क्रिस्टल्ससह वापरण्यासाठी कॅपेसिटर निवडण्यासाठी काही प्रारंभिक मार्गदर्शक तत्त्वे दिली आहेत तक्ता 6-12 खाली सिरेमिक रेझोनेटर्ससाठी, निर्मात्याने दिलेली कॅपेसिटर मूल्ये वापरली पाहिजेत.

तक्ता 6-12. क्रिस्टल ऑसिलेटर ऑपरेटिंग मोड्स

CKSEL[3:1] वारंवारता श्रेणी (मेगाहर्ट्झ) क्रिस्टल्स (pF) सह वापरण्यासाठी कॅपेसिटर C1 आणि C2 साठी शिफारस केलेली श्रेणी
100(१) ८७८ - १०७४
101 ८७८ - १०७४ ८७८ - १०७४
110 ८७८ - १०७४ ८७८ - १०७४
111 २ – ८७८ - १०७४

नोट्स: हा पर्याय क्रिस्टल्ससह वापरला जाऊ नये, फक्त सिरेमिक रेझोनेटर्ससह.

ऑसिलेटर तीन वेगवेगळ्या मोडमध्ये ऑपरेट करू शकतो, प्रत्येक विशिष्ट वारंवारता श्रेणीसाठी अनुकूल आहे. ऑपरेटिंग मोड फ्यूज CKSEL [३:१] मध्ये दाखवल्याप्रमाणे निवडला जातो तक्ता 6-12.

CKSEL0 फ्यूज SUT सह एकत्रितपणे[1:0] फ्यूज स्टार्ट-अप वेळा निवडतात. तक्ता 6-13.

तक्ता 6-13. क्रिस्टल ऑसिलेटर घड्याळ निवडीसाठी स्टार्ट-अप वेळ

CKSEL0 SUT[1:0] पॉवर-डाउन पासून स्टार्ट-अप वेळ रीसेट पासून अतिरिक्त विलंब शिफारस केलेला वापर
0 00 258 सीके(१) 14CK + 4 ms सिरेमिक रेझोनेटर, वेगाने वाढणारी शक्ती
0 01 258 सीके(१) 14CK + 64 ms सिरेमिक रेझोनेटर, हळूहळू वाढणारी शक्ती
0 10 1K (1024) CK(१) 14CK सिरॅमिक रेझोनेटर, BOD सक्षम
0 11 1K (1024)CK(१) 14CK + 4 ms सिरेमिक रेझोनेटर, वेगाने वाढणारी शक्ती
1 00 1K (1024)CK(१) 14CK + 64 ms सिरेमिक रेझोनेटर, हळूहळू वाढणारी शक्ती
1 01 16K (16384) CK 14CK क्रिस्टल ऑसिलेटर, बीओडी सक्षम
1 10 16K (16384) CK 14CK + 4 ms क्रिस्टल ऑसिलेटर, वेगाने वाढणारी शक्ती
1 11 16K (16384) CK 14CK + 64 ms क्रिस्टल ऑसिलेटर, हळूहळू वाढणारी शक्ती

नोट्स

हे पर्याय केवळ डिव्हाइसच्या कमाल वारंवारतेच्या जवळ चालत नसताना वापरावेत आणि अनुप्रयोगासाठी स्टार्ट-अपच्या वेळी वारंवारता स्थिरता महत्त्वाची नसेल तरच. हे पर्याय क्रिस्टल्ससाठी योग्य नाहीत.

हे पर्याय सिरेमिक रेझोनेटर्ससह वापरण्यासाठी आहेत आणि स्टार्ट-अपच्या वेळी वारंवारता स्थिरता सुनिश्चित करतील. यंत्राच्या कमाल वारंवारतेच्या जवळ कार्यरत नसताना आणि स्टार्ट-अपच्या वेळी वारंवारता स्थिरता अनुप्रयोगासाठी महत्त्वाची नसल्यास ते क्रिस्टल्ससह देखील वापरले जाऊ शकतात.

डीफॉल्ट घड्याळ स्रोत

डिव्हाइस CKSEL = “0010”, SUT = “10”, आणि CKDIV8 प्रोग्राम केलेले पाठवले आहे. डिफॉल्ट क्लॉक सोर्स सेटिंग म्हणून सर्वात जास्त स्टार्ट-अप वेळेसह 8 MHz वर चालणारे अंतर्गत RC ऑसिलेटर आहे आणि 8 चे प्रारंभिक सिस्टम क्लॉक प्रीस्केलिंग आहे, परिणामी 1.0 MHz सिस्टम घड्याळ आहे. हे डीफॉल्ट सेटिंग सुनिश्चित करते की सर्व वापरकर्ते इन-सिस्टम किंवा उच्च-व्हॉल्यूम वापरून त्यांचे इच्छित घड्याळ स्रोत सेटिंग करू शकतात.tagई प्रोग्रामर.

सिस्टम क्लॉक प्रीस्केलर

ATtiny25/45/85 सिस्टम घड्याळ सेट करून विभाजित केले जाऊ शकते पृष्ठ ३२ वर “CLKPR – घड्याळ प्रीस्केल रजिस्टर”. जेव्हा प्रक्रिया शक्तीची आवश्यकता कमी असते तेव्हा हे वैशिष्ट्य वीज वापर कमी करण्यासाठी वापरले जाऊ शकते. हे सर्व घड्याळ स्रोत पर्यायांसह वापरले जाऊ शकते आणि ते CPU आणि सर्व समकालिक परिधीयांच्या घड्याळ वारंवारता प्रभावित करेल. clkI/O, clkADC, clkCPU, आणि clkFLASH मध्ये दर्शविल्याप्रमाणे एका घटकाने विभाजित केले आहे पृष्ठ 6 वर तक्ता 15-33.

स्विचिंग वेळ

प्रीस्केलर सेटिंग्ज दरम्यान स्विच करताना, सिस्टम क्लॉक प्रीस्केलर हे सुनिश्चित करतो की घड्याळ प्रणालीमध्ये कोणतीही अडचण येणार नाही आणि कोणतीही मध्यवर्ती वारंवारता मागील सेटिंगशी संबंधित घड्याळ वारंवारता किंवा नवीन सेटिंगशी संबंधित घड्याळ वारंवारता यापेक्षा जास्त नाही.

प्रीस्केलर लागू करणारा रिपल काउंटर अविभाजित घड्याळाच्या वारंवारतेवर चालतो, जो CPU च्या घड्याळाच्या वारंवारतेपेक्षा वेगवान असू शकतो. त्यामुळे, प्रीस्केलरची स्थिती निश्चित करणे शक्य नाही - जरी ते वाचनीय असले तरीही, आणि एका घड्याळ विभागातून दुसर्‍या घड्याळाच्या विभागात जाण्यासाठी नेमका किती वेळ लागतो याचा अचूक अंदाज लावता येत नाही.

CLKPS मूल्ये लिहिल्यापासून, नवीन घड्याळ वारंवारता सक्रिय होण्यापूर्वी T1 + T2 आणि T1 + 2*T2 दरम्यान लागतो. या मध्यांतरात, 2 सक्रिय घड्याळाच्या कडा तयार केल्या जातात. येथे, T1 हा मागील घड्याळाचा कालावधी आहे, आणि T2 हा नवीन प्रीस्केलर सेटिंगशी संबंधित कालावधी आहे.

घड्याळ आउटपुट बफर

डिव्हाइस CLKO पिनवर सिस्टम घड्याळ आउटपुट करू शकते (जेव्हा XTAL2 पिन म्हणून वापरले जात नाही). आउटपुट सक्षम करण्यासाठी, CKOUT फ्यूज प्रोग्राम केलेले असणे आवश्यक आहे. जेव्हा चिप घड्याळ सिस्टमवरील इतर सर्किट्स चालविण्यासाठी वापरले जाते तेव्हा हा मोड योग्य असतो. लक्षात ठेवा की रीसेट करताना घड्याळ आउटपुट होणार नाही आणि फ्यूज प्रोग्राम केल्यावर I/O पिनचे सामान्य ऑपरेशन ओव्हरराइड केले जाईल. जेव्हा घड्याळ CLKO वर आउटपुट होते तेव्हा अंतर्गत RC ऑसिलेटर, WDT ऑसिलेटर, PLL आणि बाह्य घड्याळ (CLKI) निवडले जाऊ शकते. Crystal oscillators (XTAL1, XTAL2) CLKO वर घड्याळ आउटपुटसाठी वापरले जाऊ शकत नाहीत. जर सिस्टम क्लॉक प्रीस्केलर वापरला असेल, तर ते विभाजित सिस्टम घड्याळ आहे जे आउटपुट आहे.

नोंदणी वर्णन

OSCCAL - ऑसिलेटर कॅलिब्रेशन रजिस्टर

बिट 7 6 5 4 3 2 1 0
0x31 CAL7 CAL6 CAL5 CAL4 CAL3 CAL2 CAL1 CAL0 OSCCAL
वाचा/लिहा R/W R/W R/W R/W R/W R/W R/W R/W

बिट्स 7:0 – CAL[7:0]: ऑसिलेटर कॅलिब्रेशन व्हॅल्यू

ऑसिलेटर कॅलिब्रेशन रजिस्टरचा वापर कॅलिब्रेटेड इंटर्नल आरसी ऑसिलेटर ट्रिम करण्यासाठी ऑसिलेटर फ्रिक्वेंसीमधून प्रक्रिया भिन्नता काढून टाकण्यासाठी केला जातो. चिप रिसेट दरम्यान या रजिस्टरवर प्री-प्रोग्राम केलेले कॅलिब्रेशन मूल्य स्वयंचलितपणे लिहिले जाते, फॅक्टरी कॅलिब्रेटेड फ्रिक्वेंसी मध्ये निर्दिष्ट केल्यानुसार पृष्ठ 21 वर तक्ता 2-164. ऑसिलेटर वारंवारता बदलण्यासाठी ऍप्लिकेशन सॉफ्टवेअर हे रजिस्टर लिहू शकते. मध्ये निर्दिष्ट केल्यानुसार ऑसिलेटर फ्रिक्वेन्सीनुसार कॅलिब्रेट केले जाऊ शकते पृष्ठ 21 वर तक्ता 2-164. त्या श्रेणीबाहेरील कॅलिब्रेशनची हमी नाही.

लक्षात घ्या की या ऑसिलेटरचा वापर EEPROM आणि फ्लॅश राईट ऍक्सेसच्या वेळेसाठी केला जातो आणि या लेखन वेळा त्यानुसार प्रभावित होतील. EEPROM किंवा Flash लिहिलेले असल्यास, 8.8 MHz पेक्षा जास्त कॅलिब्रेट करू नका. अन्यथा, EEPROM किंवा Flash लेखन अयशस्वी होऊ शकते.

CAL7 बिट ऑसिलेटरच्या ऑपरेशनची श्रेणी निर्धारित करते. हा बिट 0 वर सेट केल्याने सर्वात कमी वारंवारता श्रेणी मिळते, हा बिट 1 वर सेट केल्याने उच्च वारंवारता श्रेणी मिळते. दोन वारंवारता श्रेणी ओव्हरलॅप होत आहेत, दुसऱ्या शब्दांत OSCCAL = 0x7F ची सेटिंग OSCCAL = 0x80 पेक्षा जास्त वारंवारता देते.

निवडलेल्या श्रेणीतील वारंवारता ट्यून करण्यासाठी CAL[6:0] बिट वापरले जातात. 0x00 ची सेटिंग त्या श्रेणीतील सर्वात कमी वारंवारता देते आणि 0x7F ची सेटिंग श्रेणीतील सर्वोच्च वारंवारता देते.

MCU चे स्थिर ऑपरेशन सुनिश्चित करण्यासाठी कॅलिब्रेशन मूल्य लहान मध्ये बदलले पाहिजे. एका चक्रापासून दुस-या चक्रापर्यंत 2% पेक्षा जास्त वारंवारतेतील फरक अप्रत्याशित वर्तनास कारणीभूत ठरू शकतो. प्रत्येक कॅलिब्रेशनसाठी OSCCAL मधील बदल 0x20 पेक्षा जास्त नसावेत. घड्याळाच्या वारंवारतेतील अशा बदलांदरम्यान MCU रीसेटमध्ये ठेवले आहे याची खात्री करणे आवश्यक आहे

तक्ता 6-14. अंतर्गत RC ऑसिलेटर वारंवारता श्रेणी

OSCCAL मूल्य नाममात्र वारंवारतेच्या संदर्भात ठराविक सर्वात कमी वारंवारता नाममात्र वारंवारतेच्या संदर्भात ठराविक सर्वोच्च वारंवारता
0x00 50% 100%
0x3F 75% 150%
0x7F 100% 200%

CLKPR - घड्याळ प्रीस्केल रजिस्टर

बिट 7 6 5 4 3 2 1 0
0x26 CLKPCE CLKPS3 CLKPS2 CLKPS1 CLKPS0 CLKPR
वाचा/लिहा R/W R R R R/W R/W R/W R/W

प्रारंभिक मूल्य 0 0 0 0 बिट वर्णन पहा

बिट 7 – CLKPCE: घड्याळ प्रीस्केलर बदल सक्षम करा

CLKPS बिट्सचे बदल सक्षम करण्यासाठी CLKPCE बिटला लॉजिक एक लिहिणे आवश्यक आहे. CLKPCE बिट फक्त तेव्हाच अपडेट केले जाते जेव्हा CLKPR मधील इतर बिट्स एकाच वेळी शून्यावर लिहिले जातात. CLKPCE लिहील्यानंतर किंवा CLKPS बिट्स लिहिल्यानंतर हार्डवेअर चार चक्रांद्वारे साफ केले जाते. या टाइम-आउट कालावधीमध्ये CLKPCE बिट पुन्हा लिहिल्याने टाइम-आउट कालावधी वाढविला जात नाही किंवा CLKPCE बिट साफ होत नाही.

बिट्स 6:4 – Res: आरक्षित बिट्स

हे बिट्स ATtiny25/45/85 मध्ये आरक्षित बिट आहेत आणि नेहमी शून्य म्हणून वाचले जातील.

बिट्स 3:0 – CLKPS[3:0]: क्लॉक प्रीस्केलर सिलेक्ट बिट्स 3 – 0

हे बिट्स निवडलेले घड्याळ स्त्रोत आणि अंतर्गत सिस्टम घड्याळ यांच्यातील विभाजन घटक परिभाषित करतात. अनुप्रयोग आवश्यकतांनुसार घड्याळ वारंवारता बदलण्यासाठी हे बिट्स रन-टाइम लिहिल्या जाऊ शकतात. विभाजक मास्टर क्लॉक इनपुटला MCU मध्ये विभाजित करतो म्हणून, जेव्हा डिव्हिजन फॅक्टर वापरला जातो तेव्हा सर्व सिंक्रोनस पेरिफेरल्सची गती कमी होते. विभाजन घटक दिले आहेत तक्ता 6-15.

घड्याळाच्या वारंवारतेतील अनावधानाने होणारे बदल टाळण्यासाठी, CLKPS बिट्स बदलण्यासाठी विशेष लेखन प्रक्रिया अवलंबावी लागेल:

क्लॉक प्रीस्केलर चेंज इनेबल (CLKPCE) बिट एक आणि इतर सर्व बिट्स CLKPR मध्ये शून्यावर लिहा.

चार चक्रांमध्ये, CLKPCE ला शून्य लिहिताना इच्छित मूल्य CLKPS वर लिहा.

लेखन प्रक्रियेत व्यत्यय येणार नाही याची खात्री करण्यासाठी प्रीस्केलर सेटिंग बदलताना व्यत्यय अक्षम करणे आवश्यक आहे.

CKDIV8 फ्यूज CLKPS बिट्सचे प्रारंभिक मूल्य निर्धारित करते. CKDIV8 अनप्रोग्राम केलेले असल्यास, CLKPS बिट्स “0000” वर रीसेट केले जातील. CKDIV8 प्रोग्राम केलेले असल्यास, CLKPS बिट्स "0011" वर रीसेट केले जातात, स्टार्टअपच्या वेळी आठचा डिव्हिजन फॅक्टर देतात. जर निवडलेल्या घड्याळाच्या स्त्रोतामध्ये सध्याच्या ऑपरेटिंग परिस्थितीत डिव्हाइसच्या कमाल वारंवारतेपेक्षा जास्त वारंवारता असेल तर हे वैशिष्ट्य वापरले पाहिजे. लक्षात ठेवा की CKDIV8 फ्यूज सेटिंगची पर्वा न करता CLKPS बिट्सवर कोणतेही मूल्य लिहिले जाऊ शकते. ऍप्लिकेशन सॉफ्टवेअरने हे सुनिश्चित केले पाहिजे की पुरेसा विभाजन घटक आहे

निवडलेल्या घड्याळाच्या स्त्रोतामध्ये सध्याच्या ऑपरेटिंग परिस्थितीत डिव्हाइसच्या कमाल वारंवारतेपेक्षा जास्त वारंवारता असल्यास निवडले जाते. डिव्हाइस CKDIV8 फ्यूज प्रोग्राम केलेले पाठवले आहे.

तक्ता 6-15. घड्याळ प्रीस्केलर निवडा

CLKPS3 CLKPS2 CLKPS1 CLKPS0 घड्याळ विभागणी घटक
0 0 0 0 1
0 0 0 1 2
0 0 1 0 4
0 0 1 1 8
0 1 0 0 16
0 1 0 1 32
0 1 1 0 64
0 1 1 1 128
1 0 0 0 256
1 0 0 1 राखीव
1 0 1 0 राखीव
1 0 1 1 राखीव
1 1 0 0 राखीव
1 1 0 1 राखीव
1 1 1 0 राखीव
1 1 1 1 राखीव

टीप: प्रीस्केलर ATtiny15 सुसंगतता मोडमध्ये अक्षम केले आहे आणि CLKPR ला लिहिणे किंवा CKDIV8 फ्यूज प्रोग्रामिंग केल्याने सिस्टम घड्याळावर कोणताही परिणाम होत नाही (जे नेहमी 1.6 MHz असेल).

पॉवर मॅनेजमेंट आणि स्लीप मोड

उच्च कार्यक्षमता आणि उद्योगातील आघाडीची कोड कार्यक्षमता AVR मायक्रोकंट्रोलरला कमी उर्जा असलेल्या अनुप्रयोगांसाठी एक आदर्श पर्याय बनवते. याव्यतिरिक्त, स्लीप मोड्स ऍप्लिकेशनला MCU मधील न वापरलेले मॉड्युल बंद करण्यास सक्षम करतात, ज्यामुळे वीज बचत होते. AVR विविध स्लीप मोड प्रदान करते जे वापरकर्त्याला अॅप्लिकेशनच्या गरजेनुसार वीज वापरासाठी अनुमती देते.

झोप मोड

पृष्ठ 6 वरील आकृती 1-23 विविध घड्याळ प्रणाली आणि त्यांचे वितरण ATtiny25/45/85 मध्ये सादर करते. योग्य स्लीप मोड निवडण्यात आकृती उपयुक्त आहे. तक्ता 7-1 विविध झोपेचे मोड आणि त्यांचे जागृत करण्याचे स्रोत दाखवते.

तक्ता 7-1. वेगवेगळ्या स्लीप मोडमध्ये सक्रिय घड्याळ डोमेन आणि वेक-अप स्रोत

सक्रिय घड्याळ डोमेन ऑसिलेटर जागृत स्रोत
स्लीप मोड clkCPU clkFLASH clkIO clkADC clkPCK मुख्य घड्याळ स्रोत सक्षम INT0 आणि पिन बदल SPM/EEPROM

तयार

 

USI प्रारंभ स्थिती

एडीसी इतर I/O वॉचडॉग व्यत्यय आणणे
निष्क्रिय X X X X X X X X X X
एडीसी आवाज कमी करणे X X X(१) X X X X
वीज खंडित X(१) X X

टीप: INT0 साठी, फक्त स्तर व्यत्यय.

तीनपैकी कोणत्याही स्लीप मोडमध्ये प्रवेश करण्‍यासाठी, MCUCR मधील SE bit ला लॉजिक एक लिहिणे आवश्‍यक आहे आणि स्लीप सूचना अंमलात आणणे आवश्‍यक आहे. MCUCR रजिस्टरमधील SM[1:0] बिट्स स्लीप सूचनेद्वारे कोणता स्लीप मोड (निष्क्रिय, ADC नॉइज रिडक्शन किंवा पॉवर-डाउन) सक्रिय केला जाईल हे निवडतात. पहा तक्ता 7-2 सारांशासाठी.

MCU स्लीप मोडमध्ये असताना सक्षम व्यत्यय आल्यास, MCU जागा होतो. MCU नंतर स्टार्ट-अप वेळेव्यतिरिक्त चार चक्रांसाठी थांबवले जाते, व्यत्यय दिनचर्या कार्यान्वित करते आणि SLEEP नंतरच्या सूचनांवरून पुन्हा अंमलबजावणी सुरू करते. रजिस्टरची सामग्री File आणि जेव्हा उपकरण झोपेतून जागे होते तेव्हा SRAM मध्ये बदल होत नाही. स्लीप मोड दरम्यान रीसेट झाल्यास, MCU जागे होतो आणि रीसेट व्हेक्टरमधून कार्यान्वित होतो.

टीप: जर वेक-अपसाठी लेव्हल ट्रिगर केलेला व्यत्यय वापरला गेला असेल तर MCU जागृत होण्यासाठी (आणि MCU ने व्यत्यय सेवा दिनचर्यामध्ये प्रवेश करण्यासाठी) बदललेली पातळी काही काळ धरून ठेवली पाहिजे. पहा पृष्ठ ४९ वर “बाह्य व्यत्यय” तपशीलांसाठी.

निष्क्रिय मोड

जेव्हा SM[1:0] बिट्स 00 वर लिहिल्या जातात, तेव्हा SLEEP सूचना MCU ला निष्क्रिय मोडमध्ये प्रवेश करते, CPU थांबवते परंतु Analog Comparator, ADC, USI, टाइमर/काउंटर, वॉचडॉग आणि इंटरप्ट सिस्टमला चालू ठेवण्याची परवानगी देते- खाणे हा स्लीप मोड मुळात clkCPU आणि clkFLASH थांबवतो, तर इतर घड्याळांना चालवू देतो.

निष्क्रिय मोड MCU ला बाह्य ट्रिगर केलेल्या व्यत्ययांपासून तसेच टाइमर ओव्हरफ्लो सारख्या अंतर्गत व्यत्ययांपासून जागृत होण्यास सक्षम करते. अॅनालॉग कम्पॅरेटर इंटरप्टमधून वेक-अप आवश्यक नसल्यास, एसीडी बिट सेट करून अॅनालॉग कंपॅरेटर बंद केला जाऊ शकतो. पृष्ठ १२० वर “ACSR – अॅनालॉग कंपॅरेटर कंट्रोल अँड स्टेटस रजिस्टर”. हे निष्क्रिय मोडमध्ये वीज वापर कमी करेल. ADC सक्षम असल्यास, हा मोड प्रविष्ट केल्यावर रूपांतरण आपोआप सुरू होते.

एडीसी नॉइज रिडक्शन मोड

जेव्हा SM[1:0] बिट्स 01 वर लिहिल्या जातात, तेव्हा SLEEP सूचना MCU ला ADC नॉइज रिडक्शन मोडमध्ये प्रवेश करते, CPU थांबवते परंतु ADC, बाह्य व्यत्यय आणि वॉचडॉगला कार्य चालू ठेवण्याची परवानगी देते (सक्षम असल्यास). हा स्लीप मोड clkI/O, clkCPU आणि clkFLASH थांबवतो, इतर घड्याळांना चालवण्याची परवानगी देतो.

हे ADC साठी आवाजाचे वातावरण सुधारते, उच्च रिझोल्यूशन मापन सक्षम करते. ADC सक्षम असल्यास, हा मोड प्रविष्ट केल्यावर रूपांतरण आपोआप सुरू होते. एडीसी रूपांतरण पूर्ण व्यत्यय याशिवाय, केवळ एक बाह्य रीसेट, एक वॉचडॉग रीसेट, एक ब्राउन-आउट रीसेट, एक SPM/EEPROM तयार व्यत्यय, INT0 वर एक बाह्य स्तर व्यत्यय किंवा पिन बदलाचा व्यत्यय MCU ला ADC आवाज कमी करण्यापासून जागृत करू शकतो. मोड

पॉवर-डाउन मोड

जेव्हा SM[1:0] बिट्स 10 वर लिहिले जातात, तेव्हा SLEEP सूचना MCU ला पॉवर-डाउन मोडमध्ये प्रवेश करते. या मोडमध्ये, ऑसीलेटर थांबवले जाते, बाह्य व्यत्यय असताना, यूएसआय कंडिशन डिटेक्शन सुरू करते आणि वॉचडॉग चालू ठेवते (सक्षम असल्यास). केवळ बाह्य रीसेट, वॉचडॉग रीसेट, ब्राउन-आउट रीसेट, USI स्टार्ट कंडिशन इंटरप्ट, INT0 वर एक्सटर्नल लेव्हल इंटरप्ट किंवा पिन चेंज इंटरप्ट हे MCU जागृत करू शकतात. हा स्लीप मोड सर्व व्युत्पन्न घड्याळे थांबवतो, केवळ असिंक्रोनस मॉड्यूल्सच्या ऑपरेशनला परवानगी देतो.

सॉफ्टवेअर BOD अक्षम करा

जेव्हा BODLEVEL फ्यूजद्वारे ब्राउन-आउट डिटेक्टर (BOD) सक्षम केले जाते (पहा पृष्ठ 20 वर तक्ता 4-148), बीओडी पुरवठा खंडाचे सक्रियपणे निरीक्षण करत आहेtage झोपेच्या काळात. काही उपकरणांमध्ये पॉवर-डाउन स्लीप मोडमध्ये सॉफ्टवेअरद्वारे BOD अक्षम करून वीज वाचवणे शक्य आहे. स्लीप मोडचा उर्जा वापर नंतर जागतिक स्तरावर फ्यूजद्वारे BOD अक्षम केला जातो त्याच पातळीवर असेल.

सॉफ्टवेअरद्वारे BOD अक्षम केले असल्यास, स्लीप मोडमध्ये प्रवेश केल्यानंतर लगेच BOD कार्य बंद केले जाते. झोपेतून जागे झाल्यावर, BOD पुन्हा आपोआप सक्षम होतो. झोपेच्या कालावधीत VCC पातळी कमी झाल्यास हे सुरक्षित ऑपरेशन सुनिश्चित करते.

जेव्हा BOD अक्षम केले जाते, तेव्हा स्लीप मोडमधून जागे होण्याची वेळ RESET मधून जागे होण्यासाठी सारखीच असेल. वापरकर्त्याने वेक अप वेळा मॅन्युअली कॉन्फिगर करणे आवश्यक आहे जेणेकरुन बँडगॅप संदर्भ सुरू होण्यास वेळ असेल आणि MCU कोड कार्यान्वित करणे सुरू ठेवण्यापूर्वी BOD योग्यरित्या कार्य करत असेल. टेबलमध्ये SUT[1:0] आणि CKSEL[3:0] फ्यूज बिट्स पहा पृष्ठ १४९ वर “फ्यूज लो बाइट”

बीओडी डिसेबल हे एमसीयू कंट्रोल रजिस्टरच्या बीओडीएस (बीओडी स्लीप) बिटद्वारे नियंत्रित केले जाते, पहा "MCUCR - MCU नियंत्रण पृष्ठ 37 वर नोंदणी करा. हे बिट एकावर लिहिल्याने पॉवर-डाउनमध्ये BOD बंद होते, तर शून्य लिहिल्याने BOD सक्रिय राहते. डीफॉल्ट सेटिंग शून्य आहे, म्हणजे BOD सक्रिय.

बीओडीएस बिटवर लिहिणे हे कालबद्ध अनुक्रम आणि सक्षम बिटद्वारे नियंत्रित केले जाते, पहा "MCUCR - MCU नियंत्रण नोंदणी- ter" पृष्ठ 37 वर.

मर्यादा

BOD अक्षम कार्यक्षमता खालील उपकरणांमध्ये लागू केली गेली आहे, फक्त:

ATtiny25, पुनरावृत्ती E, आणि नवीन

ATtiny45, पुनरावृत्ती डी, आणि नवीन

ATtiny85, पुनरावृत्ती C, आणि नवीन

पुनरावृत्ती डिव्हाइस पॅकेजवर चिन्हांकित केल्या आहेत आणि त्या खालीलप्रमाणे असू शकतात:

पॅकेजेस 8P3 आणि 8S2 ची खालची बाजू

पॅकेज 20M1 ची शीर्ष बाजू

पॉवर रिडक्शन रजिस्टर

पॉवर रिडक्शन रजिस्टर (PRR), पहा पृष्ठ ३८ वर “PRR – पॉवर रिडक्शन रजिस्टर”, वैयक्तिक परिघांना घड्याळ थांबवून वीज वापर कमी करण्यासाठी एक पद्धत प्रदान करते. परिधीयची सध्याची स्थिती गोठलेली आहे आणि I/O रजिस्टर वाचता किंवा लिहिता येत नाहीत. घड्याळ थांबवताना पेरिफेरलद्वारे वापरलेली संसाधने व्यापलेली राहतील, म्हणून बहुतेक प्रकरणांमध्ये घड्याळ थांबवण्यापूर्वी परिधीय अक्षम केले पाहिजे. PRR मध्‍ये बिट क्लिअर करून मॉड्यूल जागृत केल्‍याने, मॉड्युल शटडाउन होण्‍यापूर्वी त्‍याच स्थितीत ठेवतो.

एकूण उर्जा वापर लक्षणीयरीत्या कमी करण्यासाठी मॉड्यूल शटडाउनचा वापर निष्क्रिय मोड आणि सक्रिय मोडमध्ये केला जाऊ शकतो. इतर सर्व स्लीप मोडमध्ये, घड्याळ आधीच थांबलेले आहे. पहा पृष्ठ १७७ वर “I/O मॉड्यूल्सचा पुरवठा करंट” माजी साठीampलेस

वीज वापर कमी करणे

AVR नियंत्रित प्रणालीमध्ये विजेचा वापर कमी करण्याचा प्रयत्न करताना विचारात घेण्यासारखे अनेक मुद्दे आहेत. सर्वसाधारणपणे, स्लीप मोड शक्य तितके वापरले पाहिजेत आणि स्लीप मोड निवडला पाहिजे जेणेकरून डिव्हाइसची शक्य तितकी कमी कार्ये कार्यरत असतील. आवश्यक नसलेली सर्व कार्ये अक्षम केली पाहिजेत. विशेषतः, सर्वात कमी संभाव्य वीज वापर साध्य करण्याचा प्रयत्न करताना खालील मॉड्यूल्सना विशेष विचार करण्याची आवश्यकता असू शकते.

ॲनालॉग ते डिजिटल कनव्हर्टर

सक्षम असल्यास, ADC सर्व स्लीप मोडमध्ये सक्षम केले जाईल. उर्जा वाचवण्यासाठी, कोणत्याही स्लीप मोडमध्ये प्रवेश करण्यापूर्वी एडीसी अक्षम केले पाहिजे. जेव्हा ADC बंद केले जाते आणि पुन्हा चालू होते, तेव्हा पुढील रूपांतरण विस्तारित रूपांतरण असेल. पहा पृष्ठ १२२ वर “अ‍ॅनालॉग टू डिजिटल कन्व्हर्टर” एडीसी ऑपरेशनच्या तपशीलांसाठी.

अॅनालॉग तुलनाकर्ता

निष्क्रिय मोडमध्ये प्रवेश करताना, अॅनालॉग कंपॅरेटर वापरला नसल्यास ते अक्षम केले पाहिजे. ADC नॉइज रिडक्शन मोडमध्ये प्रवेश करताना, अॅनालॉग कंपॅरेटर अक्षम केले पाहिजे. इतर स्लीप मोडमध्ये, अॅनालॉग कंपॅरेटर आपोआप अक्षम होतो. तथापि, जर अंतर्गत व्हॉल्यूम वापरण्यासाठी एनालॉग तुलनाकर्ता सेट केला असेलtage इनपुट म्हणून संदर्भ, अॅनालॉग तुलनाकर्ता सर्व स्लीप मोडमध्ये अक्षम केले जावे. अन्यथा, अंतर्गत खंडtage संदर्भ सक्षम केले जाईल, स्लीप मोडपासून स्वतंत्र. पहा पृष्ठ 119 वर “अ‍ॅनालॉग तुलनाकर्ता” अॅनालॉग कम्पॅरेटर कसे कॉन्फिगर करावे यावरील तपशीलांसाठी.

ब्राऊन-आउट डिटेक्टर

जर अनुप्रयोगामध्ये ब्राउन-आउट डिटेक्टरची आवश्यकता नसेल, तर हे मॉड्यूल बंद केले पाहिजे. BODLEVEL फ्यूजद्वारे ब्राउन-आउट डिटेक्टर सक्षम केले असल्यास, ते सर्व स्लीप मोडमध्ये सक्षम केले जाईल, आणि म्हणूनच, नेहमी उर्जा वापरा. सखोल झोपेच्या मोडमध्ये, हे एकूण वर्तमान वापरामध्ये महत्त्वपूर्ण योगदान देईल. पहा "ब्राऊन-आउट शोधक- पृष्ठ ४१ वर आणि पृष्ठ ३५ वर “सॉफ्टवेअर BOD अक्षम करा” ब्राउन-आउट डिटेक्टर कसे कॉन्फिगर करावे यावरील तपशीलांसाठी.

अंतर्गत खंडtage संदर्भ

अंतर्गत खंडtage संदर्भ ब्राउन-आउट डिटेक्शन, अॅनालॉग कंपॅरेटर किंवा ADC द्वारे आवश्यक असेल तेव्हा सक्षम केले जाईल. वरील विभागांमध्ये वर्णन केल्याप्रमाणे हे मॉड्यूल अक्षम केले असल्यास, अंतर्गत व्हॉल्यूमtage संदर्भ अक्षम केला जाईल आणि तो उर्जा वापरणार नाही. पुन्‍हा चालू केल्‍यावर, आउटपुट वापरण्‍यापूर्वी वापरकर्त्याने संदर्भ सुरू होण्‍याची अनुमती दिली पाहिजे. संदर्भ स्लीप मोडमध्ये चालू ठेवल्यास, आउटपुट त्वरित वापरले जाऊ शकते. पहा अंतर्गत खंडtage संदर्भ” पृष्ठ ४२ वर स्टार्टअप वेळेच्या तपशीलांसाठी.

वॉचडॉग टाइमर

अनुप्रयोगामध्ये वॉचडॉग टाइमरची आवश्यकता नसल्यास, हे मॉड्यूल बंद केले पाहिजे. वॉचडॉग टाइमर सक्षम असल्यास, तो सर्व स्लीप मोडमध्ये सक्षम केला जाईल, आणि म्हणूनच, नेहमी उर्जा वापरा. सखोल झोपेच्या मोडमध्ये, हे एकूण वर्तमान वापरामध्ये महत्त्वपूर्ण योगदान देईल. पहा पृष्ठ ४२ वर “वॉचडॉग टाइमर” वॉचडॉग टाइमर कसे कॉन्फिगर करावे यावरील तपशीलांसाठी.

पोर्ट पिन

स्लीप मोडमध्ये प्रवेश करताना, सर्व पोर्ट पिन किमान पॉवर वापरण्यासाठी कॉन्फिगर केले पाहिजेत. सर्वात महत्वाची गोष्ट म्हणजे कोणत्याही पिनने प्रतिरोधक भार येणार नाही याची खात्री करणे. स्लीप मोडमध्ये जेथे I/O घड्याळ (clkI/O) आणि ADC घड्याळ (clkADC) दोन्ही थांबवले आहेत, तेथे डिव्हाइसचे इनपुट बफर अक्षम केले जातील. हे सुनिश्चित करते की कोणतीही वीज वापरली जात नाही

आवश्यक नसताना इनपुट लॉजिकद्वारे. काही प्रकरणांमध्ये, वेक-अप परिस्थिती शोधण्यासाठी इनपुट लॉजिक आवश्यक आहे, आणि

ते नंतर सक्षम केले जाईल. विभाग पहा पृष्ठ ५७ वर “डिजिटल इनपुट सक्षम आणि स्लीप मोड” कोणत्या पिन सक्षम आहेत तपशीलांसाठी. इनपुट बफर सक्षम असल्यास आणि इनपुट सिग्नल फ्लोटिंग सोडल्यास किंवा VCC/2 च्या जवळ अॅनालॉग सिग्नल पातळी असल्यास, इनपुट बफर जास्त पॉवर वापरेल.

अॅनालॉग इनपुट पिनसाठी, डिजिटल इनपुट बफर नेहमी अक्षम केले पाहिजे. इनपुट पिनवर VCC/2 जवळ अॅनालॉग सिग्नल पातळी सक्रिय मोडमध्ये देखील लक्षणीय विद्युत प्रवाह निर्माण करू शकते. डिजिटल इनपुट डिसेबल रजिस्टर (DIDR0) वर लिहून डिजिटल इनपुट बफर अक्षम केले जाऊ शकतात. पहा पृष्ठ १२१ वर “DIDR0 – डिजिटल इनपुट डिसेबल रजिस्टर 0” तपशीलांसाठी.

नोंदणी वर्णन

MCUCR - MCU कंट्रोल रजिस्टर

MCU कंट्रोल रजिस्टरमध्ये पॉवर मॅनेजमेंटसाठी कंट्रोल बिट्स असतात.

बिट 7 6 5 4 3 2 1 0
0x35 BODS PUD SE SM1 SM0 BODSE ISC01 ISC00 MCUCR
वाचा/लिहा R R/W R/W R/W R/W R R/W R/W
प्रारंभिक मूल्य 0 0 0 0 0 0 0 0

बिट 7 – BODS: BOD स्लीप

BOD अक्षम कार्यक्षमता काही उपकरणांमध्येच उपलब्ध आहे. पहा पृष्ठ ३६ वर “मर्यादा”.

झोपेच्या दरम्यान BOD अक्षम करण्यासाठी (पहा पृष्ठ 7 वर तक्ता 1-34) बीओडीएस बिट हे तर्कशास्त्रावर लिहिणे आवश्यक आहे. हे एका कालबद्ध क्रमाने नियंत्रित केले जाते आणि MCUCR मधील BODSE सक्षम बिट. प्रथम, BODS आणि BODSE दोन्ही एकावर सेट करणे आवश्यक आहे. दुसरे, चार घड्याळ चक्रांमध्ये, BODS एक वर सेट करणे आवश्यक आहे आणि BODSE शून्यावर सेट करणे आवश्यक आहे. BODS बिट सेट केल्यानंतर तीन घड्याळ चक्रे सक्रिय होते. वास्तविक स्लीप मोडसाठी बीओडी बंद करण्यासाठी BODS सक्रिय असताना झोपेची सूचना अंमलात आणणे आवश्यक आहे. तीन घड्याळ चक्रांनंतर BODS बिट आपोआप साफ होतो.

ज्या उपकरणांमध्ये स्लीपिंग बीओडी लागू केले गेले नाही तेथे हा बिट वापरला नाही आणि नेहमी शून्य वाचेल.

बिट 5 – SE: स्लीप सक्षम करा

SLEEP सूचना अंमलात आल्यावर MCU ला स्लीप मोडमध्ये प्रवेश करण्यासाठी SE बिट ला लॉजिकमध्ये लिहिणे आवश्यक आहे. प्रोग्रामरचा उद्देश असल्याशिवाय MCU स्लीप मोडमध्ये प्रवेश करू नये म्हणून, SLEEP सूचना अंमलात आणण्यापूर्वी एकावर Sleep Enable (SE) बिट लिहिण्याची आणि जागे झाल्यानंतर लगेच साफ करण्याची शिफारस केली जाते.

बिट्स 4:3 – SM[1:0]: स्लीप मोड निवडा बिट्स 1 आणि 0

हे बिट्स तीन उपलब्ध स्लीप मोडमध्ये दाखवल्याप्रमाणे निवडतात तक्ता 7-2.

तक्ता 7-2. स्लीप मोड निवडा

SM1 SM0 स्लीप मोड
0 0 निष्क्रिय
0 1 एडीसी आवाज कमी करणे
1 0 वीज खंडित
1 1 राखीव

बिट 2 – BODSE: BOD स्लीप सक्षम

BOD अक्षम कार्यक्षमता काही उपकरणांमध्येच उपलब्ध आहे. पहा पृष्ठ ३६ वर “मर्यादा”.

BODS बिट वर्णनावर स्पष्ट केल्याप्रमाणे, BODSE बिट BODS कंट्रोल बिटची सेटिंग सक्षम करते. BOD अक्षम करणे कालबद्ध क्रमाने नियंत्रित केले जाते.

ज्या डिव्हाइसेसमध्ये सॉफ्टवेअर BOD अक्षम केले गेले नाही तेथे हा बिट वापरला नाही आणि त्या उपकरणांमध्ये शून्य म्हणून वाचले जाईल.

PRR - पॉवर रिडक्शन रजिस्टर

पॉवर रिडक्शन रजिस्टर हे परिधीय घड्याळ सिग्नल अक्षम करण्याची परवानगी देऊन वीज वापर कमी करण्यासाठी एक पद्धत प्रदान करते.

बिट 7 6 5 4 3 2 1 0
0x20 PRTIM1 PRTIM0 PRUSI PRADC पीआरआर
वाचा/लिहा R R R R R/W R/W R/W R/W
प्रारंभिक मूल्य 0 0 0 0 0 0 0 0

बिट्स 7:4 – Res: आरक्षित बिट्स

हे बिट्स ATtiny25/45/85 मध्ये आरक्षित बिट आहेत आणि नेहमी शून्य म्हणून वाचले जातील.

बिट 3 - PRTIM1: पॉवर रिडक्शन टाइमर/काउंटर1

या बिटवर लॉजिक लिहिल्याने टाइमर/काउंटर1 मॉड्यूल बंद होतो. जेव्हा टाइमर/काउंटर1 सक्षम केले जाते, तेव्हा ऑपरेशन बंद होण्यापूर्वी चालू राहील.

बिट 2 - PRTIM0: पॉवर रिडक्शन टाइमर/काउंटर0

या बिटवर लॉजिक लिहिल्याने टाइमर/काउंटर0 मॉड्यूल बंद होतो. जेव्हा टाइमर/काउंटर0 सक्षम केले जाते, तेव्हा ऑपरेशन बंद होण्यापूर्वी चालू राहील.

बिट 1 – PRUSI: पॉवर रिडक्शन USI

या बिटवर लॉजिक लिहिल्याने मॉड्यूलला घड्याळ थांबवून यूएसआय बंद होते. USI ला पुन्हा जागृत करताना, योग्य ऑपरेशन सुनिश्चित करण्यासाठी USI पुन्हा सुरू केले जावे.

बिट 0 – PRADC: पॉवर रिडक्शन एडीसी

या बिटावर तर्कशास्त्र लिहिल्याने एडीसी बंद होते. ADC बंद करण्यापूर्वी अक्षम करणे आवश्यक आहे. लक्षात घ्या की ADC घड्याळ अॅनालॉग तुलनेच्या काही भागांद्वारे देखील वापरले जाते, याचा अर्थ असा की जेव्हा हा बिट जास्त असेल तेव्हा अॅनालॉग तुलनाकर्ता वापरला जाऊ शकत नाही.

सिस्टम नियंत्रण आणि रीसेट

AVR रीसेट करत आहे

रीसेट करताना, सर्व I/O रजिस्टर्स त्यांच्या प्रारंभिक मूल्यांवर सेट केले जातात आणि प्रोग्राम रीसेट व्हेक्टर वरून कार्यान्वित करणे सुरू होते. रीसेट व्हेक्टरवर दिलेली सूचना ही RJMP – रिलेटिव्ह जंप – रिसेट हँडलिंग रूटीनची सूचना असणे आवश्यक आहे. जर प्रोग्राम कधीही इंटरप्ट स्त्रोत सक्षम करत नसेल, तर इंटरप्ट व्हेक्टर वापरले जात नाहीत आणि या ठिकाणी नियमित प्रोग्राम कोड ठेवता येतो. मध्ये सर्किट आकृती आकृती 8-1 रीसेट लॉजिक दाखवते. रीसेट सर्किटरीचे इलेक्ट्रिकल पॅरामीटर्स दिले आहेत पृष्ठ १६५ वर “सिस्टम आणि रीसेट वैशिष्ट्ये”.

आकृती 8-1 तर्कशास्त्र रीसेट करा रीसेट-तर्कशास्त्र

जेव्हा एखादा रीसेट स्त्रोत सक्रिय होतो तेव्हा AVR चे I/O पोर्ट त्वरित त्यांच्या प्रारंभिक स्थितीवर रीसेट केले जातात. यासाठी कोणत्याही घड्याळाचा स्रोत चालू ठेवण्याची गरज नाही.

सर्व रीसेट स्रोत निष्क्रिय झाल्यानंतर, विलंब काउंटर सुरू केला जातो, अंतर्गत रीसेट वाढवतो. हे सामान्य ऑपरेशन सुरू होण्यापूर्वी पॉवरला स्थिर पातळीपर्यंत पोहोचण्यास अनुमती देते. विलंब काउंटरचा कालबाह्य कालावधी वापरकर्त्याद्वारे SUT आणि CKSEL फ्यूजद्वारे परिभाषित केला जातो. विलंब कालावधीसाठी विविध निवडी सादर केल्या आहेत "घड्याळ पृष्ठ 25 वर स्रोत”.

स्रोत रीसेट करा

ATtiny25/45/85 मध्ये रीसेट करण्याचे चार स्त्रोत आहेत:

पॉवर-ऑन रीसेट. MCU रीसेट केले जाते जेव्हा पुरवठा खंडtage पॉवर-ऑन रीसेट थ्रेशोल्ड (VPOT) च्या खाली आहे.

बाह्य रीसेट. RESET पिनवर किमान पल्स लांबीपेक्षा जास्त काळ कमी पातळी असल्यास MCU रीसेट केले जाते.

वॉचडॉग रीसेट. जेव्हा वॉचडॉग टाइमर कालावधी संपतो आणि वॉचडॉग सक्षम केला जातो तेव्हा MCU रीसेट केले जाते.

ब्राउन-आउट रीसेट. MCU रीसेट केले जाते जेव्हा पुरवठा खंडtage VCC ब्राउन-आउट रीसेट थ्रेशोल्ड (VBOT) च्या खाली आहे आणि ब्राउन-आउट डिटेक्टर सक्षम आहे.

पॉवर-ऑन रीसेट

ऑन-चिप डिटेक्शन सर्किटद्वारे पॉवर-ऑन रीसेट (POR) पल्स तयार केली जाते. शोध पातळी मध्ये परिभाषित केली आहे "Sys- 165 पृष्ठावर tem आणि वैशिष्ट्ये रीसेट करा. जेव्हाही VCC तपास पातळीच्या खाली असते तेव्हा POR सक्रिय केले जाते. POR सर्किटचा वापर स्टार्ट-अप रीसेट ट्रिगर करण्यासाठी तसेच पुरवठा खंडात बिघाड शोधण्यासाठी केला जाऊ शकतो.tage.

पॉवर-ऑन रीसेट (POR) सर्किट हे सुनिश्चित करते की डिव्हाइस पॉवर-ऑन वरून रीसेट केले आहे. पॉवर-ऑन रीसेट थ्रेशोल्ड व्हॉल्यूम पर्यंत पोहोचणेtage विलंब काउंटर चालवतो, जे VCC वाढल्यानंतर डिव्हाइस किती वेळ RESET मध्ये ठेवायचे हे निर्धारित करते. RESET सिग्नल पुन्हा सक्रिय होतो, कोणत्याही विलंबाशिवाय, जेव्हा VCC शोध पातळीपेक्षा कमी होतो.

आकृती 8-2. MCU स्टार्ट-अप, VCC शी बद्ध रिसेट

अंतर्गत रीसेट

आकृती 8-3. MCU स्टार्ट-अप, रीसेट बाह्यरित्या विस्तारित

बाह्य रीसेट

सक्षम असल्यास RESET पिनवर कमी पातळीद्वारे बाह्य रीसेट तयार केला जातो. किमान पल्स रुंदीपेक्षा लांब डाळी रीसेट करा (पहा पृष्ठ १६५ वर “सिस्टम आणि रीसेट वैशिष्ट्ये”घड्याळ चालू नसले तरीही ) रीसेट व्युत्पन्न करेल. लहान कडधान्ये रिसेट तयार करण्याची हमी देत ​​​​नाहीत. जेव्हा लागू केलेला सिग्नल रीसेट थ्रेशोल्ड व्हॉल्यूमवर पोहोचतोtage – VRST – त्याच्या सकारात्मक काठावर, टाइम-आउट कालावधी संपल्यानंतर विलंब काउंटर MCU सुरू करतो.

आकृती 8-4. ऑपरेशन दरम्यान बाह्य रीसेट अंजीर 8.4

तपकिरी-बाहेर ओळख

ATtiny25/45/85 मध्‍ये ऑन-चिप ब्राउन-आउट डिटेक्शन (BOD) सर्किट आहे जे ऑपरेशन दरम्यान VCC पातळीची एका निश्चित ट्रिगर पातळीशी तुलना करून निरीक्षण करते. BOD साठी ट्रिगर पातळी BODLEVEL फ्यूजद्वारे निवडली जाऊ शकते. स्पाइक फ्री ब्राउन-आउट डिटेक्शन सुनिश्चित करण्यासाठी ट्रिगर स्तरामध्ये हिस्टेरेसिस आहे. डिटेक्शन लेव्हलवरील हिस्टेरेसिसचा अर्थ VBOT+ = VBOT + VHYST/2 आणि VBOT- = VBOT – VHYST/2 असा केला पाहिजे.

जेव्हा BOD सक्षम केले जाते, आणि VCC ट्रिगर पातळीच्या खाली असलेल्या मूल्यापर्यंत कमी होते (VBOT- मध्ये आकृती 8-5), ब्राउन-आउट रीसेट त्वरित सक्रिय केले जाते. जेव्हा VCC ट्रिगर पातळीच्या वर वाढते (VBOT+ in आकृती 8-5), टाइम-आउट कालावधी tTOUT कालबाह्य झाल्यानंतर विलंब काउंटर MCU सुरू करतो.

बीओडी सर्किट केवळ व्हीसीसीमधील घट शोधेल जर व्हॉल्यूमtagई मध्ये दिलेल्या tBOD पेक्षा जास्त काळ ट्रिगर पातळी खाली राहते पृष्ठ १६५ वर “सिस्टम आणि रीसेट वैशिष्ट्ये”. अंजीर 8.5

वॉचडॉग रीसेट

जेव्हा वॉचडॉगची वेळ संपेल, तेव्हा ते एका CK सायकल कालावधीची एक लहान रीसेट पल्स व्युत्पन्न करेल. या नाडीच्या घसरणीच्या काठावर, विलंब टाइमर टाइम-आउट कालावधी tTOUT मोजण्यास प्रारंभ करतो. पहा पृष्ठ ४२ वर “वॉचडॉग टाइमर” वॉचडॉग टाइमरच्या ऑपरेशनच्या तपशीलांसाठी.

खंडtage संदर्भ सिग्नल आणि स्टार्ट-अप वेळ सक्षम करा

खंडtage संदर्भामध्ये स्टार्ट-अप वेळ असतो जो त्याचा वापर करण्याच्या पद्धतीवर प्रभाव टाकू शकतो. स्टार्टअपची वेळ दिली आहे पृष्ठ १६५ वर “सिस्टम आणि रीसेट वैशिष्ट्ये”. शक्ती वाचवण्यासाठी, संदर्भ नेहमी चालू नाही. खालील परिस्थितींमध्ये संदर्भ चालू आहे:

जेव्हा BOD सक्षम केले जाते (BODLEVEL[2:0] फ्यूज बिट्स प्रोग्रामिंग करून).

जेव्हा बँडगॅप संदर्भ अॅनालॉग कम्पॅरेटरशी जोडला जातो (ACSR मध्ये ACBG बिट सेट करून).

ADC सक्षम असताना.

अशाप्रकारे, BOD सक्षम नसताना, ACBG बिट सेट केल्यानंतर किंवा ADC सक्षम केल्यानंतर, वापरकर्त्याने नेहमी Analog Comparator किंवा ADC मधील आउटपुट वापरण्यापूर्वी संदर्भ सुरू होण्याची परवानगी दिली पाहिजे. पॉवर-डाउन मोडमध्‍ये वीज वापर कमी करण्‍यासाठी, पॉवर-डाउन मोडमध्‍ये प्रवेश करण्‍यापूर्वी संदर्भ बंद केल्‍याची खात्री करण्‍यासाठी वापरकर्ता वरील तीन अटी टाळू शकतो.

वॉचडॉग टाइमर

वॉचडॉग टाइमर ऑन-चिप ऑसिलेटर वरून घड्याळ केला जातो जो 128 kHz वर चालतो. वॉचडॉग टाइमर प्रीस्केलर नियंत्रित करून, वॉचडॉग रीसेट इंटरव्हलमध्ये दाखवल्याप्रमाणे समायोजित केले जाऊ शकते. पृष्ठ 8 वर तक्ता 3-46. WDR – वॉचडॉग रीसेट – सूचना वॉचडॉग टाइमर रीसेट करते. वॉचडॉग टायमर देखील रीसेट केला जातो जेव्हा तो अक्षम केला जातो आणि जेव्हा चिप रीसेट होतो. रीसेट कालावधी निर्धारित करण्यासाठी दहा भिन्न घड्याळ चक्र कालावधी निवडले जाऊ शकतात. रीसेट कालावधी दुसर्‍या वॉचडॉग रीसेटशिवाय कालबाह्य झाल्यास, ATtiny25/45/85 रीसेट व्हेक्टरमधून रीसेट आणि कार्यान्वित होते. वॉचडॉग रीसेटवरील वेळेच्या तपशीलांसाठी, पहा पृष्ठ 8 वर तक्ता 3-46.

वॉचडॉग टाइमर रीसेट करण्याऐवजी व्यत्यय निर्माण करण्यासाठी देखील कॉन्फिगर केले जाऊ शकते. पॉवर-डाऊनमधून उठण्यासाठी वॉचडॉग वापरताना हे खूप उपयुक्त ठरू शकते.

वॉचडॉगचे अनावधानाने अक्षम होणे किंवा कालबाह्य कालावधीतील अनावधानाने बदल टाळण्यासाठी, फ्यूज डब्ल्यूडीटीओएन द्वारे दोन भिन्न सुरक्षा स्तर निवडले आहेत. तक्ता 8-1 पहा "परिणाम बदलण्यासाठी कालबद्ध क्रम- पृष्ठ ४३ वर वॉचडॉग टाइमरचे आकृतीबंध तपशीलांसाठी.

तक्ता 8-1. WDTON च्या फ्यूज सेटिंग्जचे कार्य म्हणून WDT कॉन्फिगरेशन

WDTON सुरक्षितता पातळी WDT आरंभिक स्थिती WDT अक्षम कसे करावे टाइम-आउट कसे बदलावे
अनप्रोग्राम केलेले 1 अक्षम कालबद्ध क्रम कोणतीही मर्यादा नाही
प्रोग्राम केलेले 2 सक्षम केले नेहमी सक्षम कालबद्ध क्रम

आकृती 8-7. वॉचडॉग टाइमर वॉचडॉग

वॉचडॉग टाइमरचे कॉन्फिगरेशन बदलण्यासाठी कालबद्ध अनुक्रम

कॉन्फिगरेशन बदलण्याचा क्रम दोन सुरक्षा स्तरांमध्ये थोडासा फरक आहे. प्रत्येक स्तरासाठी स्वतंत्र प्रक्रिया वर्णन केल्या आहेत.

सुरक्षितता पातळी 1: या मोडमध्ये, वॉचडॉग टाइमर सुरुवातीला अक्षम केला जातो, परंतु कोणत्याही निर्बंधाशिवाय WDE बिट एकावर लिहून सक्षम केला जाऊ शकतो. सक्षम वॉचडॉग टायमर अक्षम करताना कालबद्ध अनुक्रम आवश्यक आहे. सक्षम वॉचडॉग टाइमर अक्षम करण्यासाठी, खालील प्रक्रियेचे पालन करणे आवश्यक आहे:

त्याच ऑपरेशनमध्ये, WDCE आणि WDE ला एक तर्क लिहा. WDE बिटच्या मागील मूल्याकडे दुर्लक्ष करून तर्कशास्त्र WDE ला लिहिणे आवश्यक आहे.

पुढील चार घड्याळाच्या चक्रांमध्ये, त्याच ऑपरेशनमध्ये, WDE आणि WDP बिट्स इच्छेनुसार लिहा, परंतु WDCE बिट साफ करून.

सेफ्टी लेव्हल 2: या मोडमध्ये, वॉचडॉग टाइमर नेहमी सक्षम असतो आणि WDE बिट नेहमी एक म्हणून वाचतो. वॉचडॉग टाइम-आउट कालावधी बदलताना कालबद्ध अनुक्रम आवश्यक आहे. वॉचडॉग टाइम-आउट बदलण्यासाठी, खालील प्रक्रियेचे पालन करणे आवश्यक आहे:

त्याच ऑपरेशनमध्ये, WDCE आणि WDE ला लॉजिकल लिहा. जरी WDE नेहमी सेट केले असले तरी, वेळबद्ध क्रम सुरू करण्यासाठी WDE एकावर लिहिणे आवश्यक आहे.

पुढील चार घड्याळाच्या चक्रात, त्याच ऑपरेशनमध्ये, WDP बिट्स इच्छेनुसार लिहा, परंतु WDCE बिट साफ करून. WDE बिटवर लिहिलेले मूल्य अप्रासंगिक आहे.

कोड उदाample

खालील कोड उदाample WDT बंद करण्यासाठी एक असेंब्ली आणि एक C फंक्शन दाखवते. माजीample असे गृहीत धरते की व्यत्यय नियंत्रित केले जातात (उदा. जागतिक स्तरावर व्यत्यय अक्षम करून) जेणेकरून या फंक्शन्सच्या अंमलबजावणीदरम्यान कोणतेही व्यत्यय येणार नाहीत.

विधानसभा कोड उदाample(१)
WDT_off:

wdr

; MCUSR मध्ये WDRF साफ करा

ldi r16, (0<

बाहेर MCUSR, r16

; WDCE आणि WDE ला तार्किक लिहा

; अनावधानाने वॉचडॉग रीसेट टाळण्यासाठी जुनी प्रीस्केलर सेटिंग ठेवा

R16 मध्ये, WDTCR

ori r16, (1<

आउट WDTCR, r16

; WDT बंद करा

ldi r16, (0<

आउट WDTCR, r16

ret

सी कोड उदाample(१)
void WDT_off(void)

{

_WDR();

/* MCUSR मध्ये WDRF साफ करा */ MCUSR = 0x00

/* WDCE आणि WDE */ WDTCR वर तार्किक लिहा |= (1<

/* WDT बंद करा */ WDTCR = 0x00;

}

टीप: 1. पहा "कोड उदाampपृष्ठ ६ वर.

नोंदणी वर्णन

MCUSR - MCU स्टेटस रजिस्टर

MCU स्टेटस रजिस्टर कोणत्या रिसेट स्त्रोतामुळे MCU रीसेट झाला याची माहिती प्रदान करते.

बिट 7 6 5 4 3 2 1 0
0x34 WDRF बीओआरएफ EXTRF PORF MCUSR
वाचा/लिहा R R R R R/W R/W R/W R/W

प्रारंभिक मूल्य 0 0 0 0 बिट वर्णन पहा

बिट्स 7:4 – Res: आरक्षित बिट्स

हे बिट्स ATtiny25/45/85 मध्ये आरक्षित बिट आहेत आणि नेहमी शून्य म्हणून वाचले जातील.

बिट 3 - WDRF: वॉचडॉग रीसेट ध्वज

वॉचडॉग रीसेट झाल्यास हा बिट सेट केला जातो. पॉवर-ऑन रीसेटद्वारे किंवा ध्वजावर लॉजिक शून्य लिहून बिट रीसेट केला जातो.

बिट 2 – BORF: ब्राउन-आउट रीसेट ध्वज

ब्राउन-आउट रीसेट झाल्यास हा बिट सेट केला जातो. पॉवर-ऑन रीसेटद्वारे किंवा ध्वजावर लॉजिक शून्य लिहून बिट रीसेट केला जातो.

बिट 1 - EXTRF: बाह्य रीसेट ध्वज

बाह्य रीसेट झाल्यास हा बिट सेट केला जातो. पॉवर-ऑन रीसेटद्वारे किंवा ध्वजावर लॉजिक शून्य लिहून बिट रीसेट केला जातो.

बिट 0 - PORF: पॉवर-ऑन रीसेट ध्वज

पॉवर-ऑन रीसेट झाल्यास हा बिट सेट केला जातो. ध्वजावर तर्कशून्य लिहून बिट रीसेट केला जातो.

रीसेट स्थिती ओळखण्यासाठी रीसेट ध्वजांचा वापर करण्यासाठी, वापरकर्त्याने प्रोग्राममध्ये शक्य तितक्या लवकर MCUSR वाचले पाहिजे आणि नंतर रीसेट केले पाहिजे. जर दुसरा रीसेट होण्यापूर्वी रजिस्टर साफ केले असेल तर, रीसेट फ्लॅग्सचे परीक्षण करून रीसेटचा स्त्रोत शोधला जाऊ शकतो.

WDTCR - वॉचडॉग टाइमर कंट्रोल रजिस्टर

बिट 7 6 5 4 3 2 1 0
0x21 WDIF WDIE WDP3 WDCE WDE WDP2 WDP1 WDP0 WDTCR
वाचा/लिहा R/W R/W R/W R/W R/W R/W R/W R/W
प्रारंभिक मूल्य 0 0 0 0 X 0 0 0

बिट 7 – WDIF: वॉचडॉग टाइमआउट इंटरप्ट फ्लॅग

जेव्हा वॉचडॉग टाइमरमध्ये टाइम-आउट होतो आणि वॉचडॉग टाइमर व्यत्यय येण्यासाठी कॉन्फिगर केला जातो तेव्हा हा बिट सेट केला जातो. संबंधित व्यत्यय हाताळणी वेक्टर कार्यान्वित करताना WDIF हार्डवेअरद्वारे साफ केले जाते. वैकल्पिकरित्या, ध्वजावर तर्कशास्त्र लिहून WDIF साफ केले जाते. जेव्हा SREG आणि WDIE मधील I-bit सेट केले जाते, तेव्हा वॉचडॉग टाइम-आउट इंटरप्ट कार्यान्वित केला जातो.

बिट 6 – WDIE: वॉचडॉग टाइमआउट इंटरप्ट सक्षम करा

जेव्हा हा बिट एखाद्याला लिहिला जातो, WDE साफ केला जातो आणि स्टेटस रजिस्टरमधील I-bit सेट केला जातो, तेव्हा वॉचडॉग टाइम-आउट इंटरप्ट सक्षम केला जातो. या मोडमध्ये वॉचडॉग टाइमरमध्ये कालबाह्य झाल्यास रिसेटऐवजी संबंधित व्यत्यय कार्यान्वित केला जातो.

WDE सेट केले असल्यास, टाइम-आउट झाल्यावर WDIE स्वयंचलितपणे हार्डवेअरद्वारे साफ केले जाते. इंटरप्ट वापरताना वॉचडॉग रीसेट सुरक्षा ठेवण्यासाठी हे उपयुक्त आहे. WDIE बिट साफ केल्यानंतर, पुढील टाइम-आउट रीसेट तयार करेल. वॉचडॉग रीसेट टाळण्यासाठी, प्रत्येक व्यत्ययानंतर WDIE सेट करणे आवश्यक आहे.

तक्ता 8-2. वॉचडॉग टाइमर कॉन्फिगरेशन

WDE WDIE वॉचडॉग टाइमर स्थिती टाइम-आउट वर क्रिया
0 0 थांबला काहीही नाही
0 1 धावत आहे व्यत्यय आणणे
1 0 धावत आहे रीसेट करा
1 1 धावत आहे व्यत्यय आणणे

बिट 4 – WDCE: वॉचडॉग चेंज सक्षम

जेव्हा WDE बिट लॉजिक झिरोवर लिहिला जातो तेव्हा हा बिट सेट करणे आवश्यक आहे. अन्यथा, वॉचडॉग अक्षम केले जाणार नाही. एकदा एकाला लिहिल्यानंतर, चार घड्याळ चक्रांनंतर हार्डवेअर हे बिट साफ करेल. वॉचडॉग अक्षम करण्याच्या प्रक्रियेसाठी WDE बिटच्या वर्णनाचा संदर्भ घ्या. प्रीस्केलर बिट्स बदलताना हा बिट देखील सेट करणे आवश्यक आहे. पहा "वेळबद्ध क्रम वॉचडॉग टाइमरचे कॉन्फिगरेशन बदलण्यासाठी” पृष्ठ ४३ वर.

बिट 3 - WDE: वॉचडॉग सक्षम

जेव्हा WDE ला लॉजिक वन वर लिहिले जाते, तेव्हा वॉचडॉग टाइमर सक्षम केला जातो आणि जर WDE ला लॉजिक झिरोवर लिहिले जाते, तेव्हा वॉचडॉग टाइमर कार्य अक्षम केले जाते. WDCE बिटमध्ये लॉजिक लेव्हल एक असेल तरच WDE साफ करता येईल. सक्षम वॉचडॉग टाइमर अक्षम करण्यासाठी, खालील प्रक्रियेचे पालन करणे आवश्यक आहे:

त्याच ऑपरेशनमध्ये, WDCE आणि WDE ला एक तर्क लिहा. डिसेबल ऑपरेशन सुरू होण्यापूर्वी एक लॉजिक WDE ला लिहिणे आवश्यक आहे.

पुढील चार घड्याळ चक्रांमध्ये, WDE ला लॉजिक 0 लिहा. हे वॉचडॉग अक्षम करते.

सुरक्षा स्तर 2 मध्ये, वर वर्णन केलेल्या अल्गोरिदमसह वॉचडॉग टाइमर अक्षम करणे शक्य नाही. पहा पृष्ठ ४३ वरील “वॉचडॉग टाइमरचे कॉन्फिगरेशन बदलण्यासाठी कालबद्ध क्रम”.

सुरक्षा स्तर 1 मध्ये, MCUSR मध्ये WDE हे WDRF द्वारे अधिलिखित केले आहे. पहा पृष्ठ ४४ वर “MCUSR – MCU स्टेटस रजिस्टर” WDRF च्या वर्णनासाठी. याचा अर्थ असा की जेव्हा WDRF सेट केले जाते तेव्हा WDE नेहमी सेट केले जाते. WDE साफ करण्यासाठी, वर वर्णन केलेल्या प्रक्रियेसह वॉचडॉग अक्षम करण्यापूर्वी WDRF साफ करणे आवश्यक आहे. हे वैशिष्ट्य अपयशास कारणीभूत असलेल्या परिस्थितीत एकाधिक रीसेट आणि अयशस्वी झाल्यानंतर सुरक्षित स्टार्ट-अप सुनिश्चित करते.

टीप: जर वॉचडॉग टाइमर ऍप्लिकेशनमध्ये वापरला जात नसेल, तर डिव्हाइसच्या प्रारंभामध्ये वॉचडॉग अक्षम करण्याच्या प्रक्रियेतून जाणे महत्त्वाचे आहे. वॉचडॉग चुकून सक्षम झाल्यास, उदाampपळून जाणाऱ्या पॉइंटर किंवा ब्राउन-आउट स्थितीनुसार, डिव्हाइस रीसेट केले जाईल, ज्यामुळे नवीन वॉचडॉग रीसेट होईल. ही परिस्थिती टाळण्यासाठी, अॅप्लिकेशन सॉफ्टवेअरने नेहमी इनिशिएलायझेशन रूटीनमध्ये WDRF ध्वज आणि WDE कंट्रोल बिट साफ केले पाहिजे.

बिट्स 5, 2:0 – WDP[3:0]: वॉचडॉग टाइमर प्रीस्केलर 3, 2, 1, आणि 0

वॉचडॉग टायमर सक्षम केल्यावर WDP[3:0] बिट्स वॉचडॉग टाइमर प्रीस्केलिंग निर्धारित करतात. विविध प्रीस्केलिंग मूल्ये आणि त्यांच्याशी संबंधित कालबाह्य कालावधी यामध्ये दर्शविल्या आहेत तक्ता 8-3.

तक्ता 8-3. वॉचडॉग टाइमर प्रीस्केल निवडा

WDP3 WDP2 WDP1 WDP0 WDT ऑसिलेटर सायकल्सची संख्या VCC = 5.0V वर ठराविक टाइम-आउट
0 0 0 0 2K (2048) सायकल 16 ms
0 0 0 1 4K (4096) सायकल 32 ms
0 0 1 0 8K (8192) सायकल 64 ms
0 0 1 1 16K (16384) सायकल 0.125 एस
0 1 0 0 32K (32764) सायकल 0.25 एस
0 1 0 1 64K (65536) सायकल 0.5 एस
0 1 1 0 128K (131072) सायकल 1.0 एस
0 1 1 1 256K (262144) सायकल 2.0 एस
1 0 0 0 512K (524288) सायकल 4.0 एस
1 0 0 1 1024K (1048576) सायकल 8.0 एस

तक्ता 8-3. वॉचडॉग टाइमर प्रीस्केल सिलेक्ट (चालू)

WDP3 WDP2 WDP1 WDP0 WDT ऑसिलेटर सायकल्सची संख्या VCC = 5.0V वर ठराविक टाइम-आउट
1 0 1 0 राखीव(१)
1 0 1 1
1 1 0 0
1 1 0 1
1 1 1 0
1 1 1 1

टीप: 1. निवडल्यास, 0b1010 खालील वैध सेटिंग्जपैकी एक वापरला जाईल.

व्यत्यय

हा विभाग ATtiny25/45/85 मध्ये केल्याप्रमाणे व्यत्यय हाताळणीच्या वैशिष्ट्यांचे वर्णन करतो. AVR व्यत्यय हाताळणीच्या सामान्य स्पष्टीकरणासाठी, पहा पृष्ठ १२ वर “रीसेट आणि व्यत्यय हाताळणी”.

ATtiny25/45/85 मध्ये व्यत्यय वेक्टर

ATtiny25/45/85 च्या व्यत्यय वेक्टरमध्ये वर्णन केले आहे तक्ता 9-1खाली

तक्ता 9-1. वेक्टर रीसेट करा आणि व्यत्यय आणा

वेक्टर क्र. कार्यक्रमाचा पत्ता स्त्रोत इंटरप्ट व्याख्या
1 0x0000 रीसेट करा बाह्य पिन, पॉवर-ऑन रीसेट, ब्राउन-आउट रीसेट, वॉचडॉग रीसेट
2 0x0001 INT0 बाह्य व्यत्यय विनंती 0
3 0x0002 PCINT0 पिन बदल इंटरप्ट विनंती 0
4 0x0003 TIMER1_COMPA टाइमर/काउंटर1 जुळणी A
5 0x0004 TIMER1_OVF टाइमर/काउंटर1 ओव्हरफ्लो
6 0x0005 TIMER0_OVF टाइमर/काउंटर0 ओव्हरफ्लो
7 0x0006 EE_RDY EEPROM तयार
8 0x0007 ANA_COMP अॅनालॉग तुलनाकर्ता
9 0x0008 एडीसी ADC रूपांतरण पूर्ण
10 0x0009 TIMER1_COMPB टाइमर/काउंटर1 सामना B तुलना करा
11 0x000A TIMER0_COMPA टाइमर/काउंटर0 जुळणी A
12 0x000B TIMER0_COMPB टाइमर/काउंटर0 सामना B तुलना करा
13 0x000 सी WDT वॉचडॉग टाइम-आउट
14 0x000D USI_START USI प्रारंभ
15 0x000E USI_OVF USI ओव्हरफ्लो

जर प्रोग्राम कधीही इंटरप्ट स्त्रोत सक्षम करत नसेल, तर इंटरप्ट व्हेक्टर वापरले जात नाहीत आणि या ठिकाणी नियमित प्रोग्राम कोड ठेवता येतो.

ATtiny25/45/85 मधील व्यत्यय वेक्टर पत्त्यांसाठी एक सामान्य आणि सामान्य सेटअप प्रोग्राम ex.ample खाली.

विधानसभा कोड उदाample
.org 0x0000 ;पुढील पत्ता सेट करा विधान
rjmp रीसेट करा ; पत्ता 0x0000
rjmp INT0_ISR ; पत्ता 0x0001
rjmp PCINT0_ISR ; पत्ता 0x0002
rjmp TIM1_COMPA_ISR ; पत्ता 0x0003
rjmp TIM1_OVF_ISR ; पत्ता 0x0004
rjmp TIM0_OVF_ISR ; पत्ता 0x0005
rjmp EE_RDY_ISR ; पत्ता 0x0006
rjmp ANA_COMP_ISR ; पत्ता 0x0007
rjmp ADC_ISR ; पत्ता 0x0008
rjmp TIM1_COMPB_ISR ; पत्ता 0x0009
rjmp TIM0_COMPA_ISR ; पत्ता 0x000A
rjmp TIM0_COMPB_ISR ; पत्ता 0x000B
rjmp WDT_ISR ; पत्ता 0x000C
rjmp USI_START_ISR ; पत्ता 0x000D
rjmp USI_OVF_ISR ; पत्ता 0x000E
रीसेट करा: ; मुख्य कार्यक्रम सुरू
; पत्ता 0x000F

टीप: पहा "कोड उदाampपृष्ठ ६ वर.

बाह्य व्यत्यय

बाह्य व्यत्यय INT0 पिन किंवा PCINT[5:0] पिन द्वारे ट्रिगर केले जातात. लक्षात घ्या की, सक्षम केल्यास, INT0 किंवा PCINT[5:0] पिन आउटपुट म्हणून कॉन्फिगर केले असले तरीही इंटरप्ट्स ट्रिगर होतील. हे वैशिष्ट्य सॉफ्टवेअर व्यत्यय निर्माण करण्याचा एक मार्ग प्रदान करते. पिन चेंज इंटरप्ट्स PCI चालू करेल PCINT[5:0] पिन टॉगल केल्यास. PCMSK रजिस्टर नियंत्रण कोणते पिन पिन बदलण्यात व्यत्यय आणतात. PCINT[5:0] वर पिन बदलाचे व्यत्यय असिंक्रोनसपणे आढळतात. याचा अर्थ असा होतो की हे व्यत्यय निष्क्रिय मोड व्यतिरिक्त स्लीप मोडमधून देखील भाग जागृत करण्यासाठी वापरले जाऊ शकतात.

INT0 व्यत्यय घसरण किंवा वाढत्या कडा किंवा कमी पातळीमुळे ट्रिगर केले जाऊ शकतात. हे MCU कंट्रोल रजिस्टर – MCUCR च्या स्पेसिफिकेशनमध्ये दर्शविल्याप्रमाणे सेट केले आहे. जेव्हा INT0 व्यत्यय सक्षम केला जातो आणि स्तर ट्रिगर म्हणून कॉन्फिगर केला जातो, जोपर्यंत पिन कमी ठेवला जाईल तोपर्यंत व्यत्यय ट्रिगर होईल. लक्षात घ्या की INT0 वर घसरणे किंवा वाढत्या किनारी व्यत्यय ओळखण्यासाठी I/O घड्याळाची उपस्थिती आवश्यक आहे, ज्याचे वर्णन यात केले आहे "घड्याळ प्रणाली आणि त्यांचे वितरण" चालू पृष्ठ 23.

निम्न पातळी व्यत्यय

INT0 वर कमी पातळीचा व्यत्यय असिंक्रोनसपणे आढळला आहे. याचा अर्थ असा होतो की हा व्यत्यय निष्क्रिय मोड व्यतिरिक्त स्लीप मोडमधून देखील भाग जागृत करण्यासाठी वापरला जाऊ शकतो. I/O घड्याळ निष्क्रिय मोड वगळता सर्व स्लीप मोडमध्ये थांबवले आहे.

लक्षात घ्या की जर पॉवर-डाउनमधून वेक-अप करण्यासाठी लेव्हल ट्रिगर केलेला व्यत्यय वापरला गेला असेल, तर लेव्हल इंटरप्ट ट्रिगर करण्यासाठी MCU ला वेक-अप पूर्ण करण्यासाठी आवश्यक पातळी पुरेशी लांब ठेवली पाहिजे. स्टार्ट-अप वेळ संपण्यापूर्वी पातळी गायब झाल्यास, MCU अजूनही जागृत होईल, परंतु कोणताही व्यत्यय निर्माण होणार नाही. स्टार्ट-अप वेळ SUT आणि CKSEL फ्यूज द्वारे परिभाषित केले आहे जसे वर्णन केले आहे पृष्ठ २३ वर “सिस्टम क्लॉक आणि क्लॉक ऑप्शन्स”.

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

पिन बदल व्यत्यय वेळ

एक माजीampपिन बदलण्याच्या व्यत्ययाची वेळ यामध्ये दर्शविली आहे आकृती 9-1.

नोंदणी वर्णन

MCUCR - MCU कंट्रोल रजिस्टर

एक्सटर्नल इंटरप्ट कंट्रोल रजिस्टर ए मध्ये इंटरप्ट सेन्स कंट्रोलसाठी कंट्रोल बिट्स असतात.

बिट 7 6 5 4 3 2 1 0
0x35 BODS PUD SE SM1 SM0 BODSE ISC01 ISC00 MCUCR
वाचा/लिहा R R/W R/W R/W R/W R R/W R/W
प्रारंभिक मूल्य 0 0 0 0 0 0 0 0

बिट्स 1:0 – ISC0[1:0]: इंटरप्ट सेन्स कंट्रोल 0 बिट 1 आणि बिट 0

जर SREG I-ध्वज आणि संबंधित इंटरप्ट मास्क सेट केला असेल तर बाह्य व्यत्यय 0 बाह्य पिन INT0 द्वारे सक्रिय केला जातो. इंटरप्ट सक्रिय करणार्‍या बाह्य INT0 पिनवरील पातळी आणि किनारी यात परिभाषित केल्या आहेत तक्ता 9-2. INT0 पिनवरील मूल्य s आहेampकडा शोधण्यापूर्वी नेतृत्व. एज किंवा टॉगल इंटरप्ट निवडल्यास, एका घड्याळाच्या कालावधीपेक्षा जास्त काळ टिकणाऱ्या डाळी एक व्यत्यय निर्माण करतील. लहान कडधान्ये व्यत्यय निर्माण करण्याची हमी देत ​​​​नाहीत. जर निम्न पातळी व्यत्यय निवडला असेल, तर व्यत्यय निर्माण करण्यासाठी सध्या कार्यान्वित होणारी सूचना पूर्ण होईपर्यंत निम्न पातळी धारण करणे आवश्यक आहे.

तक्ता 9-2. व्यत्यय 0 सेन्स कंट्रोल

ISC01 ISC00 वर्णन
0 0 INT0 ची निम्न पातळी एक व्यत्यय विनंती व्युत्पन्न करते.
0 1 INT0 वरील कोणताही तार्किक बदल व्यत्यय विनंती व्युत्पन्न करतो.
1 0 INT0 ची घसरण धार एक व्यत्यय विनंती व्युत्पन्न करते.
1 1 INT0 ची वाढती किनार एक व्यत्यय विनंती व्युत्पन्न करते.

GIMSK - जनरल इंटरप्ट मास्क रजिस्टर

बिट 7 6 5 4 3 2 1 0
0x3B INT0 पीसीआयई GIMSK
वाचा/लिहा R R/W R/W R R R R R
प्रारंभिक मूल्य 0 0 0 0 0 0 0 0

बिट्स 7, 4:0 – Res: आरक्षित बिट्स

हे बिट्स ATtiny25/45/85 मध्ये आरक्षित बिट आहेत आणि नेहमी शून्य म्हणून वाचले जातील.

बिट 6 – INT0: बाह्य व्यत्यय विनंती 0 सक्षम करा

जेव्हा INT0 बिट सेट केले जाते (एक) आणि स्टेटस रजिस्टर (SREG) मधील I-बिट सेट केले जाते (एक), तेव्हा बाह्य पिन इंटरप्ट सक्षम केला जातो. MCU कंट्रोल रजिस्टर (MCUCR) मधील इंटरप्ट सेन्स कंट्रोल0 बिट्स 1/0 (ISC01 आणि ISC00) INT0 पिन किंवा लेव्हल सेन्स्डच्या वाढत्या आणि/किंवा घसरलेल्या किनार्यावर बाह्य व्यत्यय सक्रिय झाला आहे की नाही हे परिभाषित करतात. जरी INT0 आउटपुट म्हणून कॉन्फिगर केले असले तरीही पिनवरील क्रियाकलाप व्यत्यय विनंतीस कारणीभूत ठरेल. एक्स्टर्नल इंटरप्ट रिक्वेस्ट 0 चा संबंधित इंटरप्ट INT0 इंटरप्ट वेक्टर मधून अंमलात आणला जातो.

बिट 5 – PCIE: पिन चेंज इंटरप्ट सक्षम करा

जेव्हा PCIE बिट सेट केले जाते (एक) आणि स्टेटस रजिस्टर (SREG) मधील I-बिट सेट केले जाते (एक), तेव्हा पिन बदल इंटरप्ट सक्षम केला जातो. कोणत्याही सक्षम PCINT[5:0] पिनवरील कोणताही बदल व्यत्यय आणेल. पिन चेंज इंटरप्ट रिक्वेस्टचा संबंधित इंटरप्ट PCI इंटरप्ट व्हेक्टर मधून अंमलात आणला जातो. PCINT[5:0] पिन PCMSK0 रजिस्टर द्वारे वैयक्तिकरित्या सक्षम केले जातात.

GIFR - जनरल इंटरप्ट फ्लॅग रजिस्टर

बिट 7 6 5 4 3 2 1 0
0x3A INTF0 PCIF GIFR
वाचा/लिहा R R/W R/W R R R R R
प्रारंभिक मूल्य 0 0 0 0 0 0 0 0

बिट्स 7, 4:0 – Res: आरक्षित बिट्स

हे बिट्स ATtiny25/45/85 मध्ये आरक्षित बिट आहेत आणि नेहमी शून्य म्हणून वाचले जातील.

बिट 6 – INTF0: बाह्य व्यत्यय ध्वज 0

जेव्हा INT0 पिनवरील एज किंवा लॉजिक बदलामुळे व्यत्यय विनंती ट्रिगर होते, तेव्हा INTF0 सेट होतो (एक). SREG मधील I-bit आणि GIMSK मधील INT0 बिट (एक) सेट केले असल्यास, MCU संबंधित इंटरप्ट वेक्टरवर जाईल. व्यत्यय दिनचर्या कार्यान्वित केल्यावर ध्वज साफ केला जातो. वैकल्पिकरित्या, त्यावर तार्किक लिहून ध्वज साफ केला जाऊ शकतो. जेव्हा INT0 लेव्हल इंटरप्ट म्हणून कॉन्फिगर केले जाते तेव्हा हा ध्वज नेहमी साफ केला जातो.

बिट 5 – PCIF: पिन चेंज इंटरप्ट फ्लॅग

जेव्हा कोणत्याही PCINT[5:0] पिनवर तर्क बदलल्याने व्यत्यय विनंती ट्रिगर होते, तेव्हा PCIF सेट होते (एक). SREG मधील I-bit आणि GIMSK मधील PCIE बिट (एक) सेट केले असल्यास, MCU संबंधित इंटरप्ट वेक्टरवर जाईल. व्यत्यय दिनचर्या कार्यान्वित केल्यावर ध्वज साफ केला जातो. वैकल्पिकरित्या, त्यावर तार्किक लिहून ध्वज साफ केला जाऊ शकतो.

PCMSK - पिन चेंज मास्क रजिस्टर

बिट 7 6 5 4 3 2 1 0
0x15 PCINT5 PCINT4 PCINT3 PCINT2 PCINT1 PCINT0 PCMSK
वाचा/लिहा R R R/W R/W R/W R/W R/W R/W
प्रारंभिक मूल्य 0 0 0 0 0 0 0 0

बिट्स 7:6 – Res: आरक्षित बिट्स

हे बिट्स ATtiny25/45/85 मध्ये आरक्षित बिट आहेत आणि नेहमी शून्य म्हणून वाचले जातील.

बिट्स 5:0 – PCINT[5:0]: पिन चेंज सक्षम मास्क 5:0

प्रत्येक PCINT[5:0] बिट संबंधित I/O पिनवर पिन चेंज इंटरप्ट सक्षम आहे की नाही हे निवडतो. जर PCINT[5:0] सेट केला असेल आणि GIMSK मधील PCIE बिट सेट केला असेल, तर संबंधित I/O पिनवर पिन चेंज इंटरप्ट सक्षम केला जातो. PCINT[5:0] साफ केल्यास, संबंधित I/O पिनवरील पिन चेंज इंटरप्ट अक्षम केला जातो.

I/O पोर्ट्स

परिचय

जेव्हा सामान्य डिजिटल I/O पोर्ट्स म्हणून वापरले जातात तेव्हा सर्व AVR पोर्टमध्ये रीड-मॉडिफाई-राइट कार्यक्षमता असते. याचा अर्थ असा की एका पोर्ट पिनची दिशा SBI आणि CBI च्या सूचनांसह इतर कोणत्याही पिनची दिशा न बदलता बदलता येते. ड्राइव्ह मूल्य बदलताना (आउटपुट म्हणून कॉन्फिगर केले असल्यास) किंवा पुल-अप प्रतिरोधकांना सक्षम/अक्षम करताना (इनपुट म्हणून कॉन्फिगर केले असल्यास) हेच लागू होते. प्रत्येक आउटपुट बफरमध्ये उच्च सिंक आणि स्त्रोत क्षमता दोन्हीसह सममितीय ड्राइव्ह वैशिष्ट्ये आहेत. LED डिस्प्ले थेट चालवण्यासाठी पिन ड्रायव्हर इतका मजबूत आहे. सर्व पोर्ट पिनमध्ये पुरवठा-व्हॉल्यूमसह वैयक्तिकरित्या निवडण्यायोग्य पुल-अप प्रतिरोधक असतातtage अपरिवर्तनीय प्रतिकार. सर्व I/O पिनमध्ये दर्शविल्याप्रमाणे VCC आणि ग्राउंड दोन्हीसाठी संरक्षण डायोड आहेत आकृती 10-1. पहा पृष्ठ १६१ वर “विद्युत वैशिष्ट्ये” पॅरामीटर्सच्या संपूर्ण यादीसाठी.

आकृती 10-1. I/O पिन समतुल्य योजनाबद्ध

अंजीर 10

या विभागातील सर्व रजिस्टर्स आणि बिट संदर्भ सामान्य स्वरूपात लिहिलेले आहेत. लहान केस "x" हे पोर्टसाठी क्रमांकाचे अक्षर दर्शवते आणि लहान केस "n" बिट क्रमांक दर्शवते. तथापि, प्रोग्राममध्ये रजिस्टर किंवा बिट परिभाषित वापरताना, अचूक फॉर्म वापरणे आवश्यक आहे. उदाample, PORTB3 बिट क्र. पोर्ट B मध्ये 3, येथे सामान्यतः PORTxn म्हणून दस्तऐवजीकरण केले जाते. भौतिक I/O नोंदणी आणि बिट स्थाने सूचीबद्ध आहेत "नोंदणी वर्णन" वर पृष्ठ 64.

प्रत्येक पोर्टसाठी तीन I/O मेमरी अॅड्रेस स्थाने वाटप केली आहेत, प्रत्येकी एक डेटा रजिस्टर - PORTx, डेटा डायरेक्शन रजिस्टर - DDRx आणि पोर्ट इनपुट पिन - PINx. पोर्ट इनपुट पिन I/O स्थान केवळ वाचले जाते, तर डेटा रजिस्टर आणि डेटा डायरेक्शन रजिस्टर वाचले/लिहले जातात. तथापि, PINx रजिस्टरमध्ये तर्कशास्त्र एक ते थोडेसे लिहिल्यास, डेटा रजिस्टरमधील संबंधित बिटमध्ये टॉगल होईल. याव्यतिरिक्त, MCUCR मधील पुल-अप अक्षम – PUD बिट सेट केल्यावर सर्व पोर्टमधील सर्व पिनसाठी पुल-अप कार्य अक्षम करते.

सामान्य डिजिटल I/O म्हणून I/O पोर्ट वापरण्याचे वर्णन केले आहे पृष्ठ ५३ वर "सामान्य डिजिटल I/O म्हणून बंदरे".. बहुतेक पोर्ट पिन डिव्हाइसवरील परिधीय वैशिष्ट्यांसाठी पर्यायी कार्यांसह मल्टीप्लेक्स केलेल्या असतात. पोर्ट पिनमध्ये प्रत्येक पर्यायी कार्य कसे व्यत्यय आणते याचे वर्णन केले आहे पृष्ठ ५७ वर “पर्यायी पोर्ट फंक्शन्स”. वैकल्पिक फंक्शन्सच्या संपूर्ण वर्णनासाठी स्वतंत्र मॉड्यूल विभागांचा संदर्भ घ्या.

लक्षात घ्या की काही पोर्ट पिनचे पर्यायी कार्य सक्षम केल्याने पोर्टमधील इतर पिनच्या वापरावर सामान्य डिजिटल I/O म्हणून परिणाम होत नाही.

सामान्य डिजिटल I/O म्हणून बंदरे

पर्यायी अंतर्गत पुल-अपसह पोर्ट द्वि-दिशात्मक I/O पोर्ट आहेत. आकृती 10-2 एका I/O-पोर्ट पिनचे कार्यात्मक वर्णन दाखवते, येथे सामान्यपणे Pxn म्हटले जाते.

आकृती 10-2. सामान्य डिजिटल I/O(१)

अंजीर 10

पिन कॉन्फिगर करत आहे

प्रत्येक पोर्ट पिनमध्ये तीन रजिस्टर बिट्स असतात: DDxn, PORTxn आणि PINxn. मध्ये दाखवल्याप्रमाणे "नोंदणी वर्णन" वर पृष्ठ 64, DDxn बिट्स DDRx I/O पत्त्यावर, PORTxn बिट्स PORTx I/O पत्त्यावर आणि PINxn बिट्स PINx I/O पत्त्यावर ऍक्सेस केले जातात.

DDRx रजिस्टरमधील DDxn बिट या पिनची दिशा निवडतो. DDxn ला लॉजिक वन लिहिले असल्यास, Pxn हे आउटपुट पिन म्हणून कॉन्फिगर केले आहे. DDxn ला लॉजिक शून्य लिहिले असल्यास, Pxn इनपुट पिन म्हणून कॉन्फिगर केले आहे.

पिन इनपुट पिन म्हणून कॉन्फिगर केल्यावर PORTxn ला लॉजिक वन लिहिले असल्यास, पुल-अप रेझिस्टर सक्रिय होईल. पुल-अप रेझिस्टर बंद करण्यासाठी, PORTxn ला लॉजिक झिरो लिहावे लागेल किंवा पिनला आउटपुट पिन म्हणून कॉन्फिगर करावे लागेल. कोणतीही घड्याळे चालू नसली तरीही रीसेट कंडिशन सक्रिय झाल्यावर पोर्ट पिन ट्राय-स्टेड असतात.

पिन आउटपुट पिन म्हणून कॉन्फिगर केल्यावर PORTxn ला लॉजिक वन लिहिले असल्यास, पोर्ट पिन उच्च (एक) चालविला जातो. पिन आउटपुट पिन म्हणून कॉन्फिगर केल्यावर PORTxn ला लॉजिक शून्य लिहिले असल्यास, पोर्ट पिन कमी (शून्य) चालविला जातो.

पिन टॉगल करत आहे

PINxn वर लॉजिक लिहिल्याने PORTxn चे मूल्य टॉगल होते, DDRxn च्या मूल्यावर स्वतंत्र. लक्षात ठेवा की SBI सूचना एका पोर्टमध्ये एक सिंगल बिट टॉगल करण्यासाठी वापरली जाऊ शकते.

इनपुट आणि आउटपुट दरम्यान स्विच करणे

ट्राय-स्टेट ({DDxn, PORTxn} = 0b00) आणि आउटपुट उच्च ({DDxn, PORTxn} = 0b11) दरम्यान स्विच करताना, पुल-अप सक्षम असलेली इंटर-मीडिएट स्थिती {DDxn, PORTxn} = 0b01) किंवा आउटपुट कमी ({DDxn, PORTxn} = 0b10) येणे आवश्यक आहे. सामान्यतः, पुल-अप सक्षम स्थिती पूर्णपणे स्वीकार्य असते, कारण उच्च-इम्पेडंट वातावरण मजबूत हाय ड्रायव्हर आणि पुल-अपमधील फरक लक्षात घेणार नाही. असे नसल्यास, MCUCR रजिस्टरमधील PUD बिट सर्व पोर्टमधील सर्व पुल-अप अक्षम करण्यासाठी सेट केले जाऊ शकते.

पुल-अप आणि आउटपुट कमी सह इनपुट दरम्यान स्विच केल्याने समान समस्या निर्माण होते. वापरकर्त्याने एकतर ट्राय-स्टेट ({DDxn, PORTxn} = 0b00) किंवा आउटपुट हाय स्टेट ({DDxn, PORTxn} = 0b10) इंटरमीडिएट पायरी म्हणून वापरणे आवश्यक आहे.

तक्ता 10-1 पिन मूल्यासाठी नियंत्रण सिग्नल सारांशित करते.

तक्ता 10-1. पोर्ट पिन कॉन्फिगरेशन

DDxn PORTxn PUD

(MCUCR मध्ये)

I/O पुल-अप टिप्पणी द्या
0 0 X इनपुट नाही त्रि-राज्य (Hi-Z)
0 1 0 इनपुट होय ext असल्यास Pxn वर्तमान स्रोत करेल. खाली ओढले.
0 1 1 इनपुट नाही त्रि-राज्य (Hi-Z)
1 0 X आउटपुट नाही आउटपुट कमी (सिंक)
1 1 X आउटपुट नाही आउटपुट उच्च (स्रोत)

पिन मूल्य वाचणे

डेटा डायरेक्शन बिट DDxn च्या सेटिंगपासून स्वतंत्र, पोर्ट पिन PINxn रजिस्टर बिटद्वारे वाचता येतो. मध्ये दाखवल्याप्रमाणे आकृती 10-2, PINxn रजिस्टर बिट आणि मागील लॅच एक सिंक्रोनायझर बनवतात. जर भौतिक पिन अंतर्गत घड्याळाच्या काठाच्या जवळ मूल्य बदलत असेल तर मेटास्टेबिलिटी टाळण्यासाठी हे आवश्यक आहे, परंतु यामुळे विलंब देखील होतो. आकृती 10-3 बाह्यरित्या लागू केलेले पिन मूल्य वाचताना सिंक्रोनाइझेशनचा एक वेळ आकृती दर्शवितो. जास्तीत जास्त आणि किमान प्रसार विलंब अनुक्रमे tpd, max आणि tpd, किमान दर्शविला जातो.

सिस्टीम घड्याळाच्या पहिल्या घसरणीच्या किनार्यानंतर लवकरच सुरू होणारा घड्याळ कालावधी विचारात घ्या. जेव्हा घड्याळ कमी असते तेव्हा कुंडी बंद होते आणि जेव्हा घड्याळ जास्त असते तेव्हा ते पारदर्शक होते, जसे की “SYNC LATCH” सिग्नलच्या छायांकित क्षेत्राद्वारे सूचित केले जाते. जेव्हा सिस्टम घड्याळ कमी होते तेव्हा सिग्नल मूल्य लॅच केले जाते. ते पुढील सकारात्मक घड्याळाच्या काठावर PINxn रजिस्टरमध्ये क्लॉक केले जाते. tpd,max आणि tpd,min या दोन बाणांनी दर्शविल्याप्रमाणे, पिनवरील सिंगल सिग्नल ट्रान्झिशन ½ आणि 1½ सिस्टीम क्लॉक कालावधी दरम्यान प्रतिपादनाच्या वेळेनुसार विलंबित होईल.

सॉफ्टवेअर नियुक्त केलेले पिन मूल्य परत वाचताना, मध्ये दर्शविल्याप्रमाणे एक nop सूचना समाविष्ट करणे आवश्यक आहे आकृती 10-4. आऊट इंस्ट्रक्शन घड्याळाच्या सकारात्मक किनार्यावर "सिंक लॅच" सिग्नल सेट करते. या प्रकरणात, सिंक्रोनायझरद्वारे विलंब tpd हा एक सिस्टम घड्याळ कालावधी आहे.

खालील कोड उदाample पोर्ट बी पिन 0 आणि 1 उच्च, 2 आणि 3 कमी कसे सेट करायचे ते दर्शविते आणि पोर्ट पिन 4 ला नियुक्त केलेल्या पुल-अपसह इनपुट म्हणून 5 ते 4 पर्यंत पोर्ट पिन परिभाषित करतात. परिणामी पिन मूल्ये पुन्हा वाचली जातात, परंतु आधी चर्चा केल्याप्रमाणे, काही पिनला नुकतेच नियुक्त केलेले मूल्य परत वाचण्यास सक्षम होण्यासाठी एक nop सूचना समाविष्ट केली आहे.

विधानसभा कोड उदाample(१)

; पुल-अप परिभाषित करा आणि आउटपुट उच्च सेट करा

; पोर्ट पिनसाठी दिशानिर्देश परिभाषित करा

ldi        r16,(1<<PB4)|(1<<PB1)|(1<<PB0)

ldi        r17,(1<<DDB3)|(1<<DDB2)|(1<<DDB1)|(1<<DDB0)

PORTB,r16 बाहेर

DDRB,r17 बाहेर

; सिंक्रोनाइझेशनसाठी नोप घाला

नाही

; पोर्ट पिन वाचा

R16 मध्ये, PINB

टीप: असेंब्ली प्रोग्रामसाठी, दोन तात्पुरत्या रजिस्टर्सचा वापर पुल-अप पासूनचा वेळ कमी करण्यासाठी केला जातो जोपर्यंत पिन 0, 1 आणि 4 वर सेट केले जातात, दिशा बिट्स योग्यरित्या सेट होईपर्यंत, बिट 2 आणि 3 कमी म्हणून परिभाषित करणे आणि बिट 0 आणि पुन्हा परिभाषित करणे. 1 मजबूत उच्च ड्रायव्हर्स म्हणून.

सी कोड उदाample
स्वाक्षरी न केलेले चार i;

/* पुल-अप परिभाषित करा आणि उच्च आउटपुट सेट करा */

/* पोर्ट पिनसाठी दिशानिर्देश परिभाषित करा */ PORTB = (1<

DDRB = (1<<DDB3)|(1<<DDB2)|(1<<DDB1)|(1<<DDB0);

/* सिंक्रोनाइझेशनसाठी नोप घाला*/

_NOP();

/* पोर्ट पिन वाचा */ i = PINB;

डिजिटल इनपुट सक्षम आणि स्लीप मोड

मध्ये दाखवल्याप्रमाणे आकृती 10-2, डिजिटल इनपुट सिग्नल cl असू शकतोampschmitt-trigger च्या इनपुटवर ed to ग्राउंड. काही इनपुट सिग्नल फ्लोटिंग सोडल्यास किंवा VCC/2 च्या जवळ अॅनालॉग सिग्नल पातळी असल्यास उच्च उर्जा वापर टाळण्यासाठी आकृतीमध्ये SLEEP दर्शविणारा सिग्नल MCU स्लीप कंट्रोलरद्वारे पॉवर-डाउन मोडमध्ये सेट केला जातो.

बाह्य व्यत्यय पिन म्हणून सक्षम केलेल्या पोर्ट पिनसाठी SLEEP ओव्हरराइड केले आहे. बाह्य व्यत्यय विनंती सक्षम नसल्यास, या पिनसाठी SLEEP देखील सक्रिय आहे. SLEEP मध्ये वर्णन केल्याप्रमाणे इतर विविध पर्यायी कार्यांद्वारे देखील अधिलिखित केले जाते पृष्ठ ५७ वर “पर्यायी पोर्ट फंक्शन्स”.

बाह्य व्यत्यय सक्षम नसताना "राइजिंग एज, फॉलिंग एज किंवा पिनवर कोणताही लॉजिक बदल" म्हणून कॉन्फिगर केलेल्या असिंक्रोनस एक्सटर्नल इंटरप्ट पिनवर लॉजिक हाय लेव्हल ("एक") उपस्थित असल्यास, संबंधित एक्सटर्नल इंटरप्ट फ्लॅग वर नमूद केलेल्या स्लीप मोडमधून पुन्हा सुरू करताना सेट करा, cl म्हणूनampया स्लीप मोडमध्ये ing विनंती केलेले तर्क बदल तयार करते.

अनकनेक्ट केलेले पिन

काही पिन न वापरल्या गेल्या असल्यास, या पिनमध्ये परिभाषित पातळी असल्याची खात्री करण्याची शिफारस केली जाते. वर वर्णन केल्याप्रमाणे डीप स्लीप मोडमध्ये बहुतेक डिजिटल इनपुट अक्षम केले असले तरीही, डिजिटल इनपुट्स सक्षम असलेल्या इतर सर्व मोड्समध्ये (रीसेट, सक्रिय मोड आणि निष्क्रिय मोड) वर्तमान वापर कमी करण्यासाठी फ्लोटिंग इनपुट टाळले पाहिजेत.

न वापरलेल्या पिनची परिभाषित पातळी सुनिश्चित करण्यासाठी सर्वात सोपी पद्धत म्हणजे अंतर्गत पुल-अप सक्षम करणे. या प्रकरणात, पुल-अप रीसेट दरम्यान अक्षम केले जाईल. रीसेट करताना कमी उर्जा वापरणे महत्वाचे असल्यास, बाह्य पुल-अप किंवा पुलडाउन वापरण्याची शिफारस केली जाते. न वापरलेले पिन थेट VCC किंवा GND शी जोडण्याची शिफारस केली जात नाही, कारण पिन चुकून आउटपुट म्हणून कॉन्फिगर केल्यास यामुळे जास्त प्रवाह येऊ शकतात.

पर्यायी पोर्ट कार्ये

बर्‍याच पोर्ट पिनमध्ये सामान्य डिजिटल I/O व्यतिरिक्त पर्यायी कार्ये असतात. आकृती 10-5 पोर्ट पिन कंट्रोल कसे सरलीकृत पासून सिग्नल करते ते दर्शविते आकृती 10-2 वैकल्पिक फंक्शन्सद्वारे अधिलिखित केले जाऊ शकते. ओव्हरराइडिंग सिग्नल सर्व पोर्ट पिनमध्ये असू शकत नाहीत, परंतु आकृती AVR मायक्रोकंट्रोलर कुटुंबातील सर्व पोर्ट पिनसाठी लागू होणारे सामान्य वर्णन म्हणून काम करते.

तक्ता 10-2. पर्यायी कार्यांसाठी ओव्हरराइडिंग सिग्नलचे सामान्य वर्णन

सिग्नलचे नाव पूर्ण नाव वर्णन
PUOE पुल-अप ओव्हरराइड सक्षम करा हा सिग्नल सेट केल्यास, पुल-अप सक्षम PUOV सिग्नलद्वारे नियंत्रित केले जाते. हा सिग्नल साफ केल्यास, पुल-अप केव्हा सक्षम केले जाते

{DDxn, PORTxn, PUD} = 0b010.

PUOV पुल-अप ओव्हरराइड मूल्य PUOE सेट केले असल्यास, DDxn, PORTxn आणि PUD रजिस्टर बिट्सच्या सेटिंगची पर्वा न करता, PUOV सेट/क्लीअर केल्यावर पुल-अप सक्षम/अक्षम केले जाते.
DDOE डेटा दिशा ओव्हरराइड सक्षम करा हा सिग्नल सेट केल्यास, आउटपुट ड्रायव्हर सक्षम DDOV सिग्नलद्वारे नियंत्रित केले जाते. हा सिग्नल साफ केल्यास, आउटपुट ड्रायव्हर DDxn रजिस्टर बिटद्वारे सक्षम केला जातो.
डीडीओव्ही डेटा दिशा ओव्हरराइड मूल्य DDOE सेट केले असल्यास, DDOV सेट/क्लीअर केल्यावर आउटपुट ड्रायव्हर सक्षम/अक्षम केला जातो, DDxn रजिस्टर बिटच्या सेटिंगची पर्वा न करता.
PVOE पोर्ट व्हॅल्यू ओव्हरराइड सक्षम करा जर हा सिग्नल सेट केला असेल आणि आउटपुट ड्रायव्हर सक्षम असेल, तर पोर्ट मूल्य PVOV सिग्नलद्वारे नियंत्रित केले जाते. जर PVOE साफ केले असेल आणि आउटपुट ड्रायव्हर सक्षम असेल, तर पोर्ट व्हॅल्यू PORTxn रजिस्टर बिटद्वारे नियंत्रित केली जाते.
PVOV पोर्ट मूल्य अधिलिखित मूल्य PVOE सेट केले असल्यास, पोर्ट मूल्य PVOV वर सेट केले जाते, PORTxn रजिस्टर बिटच्या सेटिंगची पर्वा न करता.
PTOE पोर्ट टॉगल ओव्हरराइड सक्षम करा PTOE सेट केले असल्यास, PORTxn रजिस्टर बिट उलटे केले जाते.
DIEOE डिजिटल इनपुट सक्षम ओव्हरराइड सक्षम करा हा बिट सेट केल्यास, डिजिटल इनपुट सक्षम DIEOV सिग्नलद्वारे नियंत्रित केले जाते. हा सिग्नल साफ केल्यास, डिजिटल इनपुट सक्षम MCU स्थिती (सामान्य मोड, स्लीप मोड) द्वारे निर्धारित केले जाते.
DIEOV डिजिटल इनपुट ओव्हरराइड मूल्य सक्षम करा DIEOE सेट केले असल्यास, MCU स्थिती (सामान्य मोड, स्लीप मोड) विचारात न घेता, DIEOV सेट/क्लीअर केल्यावर डिजिटल इनपुट सक्षम/अक्षम केले जाते.
DI डिजिटल इनपुट हे पर्यायी कार्यांसाठी डिजिटल इनपुट आहे. आकृतीमध्ये, सिग्नल schmitt-trigger च्या आउटपुटशी जोडलेले आहे परंतु सिंक्रोनाइझरच्या आधी. जोपर्यंत डिजिटल इनपुटचा वापर घड्याळ स्त्रोत म्हणून केला जात नाही तोपर्यंत, पर्यायी कार्य असलेले मॉड्यूल स्वतःचे सिंक्रोनायझर वापरेल.
AIO एनालॉग इनपुट / आउटपुट हे अॅनालॉग इनपुट/आउटपुट टू/मधून पर्यायी फंक्शन्स आहे. सिग्नल थेट पॅडशी जोडलेले आहे, आणि द्वि-दिशेने वापरले जाऊ शकते.

पुढील उपविभाग प्रत्येक पोर्टसाठी पर्यायी फंक्शन्सचे लवकरच वर्णन करतात आणि ओव्हरराइडिंग सिग्नलला पर्यायी फंक्शनशी संबंधित करतात. अधिक तपशीलांसाठी पर्यायी कार्य वर्णन पहा.

पोर्ट बी ची पर्यायी कार्ये

पर्यायी कार्यासह पोर्ट बी पिन मध्ये दर्शविले आहेत तक्ता 10-3.

तक्ता 10-3. पोर्ट बी पिन पर्यायी कार्ये

पोर्ट पिन पर्यायी कार्य
PB5

रीसेट: पिन रीसेट करा

dW: debugWIRE I/O ADC0: ADC इनपुट चॅनल 0

PCINT5: पिन चेंज इंटरप्ट, स्रोत 5

PB4 XTAL2: क्रिस्टल ऑसिलेटर आउटपुट CLKO: सिस्टम क्लॉक आउटपुट ADC2: ADC इनपुट चॅनेल 2

OC1B: टाइमर/काउंटर1 तुलना करा मॅच बी आउटपुट PCINT4: पिन चेंज इंटरप्ट 0, स्त्रोत 4

PB3 XTAL1: क्रिस्टल ऑसिलेटर इनपुट CLKI: बाह्य घड्याळ इनपुट ADC3: ADC इनपुट चॅनेल 3

OC1B: पूरक टाइमर/काउंटर1 तुलना करा Match B आउटपुट PCINT3: पिन चेंज इंटरप्ट 0, स्रोत 3

PB2 SCK: सीरियल क्लॉक इनपुट ADC1: ADC इनपुट चॅनेल 1

T0: टाइमर/काउंटर0 घड्याळ स्रोत USCK: USI घड्याळ (तीन वायर मोड) SCL : USI घड्याळ (दोन वायर मोड) INT0: बाह्य व्यत्यय 0 इनपुट PCINT2: पिन बदल इंटरप्ट 0, स्रोत 2

PB1 MISO: SPI मास्टर डेटा इनपुट / स्लेव्ह डेटा आउटपुट AIN1: अॅनालॉग कंपॅरेटर, नकारात्मक इनपुट OC0B: टाइमर/काउंटर0 तुलना करा मॅच बी आउटपुट OC1A: टाइमर/काउंटर1 तुलना करा मॅच A आउटपुट DO: USI डेटा आउटपुट (तीन वायर मोड) PCINT1 इंटरप्टिन बदला 0, स्रोत 1
PB0 MOSI:: SPI मास्टर डेटा आउटपुट / स्लेव्ह डेटा इनपुट AIN0: अॅनालॉग तुलनाकर्ता, सकारात्मक इनपुट

OC0A: टाइमर/काउंटर0 तुलना करा मॅच A आउटपुट

OC1A: पूरक टाइमर/काउंटर1 तुलना करा मॅच A आउटपुट DI: USI डेटा इनपुट (थ्री वायर मोड)

SDA: USI डेटा इनपुट (दोन वायर मोड) AREF: बाह्य अॅनालॉग संदर्भ PCINT0: पिन चेंज इंटरप्ट 0, स्रोत 0

पोर्ट बी, बिट 5 – रीसेट/dW/ADC0/PCINT5

रीसेट: बाह्य रीसेट इनपुट सक्रिय कमी आहे आणि अनप्रोग्रामिंग (“1”) RSTDISBL फ्यूजद्वारे सक्षम केले आहे. जेव्हा पिन RESET पिन म्हणून वापरला जातो तेव्हा पुलअप सक्रिय केले जाते आणि आउटपुट ड्रायव्हर आणि डिजिटल इनपुट निष्क्रिय केले जातात.

dW: जेव्हा debugWIRE Enable (DWEN) फ्यूज प्रोग्राम केलेले असते आणि लॉक बिट्स अनप्रोग्राम केलेले असतात, तेव्हा लक्ष्य उपकरणातील debugWIRE प्रणाली सक्रिय केली जाते. RESET पोर्ट पिन एक वायर-AND (ओपन-ड्रेन) द्वि-दिशात्मक I/O पिन म्हणून कॉन्फिगर केला आहे ज्यामध्ये पुल-अप सक्षम आहे आणि लक्ष्य आणि इम्युलेटरमधील संवादाचे प्रवेशद्वार बनते.

ADC0: अॅनालॉग ते डिजिटल कनव्हर्टर, चॅनल 0.

PCINT5: पिन चेंज इंटरप्ट सोर्स 5.

पोर्ट बी, बिट 4 – XTAL2/CLKO/ADC2/OC1B/PCINT4

XTAL2: चिप क्लॉक ऑसिलेटर पिन 2. अंतर्गत कॅलिब्रेटेबल आरसी ऑसिलेटर आणि बाह्य घड्याळ वगळता सर्व चिप क्लॉक स्त्रोतांसाठी क्लॉक पिन म्हणून वापरले जाते. घड्याळ पिन म्हणून वापरल्यास, पिन I/O पिन म्हणून वापरली जाऊ शकत नाही. अंतर्गत कॅलिब्रेटेबल आरसी ऑसिलेटर किंवा बाह्य घड्याळ चिप घड्याळ स्रोत म्हणून वापरताना, PB4 एक सामान्य I/O पिन म्हणून काम करते.

CLKO: विभाजित प्रणाली घड्याळ पिन PB4 वर आउटपुट असू शकते. PORTB4 आणि DDB4 सेटिंग्जची पर्वा न करता, CKOUT फ्यूज प्रोग्राम केलेले असल्यास विभाजित सिस्टम घड्याळ आउटपुट होईल. रीसेट दरम्यान ते आउटपुट देखील असेल.

ADC2: अॅनालॉग ते डिजिटल कनव्हर्टर, चॅनल 2.

OC1B: आउटपुट तुलना मॅच आउटपुट: PB4 पिन आउटपुट (DDB1 सेट) म्हणून कॉन्फिगर केल्यावर टाइमर/काउंटर4 तुलना मॅच B साठी बाह्य आउटपुट म्हणून काम करू शकते. OC1B पिन देखील PWM मोड टाइमर कार्यासाठी आउटपुट पिन आहे.

PCINT4: पिन चेंज इंटरप्ट सोर्स 4.

पोर्ट बी, बिट 3 - XTAL1/CLKI/ADC3/OC1B/PCINT3

XTAL1: चिप क्लॉक ऑसिलेटर पिन 1. अंतर्गत कॅलिब्रेटेबल आरसी ऑसिलेटर वगळता सर्व चिप क्लॉक स्त्रोतांसाठी वापरले जाते. घड्याळ पिन म्हणून वापरल्यास, पिन I/O पिन म्हणून वापरली जाऊ शकत नाही.

CLKI: बाह्य घड्याळ स्त्रोताकडून घड्याळ इनपुट, पहा पृष्ठ २६ वर “बाह्य घड्याळ”.

ADC3: अॅनालॉग ते डिजिटल कनव्हर्टर, चॅनल 3.

OC1B: इनव्हर्टेड आउटपुट तुलना मॅच आउटपुट: PB3 पिन आउटपुट (DDB1 सेट) म्हणून कॉन्फिगर केल्यावर टाइमर/काउंटर3 तुलना मॅच B साठी बाह्य आउटपुट म्हणून काम करू शकते. OC1B पिन हा PWM मोड टाइमर फंक्शनसाठी इन्व्हर्टेड आउटपुट पिन देखील आहे.

PCINT3: पिन चेंज इंटरप्ट सोर्स 3.

पोर्ट बी, बिट 2 - SCK/ADC1/T0/USCK/SCL/INT0/PCINT2

SCK: मास्टर क्लॉक आउटपुट, SPI चॅनेलसाठी स्लेव्ह क्लॉक इनपुट पिन. जेव्हा SPI स्लेव्ह म्हणून सक्षम केले जाते, तेव्हा DDB2 च्या सेटिंगची पर्वा न करता हा पिन इनपुट म्हणून कॉन्फिगर केला जातो. जेव्हा SPI मास्टर म्हणून सक्षम केले जाते, तेव्हा या पिनची डेटा दिशा DDPB2 द्वारे नियंत्रित केली जाते. जेव्हा पिनला SPI द्वारे इनपुट होण्यास भाग पाडले जाते, तेव्हा पुल-अप अजूनही PORTB2 बिटद्वारे नियंत्रित केले जाऊ शकते.

ADC1: अॅनालॉग ते डिजिटल कनव्हर्टर, चॅनल 1.

T0: टाइमर/काउंटर0 काउंटर स्रोत.

USCK: तीन-वायर मोड युनिव्हर्सल सीरियल इंटरफेस घड्याळ.

SCL: USI टू-वायर मोडसाठी दोन-वायर मोड सिरीयल घड्याळ.

INT0: बाह्य व्यत्यय स्रोत 0.

PCINT2: पिन चेंज इंटरप्ट सोर्स 2.

पोर्ट बी, बिट 1 – MISO/AIN1/OC0B/OC1A/DO/PCINT1

MISO: SPI चॅनेलसाठी मास्टर डेटा इनपुट, स्लेव्ह डेटा आउटपुट पिन. जेव्हा SPI मास्टर म्हणून सक्षम केले जाते, तेव्हा DDB1 च्या सेटिंगची पर्वा न करता हा पिन इनपुट म्हणून कॉन्फिगर केला जातो. जेव्हा SPI स्लेव्ह म्हणून सक्षम केले जाते, तेव्हा या पिनची डेटा दिशा DDB1 द्वारे नियंत्रित केली जाते. जेव्हा पिनला SPI द्वारे इनपुट होण्यास भाग पाडले जाते, तेव्हा पुल-अप अजूनही PORTB1 बिटद्वारे नियंत्रित केले जाऊ शकते.

AIN1: एनालॉग तुलनाकर्ता नकारात्मक इनपुट. डिजिटल पोर्ट फंक्शनला अॅनालॉग कंपॅरेटरच्या फंक्शनमध्ये व्यत्यय येण्यापासून टाळण्यासाठी अंतर्गत पुल-अप बंद करून इनपुट म्हणून पोर्ट पिन कॉन्फिगर करा.

OC0B: आउटपुट तुलना मॅच आउटपुट. PB1 पिन टाइमर/काउंटर0 तुलना मॅच B साठी बाह्य आउटपुट म्हणून काम करू शकते. हे कार्य करण्यासाठी PB1 पिन आउटपुट (DDB1 सेट (एक)) म्हणून कॉन्फिगर करणे आवश्यक आहे. OC0B पिन देखील PWM मोड टाइमर कार्यासाठी आउटपुट पिन आहे.

OC1A: आउटपुट तुलना मॅच आउटपुट: PB1 पिन आउटपुट (DDB1 सेट) म्हणून कॉन्फिगर केल्यावर टाइमर/काउंटर1 तुलना मॅच B साठी बाह्य आउटपुट म्हणून काम करू शकते. OC1A पिन देखील PWM मोड टाइमर कार्यासाठी आउटपुट पिन आहे.

DO: तीन-वायर मोड युनिव्हर्सल सीरियल इंटरफेस डेटा आउटपुट. थ्री-वायर मोड डेटा आउटपुट PORTB1 मूल्य ओव्हरराइड करते आणि डेटा दिशा बिट DDB1 सेट केल्यावर ते पोर्टवर चालविले जाते (एक). जर दिशा इनपुट असेल आणि PORTB1 सेट असेल (एक) असेल तर PORTB1 अजूनही पुल-अप सक्षम करते.

PCINT1: पिन चेंज इंटरप्ट सोर्स 1.

पोर्ट बी, बिट 0 – MOSI/AIN0/OC0A/OC1A/DI/SDA/AREF/PCINT0

MOSI: SPI मास्टर डेटा आउटपुट, SPI चॅनेलसाठी स्लेव्ह डेटा इनपुट. जेव्हा SPI स्लेव्ह म्हणून सक्षम केले जाते, तेव्हा DDB0 च्या सेटिंगची पर्वा न करता हा पिन इनपुट म्हणून कॉन्फिगर केला जातो. जेव्हा SPI मास्टर म्हणून सक्षम केले जाते, तेव्हा या पिनची डेटा दिशा DDB0 द्वारे नियंत्रित केली जाते. जेव्हा पिनला SPI द्वारे इनपुट होण्यास भाग पाडले जाते, तेव्हा पुल-अप अजूनही PORTB0 बिटद्वारे नियंत्रित केले जाऊ शकते.

AIN0: एनालॉग तुलनाकर्ता सकारात्मक इनपुट. डिजिटल पोर्ट फंक्शनला अॅनालॉग कंपॅरेटरच्या फंक्शनमध्ये व्यत्यय येण्यापासून टाळण्यासाठी अंतर्गत पुल-अप बंद करून इनपुट म्हणून पोर्ट पिन कॉन्फिगर करा.

OC0A: आउटपुट तुलना मॅच आउटपुट. आउटपुट (DDB0 सेट (एक)) म्हणून कॉन्फिगर केल्यावर PB0 पिन टाइमर/काउंटर0 तुलना मॅच A साठी बाह्य आउटपुट म्हणून काम करू शकते. OC0A पिन देखील PWM मोड टाइमर कार्यासाठी आउटपुट पिन आहे.

OC1A: इनव्हर्टेड आउटपुट तुलना मॅच आउटपुट: PB0 पिन आउटपुट (DDB1 सेट) म्हणून कॉन्फिगर केल्यावर टाइमर/काउंटर0 तुलना मॅच B साठी बाह्य आउटपुट म्हणून काम करू शकते. OC1A पिन हा PWM मोड टाइमर फंक्शनसाठी इन्व्हर्टेड आउटपुट पिन देखील आहे.

SDA: दोन-वायर मोड सिरीयल इंटरफेस डेटा.

AREF: ADC साठी बाह्य अॅनालॉग संदर्भ. जेव्हा पिन बाह्य संदर्भ किंवा अंतर्गत खंड म्हणून वापरला जातो तेव्हा PB0 वर पुलअप आणि आउटपुट ड्रायव्हर अक्षम केले जातातtage AREF पिनवर बाह्य कॅपेसिटरसह संदर्भ.

DI: USI थ्री-वायर मोडमध्ये डेटा इनपुट. USI थ्री-वायर मोड सामान्य पोर्ट फंक्शन्स ओव्हरराइड करत नाही, म्हणून DI फंक्शनसाठी पिन इनपुट म्हणून कॉन्फिगर करणे आवश्यक आहे.

PCINT0: पिन चेंज इंटरप्ट सोर्स 0.

तक्ता 10-4 आणि तक्ता 10-5 पोर्ट बी ची पर्यायी फंक्शन्स मध्ये दर्शविलेल्या ओव्हरराइडिंग सिग्नलशी संबंधित करा आकृती 10-5 वर पृष्ठ 58.

तक्ता 10-4. PB मध्ये पर्यायी कार्यांसाठी ओव्हरराइडिंग सिग्नल[5:3]

सिग्नलचे नाव PB5/RESET/ADC0/PCINT5 PB4/ADC2/XTAL2/ OC1B/PCINT4 PB3/ADC3/XTAL1/ OC1B/PCINT3
PUOE

RSTDISBL(१) • DWEN(१)

0 0
PUOV 1 0 0
DDOE RSTDISBL(१) • DWEN(१) 0 0
डीडीओव्ही डीबगवायर ट्रान्समिट 0 0
PVOE 0 OC1B सक्षम करा

OC1B सक्षम करा

PVOV 0 OC1B OC1B
PTOE 0 0 0
DIEOE

RSTDISBL(१) + (PCINT5 • PCIE + ADC0D)

PCINT4 • PCIE + ADC2D PCINT3 • PCIE + ADC3D
DIEOV ADC0D ADC2D ADC3D
DI PCINT5 इनपुट PCINT4 इनपुट PCINT3 इनपुट
AIO इनपुट, ADC0 इनपुट रीसेट करा ADC2 इनपुट ADC3 इनपुट

टीप: जेव्हा फ्यूज "0" (प्रोग्राम केलेला) असतो.

तक्ता 10-5. PB मध्ये पर्यायी कार्यांसाठी ओव्हरराइडिंग सिग्नल[2:0]

सिग्नलचे नाव PB2/SCK/ADC1/T0/ USCK/SCL/INT0/PCINT2 PB1/MISO/DO/AIN1/ OC1A/OC0B/PCINT1 PB0/MOSI/DI/SDA/AIN0/AR EF/OC1A/OC0A/

PCINT0

PUOE USI_TWO_WIRE 0 USI_TWO_WIRE
PUOV 0 0 0
DDOE USI_TWO_WIRE 0 USI_TWO_WIRE
डीडीओव्ही (USI_SCL_HOLD + PORTB2) • DDB2 0  

(SDA + PORTB0) • DDB0

PVOE USI_TWO_WIRE • DDB2 OC0B सक्षम + OC1A सक्षम + USI_THREE_WIRE

OC0A सक्षम + OC1A सक्षम + (USI_TWO_WIRE

DDB0)

PVOV 0 OC0B + OC1A + DO

OC0A + OC1A

PTOE USITC 0 0
DIEOE PCINT2 • PCIE + ADC1D + USISIE PCINT1 • PCIE + AIN1D PCINT0 • PCIE + AIN0D + USISIE
DIEOV ADC1D AIN1D AIN0D
DI T0/USCK/SCL/INT0/

PCINT2 इनपुट

PCINT1 इनपुट DI/SDA/PCINT0 इनपुट
AIO ADC1 इनपुट एनालॉग तुलनाकर्ता नकारात्मक इनपुट अॅनालॉग तुलनाकर्ता सकारात्मक इनपुट

नोंदणी वर्णन

MCUCR - MCU कंट्रोल रजिस्टर

बिट 7 6 5 4 3 2 1 0
0x35 BODS PUD SE SM1 SM0 BODSE ISC01 ISC00 MCUCR
वाचा/लिहा R R/W R/W R/W R/W R R/W R/W
प्रारंभिक मूल्य 0 0 0 0 0 0 0 0

बिट 6 – PUD: पुल-अप अक्षम करा

जेव्हा हा बिट एखाद्याला लिहिला जातो, तेव्हा DDxn आणि PORTxn रजिस्टर्स पुल-अप ({DDxn, PORTxn} = 0b01) सक्षम करण्यासाठी कॉन्फिगर केलेले असले तरीही, I/O पोर्टमधील पुल-अप अक्षम केले जातात. पहा पृष्ठ ५४ वर “पिन कॉन्फिगर करणे” या वैशिष्ट्याबद्दल अधिक तपशीलांसाठी.

PORTB - पोर्ट बी डेटा रजिस्टर

बिट 7 6 5 4 3 2 1 0
0x18 PORTB5 PORTB4 PORTB3 PORTB2 PORTB1 PORTB0 PORTB
वाचा/लिहा R R R/W R/W R/W R/W R/W R/W
प्रारंभिक मूल्य 0 0 0 0 0 0 0 0

DDRB - पोर्ट बी डेटा डायरेक्शन रजिस्टर

बिट 7 6 5 4 3 2 1 0
0x17 DDB5 DDB4 DDB3 DDB2 DDB1 DDB0 DDRB
वाचा/लिहा R R R/W R/W R/W R/W R/W R/W
प्रारंभिक मूल्य 0 0 0 0 0 0 0 0

PINB - पोर्ट B इनपुट पिन पत्ता

बिट 7 6 5 4 3 2 1 0
0x16 PINB5 PINB4 PINB3 PINB2 PINB1 PINB0 PINB
वाचा/लिहा R R R/W R/W R/W R/W R/W R/W
प्रारंभिक मूल्य 0 0 N/A N/A N/A N/A N/A N/A

PWM सह 8-बिट टाइमर/काउंटर0

वैशिष्ट्ये

दोन स्वतंत्र आउटपुट तुलना युनिट्स

दुहेरी बफर केलेले आउटपुट तुलना नोंदणी

तुलना जुळणीवर टाइमर साफ करा (ऑटो रीलोड)

ग्लिच फ्री, फेज करेक्ट पल्स विड्थ मॉड्युलेटर (PWM)

परिवर्तनीय PWM कालावधी

वारंवारता जनरेटर

तीन स्वतंत्र व्यत्यय स्रोत (TOV0, OCF0A, आणि OCF0B)

ओव्हरview

टाइमर/काउंटर0 हे दोन स्वतंत्र आउटपुट तुलना युनिट्ससह आणि PWM समर्थनासह एक सामान्य उद्देश 8-बिट टाइमर/काउंटर मॉड्यूल आहे. हे अचूक प्रोग्राम एक्झिक्यूशन टायमिंग (इव्हेंट मॅनेजमेंट) आणि वेव्ह जनरेशनला अनुमती देते.

8-बिट टाइमर/काउंटरचा एक सरलीकृत ब्लॉक आकृती दर्शविला आहे आकृती 11-1. I/O पिनच्या प्रत्यक्ष प्लेसमेंटसाठी, पहा पृष्ठ २ वर “पिनआउट ATtiny25/45/85”. I/O बिट्स आणि I/O पिनसह CPU प्रवेशयोग्य I/O रजिस्टर्स ठळक अक्षरात दाखवले आहेत. डिव्हाइस-विशिष्ट I/O रजिस्टर आणि बिट स्थाने मध्ये सूचीबद्ध आहेत पृष्ठ ७७ वर “नोंदणी वर्णन”.

टाइमर/काउंटर (TCNT0) आणि आउटपुट तुलना नोंदणी (OCR0A आणि OCR0B) 8-बिट नोंदणी आहेत. टाइमर इंटरप्ट फ्लॅग रजिस्टर (TIFR) मध्ये इंटरप्ट रिक्वेस्ट (आकृतीमध्ये Int.Req चे संक्षिप्त रूप) सिग्नल सर्व दृश्यमान आहेत. टाइमर इंटरप्ट मास्क रजिस्टर (TIMSK) सह सर्व व्यत्यय वैयक्तिकरित्या मास्क केलेले आहेत. TIFR आणि TIMSK आकृतीमध्ये दाखवलेले नाहीत.

टाइमर/काउंटर आंतरिकरित्या, प्रीस्केलरद्वारे किंवा T0 पिनवरील बाह्य घड्याळ स्रोताद्वारे घड्याळ केले जाऊ शकते. क्लॉक सिलेक्ट लॉजिक ब्लॉक हे नियंत्रित करते की टाइमर/काउंटर त्याचे मूल्य वाढवण्यासाठी (किंवा कमी करण्यासाठी) कोणते घड्याळ स्त्रोत आणि काठ वापरते. जेव्हा घड्याळाचा स्रोत निवडलेला नसतो तेव्हा टाइमर/काउंटर निष्क्रिय असतो. क्लॉक सिलेक्ट लॉजिकमधील आउटपुटला टाइमर क्लॉक (clkT0) असे संबोधले जाते.

दुहेरी बफर केलेले आउटपुट तुलना नोंदणी (OCR0A आणि OCR0B) ची तुलना नेहमी टाइमर/काउंटर मूल्याशी केली जाते. आउटपुट तुलना पिन (OC0A आणि OC0B) वर PWM किंवा व्हेरिएबल फ्रिक्वेन्सी आउटपुट तयार करण्यासाठी वेव्हफॉर्म जनरेटरद्वारे तुलनाचा परिणाम वापरला जाऊ शकतो. पृष्ठ ६९ वर "आउटपुट तुलना युनिट" पहा. तपशीलांसाठी. तुलना जुळणी इव्हेंट तुलना ध्वज (OCF0A किंवा OCF0B) देखील सेट करेल ज्याचा वापर आउटपुट तुलना व्यत्यय विनंती व्युत्पन्न करण्यासाठी केला जाऊ शकतो.

व्याख्या

या विभागात अनेक रजिस्टर आणि बिट संदर्भ सामान्य स्वरूपात लिहिलेले आहेत. लहान केस “n” टाइमर/काउंटर क्रमांकाची जागा घेते, या प्रकरणात 0. लहान केस “x” आउटपुट तुलना युनिटची जागा घेते, या प्रकरणात युनिट A किंवा तुलना युनिट B तुलना करते. तथापि, रजिस्टर किंवा बिट वापरताना परिभाषित केले जाते प्रोग्राममध्ये, अचूक फॉर्म वापरणे आवश्यक आहे, म्हणजे, टाइमर/काउंटर0 काउंटर व्हॅल्यूमध्ये प्रवेश करण्यासाठी TCNT0 आणि असेच.

मधील व्याख्या तक्ता 11-1 संपूर्ण दस्तऐवजात देखील मोठ्या प्रमाणावर वापरले जातात.

तक्ता 11-1. व्याख्या

स्थिर वर्णन
तळ काउंटर 0x00 झाल्यावर तळाशी पोहोचते
MAX जेव्हा ते 0xFF (दशांश 255) होते तेव्हा काउंटर त्याची कमाल गाठते
टॉप काउंटर शीर्षस्थानी पोहोचते जेव्हा ते गणना क्रमातील सर्वोच्च मूल्याच्या बरोबरीचे होते. शीर्ष मूल्य निश्चित मूल्य 0xFF (MAX) किंवा OCR0A नोंदणीमध्ये संग्रहित मूल्य म्हणून नियुक्त केले जाऊ शकते. असाइनमेंट ऑपरेशनच्या मोडवर अवलंबून असते

टाइमर/काउंटर प्रीस्केलर आणि घड्याळ स्रोत

टाइमर/काउंटर अंतर्गत किंवा बाह्य घड्याळ स्रोताद्वारे घड्याळ केले जाऊ शकते. क्लॉक सिलेक्ट लॉजिकद्वारे क्लॉक सोर्स निवडला जातो जो टाइमर/काउंटर0 कंट्रोल रजिस्टर (TCCR0B) मध्ये स्थित क्लॉक सिलेक्ट (c) बिट्सद्वारे नियंत्रित केला जातो.

Prescaler सह अंतर्गत घड्याळ स्रोत

टाइमर/काउंटर0 थेट सिस्टीम क्लॉकद्वारे (CS0[2:0] = 1 सेट करून) घड्याळ करता येतो. हे सिस्टीम क्लॉक फ्रिक्वेंसी (fCLK_I/O) प्रमाणे जास्तीत जास्त टाइमर/काउंटर क्लॉक फ्रिक्वेंसीसह, सर्वात वेगवान ऑपरेशन प्रदान करते. वैकल्पिकरित्या, प्रीस्केलरच्या चार टॅपपैकी एक घड्याळ स्रोत म्हणून वापरला जाऊ शकतो. प्रीस्केल केलेल्या घड्याळात एकतर वारंवारता असते

Prescaler रीसेट

प्रीस्केलर विनामूल्य चालू आहे, म्हणजे ते टाइमर/काउंटर0 च्या क्लॉक सिलेक्ट लॉजिकपासून स्वतंत्रपणे कार्य करते. प्रीस्केलरवर टायमर/काउंटरच्या घड्याळाच्या निवडीचा परिणाम होत नसल्यामुळे, प्रीस्केलरच्या स्थितीवर प्रीस्केल केलेले घड्याळ वापरले जाते अशा परिस्थितीवर परिणाम होईल. एक माजीampप्रीस्केलिंग आर्टिफॅक्ट म्हणजे टायमर/काउंटर सक्षम केले जाते आणि प्रीस्केलर (6 > CS0[2:0] > 1) द्वारे क्लॉक केले जाते. सिस्टीम क्लॉक सायकल्सची संख्या जेव्हा टाइमर सक्षम केला जातो तेव्हापासून पहिल्या मोजणीपर्यंत 1 ते N+1 सिस्टम क्लॉक सायकल असू शकतात, जेथे N हे प्रीस्केलर विभाजक (8, 64, 256, किंवा 1024) च्या बरोबरीचे असते.

टाइमर/काउंटरला प्रोग्राम एक्झिक्यूशनसाठी सिंक्रोनाइझ करण्यासाठी प्रीस्केलर रीसेट वापरणे शक्य आहे.

बाह्य घड्याळ स्त्रोत

T0 पिनवर लागू केलेला बाह्य घड्याळ स्रोत टाइमर/काउंटर घड्याळ (clkT0) म्हणून वापरला जाऊ शकतो. T0 पिन s आहेampपिन सिंक्रोनाइझेशन लॉजिकद्वारे प्रत्येक सिस्टीम क्लॉक सायकलचे नेतृत्व केले जाते. समक्रमित (sampled) सिग्नल नंतर पास केला जातो

एज डिटेक्टरद्वारे. आकृती 11-2 T0 सिंक्रोनाइझेशन आणि एज डिटेक्टर लॉजिकचे कार्यात्मक समतुल्य ब्लॉक आकृती दर्शविते. अंतर्गत प्रणाली घड्याळ (clkI/O) च्या धनात्मक काठावर रजिस्टर क्लॉक केले जातात. अंतर्गत प्रणाली घड्याळाच्या उच्च कालावधीमध्ये कुंडी पारदर्शक आहे.

एज डिटेक्टर प्रत्येक पॉझिटिव्ह (CS0[0:2] = 0) किंवा नकारात्मक (CS7[0:2] = 0) काठासाठी एक clkT6 पल्स व्युत्पन्न करतो.

कोणत्याही पल्स विड्थ मॉड्युलेशन (PWM) मोडचा वापर करताना OCR0x रजिस्टर दुहेरी बफर केले जातात. सामान्य आणि क्लिअर टाइमर ऑन कंपेअर (CTC) मोडसाठी, दुहेरी बफरिंग अक्षम केले आहे. दुहेरी बफरिंग OCR0x कम्पेअर रजिस्टर्सच्या अपडेटला मोजणी क्रमाच्या वरच्या किंवा तळाशी समक्रमित करते. सिंक्रोनाइझेशन विषम-लांबीच्या, गैर-सममितीय PWM डाळींच्या घटनेला प्रतिबंधित करते, ज्यामुळे आउटपुट ग्लिच-मुक्त होते.

OCR0x नोंदणी प्रवेश क्लिष्ट वाटू शकतो, परंतु असे नाही. जेव्हा दुहेरी बफरिंग सक्षम केले जाते, तेव्हा CPU ला OCR0x बफर रजिस्टरमध्ये प्रवेश असतो आणि दुहेरी बफरिंग अक्षम केल्यास CPU थेट OCR0x मध्ये प्रवेश करेल.

सक्तीचे आउटपुट तुलना करा

नॉन-पीडब्लूएम वेव्हफॉर्म जनरेशन मोडमध्ये, फोर्स आउटपुट तुलना (FOC0x) बिटवर एक लिहून तुलनाकर्त्याचे मॅच आउटपुट सक्ती करता येते. तुलना जुळणी सक्ती केल्याने OCF0x ध्वज सेट होणार नाही किंवा टाइमर रीलोड/साफ होणार नाही, परंतु OC0x पिन वास्तविक तुलना जुळणी झाल्याप्रमाणे अद्यतनित केला जाईल (COM0x[1:0] बिट सेटिंग्ज OC0x पिन सेट केला आहे की नाही हे परिभाषित करते, साफ केले जाते. किंवा टॉगल केलेले).

TCNT0 राइट द्वारे मॅच ब्लॉकिंगची तुलना करा

TCNT0 रजिस्टर वरील सर्व CPU लेखन ऑपरेशन्स पुढील टाइमर घड्याळ चक्रात होणार्‍या कोणत्याही तुलना जुळणीला अवरोधित करतील, टाइमर थांबला तरीही. हे वैशिष्‍ट्य OCR0x ला टायमर/काउंटर घड्याळ सक्षम असताना व्यत्यय आणल्याशिवाय TCNT0 च्‍या मूल्यावर प्रारंभ करण्‍याची अनुमती देते.

आउटपुट तुलना युनिट वापरणे

ऑपरेशनच्या कोणत्याही मोडमध्ये TCNT0 लिहिल्याने एका टाइमर घड्याळ चक्रासाठी सर्व तुलना जुळण्या अवरोधित केल्या जातील, आउटपुट तुलना युनिट वापरताना TCNT0 बदलताना जोखीम असते, टाइमर/काउंटर चालू आहे की नाही यापासून स्वतंत्रपणे. TCNT0 वर लिहिलेले मूल्य OCR0x मूल्याच्या बरोबरीचे असल्यास, तुलना जुळणी चुकवली जाईल, परिणामी चुकीची वेव्हफॉर्म निर्मिती होईल. त्याचप्रमाणे, काउंटर डाउन-काउंटिंग करत असताना TCNT0 मूल्य BOTTOM च्या समान लिहू नका.

पोर्ट पिन आउटपुटसाठी डेटा डायरेक्शन रजिस्टर सेट करण्यापूर्वी OC0x चे सेटअप केले पाहिजे. OC0x मूल्य सेट करण्याचा सर्वात सोपा मार्ग म्हणजे फोर्स आउटपुट तुलना (FOC0x) स्ट्रोब बिट्स नॉर्मल मोडमध्ये वापरणे. OC0x रजिस्टर्स वेव्हफॉर्म जनरेशन मोडमध्ये बदलत असतानाही त्यांची मूल्ये ठेवतात.

हे लक्षात ठेवा की COM0x[1:0] बिट तुलना मूल्यासह दुहेरी बफर केलेले नाहीत. COM0x[1:0] बिट्स बदलणे लगेच प्रभावी होईल.

मॅच आउटपुट युनिटची तुलना करा

तुलना आउटपुट मोड (COM0x[1:0]) बिट्समध्ये दोन कार्ये असतात. वेव्हफॉर्म जनरेटर पुढील तुलना सामन्यात आउटपुट तुलना (OC0x) स्थिती परिभाषित करण्यासाठी COM1x[0:0] बिट्स वापरतो. तसेच, COM0x[1:0] बिट OC0x पिन आउटपुट स्रोत नियंत्रित करतात. आकृती 11-6 COM0x[1:0] बिट सेटिंग द्वारे प्रभावित तर्कशास्त्राचे सरलीकृत योजना दाखवते. आकृतीत I/O रजिस्टर, I/O बिट्स आणि I/O पिन ठळक अक्षरात दाखवल्या आहेत. सामान्य I/O पोर्ट कंट्रोल रजिस्टर्सचे (DDR आणि PORT) भाग जे COM0x[1:0] बिट्सने प्रभावित होतात तेच दाखवले जातात. OC0x स्थितीचा संदर्भ देताना, संदर्भ अंतर्गत OC0x रजिस्टरसाठी आहे, OC0x पिनचा नाही. सिस्टम रीसेट झाल्यास, OC0x रजिस्टर "0" वर रीसेट केले जाईल.

जेव्हा OC0A/OC0B I/O पिनशी जोडलेले असते, तेव्हा COM0A[1:0]/COM0B[1:0] बिटचे कार्य WGM0[2:0] बिट सेटिंगवर अवलंबून असते. तक्ता 11-2 COM0x[1:0] बिट कार्यक्षमता दाखवते जेव्हा WGM0[2:0] बिट्स सामान्य किंवा CTC मोडवर (नॉन-PWM) सेट केले जातात.

तक्ता 11-2. आउटपुट मोड, नॉन-पीडब्ल्यूएम मोडची तुलना करा

COM0A1 COM0B1 COM0A0 COM0B0 वर्णन
0 0 सामान्य पोर्ट ऑपरेशन, OC0A/OC0B डिस्कनेक्ट झाले.
0 1 तुलना जुळणीवर OC0A/OC0B टॉगल करा
1 0 तुलना जुळणीवर OC0A/OC0B साफ करा
1 1 तुलना जुळणीवर OC0A/OC0B सेट करा

तक्ता 11-3 जेव्हा WGM0[1:0] बिट जलद PWM मोडवर सेट केले जातात तेव्हा COM0x[2:0] बिट कार्यक्षमता दाखवते.

तक्ता 11-3. आउटपुट मोड, फास्ट पीडब्ल्यूएम मोडची तुलना करा(१)

COM0A1 COM0B1 COM0A0 COM0B0 वर्णन
0 0 सामान्य पोर्ट ऑपरेशन, OC0A/OC0B डिस्कनेक्ट झाले.
0 1 राखीव
1 0 तुलना जुळणीवर OC0A/OC0B साफ करा, OC0A/OC0B तळाशी सेट करा (नॉन-इनव्हर्टिंग मोड)
1 1 तुलना जुळणीवर OC0A/OC0B सेट करा, तळाशी OC0A/OC0B साफ करा (इनव्हर्टिंग मोड)

टीप: OCR0A किंवा OCR0B समान TOP आणि COM0A1/COM0B1 सेट केल्यावर एक विशेष केस उद्भवते. या प्रकरणात, तुलना जुळणीकडे दुर्लक्ष केले जाते, परंतु सेट किंवा क्लिअर BOTTOM येथे केले जाते. पहा पृष्ठ ७३ वर “फास्ट PWM मोड” अधिक तपशीलांसाठी.

तक्ता 11-4 जेव्हा WGM0[1:0] बिट्स फेज योग्य PWM मोडवर सेट केले जातात तेव्हा COM0x[2:0] बिट कार्यक्षमता दाखवते.

तक्ता 11-4. आउटपुट मोड, फेज करेक्ट पीडब्ल्यूएम मोडची तुलना करा(१)

COM0A1 COM0B1 COM0A0 COM0B0 वर्णन
0 0 सामान्य पोर्ट ऑपरेशन, OC0A/OC0B डिस्कनेक्ट झाले.
0 1 राखीव
1 0 अप-मोजणी करताना OC0A/OC0B तुलना करा. डाउन-काउंटिंग करताना OC0A/OC0B तुलना करा.
1 1 मोजणी करताना OC0A/OC0B तुलना करा. डाउन-काउंटिंग करताना तुलना मॅचवर OC0A/OC0B साफ करा.

टीप: 1. OCR0A किंवा OCR0B समान TOP आणि COM0A1/COM0B1 सेट केल्यावर एक विशेष केस उद्भवते. या प्रकरणात, तुलना जुळणीकडे दुर्लक्ष केले जाते, परंतु सेट किंवा स्पष्ट TOP वर केले जाते. पहा पृष्ठ ७४ वर “फेज करेक्ट PWM मोड” अधिक तपशीलांसाठी.

बिट्स 3:2 – Res: आरक्षित बिट्स

हे बिट्स ATtiny25/45/85 मध्ये आरक्षित बिट आहेत आणि नेहमी शून्य म्हणून वाचले जातील.

बिट्स 1:0 – WGM0[1:0]: वेव्हफॉर्म जनरेशन मोड

TCCR02B रजिस्टरमध्ये आढळलेल्या WGM0 बिटसह एकत्रित केलेले, हे बिट काउंटरच्या मोजणी क्रम, कमाल (TOP) काउंटर मूल्याचा स्रोत आणि कोणत्या प्रकारची वेव्हफॉर्म जनरेशन वापरायची यावर नियंत्रण ठेवतात. तक्ता 11-5. टाइमर/काउंटर युनिटद्वारे समर्थित ऑपरेशनचे मोड आहेत: सामान्य मोड (काउंटर), तुलना जुळणी (सीटीसी) मोडवर क्लियर टाइमर आणि दोन प्रकारचे पल्स विड्थ मॉड्युलेशन (पीडब्ल्यूएम) मोड (पहा. "ऑपरेशनच्या पद्धती" पृष्ठ 71 वर).

तक्ता 11-5. वेव्हफॉर्म जनरेशन मोड बिट वर्णन

मोड WGM 02 WGM 01 WGM 00 टाइमर/काउंटर ऑपरेशन मोड टॉप येथे OCRx चे अद्यतन TOV ध्वज सेट चालू
0 0 0 0 सामान्य 0xFF तात्काळ MAX(१)
1 0 0 1 PWM, फेज करेक्ट 0xFF टॉप तळ(१)
2 0 1 0 CTC OCRA तात्काळ MAX(१)
3 0 1 1 वेगवान PWM 0xFF तळ(१) MAX(१)
4 1 0 0 राखीव
5 1 0 1 PWM, फेज करेक्ट OCRA टॉप तळ(१)
6 1 1 0 राखीव
7 1 1 1 वेगवान PWM OCRA तळ(१) टॉप

बिट 7 – FOC0A: सक्तीचे आउटपुट तुलना A

FOC0A बिट फक्त तेव्हाच सक्रिय असतो जेव्हा WGM बिट्स नॉन-PWM मोड निर्दिष्ट करतात.

तथापि, भविष्यातील उपकरणांसह सुसंगतता सुनिश्चित करण्यासाठी, जेव्हा PWM मोडमध्ये TCCR0B लिहिले जाते तेव्हा हा बिट शून्यावर सेट केला जाणे आवश्यक आहे. FOC0A बिटवर तार्किक लिहिताना, वेव्हफॉर्म जनरेशन युनिटवर तात्काळ तुलना जुळणी सक्ती केली जाते. OC0A आउटपुट त्याच्या COM0A[1:0] बिट्स सेटिंगनुसार बदलले आहे. लक्षात घ्या की FOC0A बिट स्ट्रोब म्हणून लागू केले आहे. त्यामुळे COM0A[1:0] बिट्समध्ये असलेले मूल्य हे सक्ती केलेल्या तुलनाचा परिणाम ठरवते.

FOC0A स्ट्रोब कोणताही व्यत्यय निर्माण करणार नाही, किंवा OCR0A TOP म्हणून वापरून CTC मोडमधील टाइमर साफ करणार नाही. FOC0A बिट नेहमी शून्य म्हणून वाचले जाते.

बिट 6 – FOC0B: फोर्स आउटपुट तुलना B

FOC0B बिट फक्त तेव्हाच सक्रिय असतो जेव्हा WGM बिट्स नॉन-PWM मोड निर्दिष्ट करतात.

तथापि, भविष्यातील उपकरणांसह सुसंगतता सुनिश्चित करण्यासाठी, जेव्हा PWM मोडमध्ये TCCR0B लिहिले जाते तेव्हा हा बिट शून्यावर सेट करणे आवश्यक आहे. FOC0B बिटवर तार्किक लिहिताना, वेव्हफॉर्म जनरेशन युनिटवर तात्काळ तुलना जुळणी सक्ती केली जाते. OC0B आउटपुट त्याच्या COM0B[1:0] बिट्स सेटिंगनुसार बदलले आहे. लक्षात घ्या की FOC0B बिट स्ट्रोब म्हणून लागू केले आहे. त्यामुळे COM0B[1:0] बिट्समध्ये असलेले मूल्य हे सक्ती केलेल्या तुलनाचा परिणाम ठरवते.

FOC0B स्ट्रोब कोणताही व्यत्यय निर्माण करणार नाही, किंवा तो OCR0B TOP वापरून CTC मोडमधील टाइमर साफ करणार नाही.

FOC0B बिट नेहमी शून्य म्हणून वाचले जाते.

बिट्स 5:4 – Res: आरक्षित बिट्स

हे बिट्स ATtiny25/45/85 मध्ये आरक्षित बिट आहेत आणि नेहमी शून्य म्हणून वाचले जातील.

बिट 3 – WGM02: वेव्हफॉर्म जनरेशन मोड

मध्ये वर्णन पहा पृष्ठ ७७ वर “TCCR0A – टाइमर/काउंटर कंट्रोल रजिस्टर ए”.

बिट्स 2:0 – CS0[2:0]: घड्याळ निवडा

तीन क्लॉक सिलेक्ट बिट्स टाइमर/काउंटरद्वारे वापरल्या जाणार्‍या घड्याळाचा स्रोत निवडतात.

तक्ता 11-6. घड्याळ निवडा बिट वर्णन

CS02 CS01 CS00 वर्णन
0 0 0 घड्याळाचा स्रोत नाही (टाइमर/काउंटर थांबला)
0 0 1 clkI/O/(प्रीस्केलिंग नाही)
0 1 0 clkI/O/8 (prescaler कडून)
0 1 1 clkI/O/64 (prescaler कडून)
1 0 0 clkI/O/256 (prescaler कडून)
1 0 1 clkI/O/1024 (prescaler कडून)
1 1 0 T0 पिनवरील बाह्य घड्याळ स्रोत. घसरण काठावर घड्याळ.
1 1 1 T0 पिनवरील बाह्य घड्याळ स्रोत. वाढत्या काठावर घड्याळ.

टाइमर/काउंटर0 साठी बाह्य पिन मोड वापरले असल्यास, पिन आउटपुट म्हणून कॉन्फिगर केला असला तरीही T0 पिनवरील संक्रमणे काउंटरला घड्याळ देतात. हे वैशिष्ट्य मोजणीचे सॉफ्टवेअर नियंत्रण करण्यास अनुमती देते.

काउंटर आणि तुलना युनिट्स

टाइमर/काउंटर1 सामान्य ऑपरेशनचे वर्णन एसिंक्रोनस मोडमध्ये केले जाते आणि सिंक्रोनस मोडमधील ऑपरेशन केवळ या दोन मोडमध्ये फरक असल्यासच नमूद केले जाते. आकृती 12-2 टाइमर/काउंटर 1 सिंक्रोनाइझेशन रजिस्टर ब्लॉक डायग्राम आणि रजिस्टर्समधील सिंक्रोनाइझेशन विलंब दाखवते. लक्षात घ्या की घड्याळाचे सर्व तपशील आकृतीमध्ये दाखवलेले नाहीत. टाइमर/काउंटर1 रजिस्टर व्हॅल्यू अंतर्गत सिंक्रोनाइझेशन रजिस्टर्समधून जातात, ज्यामुळे काउंटर ऑपरेशनवर परिणाम होण्यापूर्वी इनपुट सिंक्रोनाइझेशन विलंब होतो. TCCR1, GTCCR, OCR1A, OCR1B, आणि OCR1C हे रजिस्टर लिहिल्यानंतर लगेच परत वाचता येतात. इनपुट आणि आउटपुट सिंक्रोनायझेशनमुळे टाइमर/काउंटर1 (TCNT1) रजिस्टर आणि फ्लॅग्ज (OCF1A, OCF1B, आणि TOV1) साठी रीड बॅक व्हॅल्यूज विलंबित आहेत.

टाइमर/काउंटर1 उच्च रिझोल्यूशन आणि कमी प्रीस्केलिंग संधींसह उच्च अचूकता वापरते. हे दोन अचूक, हाय स्पीड, 8-बिट पल्स विड्थ मॉड्युलेटर्सला 64 MHz पर्यंत (किंवा कमी स्पीड मोडमध्ये 32 MHz) क्लॉक स्पीड वापरून सपोर्ट करू शकते. या मोडमध्‍ये, टाइमर/काउंटर1 आणि आउटपुट तुलना रजिस्टर्स नॉन-ओव्हरलॅपिंग नॉन-इन्व्हर्टेड आणि इनव्हर्टेड आउटपुटसह ड्युअल स्टँड-अलोन PWM म्हणून काम करतात. पहा पृष्ठ 86 या कार्याच्या तपशीलवार वर्णनासाठी. त्याचप्रमाणे, उच्च प्रीस्केलिंग संधी या युनिटला कमी गतीच्या फंक्शन्ससाठी किंवा क्वचित क्रियांसह अचूक वेळेच्या कार्यांसाठी उपयुक्त बनवतात.

आकृती 12-2. टाइमर/काउंटर 1 सिंक्रोनाइझेशन रजिस्टर ब्लॉक आकृती.

टायमर/काउंटर1 आणि प्रीस्केलर एसिंक्रोनस मोडमध्ये PCK घड्याळ वेगवान 64 MHz (किंवा 32 MHz कमी स्पीड मोडमध्ये) चालवत असताना कोणत्याही घड्याळ स्रोतावरून CPU चालवण्याची परवानगी देतात.

लक्षात ठेवा की सिस्टम घड्याळ वारंवारता PCK वारंवारता एक तृतीयांश पेक्षा कमी असणे आवश्यक आहे. सिंक्रोनस टाइमर/काउंटर1 च्या सिंक्रोनाइझेशन मेकॅनिझमला जेव्हा सिस्टम क्लॉक जास्त असतो तेव्हा PCK च्या किमान दोन कडा आवश्यक असतात. सिस्टम घड्याळाची वारंवारता खूप जास्त असल्यास, डेटा किंवा नियंत्रण मूल्ये गमावण्याचा धोका असतो.

खालील आकृती 12-3 टाइमर/काउंटर1 साठी ब्लॉक आकृती दाखवते.

तक्ता 12-1. PWM मोडमध्ये मोड निवडा तुलना करा

COM1x1 COM1x0 आउटपुट तुलना पिन वर प्रभाव
0 0 OC1x कनेक्ट केलेले नाही. OC1x कनेक्ट केलेले नाही.
0 1 तुलना जुळणीवर OC1x साफ केले. व्हेनटीसीएनटी1 = $00 सेट करा. OC1x तुलना जुळणी वर सेट. TCNT1 = $00 असताना साफ केले.
1 0 तुलना जुळणीवर OC1x साफ केले. TCNT1 = $00 तेव्हा सेट करा. OC1x कनेक्ट केलेले नाही.
1 1 OC1x तुलना जुळणी वर सेट. TCNT1= $00 असताना साफ केले. OC1x कनेक्ट केलेले नाही.

एडीसी वैशिष्ट्ये

तक्ता 21-8. एडीसी वैशिष्ट्ये, सिंगल एंडेड चॅनेल. TA = -40°C ते +85°C

प्रतीक पॅरामीटर अट मि टाइप करा कमाल युनिट्स
ठराव 10 बिट्स
पूर्ण अचूकता (आयएनएल, डीएनएल आणि क्वांटायझेशन, गेन आणि ऑफसेट त्रुटींसह) VREF = 4V, VCC = 4V,

ADC घड्याळ = 200 kHz

2 LSB
VREF = 4V, VCC = 4V,

एडीसी घड्याळ = 1 मेगाहर्ट्झ

3 LSB
VREF = 4V, VCC = 4V,

ADC घड्याळ = 200 kHz

नॉइस रिडक्शन मोड

1.5 LSB
VREF = 4V, VCC = 4V,

एडीसी घड्याळ = 1 मेगाहर्ट्झ

नॉइस रिडक्शन मोड

2.5 LSB
इंटिग्रल नॉन-लाइनरिटी (INL) (ऑफसेट नंतर अचूकता आणि कॅलिब्रेशन मिळवणे) VREF = 4V, VCC = 4V,

ADC घड्याळ = 200 kHz

1 LSB
विभेदक नॉन-लाइनरिटी (DNL) VREF = 4V, VCC = 4V,

ADC घड्याळ = 200 kHz

0.5 LSB
गेन एरर VREF = 4V, VCC = 4V,

ADC घड्याळ = 200 kHz

2.5 LSB
ऑफसेट त्रुटी VREF = 4V, VCC = 4V,

ADC घड्याळ = 200 kHz

1.5 LSB
रूपांतरण वेळ मोफत चालू रूपांतरण 14 280 .s
घड्याळ वारंवारिता 50 1000 केएचझेड
VIN इनपुट व्हॉल्यूमtage GND VREF V
इनपुट बँडविड्थ 38.4 केएचझेड
AREF बाह्य संदर्भ खंडtage 2.0 VCC V
VINT अंतर्गत खंडtage संदर्भ 1.0 1.1 1.2 V
अंतर्गत 2.56V संदर्भ (१) VCC > 3.0V 2.3 2.56 2.8 V
RREF 32 के
पाऊस अॅनालॉग इनपुट प्रतिरोध 100
एडीसी आउटपुट 0 1023 LSB

टीप: 1. मूल्ये केवळ मार्गदर्शक तत्त्वे आहेत.

तक्ता 21-9. एडीसी वैशिष्ट्ये, विभेदक चॅनेल (युनिपोलर मोड). TA = -40°C ते +85°C

प्रतीक पॅरामीटर अट मि टाइप करा कमाल युनिट्स
ठराव लाभ = 1x 10 बिट्स
लाभ = 20x 10 बिट्स
पूर्ण अचूकता (आयएनएल, डीएनएल, आणि

परिमाणीकरण, लाभ आणि ऑफसेट त्रुटी)

लाभ = 1x

VREF = 4V, VCC = 5V

ADC घड्याळ = 50 - 200 kHz

10.0 LSB
लाभ = 20x

VREF = 4V, VCC = 5V

ADC घड्याळ = 50 - 200 kHz

20.0 LSB
इंटिग्रल नॉन-लाइनरिटी (INL) (ऑफसेट आणि गेन कॅलिब्रेशन नंतर अचूकता) लाभ = 1x

VREF = 4V, VCC = 5V

ADC घड्याळ = 50 - 200 kHz

4.0 LSB
लाभ = 20x

VREF = 4V, VCC = 5V

ADC घड्याळ = 50 - 200 kHz

10.0 LSB
गेन एरर लाभ = 1x 10.0 LSB
लाभ = 20x 15.0 LSB
ऑफसेट त्रुटी लाभ = 1x

VREF = 4V, VCC = 5V

ADC घड्याळ = 50 - 200 kHz

3.0 LSB
लाभ = 20x

VREF = 4V, VCC = 5V

ADC घड्याळ = 50 - 200 kHz

4.0 LSB
रूपांतरण वेळ मोफत चालू रूपांतरण 70 280 .s
घड्याळ वारंवारिता 50 200 केएचझेड
VIN इनपुट व्हॉल्यूमtage GND VCC V
VDIFF इनपुट डिफरेंशियल व्हॉल्यूमtage VREF/लाभ V
इनपुट बँडविड्थ 4 केएचझेड
AREF बाह्य संदर्भ खंडtage 2.0 VCC - 1.0 V
VINT अंतर्गत खंडtage संदर्भ 1.0 1.1 1.2 V
अंतर्गत 2.56V संदर्भ (१) VCC > 3.0V 2.3 2.56 2.8 V
RREF संदर्भ इनपुट प्रतिरोध 32 के
पाऊस अॅनालॉग इनपुट प्रतिरोध 100
एडीसी रूपांतरण आउटपुट 0 1023 LSB

टीप: मूल्ये केवळ मार्गदर्शक तत्त्वे आहेत.

तक्ता 21-10. एडीसी वैशिष्ट्ये, विभेदक चॅनेल (द्विध्रुवीय मोड). TA = -40°C ते +85°C

प्रतीक पॅरामीटर अट मि टाइप करा कमाल युनिट्स
ठराव लाभ = 1x 10 बिट्स
लाभ = 20x 10 बिट्स
पूर्ण अचूकता (आयएनएल, डीएनएल, आणि

परिमाणीकरण, लाभ आणि ऑफसेट त्रुटी)

लाभ = 1x

VREF = 4V, VCC = 5V

ADC घड्याळ = 50 - 200 kHz

8.0 LSB
लाभ = 20x

VREF = 4V, VCC = 5V

ADC घड्याळ = 50 - 200 kHz

8.0 LSB
इंटिग्रल नॉन-लाइनरिटी (INL) (ऑफसेट आणि गेन कॅलिब्रेशन नंतर अचूकता) लाभ = 1x

VREF = 4V, VCC = 5V

ADC घड्याळ = 50 - 200 kHz

4.0 LSB
लाभ = 20x

VREF = 4V, VCC = 5V

ADC घड्याळ = 50 - 200 kHz

5.0 LSB
गेन एरर लाभ = 1x 4.0 LSB
लाभ = 20x 5.0 LSB
ऑफसेट त्रुटी लाभ = 1x

VREF = 4V, VCC = 5V

ADC घड्याळ = 50 - 200 kHz

3.0 LSB
लाभ = 20x

VREF = 4V, VCC = 5V

ADC घड्याळ = 50 - 200 kHz

4.0 LSB
रूपांतरण वेळ मोफत चालू रूपांतरण 70 280 .s
घड्याळ वारंवारिता 50 200 केएचझेड
VIN इनपुट व्हॉल्यूमtage GND VCC V
VDIFF इनपुट डिफरेंशियल व्हॉल्यूमtage VREF/लाभ V
इनपुट बँडविड्थ 4 केएचझेड
AREF बाह्य संदर्भ खंडtage 2.0 VCC - 1.0 V
VINT अंतर्गत खंडtage संदर्भ 1.0 1.1 1.2 V
अंतर्गत 2.56V संदर्भ (१) VCC > 3.0V 2.3 2.56 2.8 V
RREF संदर्भ इनपुट प्रतिरोध 32 के
पाऊस अॅनालॉग इनपुट प्रतिरोध 100
एडीसी रूपांतरण आउटपुट -512 511 LSB

सूचना संच सारांश

नेमोनिक्स ऑपरेंड्स वर्णन ऑपरेशन ध्वज #घड्याळ
अंकगणित आणि तर्कविषयक सूचना
जोडा Rd, Rr दोन रजिस्टर्स जोडा Rd ← Rd + Rr Z,C,N,V,H 1
एडीसी Rd, Rr कॅरी दोन रजिस्टर्ससह जोडा Rd ← Rd + Rr + C Z,C,N,V,H 1
ADIW आरडीएल, के शब्दात त्वरित जोडा Rdh:Rdl ← Rdh:Rdl + K Z,C,N,V,S 2
SUB Rd, Rr दोन रजिस्टर वजा करा Rd ← Rd – Rr Z,C,N,V,H 1
SUBI आरडी, के रजिस्टरमधून स्थिरांक वजा करा आरडी ← आरडी – के Z,C,N,V,H 1
SBC Rd, Rr कॅरी दोन रजिस्टर्ससह वजा करा Rd ← Rd – Rr – C Z,C,N,V,H 1
SBCI आरडी, के Reg मधून Carry Constant सह वजा करा. Rd ← Rd – K – C Z,C,N,V,H 1
SBIW आरडीएल, के शब्दातून तात्काळ वजा करा Rdh:Rdl ← Rdh:Rdl – K Z,C,N,V,S 2
आणि Rd, Rr तार्किक आणि नोंदणी Rd ← Rd ∙ Rr Z,N,V 1
ANDI आरडी, के तार्किक आणि नोंदणी आणि स्थिर Rd ← Rd ∙ K Z,N,V 1
OR Rd, Rr तार्किक किंवा नोंदणी Rd ← Rd v Rr Z,N,V 1
ORI आरडी, के तार्किक किंवा नोंदणी आणि स्थिर आरडी ← आरडी वि के Z,N,V 1
EOR Rd, Rr अनन्य किंवा नोंदणी Rd ← Rd ⊕ Rr Z,N,V 1
COM Rd एखाद्याचे पूरक Rd ← 0xFF − Rd Z,C,N,V 1
एनईजी Rd दोनचे पूरक Rd ← 0x00 − Rd Z,C,N,V,H 1
SBR आरडी, के रजिस्टरमध्ये बिट सेट करा आरडी ← आरडी वि के Z,N,V 1
CBR आरडी, के रजिस्टरमधील बिट क्लिअर करा Rd ← Rd ∙ (0xFF – K) Z,N,V 1
INC Rd वाढ Rd ← Rd + 1 Z,N,V 1
DEC Rd घट Rd ← Rd − 1 Z,N,V 1
TST Rd शून्य किंवा वजा साठी चाचणी Rd ← Rd ∙ Rd Z,N,V 1
CLR Rd नोंदणी साफ करा Rd ← Rd ⊕ Rd Z,N,V 1
SER Rd नोंदणी सेट करा Rd ← 0xFF काहीही नाही 1
शाखेच्या सूचना
RJMP k सापेक्ष उडी PC ← PC + k + 1 काहीही नाही 2
IJMP (Z) वर अप्रत्यक्ष जा पीसी ← झेड काहीही नाही 2
RCALL k सापेक्ष सबरूटीन कॉल PC ← PC + k + 1 काहीही नाही 3
ICALL (Z) ला अप्रत्यक्ष कॉल पीसी ← झेड काहीही नाही 3
RET सबरूटीन रिटर्न पीसी ← स्टॅक काहीही नाही 4
RETI व्यत्यय परतावा पीसी ← स्टॅक I 4
CPSE आरडी, आरआर तुलना करा, समान असल्यास वगळा जर (Rd = Rr) PC ← PC + 2 किंवा 3 काहीही नाही २०२०/१०/२३
CP आरडी, आरआर तुलना करा Rd - Rr Z, N, V, C, H 1
CPC आरडी, आरआर कॅरीशी तुलना करा Rd − Rr − C Z, N, V, C, H 1
सीपीआय आरडी, के तात्काळ नोंदणीशी तुलना करा आरडी - के Z, N, V, C, H 1
SBRC आरआर, बी रजिस्टरमधील बिट क्लिअर झाल्यास वगळा जर (Rr(b)=0) PC ← PC + 2 किंवा 3 काहीही नाही २०२०/१०/२३
SBRS आरआर, बी रजिस्टरमधील बिट सेट असल्यास वगळा जर (Rr(b)=1) PC ← PC + 2 किंवा 3 काहीही नाही २०२०/१०/२३
SBIC पी, बी I/O रजिस्टरमधील बिट क्लिअर झाल्यास वगळा जर (P(b)=0) PC ← PC + 2 किंवा 3 काहीही नाही २०२०/१०/२३
SBIS पी, बी I/O रजिस्टरमधील बिट सेट असल्यास वगळा जर (P(b)=1) PC ← PC + 2 किंवा 3 काहीही नाही २०२०/१०/२३
बीआरबीएस s, k स्थिती ध्वज सेट केल्यास शाखा जर (SREG(s) = 1) तर PC←PC+k + 1 काहीही नाही 1/2
BRBC s, k स्थिती ध्वज साफ केल्यास शाखा जर (SREG(s) = 0) तर PC←PC+k + 1 काहीही नाही 1/2
BREQ k शाखा समान असल्यास जर (Z = 1) तर PC ← PC + k + 1 काहीही नाही 1/2
BRNE k समान नसल्यास शाखा जर (Z = 0) तर PC ← PC + k + 1 काहीही नाही 1/2
BRCS k कॅरी सेट असल्यास शाखा जर (C = 1) तर PC ← PC + k + 1 काहीही नाही 1/2
BRCC k कॅरी क्लिअर असल्यास शाखा जर (C = 0) तर PC ← PC + k + 1 काहीही नाही 1/2
BRSH k शाखा समान किंवा उच्च असल्यास जर (C = 0) तर PC ← PC + k + 1 काहीही नाही 1/2
BRLO k शाखा कमी असल्यास जर (C = 1) तर PC ← PC + k + 1 काहीही नाही 1/2
BRMI k वजा असल्यास शाखा जर (N = 1) तर PC ← PC + k + 1 काहीही नाही 1/2
BRPL k शाखा असल्यास प्लस जर (N = 0) तर PC ← PC + k + 1 काहीही नाही 1/2
BRGE k शाखा मोठी किंवा समान असल्यास, स्वाक्षरी जर (N ⊕ V= 0) तर PC ← PC + k + 1 काहीही नाही 1/2
BRLT k शून्यापेक्षा कमी असल्यास शाखा, स्वाक्षरी जर (N ⊕ V= 1) तर PC ← PC + k + 1 काहीही नाही 1/2
BRHS k हाफ कॅरी फ्लॅग सेट केल्यास शाखा जर (H = 1) तर PC ← PC + k + 1 काहीही नाही 1/2
BRHC k अर्धा वाहून नेणारा ध्वज साफ केल्यास शाखा जर (H = 0) तर PC ← PC + k + 1 काहीही नाही 1/2
बीआरटीएस k T ध्वज सेट केल्यास शाखा जर (T = 1) तर PC ← PC + k + 1 काहीही नाही 1/2
BRTC k टी ध्वज साफ केल्यास शाखा जर (T = 0) तर PC ← PC + k + 1 काहीही नाही 1/2
BRVS k ओव्हरफ्लो ध्वज सेट असल्यास शाखा जर (V = 1) तर PC ← PC + k + 1 काहीही नाही 1/2
BRVC k ओव्हरफ्लो ध्वज साफ केला असल्यास शाखा जर (V = 0) तर PC ← PC + k + 1 काहीही नाही 1/2
BRIE k इंटरप्ट सक्षम असल्यास शाखा जर ( I = 1) तर PC ← PC + k + 1 काहीही नाही 1/2
BRID k इंटरप्ट अक्षम असल्यास शाखा जर ( I = 0) तर PC ← PC + k + 1 काहीही नाही 1/2
बिट आणि बिट-चाचणी सूचना
SBI पी, बी I/O रजिस्टर मध्ये बिट सेट करा I/O(P,b) ← १ काहीही नाही 2
सीबीआय पी, बी I/O रजिस्टरमधील बिट क्लिअर करा I/O(P,b) ← १ काहीही नाही 2
LSL Rd तार्किक शिफ्ट डावीकडे Rd(n+1) ← Rd(n), Rd(0) ← 0 Z,C,N,V 1
LSR Rd तार्किक शिफ्ट उजवीकडे Rd(n) ← Rd(n+1), Rd(7) ← 0 Z,C,N,V 1
भूमिका Rd कॅरीमधून डावीकडे फिरवा Rd(0)←C,Rd(n+1)← Rd(n),C←Rd(7) Z,C,N,V 1
ROR Rd कॅरीमधून उजवीकडे फिरवा Rd(7)←C,Rd(n)← Rd(n+1),C←Rd(0) Z,C,N,V 1
ASR Rd अंकगणित शिफ्ट उजवीकडे Rd(n) ← Rd(n+1), n=0..6 Z,C,N,V 1
नेमोनिक्स ऑपरेंड्स वर्णन ऑपरेशन ध्वज #घड्याळ
स्वॅप Rd निबल्स स्वॅप करा Rd(3..0)←Rd(7..4),Rd(7..4)←Rd(3..0) काहीही नाही 1
बीएसईटी s ध्वज संच SREG(s) ← १ एसआरईजी 1
BCLR s ध्वज साफ करा SREG(s) ← १ एसआरईजी 1
BST आरआर, बी बिट स्टोअर रजिस्टर ते टी T ← Rr(b) T 1
BLD आरडी, बी टी पासून नोंदणी करण्यासाठी बिट लोड Rd(b) ← टी काहीही नाही 1
SEC कॅरी सेट करा क ← १ C 1
CLC साफ कॅरी क ← १ C 1
सेन नकारात्मक ध्वज सेट करा N ← १ N 1
CLN नकारात्मक ध्वज साफ करा N ← १ N 1
SEZ शून्य ध्वज सेट करा Z ← १ Z 1
CLZ शून्य ध्वज साफ करा Z ← १ Z 1
SEI ग्लोबल इंटरप्ट सक्षम करा मी ← १ I 1
CLI ग्लोबल इंटरप्ट अक्षम करा मी ← १ I 1
SES स्वाक्षरी केलेला चाचणी ध्वज सेट करा एस ← १ S 1
CLS स्वाक्षरी केलेला चाचणी ध्वज साफ करा एस ← १ S 1
SEV Twos पूरक ओव्हरफ्लो सेट करा. V ← १ V 1
CLV क्लिअर टूज कॉम्प्लिमेंट ओव्हरफ्लो V ← १ V 1
सेट SREG मध्ये T सेट करा टी ← १ T 1
CLT SREG मध्ये क्लिअर टी टी ← १ T 1
एसईएच SREG मध्ये हाफ कॅरी ध्वज सेट करा एच ← १ H 1
सीएलएच SREG मध्ये हाफ कॅरी ध्वज साफ करा एच ← १ H 1
डेटा ट्रान्सफर सूचना
MOV Rd, Rr नोंदणी दरम्यान हलवा आरडी ← आरआर काहीही नाही 1
MOVW Rd, Rr नोंदणी शब्द कॉपी करा Rd+1:Rd ← Rr+1:Rr काहीही नाही 1
LDI आरडी, के तात्काळ लोड करा आरडी ← के काहीही नाही 1
LD आरडी, एक्स अप्रत्यक्ष लोड करा Rd ← (X) काहीही नाही 2
LD Rd, X+ अप्रत्यक्ष आणि पोस्ट-इंक लोड करा. Rd ← (X), X ← X + 1 काहीही नाही 2
LD आरडी, - एक्स अप्रत्यक्ष आणि पूर्व-डिसेंबर लोड करा. X ← X – 1, Rd ← (X) काहीही नाही 2
LD Rd, Y अप्रत्यक्ष लोड करा Rd ← (Y) काहीही नाही 2
LD Rd, Y+ अप्रत्यक्ष आणि पोस्ट-इंक लोड करा. Rd ← (Y), Y ← Y + 1 काहीही नाही 2
LD Rd, - Y अप्रत्यक्ष आणि पूर्व-डिसेंबर लोड करा. Y ← Y – 1, Rd ← (Y) काहीही नाही 2
एलडीडी Rd, Y+q विस्थापनासह अप्रत्यक्ष लोड करा Rd ← (Y + q) काहीही नाही 2
LD आरडी, झेड अप्रत्यक्ष लोड करा Rd ← (Z) काहीही नाही 2
LD Rd, Z+ अप्रत्यक्ष आणि पोस्ट-इंक लोड करा. Rd ← (Z), Z ← Z+1 काहीही नाही 2
LD Rd, -Z अप्रत्यक्ष आणि पूर्व-डिसेंबर लोड करा. Z ← Z – 1, Rd ← (Z) काहीही नाही 2
एलडीडी Rd, Z+q विस्थापनासह अप्रत्यक्ष लोड करा Rd ← (Z + q) काहीही नाही 2
एलडीएस आरडी, के SRAM वरून थेट लोड करा Rd ← (k) काहीही नाही 2
ST एक्स, आर अप्रत्यक्ष स्टोअर करा (X) ← आर काहीही नाही 2
ST X+, Rr स्टोअर अप्रत्यक्ष आणि पोस्ट-इंक. (X) ← Rr, X ← X + 1 काहीही नाही 2
ST - एक्स, आर अप्रत्यक्ष आणि पूर्व-डिसेंबर संचयित करा. X ← X – 1, (X) ← आरआर काहीही नाही 2
ST वाई, आर अप्रत्यक्ष स्टोअर करा (Y) ← आर काहीही नाही 2
ST Y+, Rr स्टोअर अप्रत्यक्ष आणि पोस्ट-इंक. (Y) ← Rr, Y ← Y + 1 काहीही नाही 2
ST - वाई, आर अप्रत्यक्ष आणि पूर्व-डिसेंबर संचयित करा. Y ← Y – 1, (Y) ← Rr काहीही नाही 2
STD Y+q, Rr विस्थापनासह अप्रत्यक्ष संचयित करा (Y + q) ← Rr काहीही नाही 2
ST झेड, आर अप्रत्यक्ष स्टोअर करा (Z) ← आर काहीही नाही 2
ST Z+, Rr स्टोअर अप्रत्यक्ष आणि पोस्ट-इंक. (Z) ← Rr, Z ← Z + 1 काहीही नाही 2
ST -झेड, आर अप्रत्यक्ष आणि पूर्व-डिसेंबर संचयित करा. Z ← Z – 1, (Z) ← Rr काहीही नाही 2
STD Z+q, Rr विस्थापनासह अप्रत्यक्ष संचयित करा (Z + q) ← Rr काहीही नाही 2
एसटीएस k, Rr SRAM वर थेट स्टोअर करा (k) ← आर काहीही नाही 2
LPM प्रोग्राम मेमरी लोड करा R0 ← (Z) काहीही नाही 3
LPM आरडी, झेड प्रोग्राम मेमरी लोड करा Rd ← (Z) काहीही नाही 3
LPM Rd, Z+ लोड प्रोग्राम मेमरी आणि पोस्ट-इंक Rd ← (Z), Z ← Z+1 काहीही नाही 3
एसपीएम स्टोअर प्रोग्राम मेमरी (z) ← R1:R0 काहीही नाही
IN आरडी, पी पोर्ट मध्ये आरडी ← पी काहीही नाही 1
बाहेर पी, आर आउट पोर्ट पी ← आरआर काहीही नाही 1
पुश Rr स्टॅकवर नोंदणी पुश करा स्टॅक ← आर काहीही नाही 2
पीओपी Rd स्टॅकवरून पॉप रजिस्टर Rd ← स्टॅक काहीही नाही 2
MCU नियंत्रण सूचना
NOP ऑपरेशन नाही काहीही नाही 1
झोपा झोप (स्लीप फंक्शनसाठी विशिष्ट वर्णन पहा) काहीही नाही 1
WDR वॉचडॉग रीसेट (WDR/Timer साठी विशिष्ट वर्णन पहा) काहीही नाही 1
BREAK ब्रेक
गती (MHz) (१) पुरवठा खंडtage (V) तापमान श्रेणी पॅकेज (१) ऑर्डरिंग कोड (१)
10 ८७८ - १०७४ औद्योगिक

(-40 ° से ते + 85 XNUMX से) (१)

8P3 ATtiny45V-10PU
8S2 ATtiny45V-10SU ATtiny45V-10SUR ATtiny45V-10SH ATtiny45V-10SHR
8X ATtiny45V-10XU ATtiny45V-10XUR
20M1 ATtiny45V-10MU ATtiny45V-10MUR
20 ८७८ - १०७४ औद्योगिक

(-40 ° से ते + 85 XNUMX से) (१)

8P3 ATtiny45-20PU
8S2 ATtiny45-20SU ATtiny45-20SUR

ATtiny45-20SH ATtiny45-20SHR

8X ATtiny45-20XU ATtiny45-20XUR
20M1 ATtiny45-20MU ATtiny45-20MUR

टिपा: 1. वेग विरुद्ध पुरवठा खंडासाठीtage, विभाग पहा 21.3 पृष्ठ 163 वर “वेग”.

सर्व पॅकेजेस पीबी-फ्री, हॅलाइड-फ्री आणि पूर्णपणे हिरवे आहेत आणि ते धोकादायक पदार्थांच्या निर्बंधासाठी (RoHS) युरोपियन निर्देशांचे पालन करतात.

कोड निर्देशक

H: NiPdAu लीड फिनिश

U: मॅट टिन

आर: टेप आणि रील

ही उपकरणे वेफर स्वरूपात देखील पुरवली जाऊ शकतात. तपशीलवार ऑर्डरिंग माहिती आणि किमान प्रमाणासाठी कृपया तुमच्या स्थानिक Atmel विक्री कार्यालयाशी संपर्क साधा.

एर्राटा

त्रुटी ATtiny25

या विभागातील पुनरावृत्ती पत्र ATtiny25 उपकरणाच्या पुनरावृत्तीचा संदर्भ देते.

रेव्ह डी - एफ

ज्ञात त्रुटी नाही.

रेव्ह बी - सी

EEPROM वाचन कमी पुरवठा व्हॉल्यूमवर अयशस्वी होऊ शकतेtage / कमी घड्याळ वारंवारता

EEPROM वाचन कमी पुरवठा व्हॉल्यूमवर अयशस्वी होऊ शकतेtage / कमी घड्याळ वारंवारता

कमी घड्याळ वारंवारता आणि/किंवा कमी पुरवठा खंड येथे EEPROM वाचण्याचा प्रयत्न करत आहेtagई अवैध डेटा होऊ शकते.

समस्येचे निराकरण/वर्कअराउंड

जेव्हा घड्याळाची वारंवारता 1MHz पेक्षा कमी असेल आणि पुरवठा खंड असेल तेव्हा EEPROM वापरू नकाtage 2V च्या खाली आहे. जर ऑपरेटिंग फ्रिक्वेन्सी 1MHz वर वाढवता येत नसेल तर पुरवठा खंडtage 2V पेक्षा जास्त असावे. त्याचप्रमाणे, जर पुरवठा खंडtage 2V वर वाढवता येत नाही तर ऑपरेटिंग वारंवारता 1MHz पेक्षा जास्त असावी.

हे वैशिष्ट्य तापमानावर अवलंबून असल्याचे ओळखले जाते परंतु ते वैशिष्ट्यीकृत केलेले नाही. दिशानिर्देश केवळ खोलीच्या तापमानासाठी दिले जातात.

रेव अ

एस नाहीampएलईडी.

त्रुटी ATtiny45

या विभागातील पुनरावृत्ती पत्र ATtiny45 उपकरणाच्या पुनरावृत्तीचा संदर्भ देते.

रेव्ह एफ - जी

ज्ञात त्रुटी नाही

रेव्ह डी - ई

EEPROM वाचन कमी पुरवठा व्हॉल्यूमवर अयशस्वी होऊ शकतेtage / कमी घड्याळ वारंवारता

EEPROM वाचन कमी पुरवठा व्हॉल्यूमवर अयशस्वी होऊ शकतेtage / कमी घड्याळ वारंवारता

कमी घड्याळ वारंवारता आणि/किंवा कमी पुरवठा खंड येथे EEPROM वाचण्याचा प्रयत्न करत आहेtagई अवैध डेटा होऊ शकते.

समस्येचे निराकरण/वर्कअराउंड

जेव्हा घड्याळाची वारंवारता 1MHz पेक्षा कमी असेल आणि पुरवठा खंड असेल तेव्हा EEPROM वापरू नकाtage 2V च्या खाली आहे. जर ऑपरेटिंग फ्रिक्वेन्सी 1MHz वर वाढवता येत नसेल तर पुरवठा खंडtage 2V पेक्षा जास्त असावे. त्याचप्रमाणे, जर पुरवठा खंडtage 2V वर वाढवता येत नाही तर ऑपरेटिंग वारंवारता 1MHz पेक्षा जास्त असावी.

हे वैशिष्ट्य तापमान अवलंबून असल्याचे ओळखले जाते परंतु ते वैशिष्ट्यीकृत केलेले नाही. दिशानिर्देश केवळ खोलीच्या तापमानासाठी दिले जातात.

रेव्ह बी - सी

PLL लॉक होत नाही

ऍप्लिकेशन कोडमधून वाचलेले EEPROM लॉक बिट मोड 3 मध्ये कार्य करत नाही

EEPROM वाचन कमी पुरवठा व्हॉल्यूमवर अयशस्वी होऊ शकतेtage / कमी घड्याळ वारंवारता

OC1B- XOC1B वर टाइमर काउंटर 1 PWM आउटपुट जनरेशन योग्यरित्या कार्य करत नाही

PLL लॉक होत नाही

6.0 MHz पेक्षा कमी फ्रिक्वेन्सीवर, PLL लॉक होणार नाही

समस्येचे निराकरण / वर्कअराउंड

PLL वापरताना, 6.0 MHz किंवा त्याहून अधिक वेगाने चालवा.

ऍप्लिकेशन कोडमधून वाचलेले EEPROM लॉक बिट मोड 3 मध्ये कार्य करत नाही

जेव्हा मेमरी लॉक बिट्स LB2 आणि LB1 मोड 3 वर प्रोग्राम केले जातात, तेव्हा EEPROM रीड ऍप्लिकेशन कोडवरून कार्य करत नाही.

समस्या दुरुस्त करा/काम करा

जेव्हा EEPROM वरून ऍप्लिकेशन कोड वाचण्याची आवश्यकता असेल तेव्हा लॉक बिट प्रोटेक्शन मोड 3 सेट करू नका.

EEPROM वाचन कमी पुरवठा व्हॉल्यूमवर अयशस्वी होऊ शकतेtage / कमी घड्याळ वारंवारता

कमी घड्याळ वारंवारता आणि/किंवा कमी पुरवठा खंड येथे EEPROM वाचण्याचा प्रयत्न करत आहेtagई अवैध डेटा होऊ शकते.

समस्येचे निराकरण/वर्कअराउंड

जेव्हा घड्याळाची वारंवारता 1MHz पेक्षा कमी असेल आणि पुरवठा खंड असेल तेव्हा EEPROM वापरू नकाtage 2V च्या खाली आहे. जर ऑपरेटिंग फ्रिक्वेन्सी 1MHz वर वाढवता येत नसेल तर पुरवठा खंडtage 2V पेक्षा जास्त असावे. त्याचप्रमाणे, जर पुरवठा खंडtage 2V वर वाढवता येत नाही तर ऑपरेटिंग वारंवारता 1MHz पेक्षा जास्त असावी.

हे वैशिष्ट्य तापमानावर अवलंबून असल्याचे ओळखले जाते परंतु ते वैशिष्ट्यीकृत केलेले नाही. दिशानिर्देश केवळ खोलीच्या तापमानासाठी दिले जातात.

OC1B वर टाइमर काउंटर 1 PWM आउटपुट जनरेशन - XOC1B योग्यरित्या कार्य करत नाही

टाइमर काउंटर1 PWM आउटपुट OC1B-XOC1B योग्यरित्या कार्य करत नाही. जेव्हा नियंत्रण बिट्स, COM1B1 आणि COM1B0 अनुक्रमे COM1A1 आणि COM1A0 सारख्या मोडमध्ये असतात तेव्हाच, OC1B-XOC1B आउटपुट योग्यरित्या कार्य करते.

समस्या दुरुस्त करा/काम करा

COM1A[1:0] आणि COM1B[1:0] कंट्रोल बिट्सवर समान नियंत्रण सेटिंग वापरणे हा एकमेव उपाय आहे, डेटा शीटमध्ये टेबल 14- 4 पहा. Tiny45 rev D साठी समस्या निश्चित केली गेली आहे.

रेव अ

खूप जास्त पॉवर डाउन पॉवर वापर

इंटरप्टमध्ये एकल पाऊल टाकल्यावर डीबगवायर संप्रेषण गमावते

PLL लॉक होत नाही

ऍप्लिकेशन कोडमधून वाचलेले EEPROM लॉक बिट मोड 3 मध्ये कार्य करत नाही

EEPROM वाचन कमी पुरवठा व्हॉल्यूमवर अयशस्वी होऊ शकतेtage / कमी घड्याळ वारंवारता

खूप जास्त पॉवर डाउन पॉवर वापर

तीन परिस्थितींमुळे पॉवरचा वापर खूप जास्त होईल. हे आहेत:

बाह्य घड्याळ फ्यूजद्वारे निवडले जाते, परंतु I/O PORT अद्याप आउटपुट म्हणून सक्षम आहे.

पॉवर डाउनमध्ये प्रवेश करण्यापूर्वी EEPROM वाचले जाते.

VCC 4.5 व्होल्ट किंवा उच्च आहे.

अस्वीकरण: या दस्तऐवजातील माहिती Atmel उत्पादनांच्या संदर्भात प्रदान केली आहे. या दस्तऐवजाद्वारे किंवा Atmel उत्पादनांच्या विक्रीच्या संबंधात कोणताही बौद्धिक संपदा अधिकार एस्टॉपेलद्वारे किंवा अन्यथा, कोणताही परवाना, व्यक्त किंवा निहित नाही. ATMEL वर स्थित विक्रीच्या अटी आणि शर्तींमध्ये नमूद केल्याशिवाय WEBसाइट, ATMEL काहीही उत्तरदायित्व गृहीत धरत नाही आणि त्याच्या उत्पादनांशी संबंधित कोणतीही स्पष्ट, निहित किंवा वैधानिक हमी नाकारते, ज्यामध्ये समाविष्ट आहे, परंतु इतकेच मर्यादित नाही, निहित हमी, विनयशीलता. कोणत्याही परिस्थितीत ATMEL कोणत्याही प्रत्यक्ष, अप्रत्यक्ष, परिणामी, दंडात्मक, विशेष किंवा आकस्मिक हानीसाठी जबाबदार असणार नाही (यासह, मर्यादेशिवाय, तोटा आणि नफ्यासाठी नुकसान, गैरव्यवहाराच्या वापरासाठी वापरणे, गैरव्यवहार करणे) हे दस्तऐवज, जरी एटीमेलला अशा प्रकारच्या हानीच्या संभाव्यतेचा सल्ला दिला गेला असेल.

Atmel या दस्तऐवजाच्या सामग्रीच्या अचूकतेच्या किंवा पूर्णतेच्या संदर्भात कोणतेही प्रतिनिधित्व किंवा हमी देत ​​नाही आणि कोणत्याही वेळी सूचना न देता तपशील आणि उत्पादनांच्या वर्णनांमध्ये बदल करण्याचा अधिकार राखून ठेवते. Atmel येथे असलेली माहिती अपडेट करण्यासाठी कोणतीही वचनबद्धता करत नाही. विशेषत: अन्यथा प्रदान केल्याशिवाय, Atmel उत्पादने ऑटोमोटिव्ह अनुप्रयोगांसाठी योग्य नाहीत आणि वापरली जाणार नाहीत. Atmel उत्पादने जीवनास समर्थन देण्यासाठी किंवा टिकवून ठेवण्याच्या उद्देशाने अनुप्रयोगांमध्ये घटक म्हणून वापरण्यासाठी अभिप्रेत, अधिकृत किंवा वॉरंटीड नाहीत.

संदर्भ

एक टिप्पणी द्या

तुमचा ईमेल पत्ता प्रकाशित केला जाणार नाही. आवश्यक फील्ड चिन्हांकित आहेत *