میکروکنترلر(ATMEGA328_ AVR) بررسی کامل ساختار و کاربرد ها 

پژوهشگر و نویسنده:  دکتر  (  افشین رشید)


نکته : میکروکنترلر(ATMEGA328_ AVR) در واقع یک کامپیوتر کوچک است که تمام قسمت های پردازنده، رم، هارد، بایوس، مبدل آنالوگ به دیجیتال و … را در خود جای داده است و می توان آن را به تنهایی در هر پروژه ای استفاده کرد. بخش های داخلی و ساختار درونی میکروکنترلرها با توجه به قابلیت هایی که دارند به انواع و اقسام مختلفی تقسیم بندی می شوند.

امروزه میکروکنترلر(ATMEGA328_ AVR) یکی از مهمترین قسمت های یک سیستم به حساب می‌آیند.در تمام دستگاه های هوشمندی که در اطراف ما وجود دارد حتما یک پردازنده در داخل آن جای دارد که وظیفه آن نظارت بر کل سیستم و دستور دادن به تمام بخش های آن سیستم می باشد.پردازنده ها، مدل ها و سری های مختلفی دارند که معمولا به تنهایی در بازار یافت نمی شوند.

فیوز بیت ها 

فیوز بیت ها قسمتی از حافظه ی میکروکنترلر AVR هستند که امکاناتی را در اختیار کاربر قرار می دهند و با Erase شدن میکرو مقدار آن ها تغییر نمی کند. یک به معنی غیر فعال بودن و صفر فعال بودن هر بیت می باشد. قطعه ی Mega16 دارای 2 بایت فیوز بیت میباشد.

_ BOOTRST Boot بخش Reset بردار 

_ انتخاب اندازه Bootloader

_ Erase زمان در EEPROM

_ انتخاب عملکرد کلاک CKOPT و SPEIN فعال ساز پروگرام شدن از طریق SPI

_ JTAG پورت ساز فعال   JTAGEN

_ فعال ساز اشکال زدایی از طریق JTAG OCDEN





BOOTRST : انتخاب بردار ریست BOOT Reset که در حالت پیش فرض برنامه ریزی نشده است و آدرس بردار Reset ریست 0000 است و در صورت برنامه ریزی آدرس بردار Reset طبق   BODLEVEL Brown-out ولتاژ سطح تنظیم  می شود.

منابع کلاک 

این منابع شامل اسیلاتور RC کالیبره شده، اسیلاتور کریستالی فرکانس پایین، اسیلاتور کریستالی، کلاک خارجی، اسیلاتور RC خارجی و اسیلاتور تایمر / کانتر می باشند. انتخاب منبع کلاک بوسیله ی فیوزبیت های CKSEL بوده و مطابق مقدار پیش فرض بیتهای CKSEL ،یک بوده و در نتیجه منبع پیش فرض، اسیلاتور RC داخلی می باشد.

کلاک خارجی: برای راه اندازی وسیله بوسیله ی منبع کلاک خارجی باید مطابق شـکل زیـر یـک پـالس بـه پـین XTAL1 اعمال شود. برای قرار گرفتن در این وضعیت باید تمام بیت های CKSEL پروگرام شده (صفر شوند) و کاربر می تواند با پروگرام کردن فیوزبیت CKOPT یک خازن داخلی به ظرفیت 36 پیکوفاراد را بـین ورودی و زمین قرار دهد.



اسیلاتور RC کالیبره شده ی داخلی: این منبع در فرکانس های 1 ،2 ،4 و 8 مگاهرتز موجود می باشـد و مقـدار آن در دمای 25 درجه و ولتاژ 5 ولت کالیبره شده است که در این وضعیت ممکن است تا 3 درصد در کلاک ایجاد شده وجود داشته باشد. فرکانس نوسان بوسیله ی فیوزبیت های CKSEL تعیین شده  مـیباشد و در این وضعیت CKOPT نباید پروگرام شود. به جای کریستال کوارتز می توان از رزوناتور سرامیکی استفاده نمـود کـه از دوام بیشـتری در مقابـل ضـربه بـرخوردار است و زمان Startup کمتری نیز دارد و البته نسبت به کریستال کوارتز دقـت کمتـری داشـته و پایـداریدمایی آن نیز کمتر است. در این وضعیت خازن های 36 پیکو فاراد حذف شده و عملکرد فیوزبیت CKOPT نیز تغییر مـی کنـد.

منابع Reset

با Reset شدن میکروکنترلر، تمام رجیسترهای O/I به مقدار اولیه شان تغییر می کنند و CPU شروع به اجرای دستورالعمل ها از بردار Reset خواهد کرد. در قطعه ی Mega16 5 منبع Reset وجود دارد که عبارتند از: 

1. Power-on Reset 

2. External Reset 

3. Brown-out Reset 

4. Watchdog Reset 

5. JTAG AVR Reset

بـدین ترتیب که با پروگرام شدن این بیت دامنه ی خروجی تقویت کننده ی وارونگر افـزایش یافتـه و مـی تـوان از پـینXTAL2 به عنوان کلاک برای یک وسیله ی دیگر استفاده نمود. همچنین با فعال کردن CKOPT در محیط های نویزی عملکرد اسیلاتور بهبود می یابد.چنانچه از رزوناتور استفاده می شود برای فرکانس های بالاتر از 8 مگاهرتز باید CKOPT پروگرام شود. اسیلاتور می تواند در سه وضعیت متفاوت نوسان کند که هرکدام برای یک محدوده ی فرکانسی بهینه شده است وآن را می توان با فیوز بیت های CKSEL انتخاب نمود. با هر یک از منابع کلاک انتخاب شده بوسیله ی فیوزبیت های CKSEL ،دو بیت به نام های SUT نیزوجود دارد که از طریق آن می توان حداکثر زمان up-Start منبع کلاک را به میکرو اعلام نمود. مقدار این بیت هابه طور پیش فرض ماکزیمم زمان up-Start را در نظر می گیرد و در صورتی کـه نیـاز اسـت مقـدار آن را تغییـردهید مطابق جداول مربوطه در Options Clock and Clock System در Datatsheet میکروکنترولر عمل کنید.

پژوهشگر و نویسنده:  دکتر  (  افشین رشید)

دکترایِ  تخصصی نانو _ میکرو الکترونیک