المعالجات التحكمية XMega هي معالجات 8Bit من شركة ATMEL سابقاً, والتي أصبحت الآن ملكا لشركة Microchip .
وهي من عائلة معالجات AVR , أي أن وحدة المعالجة المركزية في المعالج هي AVR CPU . وبالتالي فإن برمجة هذه العائلة من المعالجات تتشابه بشكل كامل مع عائلة ATmega و كذلك عائلة ATtiny التي تتشارك نفس النواة AVR . وهذا التشابه من حيث كتابة التعليمات وليس من ناحية محتوى المعالج من وحدات داخلية ومسمياتها و طرفيات وغيرها.
الميزات والمواصفات
تتميز عائلة XMega عن غيرها من معالجات AVR بأنها تحتوي على وحدات داخلية إضافية متعدد . كما تتميز هذه العائلة من المعالجات بهيكلية تنظيمية فريدة .
تقسم هذه العائلة من المعالجات إلى مجموعات , بحيث كل مجموعة من المعالجات تتشابه فيما بينها من حيث المحتوى و عدد الأطراف . وتختلف فيما بينها من ناحية حجم الذواكر FLASH , RAM , EEPROM فقط .
فهناك مثلا المجموعة ذات اللاحقة D4 والمجموعة ذات اللاحقة A1 وكذلك A1U و A3U و AU و A4U .
المخطط التالي يبين مكونات أي معالج من مجموعة معالجات XMega ذات اللاحقة A4U

هذه البنية تتشارك فيها جميع معالجات XMega ذات اللاحقة A4U . وتختلف فقط من ناحية حجم الذاكرة .
الجدول التالي يبين الفروقات بين المعالجات التابعة لهذه المجموعة :
المعالج | ذاكرة Flash | ذاكرة SRAM | ذاكرة EEPROM |
ATxmega128A4U | 128K | 8K | 2K |
ATxmega64A4U | 64K | 4K | 2K |
ATxmega32A4U | 32K | 4K | 1K |
ATxmega16A4U | 16K | 2K | 1K |
يمكن الاطلاع بشكل مفصل على مواصفات كل معالج من خلال كتب المواصفات الفنية التي تزودها الشركة الصانعة .
مكونات و أطراف المعالج
نلاحظ من الشكل السابق أن أطراف المعالج الخارجية مقسمة إلى مجموعات. كل مجموعة تدعى بوابة PORT . وكل بوابة لها إسم مرتبط بحرف معين . بحيث نجد البوابة A والبوابة B والبوابة C وهكذا.
مجموعة أطراف المعالج التابعة للبوابة A هي ثمانية أطراف . بحيث الطرف الأول له الاسم PA0 والطرف الثاني هو PA1 وهكذا إلى الطرف الثامن PA7 .
وكذلك الحال بالنسبة لباقي أطراف المعالج التابعة لباقي البوابات .
كل واحدة من هذه الأطراف يمكن استخدامها كأطراف دخل أو خرج أو للتواصل مع الوحدات الداخلية من المعالج .
تتشارك جميع معالجات XMega نفس الترتيب والتوزيع للبوابات .على سبيل المثال :
البوابة A والبوابة B تختص بوحدات التحويل الرقمي التشابهي ADC و DAC و المقارنات AC .
والبوابات C و D و E و F تختص بالوحدات المتعلقة بوسائل الاتصال التسلسلي و العدادات والمؤقتات الرقمية .
وبذلك لا يمكن أن تتم عملية اتصال تسلسلي عن طريق أحد أطراف البوابة A لأنها لا ترتبط مع أي وحدة اتصال تسلسلي.
وكذلك لا يمكن أن يتم استخدام وحدة التحويل التشابهي الرقمي ADC لقياس جهد عن طريق أحد أطراف البوابة C لأنها لا ترتبط مع هذه الوحدة .
بالنسبة للمعالج ATXmega16A4U وجميع المعالجات التي تنتهي باللاحقة A4U , يمكن تعداد الوحدات الموجودة والمرتبطة مع كل بوابة من بوابات المعالج كما يلي :
- البوابة PORTA . تختص وترتبط بالوحدات التالية:
ADCA وحدة التبديل التماثلي الرقمي الخاصة بالبوابة A .
ACA وحدة المقارنة التماثلية , وظيفتها مقارنة جهد أحد أطراف البوابة A مع جهد طرف آخر من البوابة A أو مع قيمة مرجعية معينة يتم توليدها داخليا . - البوابة PORTB . تختص وترتبط بالوحدات التالية :
DACB وحدة تحويل الرقمي التماثلي الخاصة بالبوابة B . - البوابة PORTC . تختص و ترتبط بالوحدات التالية :
TWIC وحدة الاتصال التسلسلي المتزامن بالاعتماد على البروتوكول I2C المشهور .
SPIC وحدة الاتصال التسلسلي المتزامن باالاعتماد على البروتوكول SPI .
USARTC0 و USARTC1 وحدات الاتصال التسلسلي غير المتزامن بالاعتماد على البروتوكول UART أو RS232 .
TCC0 و TCC1 مؤقتات أو عدادات متعددة الاستخدام بعرض 16 بت . - البوابة PORTD . تختص وترتبط بالوحدات التالية :
USB وحدة الاتصال بالاعتماد على بروتوكول USB الخاص بالربط مع أجهزة الكومبيوتر .
SPID وحدة الاتصال التسلسلي المتزامن باالاعتماد على البروتوكول SPI .
USARTD0 و USARTD1 وحدات الاتصال التسلسلي غير المتزامن بالاعتماد على البروتوكول UART أو RS232 .
TCD0 و TCD1 مؤقتات أو عدادات متعددة الاستخدام بعرض 16 بت . - البوابة PORTE . تختص وترتبط بالوحدات التالية :
TWIE وحدة الاتصال التسلسلي المتزامن بالاعتماد على البروتوكول I2C المشهور .
USARTE0 وحدة الاتصال التسلسلي غير المتزامن بالاعتماد على البروتوكول UART أو RS232 .
TCE0 مؤقت أو عداد متعدد الاستخدام بعرض 16 بت .
نلاحظ أنه ليس من الضروري أن تحتوي كل بوابة على عدد كامل من الوحدات كما باقي البوابات.
فالبوابة C مثلا لا ترتبط مع وحدة الاتصال USB كما هو الحال مع البوابة D .
وكذلك البوابة C والبوابة D كل منها ترتبط مع وحدتين للاتصال التسلسلي غير المتزامن USART . بينما البوابة E ترتبط فقط مع وحدة اتصال تسلسلي واحدة هي USARTE0 .
يوجد أيضا وحدات لا ترتبط مع بوابة محددة. مثل الوحدات التالي :
- RTC وهو عبارة عن عداد بطول 16 بت . مفيد في عملية تنظيم الوقت وقياس الزمن بالثواني.
- Event System وهي عبارة عن مجموعة من الممرات أو شبكة من التوصيلات الداخلية التي يمكن برمجتها لتنقل الأحداث بين وحدات المعالج الداخلية و كذلك البوابات والأطراف الخارجية.
على سبيل المثال, نريد ربط حدث معين مثل وصول قيمة عداد لرقم معين , ليكون سبب في بداية عملية تحويل رقمي تشابهي . في هذه الحالة نستخدم أحد ممرات أو قنوات الوحدة Event System للربط بين الحدث والعملية المطلوبة بدون أن نحتاج لاستخدام المقاطعات أو مراقبة قيمة العداد بشكل برمجي . - DMA وهي وحدة نقل البيانات بين أماكن متعددة من الذاكرة والطرفيات بشكل تلقائي دون الحاجة لتنفيذ تعليمات النقل برمجيا . وإنما فقط يلزم وضع بعض الإعدادات ثم تقوم هذه الوحدة من تلقاء ذاتها بالعمل. بينما ينفذ المعالج تعليمات أخرى .
- IRCOM وحدة الاتصال التسلسلي الخاصة بنظام الاتصال بالأشعة تحت الحمراء IR .
- WDT وهي وحدة غنية عن التعريف. تعمل على شكل عداد لمراقبة عمل المعالج وتقوم بإعادة اقلاع المعالج في حال وجود خلل ما من الناحية البرمجية أو عطل كهربائي ضمن المعالج .
- AES و DES وحدات التشفير وفك التشفير المشهورة .
- CRC وحدة حساب وكشف الأخطاء المفيدة خلال عمليات ارسال واستقبال البيانات من خلال وسائل الاتصال التسلسلي .
هذه كانت لمحة سريعة للتعرف على معالجات XMega AVR . وما تحتويه من وحدات ومكونات بشكل عام.