.:: نویز | آموزش AVR | میکروکنترلر | الکترونیک ::.

وبلاگ آموزشی احسان نوری ::: Ehsan Nouri's Weblog

.:: نویز | آموزش AVR | میکروکنترلر | الکترونیک ::.

وبلاگ آموزشی احسان نوری ::: Ehsan Nouri's Weblog

" نویز رسانه ای است برای آموزش آسان مفاهیم میکروکنترلر و الکترونیک "

دریافت مستندات
آخرین نظرات
  • ۱۵ آبان ۹۵، ۱۸:۵۸ - الهام
    ممنون

سازمان دهی حافظه در AVR ؟ [7]

سه شنبه, ۲۶ شهریور ۱۳۹۲، ۰۸:۴۲ ب.ظ

 

در مباحث پیشین گفتیم که معماری میکروکنترلر AVR از نوع هاروارد میباشد.

در این بخش در مورد فضاهای حافظه مورد استفاده در این نوع از معماری بحث خواهیم کرد.

 

با ما در ادامه مطلب همراه باشید ...

 

فضای حافظه به 2 بخش اصلی تقسیم بندی میشود :

1.فضای حافظه برنامه

2.فضای حافظه داده

 


1.حافظه برنامه (Program Memory) :

این فضا همان فضایی است که برنامه نوشته شده توسط برنامه نویس را در خود جای میدهد.

میکروکنترلر AVR دارای حافظه داخلی از نوع FLASH میباشد.به دلیل مسائل امنیتی این فضا به دو بخش کلی تقسیم بندی میگردد :

1.فضای برنامه کاربردی

2.فضای BOOT

 

 

به دیاگرام روبرو دقت کنید :

این دیاگرام فضای داخلی حافظه FLASH را نمایش میدهد.

همانگونه که در شکل میبینید بیشتر فضای حافظه FLASH به بخش "فضای برنامه کاربردی" اختصاص داده شده است.

میزان فضای بخش "BOOT" نیز قابلیت تنظیم دارد.

 

با توجه به کاربردهای خاص بخش BOOT و مباحث BOOT Loader فعلا از توضیح این قسمت چشم پوشی می کنیم.

 


2.حافظه داده (DATA Memory) :

این فضا همان فضایی است CPU که جهت انجام عملیات پردازشی از آنها استفاده میکند.

 

 

این فضا به 4 بخش تقسیم میشود :

 

 

1.رجیستر های عمومی (32 عدد)

2.رجیسترهای I/O (ب64 عدد)

3.حافظه داده داخلی (SRAM)

4.رجیسترهای I/O توسعه یافته (Extended Register) ==> * تنها در برخی از میکروکنترلرها

5.حافظه داده خارجی  ==> * تنها در برخی از میکروکنترلرها

 

 

توضیحات :

 

1.رجیسترهای عمومی : با نام های R0-R31 شناخته میشوند.نام دیگر آنها فایل رجیستر میباشد.

 

2.رجیسترهای I/O : اصلی ترین و مهمترین رجیسترهای پردازنده است و هرکدام استفاده خاص خود را دارد که در قسمت بعدی بصورت مفصل در مورد آنها توضیح خواهیم داد.

 

3.حافظه داده داخلی (SRAM) : پس از تکمیل ظرفیت فضای رجیسترهای عمومی،پردازنده جهت انجام عملیات پردازشی از فضای بزرگتری به نام SRAM استفاده میکند که پیشتر توضیحاتی در اینباره داده شد.

 

4.رجیسترهای I/O توسعه یافته (Extended Register) : در بعضی از میکروکنترلرها بدلیل امکانات اضافه تری که دارند تعداد 64 عدد رجیستر I/O کافی نبوده و به فضای بیشتری نیاز دارند.

 

5.حافظه داده خارجی : در بعضی از میکروکنترلرهای AVR این امکان وجود دارد تا در صورت کمبود فضای حافظه داده،بصورت جانبی از 64 کیلوبایت حافظه خارجی نیز استفاده گردد.

 


 

*حافظه داده EEPROM :

در مورد این حافظه قبلا توضیحاتی ارائه شده و در اینجا از توضیح بیشتر خودداری میکنیم.تنها برای کامل بودن مبحث،این حافظه را مطرح نمودیم.

 


 

تمامی مطالب عنوان شده در این بخش بصورت کاملا مختصر،جهت آشنایی بیشتر شما با اصول و سخت افزار میکرو میباشد.
گفتنی است که در طول بخش های آموزشی بنا به ضرورت،نسبت به توضیح تفصیلی هریک از بخش اقدام خواهیم کرد.

 

در پایان هم معذرت خواهی میکنم از اینکه شاید از نگارش رسمی تری استفاده کردم و مثل مطالب گذشته،از شیوه بیان بصورت عامیانه استفاده نکردم.دلیل اون هم جدی بودن مبحث و نیاز به خلاصه کردن مطالب بود.چشمک

 

با ما همرا باشید !

اصلا رجیستر یعنی چی؟ همون معنی تحت الفظی شه؟
پاسخ:
معادل فارسیش "ثبات" خونده میشه.
سلام خیلی خوب و اموزنده بود .
یک سوال دارم . من یک ریموت کنترل دارم که میکرو مگا 64 داره .
1: ایا بوسیله حافظه داخلی EEPROM میشه یک زمان بندی داد که در فلان زمان از کار افتاده و حتی با ریسیت کردن و باطری دراوردن راه اندازی نشه و بعد از زدن چند کلید ترکیبی فرستنده که حکم کد داشته باشه راه اندازی بشه؟
لطفا اگر میتونید کمک کنید
ممنون میشم
سلام و تشکر
حافظه برنامه فقط خواندنیه و حافظه داده هم خواندنی و هم نوشتنی.مدیر درسته؟
پاسخ:
احسنت !
۲۹ مهر ۹۴ ، ۲۱:۵۱ فرهاد میردریکوندی
سلام خسته نباشی مهندس عالی بود

سلام
وقت بخیر
در رابطه با Bootloader اطلاعاتی نیاز دارم، لطفا راهنمایی نمایید.
                                                                                                                              باتشکر

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">