real-time clock (RTC) یک آی سی یا بخشی از یک آی سی است که زمان را بهصورت بهروز شده در خود نگه میدارد. اطلاعات RTC معمولاً توسط یک میکروپروسسور، و از طریق یک اینترفیس سریال خوانده میشود.
RTC ها برای مصرف توان بسیارکم طراحیشدهاند زیرا وقتی برق اصلی سیستم خاموش است معمولاً بهکار خود ادامه میدهند. مصرف کم این امکان را برای آنها فراهم میکند تا زمان فعلی را نسبت به مرجع زمانی که معمولاً توسط ریزپردازنده مستقیماً تنظیم میشود، حفظ کنند. شکل 1 کارهای داخلی معمولی یک RTC ساده را نشان میدهد.
RTC ها المانهای بسیار رایجی هستند و در اغلب وسایل وجود دارند، از ابزارها و سیستمهای سرگرمی در کاربردهای خودرویی تا دستگاههای اندازهگیری و متریک خانهها. RTC ها اغلب در دیوایسهای دیگر ادغام میشوند، بهعنوان مثال IC های با ارتباطات broadband که در رادیوهای اتومبیل استفاده میشوند.
نحوه ارتباط
آنها معمولاً با یک اینترفیس سریال SPI یا I2C به یک مدار میکروپروسسور وصل میشوند و ممکن است شامل امکانات دیگری مانند حافظه پشتیبان، واچداگ تایمر برای نظارت بر میکروپروسسور و تایمرهای پایین شمار برای ایجاد رویداد بهصورت real time باشد. برخی از RTC ها دارای خروجیهای وقفه ثانیه یا دقیقه هستند و حتی بهاندازه کافی هوشمندانه هستند که بتوانند سالهای کبیسه را حساب کنند.
نحوه نگه داری زمان
RTC، زمان یا همان ساعت را با شمردن سیکلهای یک اسیلاتور ذخیره میکند – این اسیلاتور معمولاً یک مدار اسیلاتور کریستالی 32.768 کیلوهرتز یا یک اسیلاتور مبتنی بر خازن داخلی و یا حتی یک کریستال کوارتز امبدد یا تعبیهشده است. برخی از آنها میتوانند انتقالها را شناسایی کرده و تناوب یک ورودی را که ممکن است متصل باشد، محاسبه کنند.
RTC که این کار را انجام میدهد مانند یک PLL عمل میکند و مرجع کلاک داخلی خود را برای قفل شدن بر روی سیگنال خارجی، تغییر میدهد. اگر RTC مرجع خارجی خود را از دست بدهد، میتواند این رویداد را تشخیص دهد (زیرا PLL از قفل خارج میشود) و از اسیلاتور داخلی خودکارش را ادامه میدهد.
بعضی از RTC ها تنظیمات اسیلاتور را در آخرین نقطه شناختهشده، قبل از اینکه از قفل خارج شود، حفظ میکنند. رزولوشن زمان یک نکته مهم است. شما چقدر نیاز دارید که زمان فعلی را دقیق بخوانید؟ این توسط دیتاشیت RTC مشخصشده است، اما درنهایت توسط فرکانس اسیلاتور محدود میشود.
شرایط محیطی
کریستالها معمولاً برای کار در محدوده دمایی در حدود 10 درجه سانتیگراد تا 60 درجه سانتیگراد مشخصشدهاند و اگر طرحی خارج از این محدوده منحرف شود، از دقت آنها کاسته میشود.
برخی از RTC ها دارای جبران ساز حرارتی یکپارچه هستند که میتواند دقت مدار اسیلاتور کریستالی را گسترش و افزایش دهد. کریستالها نیز پیر میشوند و این ماهیت فیزیکی آنها را تغییر میدهد که منجر به خطاهای اضافی میشود. کریستالهای معمولی کمهزینه دارای محدوده خطای فرکانس در حدود +/-20ppm (parts per million) هستند و بهآرامی خطاها را انباشته میکنند. یک کریستال 20ppm+/- میتواند تا 72 میلیثانیه در هر ساعت یا 1.7 ثانیه در روز رانش کند. آنها گاهی اوقات برای اصلاح رانش نیاز به کالیبراسیون مجدد دارند.
پردازنده متصل به RTC بهنوعی “زمان” بهروز شده را بهدست میآورد و این مقدار جدید را برای RTC مینویسد تا از آن شروع به شمارش کند. این زمان میتواند از ورودی دستی که از طریق رابط کاربری است، خواندن یک واحد GPS یا از طریق اتصال ابری بهدست بیاید.
RTC ها به تغذیه مداوم نیاز دارند و باید بسیار کممصرف شوند. اکثر RTC ها هنگام روشن بودن و فعال بودن دیوایس از مدارهای دیجیتال استفاده میکنند، اما وقتی مدار خاموش است به منبع تغذیه پشتیان متصل میشوند. این منبع تغذیه میتواند یک باتری اختصاصی، یک ابر خازن شارژ شده یا یک منبع تغذیه جداگانه از شبکه برق باشد.
بسیاری از RTC ها میتوانند این تغییر را تشخیص داده و در حالت کممصرف قرار بگیرند، در آنجا تمام مدارها را بهجز موارد ضروری برای حفظ ساعت برای حفظ عمر باتری، خاموش میکنند. RTC ها همچنین میتوانند شامل عملکردهای هشداردهنده باشند – زمانهایی را تنظیم کنید که در صورت تریگ شدن RTC، باعث ایجاد یک خروجی شود و پردازنده را از حالت خواب خارج کند.
ممنون خیلی جالب بود ولی ای کاش در ادامه به rtc میکروهای مثلا STM32 هم میپرداختید که متاسفانه نمونه هایی هم که داخل ایران هستند معمولا دچار مشکلاتی هستند و راه حل میدادید
سلام دوست عزیز
مطالب در حال آمده شدن هست و به زودی در این خصوص هم مطلب منتشر خواهیم کرد.