إنَّ AVR ATmega16 هو متحكّم صغريّ يعتمد على تقنيّة CMOS منخفضة الاستطاعة، ذو نواة ذات ثماني بتات 8-bit، مبنيّ بالاعتماد على البنية المعماريّة RISC المطوَّرة، يستطيع تنفيذ مليون تعليمة في الثانية، 1 MIPS لكلّ ميغا هرتز (MHz)، إنّ استخدام نبضة ساعة واحدة لكلّ تعليمة يفسح المجال أمام النّظام المصمَّم لتحسين استهلاك الطّاقة مقابل سرعة المعالجة، تملك المتحكّمات 32 مسجّل ذي أغراض عامّة ومجموعة تعليمات، وترتبط هذه المسجّلات بوحدة الحساب والمنطق ALU بشكل مباشر التّي تسمح بالوصول إلى مسجّلين مستقلّين عند تنفيذ تعليمة واحدة بنبضة السّاعة، يوضّح الشّكل الآتي بنية هذا المتحكّم:
مميّزات المتحكّم الصغريّ ATmega16
-
يَملك متحكّم 8 بت ويَستخدام دارات CMOS منخفضة الاستطاعة ويعتمد على بنية AVR RISC.
-
تصل سرعته حتّى 16 مليون تعليمة في الثانية MIPS.
-
يملك 32 مسجّل أغراض عامّة ومرتبطين مباشرةً بوحدة الحساب والمنطق ALU.
-
يملك ذاكرة flash داخليّة قابلة للبرمجة بحجم 16 كيلوبايت Kbytes.
-
ذاكرة EEPROM بحجم 512 بايت، وSRAM بحجم 1 كيلوبايت وواجهة JTAG.
-
ثلاثة مؤقّتات/عدّادات للمقارنة.
-
مقاطعات داخليّة وخارجيّة.
-
رقاقة USART القابلة للبرمجة + بروتوكول I2C.
توصيف أرجل المتحكّم الصغري ATmega16
- VCC: جهد تغذية.
- GND: الأرضيّ.
- (Port A: (PA7-PA0 وتُستخدم كمداخل تماثليّة للمحوّل التّماثلي ّ\الرّقميّ، ولكن عند عدم تفعيل المبدّل فإنّ هذه البوابة تعمل كمنفذ دخْل وخرْج ثنائي الاتّجاه بثماني بتات، كما تؤمّن أرجل البوابة مقاومات شدّ pull-up داخليّة لكلّ رجل.
- (Port B: (PB7-PB0 تُستخدم كبوابة دخل وخرج ثنائيّ الاتّجاه بثماني بتات، وتملك مقاومات شدّ داخليّة، وإنّ عوازل buffers الخرْج لهذه البوّابة تتمتّع بخصائص قيادة متماثلة وبقدرة عالية على استجرار التيّار ومنحه.
- (Port C: (PC7-PC0 إنّ ميزة البوابة C الخاصّة هي واجهة JTAG، فعند تفعيلها ستُفعّل مقاومات الشّدّ على الأرجل (PC5 (TDI و(PC3(TMS و(PC2(TCK حتّى وإن حدث تصفير للبوابة reset، كما أنّها تُستخدم كبوابة دخْل وخرْج ثنائيّة الاتّجاه بثماني بتات ومقاوَمات رفع داخليّة.
- (Port D: (PD7-PD0 تُخدّم البوّابة D وظائف عديدة خاصّة بالمتحكّم ATmega16، مثل مقاطعات الدّخل ومؤقّت/عدّاد الخرج والإرسال والاستقبال غير المتزامن UART، وتُستخدم أيضًا كبوّابة دخْل وخرْج ثنائيّة الاتّجاه بثماني بتات ومقاومات شدّ داخليّة.
مصادر نبضات السّاعة في المعالج ATmega16
لهذا المتحكّم العديد من الخيارات فيما يخصّ مصادر نبضات السّاعة والتي تُختار بواسطة بتات خاصّة تُدعى Flash Fuse bits كما هو موضّح أدناه، إنّ نبضة السّاعة القادمة من المصدر المختار هي دخل لمولّد نبضات السّاعة للمتحكّم ثمّ توجّه إلى الوحدات المناسبة، أمّا بالنّسبة لاختيار كريستالة خارجيّة أو هزاز سيراميكيّ فإنّ البتات هي كالآتي: 1111 أو 1010، بينما تكون 1001 عند اختيار كريستالة خارجيّة ذات تردّد منخفض، وتكون 1000 أو 0101 لأجل مهتزّ RC خارجيّ، ولأجل مهتزّ RC الدّاخليّ القياسيّ تكون البتات 0100 أو 0001 وتكون 0000 لأجل ساعة خارجيّة، وإنّ البت “1” يعني غير مبرمَج بينما “0” يعني مبرمَج.
رقاقة USART الخاصّة بالمتحكّم ATmega16
وهي خاصيّة رئيسة يَستخدمها المتحكّم للاتّصال التّسلسليّ، وهي اختصار لجهاز الاستقبال والإرسال التّسلسليّ المتزامن وغير المتزامن (USART)، وعبارة عن جهاز اتّصال تسلسليّ مَرِن للغاية، أمّا بالنّسبة لمعدّلات الباود Baud التّي يدعمها الجهاز فهي 1200 و1800 و2400 و4800 و7200 و9600 و14400 و19200 و38400 و57600 و115200 وفي مشروعنا نستخدم 9600، ويتكوّن هذا الجهاز من العناصر الآتية:
-
مولّد نبضات السّاعة USART والذّي يؤمّن نبضات السّاعة ويُحدّد معدّل بود باستخدام UBRR.
-
مرسل USART لإرسال محرَف ما عبر رجْل TxD ،ومعالجة بت التّشغيل والإيقاف ،وبت الإطار ،وبت الإنجابيّة.
-
مستقبِل USART لاستقبال محرَف ما عبر رجل RxD.
-
مسجّلات USART لتهيئة المراقبة والتّحكّم بعمليّة النّقل التّسلسليّ.
إنّ مسجّلات معدّل بود التّابعة لUSART تتألّف من مسجّلَين هما UBRRH وUBRRL ب16 بتاً بالمجموع، إنّ المسجّل UBRRH يتشارك بموقع الدّخل والخرْج نفسه مع المسجّل UCSRC ولهذا يُستخدم البت 15 (URSEL) لاختيار المسجّل، إنّ هذا البت يختار الوصول إلى المسجّل UBRRH أو UCSRC ويأخذ القيمة “0” عند قراءة المسجّل UBRRH أو الكتابة فيه، أمّا البتات من 12 إلى 14 فهي محجوزة للاستخدام المستقبليّ ويجب أن تأخذ القيمة “0” عند الكتابة في المسجل UBBRH وللتوافق مع الأجهزة المستخدمة مستقبلًا، بينما البتات من0 إلى 11 فتحمل معدّل بود الخاصّ بUSART، كما يحتوي المسجّل UBRRH البتات الأربعة الأكثر أهميّة لمعدّل بود لUSART، أمّا المسجّل UBRRL فيحتوي البتات الثمانية الأقلّ أهميّة له، وعند تغيير معدّل بود فإنّ عمليات الإرسال التّي ينفّذها المرسل والمستقبل ستفشل، مع ذكر أنّ الكتابة في المسجّل UBRRL ستؤدّي إلى تغيير فوري لمعدّل بود.
إنّ مسجّلات التّحكّم والحالة لUSART تتألّف من ثلاثة مسجّلات وهي UCSRA وUCSRB وUCSRC، وتحمل أعلام وبتات التّحكّم لUSART، ويحتوي المسجّل UCSRA الأعلام التّالية: RXC (نهاية عمليّة الاستقبال)، وTXC (نهاية عمليّة الإرسال)، وUDRE (إنّ مسجّل USART للبيانات فارغ)، وFE (خطأ في الإطار Frame)، وDOR (تجاوز في معدّل البيانات Data Over Run)، وPE (خطأ في الإنجابيّة Parity Error)، وMPCM (وضع الاتّصال متعدّد المعالجات Multi-processor Communication Mode)، وبت التّحكّم U2X (مضاعفة سرعة مرسل USART)، بينما يحتوي المسجّل UCSRB بتات التّحكّم الآتية: RXCIE (تفعيل مقاطعة اكتمال الاستقبِال RX)، وTXCIE (تفعيل مقاطعة اكتمال الإرسال TX)، وUDRIE (تفعيل مقاطعة مسجل بيانات USART فارغ)، وRXEN (تفعيل المستقبِل)، وTXEN (تفعيل المرسِل)، وUCSZ2 (حجم المحرف)، وRXB8 (البت الثامن لاستقبال البيانات Receive Data Bit 8)، وTXB8 (البت الثامن لإرسال البيانات Transmit Data Bit 8)،
ويحتوي المسجّل UCSRC بتات التّحكّم الآتية: URSEL (اختيار المسجّل)، وUPM1:0 (نمط فحص الإنجابيّة Parity Mode)، وUSBS (اختيار بت الإيقاف Stop Bit Select)، وUCSZ1:0 (حجم المحرف)، وUCPOL (قطبية نبضة السّاعة).
إنّ مسجّل البيانات لUSART هو العازل buffer للمحارف المرسَلة أو المستقبَلة عبر المنفذ التّسلسليّ، ولبدء إرسال محرَف ما يجب كتابته في المسجّل UDR، وللتّحقّق من استقبال محرف ما يجب قراءته من هذا المسجّل أيضاً، مهام USART الرئيسة هي تهيئة المنفذ التّسلسلي، إرسال أو استقبال محرَف ما أو سلاسل من المحارف.
التّهيئة تتضمن ضبط معاملات USART للاتّصال (بت البيانات وبت الإيقاف وبت التكافؤ)، وتفعيل المرسل والمستقبل، وضبط USART على الوضع غير المتزامن، وضبط معدّل بود، ولإرسال محرف يُضبط علّام UDRE على القيمة “1” ومن ثمّ كتابة المحرف في المسجّل UDR لإرساله، أمّا لاستقبال محرف فإنّ علّام RXC يُضبط على القيمة “1” ثم يُقرأ المحرَف المستقبَل من المسجّل UDR.
المخطط الصندوقي للمتحكم
ملاحظة : قد يكون من الصعب اختيار المتحكم المناسب لمشروعك يمكنك الاطلاع على المقال التالي لمعلومات أكثر
كيف تختار المتحكّم المناسب لمشروعك
ترجمة: | آلاء خالد محمد آغا |
مراجعة: | عبدالله الفارس |
تدقيق لغوي: | سلام أحمد |
تحرير: | لبانة مطر |