السلام عليكم
نتابع اليوم مع توضيح الاطراف الخارجية لمتكاملة الزمن الحقيقي DS1307 والتي تتكون من 8 اطراف وترتيبها :
1 + 2 - اطراف توصيل الكريستالة X1,X2 : ويتم توصيلها مع كريستالة بتردد 32768 هيرتز ، يتم توصيل مكثفات غير قطبية 12.5 بيكو فاراد .
3 – جهد البطارية الاحتياطية V battery : تستخدم أي بطارية بجهد 3 فولت ، في حال عدم الحاجة الى استخدام هذا الطرف فيتم وصله مع طرف التغذية الارضي.
4 - طرف التغذية الارضي Gnd : طرف التغذية السالبة للمتكاملة .
5 – طرف الداتا ( SDA) : وهو الطرف الذي يتم نقل الداتا من خلاله بواسطة بروتوكول I2C ، يحتوي هذا الطرف على Open Drain لذلك يجب وصل مقاومة رفع خارجية ليعمل هذا الطرف بشكل طبيعي.
6 – طرف نبضات الساعة : وهو الطرف الذي يتم استقبال نبضات الساعة من خلاله بواسطة بوتوكول I2C ، يحتوي هذا الطرف على Open Drain لذلك يجب وصل مقاومة رفع خارجية ليعمل هذا الطرف بشكل طبيعي.
7 – مخرج قيادة للنبضات المربعة ( SQW/OUT) : في حال تفعيل هذا الطرف فانه يتم اخراح نبضات مربعة باحد الترددات التالية (1Hz,4.096KHz,8.192KHz,32.768KHz) وفقا لمسجل التحكم الداخلي ، يحتوي هذا الطرف على Open Drain لذلك يجب وصل مقاومة رفع خارجية ليعمل هذا الطرف بشكل طبيعي، في حال عدم الحاجة الى استعمال هذا الطرف يمكن تركه بدون توصيل .
8 - طرف التغذية الموجبة Vcc : في حال كان جهد التغذية على هذا الطرف بالمستويات الطبيعية يمكن ان تتم عملية الكتابة والقراءة من المتكاملة ، اما في حال التغذية الاحتياطية وانخفض الجهد عن مستوى معين Vtp فانه سيتم منع القراءة والكتابة الى المتكاملة ، ولكن المتكاملة ستقوم بوظيفة حساب الوقت والتاريخ داخليا .
ننتقل الان الى السجلات الداخلية لهذه المتكاملة ، لننظر الى الصورة التالية لتتوضح الصورة بشكل اكبر :
تتكون هذه المتكاملة من سجلات داخلية بحجم 8 بت لكل موقع ذاكرة ، يمكن الملاحظة بأن هذه المتكاملة تتكون من نوعين من السجلات الداخلية :
1 – سجلات لحفظ التوقيت الزمني بالاضافة الى التاريخ : وهي محصورة في العناوين ( 00h – 07h ) .
2 – سجلات اغراض عامة : ويمكن استخدامها لحفظ أي معلومات يحتاجها المستخدم ، وهي محصورة في العناوين (08h-3Fh ) .
ما يهمنا هنا هو النوع الاول وهو المستخدم لحساب الزمن الحقيقي (والذي يحتوي وظيفة التحكم بالوقت والتاريخ ) والذي سنقوم بتوضيح كل المسجلات الزمنية :
1 - المسجل 00h)) : وهو المسجل المستخدم لعد الثواني ، حيث تستخدم البتات ( B0-B3) لخانة الاحاد ، والبتات (B4-B6) تستخدم لخانة العشرات ، أما البت الثامن (B7) فهو يتحكم بالهزاز ، في حال تم وضع القيمة (1) في هذا البت فان الهزاز
سيتم ايقافه ولن تعمل المتكاملة ، اما في حال تم وضع القيمة (0 ) فيتم تفعيل الهزاز وتبدأ عملية حساب التوقيت .
ملاحظة : عند بداية تشغيل هذه المتكاملة في أي مشروع عملي فان البت الثامن B7 يساوي (1) ، مما يعني ان المتكاملة لا تعمل (من اجل توفير الطاقة ) ، لذلك يجب تصفير هذا البت خلال البرنامج ليبدأ عمل المتكاملة .
2 - المسجل (01h) : وهو المسجل المستخدم لعد الدقائق ، حيث تستخدم البتات ( B0-B3) لخانة الاحاد ، والبتات (B4-B6) تستخدم لخانة العشرات ، أما البت الثامن (B7) فهو دائما يحوي القيمة ( 0 ) .
3 – المسجل (02h) : وهو المسجل المستخدم لعد الساعات ، وهنا نتحكم بنظام عمل المتكاملة ( 12 او 24 ساعة ) من خلال البت ( B6) كالتالي :
أ – نظام 12 ساعة : في حال ( BIT6 = 1 ) فان المتكاملة تعمل في نظام 12 ساعة ، حيث تستخدم البتات (B0-B3) لخانة الاحاد ، والبت (B4) لخانة العشرات ، أما البت (B5) فهو يحدد هل نحن الان بعد الظهر PM حيث تكون القيمة في هذا البت هي (1( ، أم اننا بعد منتصف الليل (AM) وهنا تكون قيمة هذا البت (0( ، أما البت الثامن (B7) فهو دائما يحوي القيمة ( 0 ) .
ب – نظام 24 ساعة : في حال ( BIT6 = 0 ) فان المتكاملة تعمل في نظام 24 ساعة ، حيث تستخدم البتات (B0-B3) لخانة الاحاد، والبتات ( B4-B5) تستخدم لخانة العشرات ، أما البت الثامن (B7) فهو دائما يحوي القيمة ( 0 ).
4 – المسجل (03h) : وهو سجل ترتيب اليوم بالنسبة للاسبوع ، فكما نعلم لدينا سبع ايام في الاسبوع هنا يتم تحديد مثلا اول يوم في الاسبوع هو السبت ام غيره ، حيث يزداد اليوم عند منتصف الليل ، وهو يستخدم البتات (B0-B2) لاخيار قيمة بين 1-7 وفقا لترتيب اليوم خلال الاسبوع .
5 – المسجل (04h) : وهو المسجل المستخدم لعد الايام خلال الشهر ، ، حيث تستخدم البتات (B0-B3) لخانة الاحاد ، والبت (B4) لخانة العشرات ، اما البتات (B5-B7) فهي دائما تحوي القيمة (0( .
6 – المسجل (05h) : وهو المسجل المستخدم لعد السنوات ، حيث تستخدم البتات ( B0-B3) لخانة الاحاد ، والبتات (B4-B7) تستخدم لخانة العشرات ، يجب الملاحظة ان العد يكون من 00 – 99 ، لذلك يجب التعديل في البرنامج لزيادة السنوات على 2000 .
7 – المسجل (07h) : وهو مسجل التحكم الرئيسي في هذه المتكاملة من خلال بعض البتات كالتالي :
أ – البت B7 : يتحكم هذا البت بالجهد على الطرف الخارجي(SQW/OUT) في حال الغاء خاصية الموجة المربعة على الخرج (عندما BIT4=0) ، ففي حال كان البت B7 يساوي (1( فالجهد الخارجي يساوي 1 منطقي (جهد مرتفع) اما في حال كان هذا البت يساوي(0( فالجهد الخارجي يساوي 0 منطقي (جهد منخفض).
ب – البت B4 : يتحكم هذا بتفعيل خاصية الموجة المربعة على الخرج ، فعند وضع القيمة (1( يتم اخراج موجة مربعة على الطرف الخارجي (SQW/OUT) باحد الترددات ( 1Hz,4.096KHz,8.192KHz,32.768KHz) ،حيث يتم تحديد التردد باستخدام البتات (B0-B1) في مسجل التحكم ، اما عند وضع القيمة (0( فيتم الغاء خاصية الموجة المربعة .
ج - البتات (B0-B1) :كما قلنا فان الطرف الخارجي SQW/OUT يستخدم لتوليد موجة مربعة خارجة من هذه المتكاملة ، ويمكن التحكم بالتردد كالتالي:
كود:
BIT1 = 0 , BIT0 = 0 ---- output frequency = 1 Hz
BIT1 = 0 , BIT0 = 1 ---- output frequency = 4.096 KHz
BIT1 = 1 , BIT0 = 0 ---- output frequency = 8.192 KHz
BIT1 = 1 , BIT0 = 1 ---- output frequency = 32.768 KHz
أما البتات ( B6/B5/B3/B2 ) فهي دائما تحوي القيمة ( 0 ) .
ملاحظة عملية : كما قلنا فان النظام المستخدم في المتكاملة هو (BCD) وهو يختلف عن النظام العشري المستخدم في الميكروسي وغيرها من الكمبايلر ، لذلك يجب التحويل من النظام العشري العادي الى (BCD) ، لحسن الحظ فان الميكروسي تحتوي دوال جاهزة للتحويل ، فالدالة Dec2Bcd( )تقوم بالتحويل من عشري الى BCD ، أما الدالة Bcd2Dec ( ) فتقوم بالعكس .
يجب قراءة هذا الدرس بتركيز لاننا سنبدا القسم العملي قريبا ، والان اصبحت كل المعلومات التي نحتاجها جاهزة للبدء في برنامج الساعة الرقمية باستخدام DS1307 ، واي سؤال فالموضوع مفتوح للنقاش .
وآخر دعوانا ان الحمدلله رب العالمين ..وصلى الله على سيدنا محمد وعلى اله وصحبه وسلم .