ميزات RTC M41T56

M41T56 هي شريحة Real Time Clock ، وهي تناظرية DS1307 الشهيرة. وعلى الرغم من أن pinout من microcircuit هو نفسه ، لديهم اختلافات كبيرة ، والتي سأحاول التحدث عنها.

وصف قصير


لن أتطرق إلى تشغيل ناقل IIC ، لكنني ألاحظ فقط أن كلتا الرقيتين لديهما عنوان 0xd0. للعمل مع مرور الوقت ، يحتوي microcircuit على سبعة سجلات حساب وسجل مراقبة. تحتوي سجلات الحساب على أرقام بالتنسيق العشري الثنائي ، ولكن بعض البتات لها معنى خاص.

سجلات
لم يتم تعريف قيمة xxx - بت.
وظيفةمؤشربتالقيم الممكنة
76543210
ثواني0x00STعشرات الثوانيوحدات من الثواني0 - 59
دقائق0x01الثلاثونعشرات الدقائقوحدات من الدقائق0 - 59
الساعة0x02SEBSBعشرات الساعاتوحدات الساعات0 - 23
يوم0x03الثلاثونالثلاثونالثلاثونالثلاثونالثلاثونيوم من أيام الأسبوع1 - 7
يوم من الشهر0x04الثلاثونالثلاثونعشرات الأياموحدات من اليوم1 - (28 | 29 | 30 | 31)
شهر0x05الثلاثونالثلاثونالثلاثونDESSوحدات من الشهر1 - 12
عام0x06عشرات السنينوحدات من السنة0 - 99
سجل السيطرة0x07OUTFTSمبلغ التصحيح-

بت
س - بعد التبديل ، يمكن أن تكون حالة البت موجودة.
قليلابعد إعادة تعيينالوصف
STسعند كتابة 1 إلى هذا الشيء ، يتوقف المولد
CEBسعندما يتم تعيين بت CEB (Century Enable Bit) ، ثم عند الوصول إلى قرن جديد ، ستقوم بت CB (Century Bit) بتغيير القيمة إلى الاتجاه المعاكس.
CBس
OUT1عندما تكون بتات OUT (مستوى الإخراج) و FT (اختبار التردد) مساوية للصفر ، يتم ضغط دبوس FT / OUT على الأرض. مع FT = 1 ، يكون خرج FT / OUT هو 512 هرتز ولا يهم بت OUT.
FT0
SسRTC علامة معايرة السكتة الدماغية.

تبدأ الاختلافات في تخصيص البتات 7 و 6 و 5 من سجل الساعة. في M41T56 ، تستخدم البتات 7 و 6 للإشارة إلى الانتقال إلى القرن الجديد ، وتستخدم البتات 5 و 4 لحساب عشرات الساعات. علاوة على ذلك ، فإن عدد الساعات ممكن فقط في الوضع 24 ، وضع AM / PM غير متوفر. في DS1307 ، لا يتم استخدام البتة 7 ، ويشير صفر في البتة 6 إلى أن وضع العد 24 يُستخدم ، وفي هذه الحالة تحتوي البتات 5 و 4 على عشرات الساعات. إذا كانت البتة 6 واحدة ، فإن البتة 5 تصبح إشارة AM / PM ، بينما البتة 4 تحتوي على عشرات الساعات.

توجد فروق ذات دلالة إحصائية في سجل التحكم ، والذي يحتوي على كلمة تصحيح الكلمات.

تصحيح المسار


يسمح لك M41T56 بالتعويض عن خطأ مرنان الكوارتز في النطاق من -62 إلى +124 جزء في المليون ، مما يعطي انحرافًا لا يزيد عن seconds 5 ثوانٍ في الشهر. للحصول على تعويض ، تكون البتات الستة الأقل أهمية في سجل المراقبة مسؤولة. تحتوي البتات 4-0 على عدد صحيح غير موقَّع لقيمة التصحيح ، وتضبط البتة 5 اتجاه التصحيح. إذا كانت البتة 5 تحتوي على صفر ، فإن السكتة الدماغية تبطئ بزيادة قدرها 2.034 جزء في المليون ، وإلا فإن RTC يتسارع بزيادات 4.068 جزء في المليون. هذا غير مريح ، لذلك رسمت رسالتين بسيطتين للتحويل من جزء في المليون إلى كلمة تصحيح والعكس صحيح.

/*        . */ #define MASK_CALIBR ((1 << 4) | (1 << 3) | (1 << 2) | (1 << 1) | (1 << 0)) /*        . */ #define MASK_CALIBR_SIGN (1 << 5) /** *    . * @param caliber    RTC. * @return    ppm. */ int8_t caliber_to_ppm(uint8_t caliber) { int8_t result = caliber & MASK_CALIBR; result = (uint8_t) result * 2; if ((caliber & MASK_CALIBR_SIGN) != 0) { result = -result; } else { result = (uint8_t) result * 2; } return result; } /** *   . * @param ppm    ppm. * @return    RTC. */ uint8_t ppm_to_caliber(int8_t ppm) { uint8_t result; if (ppm < 0) { result = (uint8_t) (-ppm + 1) / 2; result |= MASK_CALIBR_SIGN; } else { result = (uint8_t) (ppm + 2) / 4; } return result; } 

الكشف عن خطأ


لا DS1307 ، ولكن M41T56 يمكنه اكتشاف فشل توليد الكهرباء ، لكنهما يضمنان أنه عند تشغيل الطاقة ، ستكون بعض البتات في حالة معينة. M41T56 عند التمكين في سجل التحكم سيكون 10xxxxxx. لتتبع أعطال البرنامج ، يمكنك استخدام الخوارزمية التالية. إذا كان المتحكم الدقيق قيد التشغيل ، فإن سجل التحكم في RTC يحتوي على 10xxxxxx ، ثم كان هناك انقطاع في الطاقة ويجب كتابة قيمة في السجل الذي لا تساوي وحدات البت العالية فيه 10. ويتمثل أبسط شيء في كتابة كلمة التصحيح ذات البتات 7 و 6 تساوي الصفر.

أدب


Source: https://habr.com/ru/post/ar457796/


All Articles