Slide
Slide

حافظه AVR
نویسنده: مسئول فنی در
۰۲ اسفند ۱۳۹۲
[ آخرین به روزرسانی در ۰۲ اسفند ۱۳۹۲ ]

AVR دارای سه نوع حافظه SRAM , Flash ROM و EEPROM است. در شکل زیر سه نوع حافظه و تقسیم بندی داخلی آن ها آمده است.
   تفاوت ساخت ( تکنولوژِی ) حافظه ها:   
حافظه Flash ROM یک حافظه ماندگار است که با رفتن برق داده های آن از بین نمی رود. نوشتن در این حافظه آلگوریتم خاص خود را دارد. متداولترین روش پر کردن این حافظه با دستگاه پروگرامر است.
حافظه SRAM یک حافظه موقتی است، که با قطع تغذیه داده های آن پاک می شود. در واقع با روشن شدن سیستم در خانه های SRAM هیچ داده ای معتبری وجود ندارد.
حافظه EEPROM یک حافظه ماندگار است که با رفتن برق داده های آن از بین نمی رود. شاید از خود بپرسید پس تفاوت بین FlashROM و EEPROM در چیست. تفاوت اصلی در نحوه پاک شدن و نوشتن آن است. در حافظه FlashROM سرعت پاک شدن و نوشتن بالاتر از EEPROM است، چون می توان حافظه را به یکباره پاک کرد و یا آن را به صورت بلوک های 256 تایی پاک و نوشت. درحالیکه حافظه EEPROM به صورت تک بایتی قابل پاک شدن و نوشته شدن است. نوشتن هر بایت در حافظه EEPROM حدود 1 میلی ثانیه طول می کشد.
 کاربرد حافظه ها :
حافظه FlashROM دارای دو قسمت برنامه کاربردی و برنامه بوت است. قسمت برنامه کاربردی، همانطور که از نامش پیداست، برای قرارگرفتن دستورالعمل های برنامه است. ( فراموش نکرده اید که میکروپروسسور فقط با 0 و 1 کار می کند، پس در این حافظه دستورالعمل ها به صورت 0 و 1 ذخیره شده اند.)
قسمت بوت دو کاربرد دارد. شما دانشجویان برای پروگرام کردن و دیباگ کردن برنامه های خود می توانید از آن استفاده کنید، البته برای اینکار ابتدا لازم است یک برنامه جهت ارتباط با بیرون ( RS232 یا SPI یا TWI ) در این قسمت قرار گیرد.  ولی کاربرد اصلی آن برای شرکت ها، امکان بروز کردن Firmware دستگاه ها توسط کاربر می باشد.
حافظه SRAM   در Mega32 دارای 3 بخش است:
رجیسترهای عمومی : بخش اول حافظه از آدرس 00 تا 1F به 32 رجیستر عمومی اختصاص دارد. این رجیسترها برای ذخیره موقت داده ها و یا ذخیره نتیجه میانی محاسبات استفاده می شود. 6 رجیستر انتهایی به صورت دو به دو، 3 رجیستر 16 بیتی به نام های Y , X و Z تشکیل می دهند، که برای آدرس دهی استفاده می شوند. R31:R30=Z,R29:R28=Y,R27:R27=X
رجیسترهای I/O  :  همانطور که در شکل می بینید از آدرس 20 تا 5F تعداد 64 رجیستر قراردارند، این رجیسترها بیشتر برای پیکربندی ( تعریف اولیه عملکرد ) بلوک های داخلی AVR استفاده می شوند. هر چند که تعداد کمی از این رجیسترها در رابطه با پورت های ورودی/خروجی هستند، ولی غالب آن ها مربوط به بلوک های دیگر AVR هستند. شاید از آنجا که نوشتن و خواندن از این رجیسترها با دستورالعمل های IN و OUT صورت می گیرد، به آن ها رجیستر I/O می گویند. ( البته در بعضی رجیسترها که امکانات داخلی بیشتری دارند، در ادامه این رجیسترها، تعدادی رجیستر I/O دیگر وجود دارد. به این بخش Extended I/O Register می گویند.)
حافظه داخلی : در واقع حافظه RAM که در سیستم های کامپیوتری معمول قراردارد، این بخش حافظه است. این بخش حافظه برای ذخیره داده های موقتی که فعلاً در برنامه به آن نیاز نداریم، یا زمانیکه رجیسترهای داخلی برای ذخیره داده های ما کم هستند، استفاده می شود. کاربرد دیگر این حافظه به عنوان Stack در ذخیره آدرس برگشت زیربرنامه ها و Push و Pop کردن رجیستر هاست.
حافظه EEPROM برای نگهداری تنظیمات دستگاه استفاده می شود. از آنجا که این حافظه با قطع برق سیستم پاک نمی شود، مادامیکه ما تنظیمات دستگاه را تغییر ندهیم، این مقادیر ثابت هستند.

نظرات کاربران
نظری ارسال نشده است.
نظر بدهید

ایمیل شما پنهان می ماند.