इंटरक्रॉसिंग आरटीसी (DS1307) माइक्रोकंट्रोलर और इसके प्रोग्रामिंग के साथ

समस्याओं को खत्म करने के लिए हमारे साधन का प्रयास करें





RTC एक इलेक्ट्रॉनिक उपकरण है जो एक आवश्यक भूमिका निभाता है realtime एम्बेडेड सिस्टम डिजाइन । यह विभिन्न अनुप्रयोगों जैसे सिस्टम घड़ी, छात्र उपस्थिति प्रणाली और अलार्म आदि में एक सटीक समय और तारीख प्रदान करता है, जो वर्तमान समय पर नज़र रखता है और संबंधित कार्य को लगातार परिणाम प्रदान करता है। यह लेख 8051microcotrollerand आंतरिक रजिस्टरों की बुनियादी पहुंच के साथ RTC इंटरफेस प्रस्तुत करता है।

8051 माइक्रोकंट्रोलर के साथ आरटीसी इंटरफेसिंग

8051 माइक्रोकंट्रोलर के साथ आरटीसी इंटरफेसिंग



आरटीसी प्रोग्रामिंग और इंटरफेसिंग

8051 माइक्रोकंट्रोलर के साथ आरटीसी इंटरफेसिंग 'रियल टाइम क्लॉक्स' के अन्य सभी प्रकारों के समान है। तो आइए हम सरल आरटीसी इंटरफेसिंग पर नज़र डालते हैं 8051 माइक्रोकंट्रोलर और प्रोग्रामिंग प्रक्रिया इसमें शामिल है।


Step1: RTC डिवाइस को चुनें

विभिन्न प्रकार के RTC चिप्स वास्तविक समय में एम्बेडेड दुनिया में उपलब्ध हैं, जिन्हें विभिन्न प्रकारों जैसे पैकेज प्रकार, आपूर्ति वोल्टेज और पिन कॉन्फ़िगरेशन आदि के आधार पर वर्गीकृत किया जाता है। कुछ प्रकार के RTC डिवाइस हैं



  • दो-तार सीरियल इंटरफ़ेस (I2C बस)
  • तीन-तार सीरियल इंटरफ़ेस (USB बस)
  • चार-तार सीरियल इंटरफ़ेस (SPI BUS)

सबसे पहले, हमें I2C बस आरटीसी या एसपीआई बस आरटीसी या अन्य जैसी आवश्यकता के आधार पर आरटीसी डिवाइस के प्रकार का चयन करना होगा, जो संबंधित माइक्रोकंट्रोलर के साथ उपयुक्त हो। फिर हम आवेदन की आवश्यकता के आधार पर आरटीसी डिवाइस की विशेषताओं का चयन कर सकते हैं जैसे बैटरी जीवन, उपयुक्त पैकेज और घड़ी आवृत्ति। आइए हम दो-तार इंटरफेस पर विचार करें डीएस 1307 जैसे 8051 माइक्रोकंट्रोलर के साथ आरटीसी

Step2: RTC डिवाइस का आंतरिक रजिस्टर और पता

आरटीसी वास्तविक समय घड़ी के लिए खड़ा है जो क्रिस्टल आवृत्ति के आधार पर वर्ष, महीने, सप्ताह, दिन, घंटे, मिनट और सेकंड प्रदान करता है। RTC में इनबिल्ट होता है डाटा स्टोरेज के लिए रैम मैमोरी । बैटरी को आरटीसी डिवाइस से जोड़कर मुख्य बिजली आपूर्ति की विफलता के मामले में एक बैटरी बैकअप प्रदान किया जाएगा।

RTC DB1307 विन्यास:

आरटीसी आंतरिक ब्लॉक और पिन आरेख

आरटीसी आंतरिक ब्लॉक और पिन आरेख

ए 0, ए 1, ए 2: RTC DB1307 चिप के पता पिन हैं, जिनका उपयोग मास्टर डिवाइस के साथ संचार करने के लिए किया जा सकता है। हम RTC इंटरफेस के साथ आठ उपकरणों को नियंत्रित कर सकते हैं 8051 माइक्रोकंट्रोलर I2C प्रोटोकॉल का उपयोग करके A0, A1, A2 बिट्स द्वारा।


VCC और GND: वीसीसी और जीएनडी क्रमशः बिजली की आपूर्ति और ग्राउंड पिन हैं। यह डिवाइस 1.8V से 5.5V रेंज के साथ संचालित होता है।

VBT: वीबीटी एक बैटरी पावर सप्लाई पिन है। बैटरी पावर स्रोत 2 वी से 3.5 वी के बीच होना चाहिए।

SCL: SCL एक सीरियल क्लॉक पिन है और इसका उपयोग सीरियल इंटरफ़ेस पर डेटा को सिंक्रनाइज़ करने के लिए किया जाता है।

SDL: यह एक सीरियल इनपुट और आउटपुट पिन है। इसका उपयोग धारावाहिक इंटरफ़ेस पर डेटा को प्रसारित करने और प्राप्त करने के लिए किया जाता है।

काम समाप्त करो: यह एक वैकल्पिक स्क्वायर वेव आउटपुट पिन है।

OSC0 और OSC1: ये क्रिस्टल थरथरानवाला पिन हैं जिनका उपयोग आरटीसी डिवाइस को घड़ी संकेत प्रदान करने के लिए किया जाता है। मानक क्वार्ट्ज क्रिस्टल आवृत्ति 22.768KHz है।

डिवाइस पता:

I2C बस प्रोटोकॉल एक समय में कई दास उपकरणों की अनुमति देता है। प्रत्येक दास डिवाइस को उस पर प्रतिनिधित्व करने के लिए खुद का पता होना चाहिए। मास्टर डिवाइस एक पते द्वारा विशेष दास डिवाइस के साथ संचार करता है। RTC डिवाइस पता '0xA2' है जिसमें '1010' निर्माता द्वारा दिया गया है और A0, A1, A2 उपयोगकर्ता परिभाषित पता है, जिसका उपयोग आरटीसी उपकरणों पर आठ संचार करने के लिए किया जाता है I2C बस प्रोटोकॉल

डिवाइस एड्रेसिंग

डिवाइस एड्रेसिंग

आरटीसी में आर / डब्ल्यू बिट का उपयोग पढ़ने और लिखने के लिए किया जाता है। यदि R / W = 0 है, तो लिखित ऑपरेशन किया जाता है और रीड ऑपरेशन के लिए R / W = 1 लिखा जाता है।

आरटीसी के पढ़ें ऑपरेशन का पता = '0xA3'

आरटीसी के लिखने के संचालन का पता = '0xA2'

मेमोरी रजिस्टर और पता:

RTC रजिस्टर 00h से 0Fh के पते के स्थानों में स्थित हैं और RAM मेमोरी रजिस्टर 08h to3Fh से पता स्थानों में स्थित हैं जैसा कि चित्र में दिखाया गया है। RTC रजिस्टरों का उपयोग कैलेंडर की कार्यक्षमता और दिन का समय प्रदान करने और सप्ताहांत प्रदर्शित करने के लिए किया जाता है।

मेमोरी रजिस्टर और पता

मेमोरी रजिस्टर और पता

नियंत्रण / स्थिति रजिस्टर:

DB1307 में दो अतिरिक्त रजिस्टर होते हैं जैसे नियंत्रण / स्थिति 1 और नियंत्रण / स्थिति 2 जो वास्तविक समय घड़ी को नियंत्रित करने के लिए उपयोग किया जाता है बीच में आता है

नियंत्रण / स्थिति रजिस्टर 1:

नियंत्रण स्थिति Register1

नियंत्रण स्थिति Register1

  • TEST1 = 0 सामान्य मोड

= 1 EXT- घड़ी परीक्षण मोड

  • STOP = 0 RTC शुरू होता है

= 1 आरटीसी स्टॉप

  • TESTC = 0 शक्ति अक्षम पर रीसेट

= रीसेट पर बिजली सक्षम

नियंत्रण / स्थिति रजिस्टर 2:

नियंत्रण स्थिति रजिस्टर 2

नियंत्रण स्थिति रजिस्टर 2

  • TI / TP = 0 INT हर समय सक्रिय रहता है

= 1 INT सक्रिय आवश्यक समय

  • AF = 0 अलार्म मेल नहीं खाता

= 1 अलार्म मैच

  • TF = 0 टाइमर अतिप्रवाह नहीं होता है

= 1 टाइमर अतिप्रवाह होता है

  • ALE = 0 अलार्म अक्षम करता है

= 1 अलार्म बाधित सक्षम

  • टाई = 0 टाइमर अक्षम को बाधित करता है

= 1 टाइमर इंटरप्ट को सक्षम करता है

Step3: 8051 के साथ RTC ds1307 को इंटरफेज करना

RTC हो सकता है माइक्रोकंट्रोलर के लिए हस्तक्षेप किया I2C और जैसे विभिन्न सीरियल बस प्रोटोकॉल का उपयोग करके एसपीआई प्रोटोकॉल कि उनके बीच संचार लिंक प्रदान करते हैं। यह आंकड़ा दिखाता है, I2C बस प्रोटोकॉल का उपयोग करके 8051 माइक्रोकंट्रोलर के साथ वास्तविक समय घड़ी इंटरफेस। I2C एक द्वि-दिशात्मक धारावाहिक प्रोटोकॉल है, जिसमें बस से जुड़े उपकरणों के बीच डेटा स्थानांतरित करने के लिए एससीएल और एसडीए जैसे दो तार शामिल हैं। 8051 माइक्रोकंट्रोलर में कोई इनबिल्ट आरटीसी डिवाइस नहीं है इसलिए हमने बाहरी रूप से कनेक्ट किया है धारावाहिक संचार संगृहीत डेटा सुनिश्चित करने के लिए।

8051 माइक्रोकंट्रोलर के साथ आरटीसी इंटरफेसिंग

8051 माइक्रोकंट्रोलर के साथ आरटीसी इंटरफेसिंग

I2C उपकरणों में ओपन ड्रेन आउटपुट होते हैं इसलिए, एक पुल-अप प्रतिरोधों को I2C बस लाइन से एक वोल्टेज स्रोत के साथ जोड़ा जाना चाहिए। यदि प्रतिरोधक SCL और SDL लाइनों से नहीं जुड़े हैं, तो बस काम नहीं करेगी।

Step4: RTC डेटा फ़ार्मिंग प्रारूप

चूंकि RTC इंटरफेसिंग के साथ 8051 माइक्रोकंट्रोलर I2C बस का उपयोग करता है इसलिए डेटा ट्रांसफर बाइट्स या पैकेट के रूप में होता है और प्रत्येक बाइट एक पावती के बाद होती है।

डेटा फ़्रेम प्रसारित करना:

संचारण मोड में, पता बिट द्वारा दास डिवाइस का चयन करने के बाद मास्टर ने प्रारंभिक स्थिति जारी की। पता बिट में 7-बिट होता है, जो दास उपकरणों को ds1307 पते के रूप में इंगित करता है। सीरियल डेटा और सीरियल क्लॉक SCL और SDL लाइनों पर प्रसारित होते हैं। START और STOP की स्थिति सीरियल ट्रांसफर की शुरुआत और अंत के रूप में पहचानी जाती है। आर / डब्ल्यू बिट द्वारा प्राप्त और प्रसारित संचालन का पालन किया जाता है।

डेटा फ़्रेम प्रसारित करना

डेटा फ़्रेम प्रसारित करना

शुरू: मुख्य रूप से, आरंभिक स्थिति उत्पन्न करने वाले मास्टर द्वारा शुरू किया गया डेटा ट्रांसफर अनुक्रम।

7-बिट पता: उसके बाद मास्टर एक एकल 16-बिट पते के बजाय दो 8-बिट स्वरूपों में दास का पता भेजता है।

नियंत्रण / स्थिति रजिस्टर पता: नियंत्रण / स्थिति रजिस्टर पता नियंत्रण स्थिति रजिस्टर की अनुमति देने के लिए है।

नियंत्रण / स्थिति रजिस्टर 1: आरटीसी डिवाइस को सक्षम करने के लिए नियंत्रण स्थिति रजिस्टर 1 का उपयोग किया जाता है

नियंत्रण / स्थिति रजिस्टर 2: इंटरप्ट को सक्षम और अक्षम करने के लिए इसका उपयोग किया जाता है।

आर / डब्ल्यू: यदि पढ़ना और लिखना थोड़ा कम है, तो लेखन ऑपरेशन किया जाता है।

ALAS: यदि दास डिवाइस में लिखित ऑपरेशन किया जाता है, तो रिसीवर 1-बिट एसीके को माइक्रोकंट्रोलर को भेजता है।

रुकें: स्लेव डिवाइस में लिखने का कार्य पूरा होने के बाद, माइक्रोकंट्रोलर स्लेव डिवाइस को स्टॉप कंडीशन भेजता है।

डेटा फ़्रेम प्राप्त करना:

डेटा फ़्रेम प्राप्त करना

डेटा फ़्रेम प्राप्त करना

शुरू: मुख्य रूप से, आरंभिक स्थिति उत्पन्न करने वाले मास्टर द्वारा शुरू किया गया डेटा ट्रांसफर अनुक्रम।

7-बिट पता: उसके बाद मास्टर एक एकल 16-बिट पते के बजाय दो 8-बिट स्वरूपों में दास पता भेजता है।

नियंत्रण / स्थिति रजिस्टर पता: नियंत्रण / स्थिति रजिस्टर पता नियंत्रण स्थिति रजिस्टर की अनुमति देने के लिए है।

नियंत्रण / स्थिति रजिस्टर 1: आरटीसी डिवाइस को सक्षम करने के लिए उपयोग की जाने वाली नियंत्रण स्थिति रजिस्टर 1

नियंत्रण / स्थिति रजिस्टर 2: इंटरप्ट को सक्षम और अक्षम करने के लिए इसका उपयोग किया जाता है।

आर / डब्ल्यू: यदि रीड और राइट थोड़ा अधिक है, तो रीड ऑपरेशन किया जाता है।

ALAS: यदि दास डिवाइस में लिखित ऑपरेशन किया जाता है, तो रिसीवर 1-बिट एसीके को माइक्रोकंट्रोलर को भेजता है।

रुकें: स्लेव डिवाइस में लिखने का कार्य पूरा होने के बाद, माइक्रोकंट्रोलर स्लेव डिवाइस को स्टॉप कंडीशन भेजता है।

Step5: RTC प्रोग्रामिंग

मास्टर से स्लेव तक ऑपरेशन लिखें:

  1. मास्टर से दास तक की शुरुआत की स्थिति जारी करें
  2. एसडीएल लाइन पर लिखित मोड में दास पते को स्थानांतरित करें
  3. नियंत्रण रजिस्टर पता भेजें
  4. नियंत्रण / स्थिति register1value भेजें
  5. नियंत्रण / स्थिति register2 मान भेजें
  6. जैसे मिनट, सेकंड और घंटे की तारीख भेजें
  7. स्टॉप बिट भेजें

#शामिल

sbit SCL = P2 ^ 5
sbit एसडीए = पी 2 ^ 6
शून्य प्रारंभ ()
शून्य होस्ट (अहस्ताक्षरित चार)
देरी (अहस्ताक्षरित चार)

शून्य मुख्य ()
{{

शुरू()
लिखना (0xA2) // दास पता //
लिखना (0x00) // नियंत्रण रजिस्टर पता //
लिखना (0x00) // कंट्रोल रजिस्टर 1 मान //
लिखना (0x00) // नियंत्रण regiter2 vlaue //
लिखना (0x28) // सेकंड वैल्यू //
लिखना (0x50) // मिनट मान //
लिखना (0x02) // घंटे का मूल्य //
}

शून्य प्रारंभ ()
{{

एसडीए = 1 // डेटा का प्रसंस्करण //
SCL = 1 // घड़ी उच्च है //
देरी (100)
एसडीए = 0 // डेटा भेजा गया //
देरी (100)
SCL = 0 // घड़ी संकेत कम है //
}
शून्य लिखना (अहस्ताक्षरित चार डी)
{{

अहस्ताक्षरित चार k, j = 0 × 80
for (k = 0k)<8k++)
{{
एसडीए = (डी एंड जे)
जे = जे >> १
SCL = 1
देरी (4)
SCL = 0
}
एसडीए = 1
SCL = 1
देरी (2)
c = एसडीए
देरी (2)
SCL = 0
}
शून्य देरी (इंट पी)
{{
अहस्ताक्षरित, बी
के लिए = a = 0a<255a++) //delay function//
के लिए (बी = 0 बी}

स्लेव से मास्टर तक ऑपरेशन पढ़ें:

#शामिल
sbit SCL = P2 ^ 5
sbit एसडीए = पी 2 ^ 6
शून्य प्रारंभ ()
शून्य लिखना (us चार्ज्ड)
शून्य रीड ()
शून्य ack ()
शून्य देरी (अहस्ताक्षरित चार)
शून्य मुख्य ()
{{
शुरू()
लिखना (0xA3) // पठन मोड में दास का पता //
पढ़ें ()
काश ()
सेकंड = मान
}
शून्य प्रारंभ ()
{{

एसडीए = 1 // डेटा का प्रसंस्करण //
SCL = 1 // घड़ी उच्च है //
देरी (100)
एसडीए = 0 // डेटा भेजा गया //
देरी (100)
SCL = 0 // घड़ी संकेत कम है //
}
शून्य लिखना (अहस्ताक्षरित चार डी)
{{

अहस्ताक्षरित चार k, j = 0 × 80
for (k = 0k)<8k++)
{{
एसडीए = (डी एंड जे)
जे = जे >> १
SCL = 1
देरी (4)
SCL = 0
}
एसडीए = 1
SCL = 1
देरी (2)
c = एसडीए
देरी (2)
SCL = 0
}
शून्य देरी (इंट पी)
{{
अहस्ताक्षरित, बी
के लिए = a = 0a<255a++) //delay function//
के लिए (बी = 0 बी}
शून्य रीड ()
{{
Unsigned char j, z = 0 × 00, q = 0 × 80
एसडीए = 1
for (j = 0j<8j++)
{{
SCL = 1
देरी (100)
झंडा = एसडीए
अगर (झंडा == 1)

z = (z)
शून्य ack ()
{{
एसडीए = 0 // एसडीए लाइन कम हो जाती है //
SCL = 1 // घड़ी उच्च से निम्न // है
देरी (100)
SCL = 0
}

8051 माइक्रोकंट्रोलर के साथ आरटीसी इंटरफेसिंग के लिए ये आवश्यक कदम हैं। इन चरणों के परिवर्धन में, डेटा को स्थानांतरित करने और प्राप्त करने के लिए उपयोग किए जाने वाले डेटा फ़्रेम पर भी उचित प्रोग्रामिंग के साथ उपयोगकर्ता की समझ के लिए इस लेख में चर्चा की गई है। इस अवधारणा के बारे में और अधिक मदद के लिए आप नीचे एक टिप्पणी छोड़ सकते हैं।