মাইক্রোকন্ট্রোলার এবং এর প্রোগ্রামিংয়ের সাথে ইন্টারফেসিং আরটিসি (ডিএস 1307)

সমস্যাগুলি দূর করার জন্য আমাদের উপকরণটি ব্যবহার করে দেখুন





আরটিসি একটি বৈদ্যুতিন ডিভাইস যা এতে একটি প্রয়োজনীয় ভূমিকা পালন করে রিয়েলটাইম এম্বেডেড সিস্টেম ডিজাইন । এটি সিস্টেম অ্যাপ্লিকেশন যেমন শিক্ষার্থীর উপস্থিতি সিস্টেম এবং বিপদাশঙ্কা ইত্যাদি বিভিন্ন অ্যাপ্লিকেশনগুলিতে একটি সুনির্দিষ্ট সময় এবং তারিখ সরবরাহ করে যা বর্তমান সময়ে ট্র্যাক রাখে এবং স্বতন্ত্র কাজটির জন্য ধারাবাহিক ফলাফল সরবরাহ করে। এই নিবন্ধটি আরটিসি ইন্টারফেসিংকে অভ্যন্তরীণ রেজিস্টারগুলিতে 8051 মাইক্রোকোট্রোলার্যান্ড বেসিক অ্যাক্সেসের সাথে উপস্থাপন করেছে।

8051 মাইক্রোকন্ট্রোলার সহ আরটিসি ইন্টারফেসিং

8051 মাইক্রোকন্ট্রোলার সহ আরটিসি ইন্টারফেসিং



আরটিসি প্রোগ্রামিং এবং ইন্টারফেসিং

8051 মাইক্রোকন্ট্রোলারের সাথে আরটিসি ইন্টারফেসিং এটির সাথে ইন্টারফেস করা অন্যান্য সমস্ত ধরণের 'রিয়েল টাইম ক্লকস' এর মতো। সুতরাং আসুন আমরা সহজ আরটিসি সাথে ইন্টারফেসিংয়ের দিকে নজর রাখি 8051 মাইক্রোকন্ট্রোলার এবং এতে জড়িত প্রোগ্রামিং পদ্ধতি procedure


পদক্ষেপ 1: আরটিসি ডিভাইস নির্বাচন করুন

বিভিন্ন ধরণের আরটিসি চিপগুলি রিয়েল টাইম এম্বেডড ওয়ার্ল্ডে পাওয়া যায়, যা বিভিন্ন মানদণ্ড যেমন প্যাকেজ টাইপ, সরবরাহ ভোল্টেজ এবং পিন কনফিগারেশন ইত্যাদির উপর ভিত্তি করে শ্রেণিবদ্ধ করা হয়। কয়েকটি ধরণের আরটিসি ডিভাইস হ'ল



  • টু-ওয়্যার সিরিয়াল ইন্টারফেস (আই 2 সি বাস)
  • থ্রি-ওয়্যার সিরিয়াল ইন্টারফেস (ইউএসবি বাস)
  • ফোর-ওয়্যার সিরিয়াল ইন্টারফেস (এসপিআই বাস)

প্রথমত, আমাদের প্রয়োজন অনুসারে আই 2 সি বাস আরটিসি বা এসপিআই বাস আরটিসি বা অন্যান্য, যা স্বতন্ত্র মাইক্রোকন্ট্রোলারের সাথে ইন্টারফেসিংয়ের জন্য উপযুক্ত হিসাবে বিভাগের ভিত্তিতে আরটিসি ডিভাইস নির্বাচন করতে হবে। তারপরে আমরা ব্যাটারি লাইফ, উপযুক্ত প্যাকেজ এবং ঘড়ির ফ্রিকোয়েন্সি যেমন অ্যাপ্লিকেশন প্রয়োজনীয়তার উপর নির্ভর করে আরটিসি ডিভাইসের বৈশিষ্ট্যগুলি নির্বাচন করতে পারি। আসুন দ্বি-তারের ইন্টারফেসিং বিবেচনা করি 8051 মাইক্রোকন্ট্রোলার যেমন DS1307 সহ আরটিসি

পদক্ষেপ 2: আরটিসি ডিভাইসের অভ্যন্তরীণ রেজিস্টার এবং ঠিকানা

আরটিসি হ'ল রিয়েল টাইম ক্লক যা স্ফটিক ফ্রিকোয়েন্সি ভিত্তিক বছর, মাস, সপ্তাহ, দিন, ঘন্টা, মিনিট এবং সেকেন্ড সরবরাহ করে। আরটিসি অন্তর্নির্মিত নিয়ে গঠিত ডেটা স্টোরেজের জন্য র‌্যাম মেমরি । আরটিসি ডিভাইসে কোনও ব্যাটারি সংযুক্ত করে প্রধান বিদ্যুৎ সরবরাহ ব্যর্থ হওয়ার ক্ষেত্রে একটি ব্যাটারি ব্যাকআপ সরবরাহ করা হবে।

আরটিসি DB1307 কনফিগারেশন:

আরটিসি অভ্যন্তরীণ ব্লক এবং পিন ডায়াগ্রাম

আরটিসি অভ্যন্তরীণ ব্লক এবং পিন ডায়াগ্রাম

এ 0, এ 1, এ 2: আরটিসি ডিবি 1307 চিপের ঠিকানা পিনগুলি রয়েছে, যা মাস্টার ডিভাইসের সাথে যোগাযোগ করতে ব্যবহার করা যেতে পারে। আরটিসি ইন্টারফেসিং সহ আমরা আটটি ডিভাইস নিয়ন্ত্রণ করতে পারি 8051 মাইক্রোকন্ট্রোলার A2, A1, A2 বিট দ্বারা আই 2 সি প্রোটোকল ব্যবহার করে।


ভিসিসি এবং জিএনডি: ভিসিসি এবং জিএনডি হ'ল যথাক্রমে বিদ্যুৎ সরবরাহ এবং গ্রাউন্ড পিন। এই ডিভাইসটি 1.8V থেকে 5.5V রেঞ্জের সাথে পরিচালিত হয়।

ভিবিটি: ভিবিটি একটি ব্যাটারি পাওয়ার সাপ্লাই পিন। ব্যাটারি পাওয়ার উত্স অবশ্যই 2V থেকে 3.5V এর মধ্যে রাখা উচিত।

এসসিএল: এসসিএল একটি সিরিয়াল ক্লক পিন এবং এটি সিরিয়াল ইন্টারফেসে ডেটা সিঙ্ক্রোনাইজ করতে ব্যবহৃত হয়।

এসডিএল: এটি একটি সিরিয়াল ইনপুট এবং আউটপুট পিন। এটি সিরিয়াল ইন্টারফেসে ডেটা প্রেরণ এবং গ্রহণ করতে ব্যবহৃত হয়।

ঘড়ি আউট: এটি একটি alচ্ছিক স্কোয়ার ওয়েভ আউটপুট পিন।

OSC0 এবং OSC1: এগুলি স্ফটিক দোলক পিনগুলি যা আরটিসি ডিভাইসে ঘড়ি সংকেত সরবরাহ করতে ব্যবহৃত হয়। স্ট্যান্ডার্ড কোয়ার্টজ স্ফটিক ফ্রিকোয়েন্সি 22.768KHzs।

ডিভাইস ঠিকানা:

আই 2 সি বাস প্রোটোকল এক সাথে অনেকগুলি স্লেভ ডিভাইসগুলিকে অনুমতি দেয়। প্রতিটি দাস ডিভাইসটিতে এটি উপস্থাপনের জন্য অবশ্যই নিজের ঠিকানা থাকতে হবে। মাস্টার ডিভাইস একটি ঠিকানা দ্বারা নির্দিষ্ট দাস ডিভাইসের সাথে যোগাযোগ করে। আরটিসি ডিভাইসের ঠিকানাটি '0xA2' যেখানে নির্ধারিত দ্বারা '1010' দেওয়া হয় এবং A0, A1, A2 ব্যবহারকারীর সংজ্ঞায়িত ঠিকানা, যা আটটি আরটিসি ডিভাইস যোগাযোগ করার জন্য ব্যবহৃত হয় আই 2 সি বাস প্রোটোকল

ডিভাইস অ্যাড্রেসিং

ডিভাইস অ্যাড্রেসিং

আরটিসি-তে রিডিং এবং রচনা অপারেশন সম্পাদনের জন্য আর / ডাব্লু বিট ব্যবহৃত হয়। যদি আর / ডাব্লু = 0 হয় তবে রাইটিং অপারেশন করা হয় এবং পড়ার ক্রিয়াকলাপের জন্য আর / ডাব্লু = 1 হয়।

আরটিসি = '0xA3' এর রিড অপারেশনের ঠিকানা

আরটিসি = '0xA2' লেখার অপারেশনের ঠিকানা

মেমরি রেজিস্টার এবং ঠিকানা:

আরটিসি রেজিস্টারগুলি 00 ঘন্টা থেকে 0 এফএইচ পর্যন্ত ঠিকানা স্থানে অবস্থিত এবং র‍্যাম মেমরি রেজিস্টারগুলি 08h থেকে 3Fh পর্যন্ত ঠিকানার জায়গায় অবস্থিত। আরটিসি রেজিস্টারগুলি ক্যালেন্ডার কার্যকারিতা এবং দিনের ড্রাইভের সময় এবং সাপ্তাহিক ছুটির প্রদর্শন করতে ব্যবহৃত হয়।

মেমরি নিবন্ধ এবং ঠিকানা

মেমরি নিবন্ধ এবং ঠিকানা

নিয়ন্ত্রণ / স্থিতি রেজিস্টার:

DB1307 এ দুটি অতিরিক্ত নিবন্ধগুলি থাকে যেমন নিয়ন্ত্রণ / স্থিতি 1 এবং নিয়ন্ত্রণ / স্থিতি 2 যা রিয়েল টাইম ক্লক এবং নিয়ন্ত্রণের জন্য ব্যবহৃত হয় বাধা দেয়

নিয়ন্ত্রণ / স্থিতি রেজিস্টার 1:

নিয়ন্ত্রণ অবস্থা রেজিস্টার 1

নিয়ন্ত্রণ অবস্থা রেজিস্টার 1

  • TEST1 = 0 স্বাভাবিক মোড

= 1 এক্সটি-ক্লক পরীক্ষা মোড

  • স্টপ = 0 আরটিসি শুরু হয়

= 1 আরটিসি স্টপ

  • রিসেটে TESTC = 0 শক্তি অক্ষম

রিসেট সক্ষম করা = ক্ষমতা

নিয়ন্ত্রণ / স্থিতি রেজিস্টার 2:

নিয়ন্ত্রণ অবস্থা রেজিস্টার 2

নিয়ন্ত্রণ অবস্থা রেজিস্টার 2

  • টিআই / টিপি = 0 আইএনটি সারাক্ষণ সক্রিয়

= 1 আইএনটি সক্রিয় প্রয়োজনীয় সময়

  • এএফ = 0 অ্যালার্মের সাথে মেলে না

= 1 অ্যালার্ম ম্যাচ

  • টিএফ = 0 টাইমার ওভারফ্লো হয় না

= 1 টাইমার ওভারফ্লো ঘটে

  • ALE = 0 অ্যালার্ম বাধা ব্যর্থ করে

= 1 অ্যালার্ম বিঘ্ন সক্ষম হয়েছে

  • TIE = 0 টাইমার বিঘ্নিত অক্ষম

= 1 টাইমার বিঘ্ন সক্ষম করে

স্টিপি 3: 8051 সহ আরটিসি ds1307 ইন্টারফ্যাকিং

আরটিসি হতে পারে ইন্টারফেস মাইক্রোকন্ট্রোলার বিভিন্ন সিরিয়াল বাস প্রোটোকল যেমন আই 2 সি এবং ব্যবহার করে এসপিআই প্রোটোকল যা তাদের মধ্যে যোগাযোগের লিঙ্ক সরবরাহ করে। চিত্রটি দেখায়, রিয়েল টাইম ক্লক I2C বাস প্রোটোকল ব্যবহার করে 8051 মাইক্রোকন্ট্রোলারের সাথে ইন্টারফেস করছে। আই 2 সি একটি দ্বি-দিকনির্দেশক সিরিয়াল প্রোটোকল যা এসিএল এবং এসডিএ-র মতো দুটি তারের সমন্বয়ে বাসে সংযুক্ত ডিভাইসের মধ্যে ডেটা স্থানান্তরিত করে। 8051 মাইক্রোকন্ট্রোলারের কোনও অন্তর্নির্মিত আরটিসি ডিভাইস নেই তাই আমরা একটি এর মাধ্যমে বাহ্যিকভাবে সংযুক্ত করেছি সিরিয়াল যোগাযোগ সমন্বিত ডেটা নিশ্চিত করার জন্য।

8051 মাইক্রোকন্ট্রোলার সহ আরটিসি ইন্টারফেসিং

8051 মাইক্রোকন্ট্রোলার সহ আরটিসি ইন্টারফেসিং

আই 2 সি ডিভাইসগুলিতে খোলা ড্রেন আউটপুট রয়েছে সুতরাং, একটি ভোল্টেজ উত্স সহ একটি টান-আপ প্রতিরোধকগুলি I2C বাস লাইনে সংযুক্ত থাকতে হবে। যদি প্রতিরোধকগুলি এসসিএল এবং এসডিএল লাইনগুলির সাথে সংযুক্ত না হয় তবে বাসটি কাজ করবে না।

পদক্ষেপ 4: আরটিসি ডেটা ফ্রেমিং ফর্ম্যাট

যেহেতু আরটিসি 8051 মাইক্রোকন্ট্রোলারের সাথে ইন্টারফেসিং করে আই 2 সি বাস ব্যবহার করে তাই ডাটা ট্রান্সফারটি বাইট বা প্যাকেটের আকারে হয় এবং প্রতিটি বাইট অনুসরণ করে একটি স্বীকৃতি দেয়।

ডেটা ফ্রেম প্রেরণ করা হচ্ছে:

প্রেরণ মোডে, মাস্টার ঠিকানা বিট দ্বারা স্লেভ ডিভাইস নির্বাচন করার পরে শর্তটি শর্তটি ছেড়ে দেয়। ঠিকানার বিটটিতে 7-বিট রয়েছে, যা স্লেভ ডিভাইসগুলিকে ds1307 ঠিকানা হিসাবে নির্দেশ করে। সিরিয়াল ডেটা এবং সিরিয়াল ক্লক এসসিএল এবং এসডিএল লাইনে সংক্রমণিত হয়। START এবং স্টপ শর্তগুলি সিরিয়াল স্থানান্তর শুরু এবং শেষ হিসাবে স্বীকৃত। রিসিভ এবং ট্রান্সমিট অপারেশনগুলি আর / ডাব্লু বিট অনুসরণ করে।

ডেটা ফ্রেম প্রেরণ করা হচ্ছে

ডেটা ফ্রেম প্রেরণ করা হচ্ছে

শুরু: প্রাথমিকভাবে, ডেটা ট্রান্সফার ক্রমটি শুরুর শর্ত উত্পন্ন কর্তা দ্বারা শুরু করা হয়েছিল।

7-বিট ঠিকানা: এর পরে মাস্টার একটি একক 16-বিট ঠিকানার পরিবর্তে দুটি 8-বিট ফর্ম্যাটে স্লেভের ঠিকানা পাঠান।

নিয়ন্ত্রণ / স্থিতি রেজিস্টার ঠিকানা: নিয়ন্ত্রণ / স্থিতির নিবন্ধের ঠিকানাটি নিয়ন্ত্রণের স্থিতি রেজিস্টারগুলিকে অনুমতি দেয়।

নিয়ন্ত্রণ / স্থিতি রেজিস্টার 1: আরটিসি ডিভাইস সক্ষম করতে ব্যবহৃত নিয়ন্ত্রণ স্থিতি রেজিস্ট্রার 1

নিয়ন্ত্রণ / স্থিতি রেজিস্টার 2: এটি বাধা সক্ষম এবং অক্ষম করতে ব্যবহৃত হয়।

আর / ডাব্লু: যদি পড়া এবং লেখার বিট কম হয় তবে রাইট অপারেশন করা হয়।

আলাস: যদি স্লেভ ডিভাইসে লিখন অপারেশন করা হয়, তবে রিসিভার 1 বিট এসিকে মাইক্রোকন্ট্রোলারে প্রেরণ করে।

থাম: স্লেভ ডিভাইসে রাইটিং অপারেশন সমাপ্তির পরে, মাইক্রোকন্ট্রোলার দাস ডিভাইসে স্টপ শর্ত প্রেরণ করে।

ডেটা ফ্রেম গ্রহণ:

ডেটা ফ্রেম গ্রহণ করা

ডেটা ফ্রেম গ্রহণ করা

শুরু: প্রাথমিকভাবে, ডেটা ট্রান্সফার ক্রমটি শুরুর শর্ত উত্পন্ন কর্তা দ্বারা শুরু করা হয়েছিল।

7-বিট ঠিকানা: এর পরে মাস্টার একটি একক 16-বিট ঠিকানার পরিবর্তে দুটি 8-বিট ফর্ম্যাটে স্লেভ ঠিকানা পাঠায়।

নিয়ন্ত্রণ / স্থিতি রেজিস্টার ঠিকানা: নিয়ন্ত্রণ / স্থিতির নিবন্ধের ঠিকানা হ'ল নিয়ন্ত্রণ স্থিতি রেজিস্টারগুলিকে অনুমতি দেওয়া।

নিয়ন্ত্রণ / অবস্থা রেজিস্টার 1: আরটিসি ডিভাইস সক্ষম করতে ব্যবহৃত নিয়ন্ত্রণ স্থিতি রেজিস্ট্রার 1

নিয়ন্ত্রণ / স্থিতি রেজিস্টার 2: এটি বাধা সক্ষম এবং অক্ষম করতে ব্যবহৃত হয়।

আর / ডাব্লু: যদি পড়া এবং লেখার বিট বেশি হয়, তবে পঠন অপারেশন করা হয়।

আলাস: যদি স্লেভ ডিভাইসে লিখন অপারেশন করা হয়, তবে রিসিভার 1 বিট এসিকে মাইক্রোকন্ট্রোলারে প্রেরণ করে।

থাম: স্লেভ ডিভাইসে রাইটিং অপারেশন সমাপ্তির পরে, মাইক্রোকন্ট্রোলার দাস ডিভাইসে স্টপ শর্ত প্রেরণ করে।

পদক্ষেপ 5: আরটিসি প্রোগ্রামিং

মাস্টার থেকে স্লেভে অপারেশন লিখুন:

  1. মাস্টার থেকে দাসে শুরু শর্ত জারি করুন
  2. এসডিএল লাইনে দাস ঠিকানা লিখিত মোডে স্থানান্তর করুন
  3. নিয়ন্ত্রণ নিবন্ধের ঠিকানা প্রেরণ করুন
  4. নিয়ন্ত্রণ / স্থিতি রেজিস্টার 1 মূল্য প্রেরণ করুন
  5. নিয়ন্ত্রণ / স্থিতি রেজিস্টার 2 মান প্রেরণ করুন
  6. মিনিট, সেকেন্ড এবং ঘন্টা এর মতো তারিখটি প্রেরণ করুন
  7. স্টপ বিট প্রেরণ করুন

# অন্তর্ভুক্ত

sbit এসসিএল = পি 2 ^ 5
sbit এসডিএ = পি 2 ^ 6
অকার্যকর শুরু ()
অকার্যকর হোস্ট (স্বাক্ষরবিহীন চর)
বিলম্ব (স্বাক্ষরবিহীন চর)

অকার্যকর প্রধান ()
{

শুরু ()
লিখুন (0xA2) // দাস ঠিকানা //
লিখুন (0x00) // নিয়ন্ত্রণ নিবন্ধের ঠিকানা //
লিখুন (0x00) // নিয়ন্ত্রণ রেজিস্টার 1 মান //
লিখুন (0x00) // নিয়ন্ত্রণ রেজিটার 2 ভ্লিউ //
লিখুন (0x28) // সেকেন্ড মান //
লিখুন (0x50) // মিনিটের মান //
লিখুন (0x02) // ঘন্টা মান //
}

অকার্যকর শুরু ()
{

এসডিএ = 1 // ডেটা প্রসেসিং //
এসসিএল = 1 // ঘড়িটি উচ্চ //
বিলম্ব (100)
এসডিএ = 0 // ডেটা প্রেরণ করেছে //
বিলম্ব (100)
এসসিএল = 0 // ক্লক সিগন্যাল কম //
}
অকার্যকর লেখা (স্বাক্ষরবিহীন চর ডি)
{

স্বাক্ষরবিহীন চর কে, জ = 0 × 80
(কে = 0 কে।)<8k++)
{
এসডিএ = (ডি ও জে)
জ = জ >> >>
এসসিএল = 1
বিলম্ব (4)
এসসিএল = 0
}
এসডিএ = 1
এসসিএল = 1
বিলম্ব (2)
সি = এসডিএ
বিলম্ব (2)
এসসিএল = 0
}
অকার্যকর বিলম্ব (int পি)
{
স্বাক্ষরবিহীন, খ
(A = 0a) এর জন্য<255a++) //delay function//
(খ = 0 বি) এর জন্য}

স্লেভ থেকে মাস্টার পর্যন্ত অপারেশন পড়ুন:

# অন্তর্ভুক্ত
sbit এসসিএল = পি 2 ^ 5
sbit এসডিএ = পি 2 ^ 6
অকার্যকর শুরু ()
অকার্যকর লেখা
অকার্যকর পড়া ()
অকার্যকর ack ()
অকার্যকর বিলম্ব (স্বাক্ষরবিহীন চর)
অকার্যকর প্রধান ()
{
শুরু ()
(0xA3) লিখুন // পঠন মোডে দাস ঠিকানা //
পড়ুন ()
হায়রে ()
সেকেন্ড = মান
}
অকার্যকর শুরু ()
{

এসডিএ = 1 // ডেটা প্রসেসিং //
এসসিএল = 1 // ঘড়িটি উচ্চ //
বিলম্ব (100)
এসডিএ = 0 // ডেটা প্রেরণ করেছে //
বিলম্ব (100)
এসসিএল = 0 // ক্লক সিগন্যাল কম //
}
অকার্যকর লেখা (স্বাক্ষরবিহীন চর ডি)
{

স্বাক্ষরবিহীন চর কে, জ = 0 × 80
(কে = 0 কে।)<8k++)
{
এসডিএ = (ডি ও জে)
জ = জ >> >>
এসসিএল = 1
বিলম্ব (4)
এসসিএল = 0
}
এসডিএ = 1
এসসিএল = 1
বিলম্ব (2)
সি = এসডিএ
বিলম্ব (2)
এসসিএল = 0
}
অকার্যকর বিলম্ব (int পি)
{
স্বাক্ষরবিহীন, খ
(A = 0a) এর জন্য<255a++) //delay function//
(খ = 0 বি) এর জন্য}
অকার্যকর পড়া ()
{
স্বাক্ষরবিহীন চর জে, জেড = 0 × 00, কিউ = 0 × 80
এসডিএ = 1
(j = 0 জে) জন্য<8j++)
{
এসসিএল = 1
বিলম্ব (100)
পতাকা = এসডিএ
যদি (পতাকা == 1)

z = (z)
অকার্যকর ack ()
{
এসডিএ = 0 // এসডিএ লাইনটি কম যায় //
এসসিএল = 1 // ঘড়িটি কম থেকে কম //
বিলম্ব (100)
এসসিএল = 0
}

এটি 8051 মাইক্রোকন্ট্রোলারের সাথে আরটিসি ইন্টারফেসিংয়ের প্রয়োজনীয় পদক্ষেপ। এই পদক্ষেপগুলি ছাড়াও, ডেটা স্থানান্তর এবং প্রাপ্তির জন্য ব্যবহৃত ডেটা ফ্রেমগুলি যথাযথ প্রোগ্রামিংয়ের সাথে ব্যবহারকারীদের বোঝার জন্য এই নিবন্ধে আলোচনা করা হয়েছে। এই ধারণাটি সম্পর্কে আরও সহায়তার জন্য আপনি নীচে একটি মন্তব্য দিতে পারেন।