تاریخچه ی مختصری از میکروکنترلر AVR
مشخصات AVR
ROM برنامه
RAM و EEPROM
رجیسترهای همه منظوره
حافظه
I/O SRAM داخلی
پایه های I/O در میکروکنترلرهای AVR
وسایل جانبی در میکروکنترلرهای AVR
معماری اولیه AVR توسط دو دانشجوی موسسه ی فن آوری نروژ (NHT) به نام های Alf-Egil Bogen و Vegard Wollan طراحی و سپس در سال ۱۹۹۶، توسط شرکت Atmel خریداری و تولید شد.
انواع زیادی از میکروکنترلرهای AVR با ویژگی های متفاوت وجود دارند. به استثنای AVR32 که یک میکروکنترلر ۳۲ بیتی است، بقیه AVR ها همگی ۸ بیتی هستند، یعنی CPU در هر لحظه فقط با ۸ بیت داده می تواند کار کند. داده های بزرگتر از ۸ بیت به بخش های ۸ بیتی تقسیم شده و به وسیله CPU مورد پردازش قرار می گیرد.
یکی از مشکلات سری AVR این است که آن ها از لحاظ نرم افزاری به طور صد در صد کامل از یک سری به سری دیگر سازگار نیستند. برای اجرای برنامه نوشته شده برای ،Tiny25 بر روی Atmega64 باید برنامه قبل از پروگرم شدن روی Atmega64 دوباره کامپایل شده و احتمالا موقعیت برخی رجیسترها تغییر کند. عموما سری AVR به چهار گروه کلی طبقه بندی می شود: مگا، تاینی (tiny)، تک منظوره و کلاسیک.
مشخصات AVR
AVR یک میکروکنترلر تک تراشه ای با معماری ۸ بیتی RISC (کامپیوتر با مجموعه دستورات کم) هاروارد است که با امکانات استانداردی از جمله وجود ROM برنامه، RAM داده، EEPROM داده، تایمرها و پورت های I/O داخلی ارائه می گردد. اکثر AVR ها امکانات اضافی مانند ADC,PWM و انواع مختلف واسط سریال مانند USART,SPI,I2C(TWI),CAN,USB و غیره را به همراه خود دارند.
ROM برنامه
در میکروکنترلرهای AVR در میکروکنترلرها ROM برای ذخیره سازی برنامه به کار می رود و به همین دلیل ROM برنامه یا کد نامیده می شود. گرچه AVR دارای ۸ مگابایت فضای ROM برنامه یا کد است، ولی این مقدار ROM بر روی تمام اعضا سری AVR نصب نمی شود. اندازه ROM برنامه، بر حسب نوع سری، از ۱کیلوبایت تا ۲۵۶ کیلو بایت تغییر می کند. AVR یکی از اولین خانواده های میکروکنترلر است که حافظه flash(آنی) را برای ذخیره سازی برنامه استفاده می کند. این حافظه آنی در طی چند ثانیه پاک می شود، در حالی که حافظه UV-EPROM به ۲۰ دقیقه یا بیشتر برای پاک شدن احتیاج دارد.
RAM و EEPROM
داده در میکروکنترلرهای AVR فضای RAM داده ها را ذخیره می کند. فضای RAM داده در AVR نهایتا ۶۴ کیلو بایت است، ولی این مقدار RAM بر روی تمام اعضای سری AVR موجود نمی باشد. فضای RAM داده از سه مولفه تشکیل شده است:
رجیسترهای همه منظوره
حافظه
I/O SRAM داخلی
در تمام AVR ها ۳۲ رجیستر همه منظوره وجود دارد، ولی مقدار SRAM و حافظه I/O از یک تراشه به تراشه دیگر فرق می کند. در سایت Atmel هر کجا به مقدار RAM اشاره شده، منظور SRAM داخلی است. SRAM داخلی، برای خواندن و نوشتن روی scratch pad ( حافظه کوچک و سریع که به جای رجیسترها به کار می رود) استفاده می شود. در AVR مقدار کمی EEPROM برای ذخیره سازی داده های حیاتی که غالبا احتیاج به تغییر ندارند، وجود دارد.
پایه های I/O در میکروکنترلرهای AVR
AVR می تواند ۳ تا ۸۶ پایه برای I/O داشته باشد. تعداد پایه های I/O بستگی به تعداد پایه های خود تراشه دارد. در حال حاضر تعداد پایه های بسته بندی AVR از ۸ تا ۱۰۰ می باشد. برای AT90S2323 که ۸ پایه دارد، ۳ پایه برای I/O و برای Atmega 1280 که ۱۰۰ پایه دارد، حداکثر ۸۶ پایه برای I/O می توان در نظر گرفت.
وسایل جانبی در میکروکنترلرهای AVR
ADC، تایمرها و USART وسایل جانبی استانداردی هستند که در اغلب AVR ها وجود دارند. ADCها ۱۰ بیتی هستند و تعداد کانال هایی که در تراشه های AVR به آن ها اختصاص داده شده است، متفاوت بوده و حداکثر به ۱۶ می رسد. AVR در کنار تایمر watchdog، حداکثر ۶ تایمر دیگر دارد. USART اجازه وصل شدن سیستم های مبتنی بر AVR را به پورت های سریال مانند پورت COM در PC های IBM می دهند. بیشتر خانواده AVR دارای I2C و باس SPI هستند و برخی از آن ها USB یا باس CAN هم دارند.