زمانی که قصد دارید پروژه ای را شروع کنید. پس از مشخص شدن امکانات و پریفرال های مورد نیاز بایستی در هنگام انتخاب میکروکنترلر به حافظه های آن نیز توجه بسیاری داشته باشید. حافظه ها در میکروکنترلر ها به چند دسته تقسیم میشوند. که در ادامه با آنها آنشا خواهیم شد. قسمت های قبلی سلسله آموزش میکروکنترلر های AVR با خانواده AVR و کامپایلر Atmel Studio که در طول این سلسله آموزش کد های مورد نظرمان را داخل آن مینویسیم، آشنا شدیم. در صورتی که آموزش های قبلی را مطالعه ننموده اید میتوانید از طریق این لینک به آنها دسترسی داشته باشید. این آموزش قصد داریم تا انواع حافظه های موجود در میکروکنترلر AVR و همچنین تفاوت بین آنها را مورد بررسی قرار دهیم. در ادامه با با مرجع تخصصی بردهای امبدد به زبان فارسی، دیجی اسپارک همراه باشید.
حافظه در میکروکنترلرها
دسته بندی های مختلفی برای حافظه ها وجود دارد. از جمله مهمترین دسته بندی حافظه ها میتوان به فرار یا غیر فرار بودن اطلاعات ذخیره شده در حافظه اشاره کرد (داده ها با قطع ولتاژ تغذیه از بین بروند یا خیر). در تصویر زیر میتوانید زیر شاخه های این دسته بندی را مشاهده کنید.
اما در این آموزش ما قصد داریم تا ۳ مورد از مهمترین حافظه ها در میکروکنترلر هارا معرفی و همچنین مورد بررسی قرار دهیم. این حافظه ها عبارتند از؛
- FLASH
- RAM
- EEPROM
حافظه FLASH
حافطه Flash نوعی از حافظه غیر فرار با عمر طولانی است. در این نوع حافظه (غیر فرار) داده های ذخیره شده با قطعی برق از بین نخواهند رفت. و برای پروگرام کردن و یا پاک کردن داده های این حافظه بایستی از سیگنال های الکتریکی استفاده نمود. این حافظه به طور گسترده در میکروکنترلر ها و همچنین سیستم های مختلف جا سازی میشود. در میکروکنترلر ها عموما کد یا همان برنامه پروگرام شده بر روی میکروکنترلر بر روی حافظه Flash ذخیره میشود. حافظه های Flash نوع توسعه یافته حافظه های EEPROM هستند که در ادامه با آن آشنا خواهیم شد.
خانواده AVR دارای میکروکنترلر های مختلف با حافظه Flash های متفاوتی است. که با توحه به میزان حافظه مورد نیاز برای پروژه بایستی میکروکنترلر مورد نظر خود را انتخاب کنید.
حافظه RAM
نوع دیگری از حافظه در میکروکنترلر ها حافظه RAM است. این نوع حافظه اطلاعات را تنها تا زمانی که میکروکنترلر روشن باشد نگه میدارد. زمانی که تغذیه میکروکنترلر خاموش شود. داده های داخل این حافظه به کلی پاک خواهد شد. در کد نویسی داده هایی که دائما در حال تغییر هستند، داخل این حافظه ذخیره میشود. متغیر هایی که در کد تعریف میشوند، به صورت معمول داخل این حافظه ذخیره میشوند، اما زمانی که برخی عبارت ها مانند Const یا Flash در تعریف متغیر بکار برده شود. داده های داخل متغیر در حافظه های دیگر مانند Flash یا EEPROM ذخیره خواهد شد.
حافظه EEPROM
کلمه EEPROM مخفف عبارت Electrically Erasable Programmable Read-Only Memory به معنای حافظه فقط خواندنی قابل برنامه ریزی و پاکسازی بصورت الکتریکی است. این نوع حافظه نوع پیشرفته تری از حافظه EPROM است. حافظه EEPROM نیز همانند حافظه Flash، از نوع حافظه هایی است که با قطعی برق داده های ذخیره شده در خود را از دست نمیدهد. اما این نوع حافظه بر خلاف حافظه های Flash دارای سرعت کمتری هستند. یکی از نکته های مهم در حافظه های EEPROM که بایستی به آن توجه شود این است که این نوع حافظه دارای عمر مفید است. برای مثال حافظه EEPROM در میکروکنترلر های AVR دارای عمر مفید صد هزار بار نوشتن است.
لوازم مورد نیاز
جمع بندی
در این آموزش انواع حافظه ها در میکروکنترلر های AVR مورد بررسی قرار گرفت. همانطور که گفته شد، انواع مختلفی از حافظه ها موجود است. اما سه نوع از آنها بسیار پر کاربرد تر از بقیه هستند. این نوع حافظه ها عبارتند از حافظه Flash، RAM و EEPROM. در ادامه هر یک از این حافظه ها به صورت جداگانه مورد بررسی قرار گرفت. در بخش های بعدی به نحوه برنامه نویسی میکروکنترلر های AVR پرداخته خواهد شد.
چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید. بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریعترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در کدها و یا مراحل اجرایی وجود دارند میتوانید از همین طریق اطلاع رسانی کنید.
در پایان نظرات و پیشنهادات خود را با ما درمیان بگذارید و با اشتراک گذاری این آموزش در شبکه های اجتماعی از وبسایت دیجی اسپارک حمایت کنید.