بخشی از پاورپوینت
اسلاید 1 :
ساختار داخلی میکروکنترلر AVR
اسلاید 2 :
اهداف
آشنایی با میکروکنترلر ATmega16
معرفی فیوزبیت های میکروکنترلر
آشنایی با پورتهای ورودی و خروجی
ارائه منبع تغذیه میکروکنترلر با ورودی AC وDC
آشنایی با ساختار داخلی میکروکنترلر ATmega16
معرفی کلاک سیستم و انواع منابع پالس ساعت در میکروکنترلر
آشنایی با مد های Sleep و معرفی تایمر نگهبان(watchdog)
اسلاید 3 :
مقدمه ای بر میکروکنترلرها
با پیشرفت علم و تکنولوژی در الکترونیک تراشه هایی به عنوان میکروپروسسورها طراحی و تولید شدند تا کاربر به هر صورت ممکن که می خواهد سیستم مورد نظر خود را طراحی کند به همین دلیل شرکت ZILOG میکروپروسسور Z80 را به بازار عرضه کرد. اما مشکل ریزپردازده Z80این بود که نیاز به سخت افزار های جانبی داشت .
این عمل سبب افزایش قیمت و پیچیده شدن سخت افزار برای یک پروژه می باشد.
اسلاید 4 :
شکل زیر یک بلوک دیاگرام ریزپردازنده Z80 را به همراه امکانات جانبی نشان می دهد.
CPU
Z80
اسلاید 5 :
ساختار داخلی میکروکنترلر AVR
با توجه به مشکلات Z80 شرکت های سازنده قطعات به فکر ریزپردازنده ای شدند تا تمام امکانات جانبی را به همراه خود CPU داشته باشد تا شخص طراح راحت تر سیستم مورد نظر خود را پیاده سازی کند.
در سال 1981 شرکت Intel تراشه ای را با عنوان میکروکنترلر خانواده 8051 به بازار عرضه کرد که دارای CPU 8 بیتی ،تایمر ،وقفه،تبادل سریال ،حافظه SRAM و حافظه غیر فرار (FLASH)داخلی بود.
شرکت های سازنده دیگری ،تحت لیسانس شرکت Intelاز میکروکنترلر 8051 تولید کردند که از جمله این شرکتها می توان به شرکت Atmel اشاره کرد.
اسلاید 6 :
بعدها شرکت Atmel در سال 1997 میکروکنترلرهای جدیدی را با نام خانواده AVR به بازار عرضه نمود. که به سه سری تقسیم می شوند.
1- سری AT90S
2- سری Attiny
3-سریATmega
میکروکنترلرهای AVR قابلیت هاب بیشتری نسبت به میکرکنترلر خانواده 8051 دارند و از نسل جدیدی از حافظه های FLASH و معماری RISC که در ادامه به آنها اشاره خواهیم کرد بهره می برند.
اسلاید 7 :
1- سری AT90S :
این سری اعضای کلاسیک خانواده AVR را تشکیل می دهند و قابلیتهای کمتری نسبت به دو سری بعدی دارند و کمتر استفاده می شوند.
جدول زیر میکرکنترلرهای سری AT90S را نشان می دهد.
اسلاید 8 :
2- سری ATtiny :
این میکروکنترلرها در ابعاد کوچک 20،8 و 28 پایه هستند و قابلیت های خوبی نسبت به سری اول دارند و بیشتر در سیستم هایی که نیاز به پورت بالا دارند استفاده می شوند
جدول زیر میکرکنترلرهای سری ATtiny را نشان می دهد.
اسلاید 9 :
3- سری ATmega:
این سری از میکروکنترلرهای AVR ،امکانات بیشتری نسبت به دو سری قبلی را دارندو توجه مخاطبان را به خود جلب کرده اند که در این کتاب ما روی میکروکنترلر ATmega16 بحث می کنیم.
جدول زیر میکرکنترلرهای سری ATmega را نشان می دهد.
اسلاید 10 :
معماری میکروکنترلرهای AVR
به طور کلی دو نوع معماری برای ساخت میکروکنترلرها وجود دارد:
1- معماری CISC: در این معماری تعداد دستورات بیشتر و پیچیده تر می باشد و سرعت اجرایی آن پاینتر است.
2- معماری RISC: در این معماری تعداد دستورات کمتر و سرعت اجرایی آنها 10 برابر نسبت به معماری cisc می باشد.
تفاوت معماری RISC با معماری CISC در تعداد و اندازه و همچنین اجرای دستورات،انتقال داده از ثباتها و حافظه ها به یکدیگر ،تعداد ثباتها ،برنامه نویسی دستورات و مصرف توان می باشد که این برتری های RISC بر CISC باعث شده تا میکروکنترلر های AVR از معماری RISC استفاده کنند.
اسلاید 11 :
خصوصیات میکروکنترلر ATmega16
برخی از خصوصیات ATmega16 به شرح زیر میباشد.
قابلیت اجرایی بالا و توان مصرفی کم
اجرای 131 دستورالعمل در یک کلاک سیکل وسرعتی تا 16 مگاهرتز
دارای 32 رجیستر 8 بیتی همه منظوره
تحمل حافظه flashوEEPROM با قابلیت10000 تا 100000 بار نوشتن و پاک کردن و قفل برنامه جهت حفاظت از برنامه نوشنه شده
32 خط ورودی و خروجی قابل برنامه ریزی
دارای منابع وقفه خارجی و داخلی و همچنین دارای 6 مد Sleep
و همچنین دارای چندین ویژگی جانبی و دیگر
یک مگا هرتز برابر با 1 میلیون پالس یا سیکل ساعت در ثانیه است ، اولین Cpu که در کامپیوتر های Ibm مورد استفاده قرار گرفت 8088 بود .
سرعت متوسط یک Cpu در حدود 450 مگا هرتز یا 450 میلیون پالس در ثانیه است و جالب اینجاست که تعداد پالسهای این Cpu در مدت یک دقیقه از تعداد تپشهای قلب شما در طول کل زندگیتان بیشتر است .
اسلاید 12 :
فیوزبیت های میکروکنترلر ATmega16
فیوزبیت ها برای تنظیمات خاصی استفاده می شوند و با پاک کردن میکروکنترلر از بین نمی روند و تغییر آنها فقط از طریق پروگرامر امکان پذیر می باشد.
فیوز بیت ها با 0 برنامه ریزی و با 1 غیر فعال می شوند.
برنامه ریزی فیوزبیت ها باید قبل از قفل کردن تراشه صورت گیرد.
اسلاید 13 :
میکروکنترلر ATmega16دارای 2 بایت فیوز طبق جداول زیر می باشد که در ادامه بر روی آنها بحث خواهیم کرد.
اسلاید 14 :
عملکرد فیوزبیتها
فیوزبیت OCDEN (on chip debug enable): با فعال کردن فیوز JTAG می توان برنامه میکروکنترلر را به طور آنلاین (درحین اجرا)توسط نرم افزار AVR studio مشاهده کنیم.
فیوزبیت JTAGEN: با فعال کردن این فیوز بیت می توان میکروکنترلر را از طریق ارتباط دهی استاندارد JTAG برنامه ریزی کرد.
فیوز بیت SPIEN: با فعال شدن این فیوز بیت می توان میکروکنترلر را از طریق ارتباط دهی SPI برنامه ریزی کرد.
اسلاید 15 :
عملکرد فیوزبیتها
فیوزبیت CKOPT: با فعال کردن این فیوز بیت می توان از حداکثر دامنه نوسان اسیلاتور خارجی استفاده کرد این حالت در مکانهایی که نویز زیادی دارند موثر است.
فیوزبیت EESAVE:با پاک کردن میکروکنترلر EEPROMنیز پاک می شود در موقع پاک شدن حافظه flash اگر بخواهیم از محتوای حافظه EEPROM جلوگیری کنیم باید این فیوز بیت را فعال کنیم.
اسلاید 16 :
فیوزبیت BOOTRST: این فیوز بیت برای انتخاب بردار است.اگر غیر فعال باشد بردار reset از آدرس 0X0000 حافظه خواهد بود اما اگر فعال باشد به ابتدای آدرسی که فیوز بیت های BOOTSZ1 و BOOTSZ0 طبق جدول زیر تعیین شده اند پرش می کند.(فیوز بیت های BOOTSZ1 و BOOTSZ0 میزان حافظه اختصاص داده شده BOOT را تعیین میکند )
اسلاید 17 :
فیوزبیت BODEN: برای فعال کردن مدار Brown-out باید این فیوز بیت فعال باشد. مدار Brown-out آشکار ساز ولتاژ تغذیه است که اگر از 2.7 یا 4 ولت کمتر شود میکروکنترلر را reset می کند.
فیوزبیت BODLEVEL: اگر فیوز بیت BODENفعال شده باشد و فیوز بیت BODLEVEL برنامه ریزی نشده باشد آنگاه با کاهش ولتاژ VCC کمتر از 2.7v میکروکنترلر reset می شود و اگر فیوز بیت BODLEVEL فعال شود آنگاه با کاهش ولتاژ VCCکمتر از 4v میکروکنترلر reset می شود.
اسلاید 18 :
فیوزبیت های SUT0و SUT1: این دو فیوز بیت زمان شروع (start-up) را در موقع وصل تغذیه طبق جدول زیر تعیین می کنند.
اسلاید 19 :
عملکرد فیوزبیتها
فیوزبیت های CKSEL3,CKSEL2,CKSEL1,CKSEL0: توسط این فیوز بیت ها نوع و مقدار فرکانس اسیلاتور را تعیین می کنیم.اگر بخواهیم فرکانس کاری اسیلاتور داخلی را تنظیم کنیم فیوز بیت ها طبق جدول 1-8 تنظیم و اگر بخواهیم از کریستال خارجی استفاده کنیم فیوز بیت ها طبق جدول 1-9 تنظیم می شوند.
اسلاید 20 :
پایه های ATmega16 با ترکیب PDIPو TQFP/MLF