Tiny Tech

حافظه ها در AVR

سه نوع حافظه در AVR موجود است.

۱-حافظه برنامه ( Program Memory )

۲- حافظه ی داده از نوع رم

۳- حافظه ی داده از نوع EEPROM

 

۱- حافظه ی برنامه ( Program Memory )

جنس این حافظه از نوع فلش ( Flash ) است.

حافظه های فلش یک نوع حافظه ی ماندگار است یعنی با قطع شدن منبع تغذیه داده ها از بین نمیرود.

پس می توان از ان برای ذخیره کردن برنامه ها توسط کاربر بکار رود.

یعنی وقتی شما برنامه ی مورد نظر را می نویسید کامپایلر ان را ترجمه کرده و توسط پروگرامر به حافظه ی برنامه انتقال می دهد و CPU می تواند دستورات مورد نظر خود را از این حافظه می تواند اجرا کند.

حافظه ی برنامه همچنین می تواند برای ذخیره مقادیر ثابت ( فقط خواندنی ها ) در برنامه تعریف شده است به کار برود مانند const , flash .

یک نکته : طبق تعریف حافظه برنامه برای CPU یک حافظه ی فقط خواندنی است. این تعریف برای میکرو کنترلر های قدیمی مانند ۸۰۵۱ درست است.

اما AVR این طور نیست و دسترسی CPU به حافظه ی برنامه ی ان هم خواندنی و هم نوشتنی است.

حافظه ی برنامه به دو بخش تقسیم می شود:

۱- بخش Boot 

۲- بخش کاربردی ( Application )

درواقع دو نوع برنامه برای AVR قابل تعریف است یکی برنامه ی بوت و دیگری برنامه ی کاربردی.

 

۲- حافظه ی داده ی SRAM Data Memory ) RAM )

این حافظه از جنس رم استاتیک  ( SRAM ) است.

یعنی رمی که نیاز به رفرش ندارد.

نوع دیگر رم ( رم دینامیک ) باید در زمان کارکرد رفرش شود که البته در AVR نیازی به این نوع رم موجود نیست.

حافظه ی رم یک حافظه ی فرار است یعنی وقتی منبع تغذیه قطع شود حافظه ی RAM پاک می شود.

پس می تواند برای ذخیره ی داده های موقت مورد استفاده در برنامه استفاده شود.

درضمن متغیر های برنامه ساخته شده در این قسمت قرار می گیرند.

 

حافظه ی رم به سه بخش تفسیم می شود:

بخش فایل رجیستری ( Register File )

بخش I/O

بخش رم کاربر

رم داخلی ( Internal )

رم خارجی ( External )

 

۳- حافظه ی  داده EEPROM Data Memory ) EEPROM )

این نوع حافظه تلفیقی از ویژگی های حافظه های برنامه و رم است