حافظه های ATMagUlb, AVR
این بخش تفاوت میان حافظه های دو، ATmegulb را توصیف
می کند در ساختار AVR دو فضای حافظه ای، فضای حافظه ای برنامه تولیست وفضای حافظه ای اولیه وجود دارد در مجموع ATMega16 یکEEPROM برای نگهداری اطلاعات حافظه ای دارد همه فضاهای این حافظه به صورت خطی ومنظم
می باشد.
سیستم REprogrammabl حافظه فلش در برنامه نویسی حافظه
ATMega16 شامل 16 کیلو بایت تک تراشه ای در سیستم وقابلیت برنامه ریزی مجدد حافظه فلش برای نگه داری برنامه است در زمانی که طول بایت حافظه های avr16 یا32 بیت بوده حافظه فلش دار برای avr 16*k5 شناخته شده است برای جلوگیری از اسیب نرم افزار حافظه فلش به دو بخش تقسیم می کنیم بخش راه اندازی وبخش برنامه نویس.
حافظه فلش قابلیت10000 یا نوشتن وپاک کردن می باشد پروگرم کانتر ATM mega16 دارای طول 13 بیت می باشد که قابلیت آدرس دهی 8 کیلو بایت را دارد کار قسمت راه اندازی برنامه قفل وراه اندازی برایحالت نرم افزار در اجر ا وحمایت از بار گذاری در هنگام راه اندازی (نوشتاری- خواندنی) است که در فصل بعد بعد به آن اشاره شده است.که شامل توصیف اجزای سری اطلاعات فلش که در پینهایspi ودر ارتباط با JTAK می باشد.
مقادیر ثابت می توانند در آدرس های حافظه برنامه قرار گیرند MP که در شکل زیر نشان داده شده است.
نمودار زمانی برای ساختار وخروجی ها در نمودار خروجی وزمانی موجود شده است.
حافظه داده SRAM :
شکل زیر نشان می دهد که SRAM و ATMEGA چگونه برنامه نویس می شود خانه ها حافظه پایین نمایش می دهد که فایلها در حافظه SRAM داخلی وحافظهI/o ثبت شده است. اولین برنامه در آدرس 96 آدرس دهی می کند.
پنج روش آدرس دهی برای پوشش دیتای حافظه وجود دارد:
جهت، 2. خلاف جهت وتغییر موقعیت ،3. خلاف جهت، 4. خلاف جهت با
PRO-decrement ، 5. خلاف جهت با POST- Increment.
در فایلهای رجیستری، رجیسترهای R3 , R26 به صورت غیر مستقیم آدرس دهی می شود وبه صورت مستقیم در دنیای مخصوص ذخیره می شود.
در حال خلاف جهت: تغییر مکان باعث می شود که63 خط آدرس با استفاده از رجیسترهای Z,Y آدرش دهی می شود.
زمانیکه از رجیسترهای در آدرس دهی مستقیم در حالت کاهش آدرس دهی یا افزایش آدرس دهی می باشدازآدرس دهی رجیستر Z<>
32رجیستر از 64 رجیستر به عنوان I/0 عمل می کنند ویک کیلو بایت دنیای داخلی SRAM درATMEGA16 برای آدرس دهی در همه حالتها قابل استفاده است. رجیستر فایلها در فایلهای همه سطوره در پایین توصیف می شود.
زمان پذیرش دیتای حافظه:
این زمان پذیرش حافظه داخلی را توصیف می کند SRAM با دیتنای داخلی با دو clookcpu که دراین قسمت همانطوری که در شکل زیر نشان داده شده دیتای آن اطلاعات را می پذیرد.
دیتای حافظه ایEEPROM:
ATMEGA16,516 بایت حافظه EEPROM دارد وبه صورت جداگانه سازماندهی می شود وهر بایت آنرا می توانیم بنویسیم وپاک کنیم از EEPROM می توان 100000 با ربرنامه نوشته وپاک کردعملکرد EEPROM در پایین توضیح داده شده است.
عملکرد نوشتن وخواندن در EEPROM:
همکارEEPROM وجیسترهایI/O قابل دسترس است درزمان الصبل کردن EEPROM در نمودار یک آمده است یک تابع به کاربرد اجازه می دهدکه بهصورت خودکار زمانیکه بایت بعدی بنویسید اجازه می دهد اگر کد کادر شامل نوشتن EEPROM باشد بعضی اقدامات لازم است در فیلتر کردن سنگینpower supply وvcc بالا وبرای پایین برد power باز می گذاشته می شود. برای جلویری از نوشتن در حافظه wreter, EEPROM مخصوص بایستی فعال شودوبرای نوشتن در جزئیات در رجیسترهای EEPROM که کنترل کننده EEPROM مراجعه کندزمانی کهEEPROM قبل از فعال شدن خروجی cpu بایستی به مدت چهار کلاک غیر فعال باشد.
وقتی در EEPROM اطلاعات نوشته می شود قبل از فعال شدن خروجی cpu به مدت دو کلاک صبر می کند.
دریافت بیتهاs…0 – 15….9 bits
این بیتها اطلاعاتی را که در ATmegal6 است از صفر شروع به خواندن می کند. آدرس ریجتر EEAROM- EEARH& EEARL – مخصوص آدرس دهیEEPROMبرای 512 بایت زاEEPROM است اطلاعات در EEPROM از 511تا 0 به صورت خطی آدرس دهی می شود اندازه داخلی رجیستر EEAR ذخیره می شود.
7 Bit - 7…..0 EEDR: دیتا رجیستر
بیت 7…….0 - EEDR 7….0 دیتای EEPROM:
برای نوشتن درEEPROM وEEPROM شامل رجیسترEEDR است کد درهنگام نوشتن اطلاعات در EEPROM از طریق رجیسترهای EEAR آدرس دهی می شود. ورای خواند محتوای اطلاعات EEPROM از طریق EEDR از دیتای خروجی اطلاعاتی کد بوسیله EEAR آدرس دهی شده خوانده می شود.
دریافت بیتها: bit 7….4- Res
این بیت ها شاما بیتهای نگه داری شده هستند که در ATMEGA16 از صفر شروع به خواندن می کند.
خواندنEEPROM از وقفه با استفاده از اینترانت (Bit3):
زمانیکه با بیت srev از طریق EERIE یک شود وقفه EEPROM فعال می شود ودر صورتیکه به SREV صفر نوشته شود وقفه غیر فعال است وقتی EEWE پاک شود EEPROM یک وقفه ثابت تولید می کند.
نوشتن در اینیبیل .مستر EEPROM Bit – EEMWE:
هنگامی که EEMWE نوشته شده EEWE دربین چهار سیکل زمانی نوشته می شود ودیتا در آدرس انتخاب شده نوشته می شود اگر EEMWE صفر باشد نوشتن درEEWE هیچ تاثیری نخواهد داشت وقتی EEMWE بوسیله برنامه ای یک شود. سخت افزار بیت را از چهار کلاک پاک کرده به توضیح زیر در مورد پرو سدنوشتن EEPROM توجه کنید.
Bit7 – EEWE: نوشتن در وقفه EEPROM:
سیگنال فعال ساز RW EEPROM یک سیگنالی است که زمانیکه آدرس دیتا به صورت صحیح نوشته می شود ببیت EEWE بایستی فعال شود ودراندازه EEPROM نوشته شود.
بیتEEMW بایستی یک شود قیل از اینکه یک منطقی در EEWE نوشته شود در یک طرف EEPROM ذخیره می شود.
پروسه جاری زمانی که در EEPROM نوشته شود بایستی روابط زیر انجام شود:
منتظر بماند تا وقتی که EEWE صفر شود.
منتظر بماند تا وقتی که SPMENدرSPMCR صفر شود.
آدرس جدیدEEPROM در EEAR انتقال دهد ( اختیاری).
نوشتن اطلاعات جدید EEPROM در EEDR انتقال می دهد ( اختیاری).
زمانیکه صفر در EEWE صفر شود ویک منطقی در بیت EEMWE نوشته شود.
در چهار کلاک کد در EEMWE قرار می دهد یم منطقی را دربیت EEMWE نوشته شود.
EEPROM نمی تواند همزمان با نوشتن در فلش cpu را برنامه ریزی شود.
قبل از اینکه برنامه ای در EEPROM نوشته شود به صورت نرم افزاری حافظه فلش را چک می کند مرحله دوم اول شامل نرم افزاری هستند که باعث بالا آمدن برنامه فلش cpu می شود.
اگر فلش توسط cpu فلش را updated نکندمی تواند cpu نگاهی به نرم افزار بالا آمده درصورتیکه برنامه ریزی شده نوشته شده بخواند.
نکته: وقتی فعالساز رایتر اصلیEEPROM از سیکل زمانی خارج شده ووقفه بین مرحله پنجم وششم ممکنه یک سیکل نوشتن را ازدست بدهد اگر یک دو تین وقفه به EEPROM برسد وقفه دیگری را به EEPROM لازم دارد تا محتوی رجیستر EEAR یا EEDR تغییر پیدا می کندبه همین دلیل دستیابی به وقفه EEPROM دستور دوباره برای EEPROM داده می شود تا FLAY وقفه عمومی پاک شود که درطول مراحل از مشکلات جلوگیری می شود.
وقتی که زمان دسترسی به Write تمام شود بیت EEWE بخ وسیله سخت افزار پاک می شود کاربرد نرم افزار می تواند بازیافت کند اطلاعات را منتظر بماند برای یک صفر قبل از نوشته شدن بایت بعدی وقتیEEWE بسته شده است برای دو سیکل زمانی قبل از خروج دستور العمل بعدی متوقف می شود.
فصل دوم
پروگرم حافظه:
بیتهای حافظه دیتا وبرنامه نویسی:
ATMEGA16 شش قفل را فراهم می کندکه می تواند مانع برنامه نویسی شود یا می تواند صفر برنامه ریزی کند مجموع آن در لیست (1) به دست آمده است.
نکته:
برنامه ریزی می تواند فیوز بیتها قبل از برنامه ریزی را قفل بیتها صورت گیرد.
یسک یعنی غیر برنامه ریزی وصفر یعنی برنامه ریزی شده.
فیوزها:
ATMEGA16 دوفیوز بیت دارد جدول «2» وجدول «3» به طور خلاصه وضیفه همه فیوز بیتها را ونحوه طراحی داخلی فیوز بیت ها را توضیح می دهد نکته ای که فیوز ها می توانند صفر منطقی را بخوانند اگر آنها را برنامه نویسی کند.
نکات مهم:
فیوز بیت SPIEN در SPI به صورت سریال برنامه نویسی در دسترس نمی باشد.
فیوز بیت CKOPT وظیفه مربوط به قرار دادن CKSEL بیتها که به منبع کلاک وابسته است.
مقدار پیش فرض BOTTSZ 0…..1 از خروجی در حد اکثر اندازه است به جدول «زیر» نگاه کنید.
همیشه طراحی که برنامه نویسی فیوز OCDEN علیرغم قرار دادن قفل بیت وفیوزJTAGEN فراهم می کند هر برنامه ریزی OCDEN فیوزها را قادر می سازد بعضی قسمتهای سیستم ها رااداره کند وهمه قسمت ها را غیر فعال می کند این ممکن است مصرف توان را افزایش دهد.
نکات:
مقدار پیش فرض از sut 1……0 خروجی ماکزیمم شروع زمانی است.
مقدار قرار داده شده از CKSEL 3….0 ناشی از خروج RC اسیلاتور MHZ است وضعیت فیوز بیتها تاثیری روی پاک کردن تراشه ندارد نکته ای که فیوز بیتها قفل می شود اگر بیت«1» توسط برنامه قفل شود (lb1) برنامه فیوز بیتها قبل از برنامه نویسی قفل بیتها است.
لچ فیوزها:
ظرفیت لچ فیوز ها زمانی که قطع داخلی برنامه ریزی شد وظرفیت فیوزها تا معلوم شدن قسمت از برنامه از مد خارج شده وتغییر پیدا می کند.
این فیوزهای صحبت شده در اول برنامه معلوم می کند کد resave بکار نرفته همچنین فیوز لچ در توان بالا حالت زمان پیدا می کند.
تاثیر بایتها:
همه میکروکنترل های لااقل اثر بایتی که قطعات را تشخیص می دهد این که می تواند به هر دو صورت مد سریال یا موازی حتی قطعات به صورت قفل شده را بخواند این سد بایت در آدرسهای مخصوصی تفکیک می شود کهبرایATMEGA16 تاثیر بایتها عبارتند از:
(همه میکروکنترلر های اقل سه اثر بایتی که قطعات را تشخیص می دهد این که می تواند به هر دو صورت مدسریال یا موازی حتی قطعات به صورت قفل شده را بخواند این سه بایت در آدرس های مخصوصی تفکیک می شود که برای atmeya16 تاثیر بایتها عبارتند از :
$000 : $1E (شامل طراحی که به وسیله اتمل می شود )
$001 : $94 ( شامل 16 کیلوبایت حافظه فلش است )
$ 002 : $03
کالیبره کردن بایت ها :
در Atmega 16 یک بایت کالیبره شده برای تولید RC اسیلاتور است این بایت با ارزش از آدرس $000 در آدرس موثر قرار گرفته است در زمان ری ست کردن این بایت به طور اتوماتیک در داخل رجیستر osccal نوشته می شود و به طور نامطمئن فرکانس مرکزی RC اسیلاتور کالیبره می شود .
فیوز بیت های ATM EGA16
ATMEGA16 دارای دو بایت فیوز بیت طبق جدول زیر می باشد : جدول در ص 92 کتاب است . فیوز بیت ها با پاک کردن (ERASE) میکرو تاثیری نمی بینند ولی می توانند با برنامه ریزی بیت LB1 قفل شوند . منطق صفر به معنای برنامه ریزی شدن و یک به معنای برنامه ریزی نشدن است .
OCDEN : در صورتی که بیتها قفل برنامه ریزی نشده باشند برنامه ریزی این بیت به همراه بیت JTAGEN باعث می شود که در سیستم CHIPDEBUG ON فعال شود برنامه ریزی شدن این بیت به قسمتهای از میکرو امکان می دهد که در مدهای SLEEP کار کنند که این خود باعث افزایش مصرف سیستم می گردد این بیت در صورتی پیش فرض برنامه LU می شود .
JTAGEN : بیتی برای فعال سازی برنامه ریزی میکرو از طریق استاندارد ارتباط IEEE (JTAG) که در حالت پیش فرض فعال است و میکرو می تواند از این ارتباط برای برنامه ریزی خود استفاده نماید .
SPIEN : در حالت پیش فرض برنامه ریزی شده و میکرو از طریق سریال SPI برنامه ریزی می شود .
CICOPT : انتخاب کلاک که به صورت پیش فرض برنامه ریزی نشده است