میکروکنترلر (ATXMEGA256 _ AVR) ساختار و کاربرد ها
پژوهشگر و نویسنده: دکتر ( افشین رشید)
نکته : در سری ATXMEGA256 سرعت تراشه نسبت به نسل قبلی ATMEGA افزایش یافته (32 میلیون دستورالعمل در ثانیه در فرکانس 32 مگاهرتز) و ولتاژ تغذیه میکروکنترلر تا 1.6 ولت کاهش یافته است. همچنین این خانواده دارای رنج مناسبی از حافظه قابل برنامه ریزی(16 تا 384 کیلوبایت) و به صورت پکیج های 44 تا 100 پین در دسترس می باشند.
خانواده XMEGA نسل دوم از میکروکنترلر های با مصرف توان پایین (پیکو پاور تکنولوژی) با قابلیت ها و کارائی بسیار بالاتر نسبت به سری قبلی میکروکنترلر های AVR می باشند و قابلیت پر دازش داده هم بصورت 8 بیتی و هم بصورت 16 بیتی را فراهم می نمایند. همچنین از نظر معماری و ساختار تراشه این سری میکروکنترلر ها مشابه خانواده قبلی میکروکنترلر های AVR میباشند. CLOCK از جمله اولین نکات این خانواده این است که تا ۳۲ مگاهرتز کلاک را قبول می کنند که در مقایسه با حداکثر ۲۰ مگاهرتزی AVR های معمول، تقریبا دوبرابر سرعت را تامین میکنند و همچنین این کلاک ۳۲ مگاهرتز می تواند بصورت اسیلاتور داخلی و بدون نیاز به هیچ کریستالی تامین شود. همچنین برای تنظیم کلاک احتیاج به تغییر فیوزبیت نیست و این کار از طریق تغییر رجیسترهای داخلی انجام می شود. همیشه در ابتدای شروع به کار آی سی ابتدا بصورت خودکار کلاک داخلی ۲مگاهرتز انتخاب می شود و سپس بوسیله کدهای نوشته شده، نوع کلاک، قابل تغییر است. یک مکانیزم بسیار جالب در این آی سی قابل فعال سازی است که حتی در صورتی که کلاک خارجی فعال باشد و به هر دلیلی عمل نکند،CPU بصورت اتوماتیک روی کلاک داخلی سوئیچ کند. بنابراین کلیه مشکلاتی که در AVR های معمولی به دلیل تنظیم غلط فیوزبیت ها و یا از کار افتادن کریستال یا اسیلاتور خارجی بوجود می آید، در مورد این آی سی می تواند موضوعیت نداشته باشد.
عملکرد پورتها در خانواده XMEGA بسیار کاملتر از AVR های معمولی است. همانگونه که اطلاع دارید، پورتهای AVR یا خروجی هستند که دو وضعیت LOW و HIGH را میتوانند داشته باشند و یا ورودی هستند که pull up داخلی می تواند فعال یا غیر فعال باشد. اما در XMEGA هم pull up و هم pull down قابلیت فعال شدن در ورودی و خروجی را دارند. به دلیل وجود رجیسترهای کنترلی متعددی که در خانواده XMEGA وجود دارد، امکان نوشتن کدهای بسیار سریعتر و توانمندتری در این خانواده بوجود آمده که حتی در یک کلاک برابر، می تواند سرعت اجرا را بالاتر ببرد.به عنوان یک مثال، برای تصحیح وضعیت چند بیت یک PORT در حین حفظ وضعیت بقیه بیت ها، در AVR های معمولی باید ابتدا مقدار PORT خوانده شود و بعد از تصحیح مقدار، مجددا در محل خود نوشته شود. اما در سری XMEGA برای set و reset و not کردن بیت ها، ۳ رجیستر مجزا وجود دارد.بنابراین بدون آنکه نیازی وجود داشته باشد که مقدار وضعیت فعلی PORT خوانده شود می توان چند بیت آنرا بصورت همزمان set یا reset یا not کرد.
خانواده ATXMEGA بیشترین امکانات را در بین خانواده های میکروکنترلرهای AVR دارد و از لحاظ قدرت پردازنده و کارایی بسیار بالا می باشد. یک جایگزین مناسب میکروکنترلرهای ARM خواهند بود. ولی باید توجه داشت که برنامه نویسی میکروکنترلر های شرکت های سازنده مختلف با هم متفاوت است.اگر در پروژه ای از میکروکنترلرهای AVR خانواده ATMEGA استفاده کردید و بعداً نیاز به ارتقاع داشتید، بهتر است انتخاب شما از میکروکنترلر های خانواده ATXMEGA باشد. استفاده از میکروکنترلرهای شرکت های دیگر نظیر میکرو ARM نیاز به برنامه نویسی مجدد با زبان وساختار جدید خواهد داشت.
پژوهشگر و نویسنده: دکتر ( افشین رشید)
دکترایِ تخصصی نانو _ میکرو الکترونیک