رفتن به نوشته‌ها

فیوز بیت های AVR مقاله دوم

مقاله دیگر در رابطه با فیوز بیت های AVR

فیوز بیت چیست؟

همانطور که می دانیم میکروکنترلرهای AVR در کل دارای سه نوع حافظه می باشد: حافظه FLASH که همان حافظه ای است که کد برنامه نویسی در این حافظه قرار می گیرد، حافظه SRAM برای متغیر ران تایم استفاده می شود و EEPROM که حافظه ای است که داده هایی که باید هنگام خاموش شدن میکرو نباید پاک شوند در این حافظه قرار می گیرد. اکنون حافظه جدیدی معرفی می شود که به هر دوی fuse/lock بیت ها اطلاق می شود. این حافظه تعداد بیت های محدودی را شامل می شود که شامل Low Byte و High Byte می باشد.

دقت کنیم که وقتی یک بیت را به مقدار “۰” تنظیم می کنیم به معنی برنامه ریزی شدن آن بوده (programmed) و زمانی که یک بیت را به مقدار “۱” تنظیم می کنیم به معنی برنامه ریزی نشدن (un-programmed) آن بیت می باشد.

در طول این آموزش مثال هایی از Atmega32/16 بیان می شود ولی این آموزش کلی بوده و معمولا برای سایر میکروهای AVR نیز کاربرد دارد. برای کاربرد دقیق می توان به دیتاشیت میکرو مراجعه کرد.

در واقع این فیوز بیت است که تعیین می کند میکرو دارای بوت لودر است یا نه، سرعت میکرو، ولتاژ کاری میکرو و … .

مثال زیر را در نظر می گیریم. در مثال زیر فیوزبیت های High و Low نشان داده شده است.

 

مقدار فیوز بیت برای میکرو کنترلر Atmega32/32A به طور پیش فرض ۰x99E1 است که همانطور که از شکل فوق مشخص است برای فیوز بیت های High مقدار ۰x99 و برای فیوز بیت های Low مقدار ۰xE1 است. این مقادیر به معنی فرکانس ۱MHz و اسیلاتور داخلی RC و  statup time برابر با ۶CK+64ms است.

توضیحات مربوط به تنظیم فیوز بیت ها

  • CKSEL[3:0] (Clock Select)

این فیوز بیت ها برای انتخاب منابع مختلف کلاک استفاده می شود. جدول زیر به صورت کامل ایین فیوز بیت ها را مشخص می کند.

  • CKOPT (Clock Option)

دو نوع مد اسیلیشن در Atmega16 وجود دارد که بیت CKOPT  یکی از این دو حالت را انتخاب می کند. اگر این بیت پروگرام شده باشد (۰)، اسیلاتور خروجی با سویینگ (Swing) rail to rail ایجاد می کند این حالت رنج فرکانسی وسیعی دارد. اگر CKOPT پروگرام نشود (۱) اسیلاتور خروجی سویینگ کوچکتری خواهد داشت. جدول های زیر به خوبی محدوده فرکانس ها را نمایش می دهند.

*این مد فقط برای رزوناتور سرامیکی به کار می رود.

برای CKOPT = 0 بیت های CKSEL[3:1] به صورت زیر انتخاب می شوند.

برای کریستال خارجی با فرکانس ۱۲MHz، مقدار CKSEL[3:1] به عدد ۱۱۱ تنظیم می شود.

  • SUT[1:0] (Start Up Time)

این بیت برای زمان شروع Atmega16 به کار می رود. SUT[1:0] به همراه بیت CKSEL0 برای مشخص کردن زمان استارت آپ استفاده می شود.

  • BODLEVEL

سطح تریگر BOD(Brown Out Detection) توسط این فیوز بیت انتخاب می شود. وقتی “۰” باشد سطح تریگر ۴V و وقتی “۱” باشد سطح تریگر ۲.۷V انتخاب می شود.

  • BODEN

Atmega16 واحد BOD دارد که به صورت دائم سطح Vcc را با سطح تریگر ثابت مقایسه می کند. این فیوز بیت برای فعال یا غیر فعال کردن BOD به کار می رود. برای فعال کردن واحد BOD باید فیوز بیت BODEN مقدار “۰” شود.

  • OCDEN (On Chip Debugging Enable)

این بیت برای فعال یا غیرفعال کردن دیباگ چیپ به کار می رود. در واقع برای دنبال کردن برنامه قدم به قدم روی سخت افزار کاربرد دارد. برای فعال کردن  On Chip Debuggin مقدار این بیت باید “۰” باشد.

  • JTAGEN (JTAG Enable)

در Atmega16 واحد داخلی JTAG قرار دارد که به طور پیش فرض در میکرو فعال می باشد. برای غیرفعال کردن JTAG باید این بیت برابر با “۱” شود.

دقت شود اگر از پورت C میکروکنترلر به عنوان I/O استفاده شود باید این بیت به مقدار “۱” تغییر یابد.

  • SPIEN (SPI Enable)

اگر مقدار این بیت برابر با “۰” برنامه ریزی شود پروگرام کردن از طریق SPI برای میکرو فعال می شود.

  • BOOTRST (Boot Loader Reset)

بوت لودر یک برنامه کوچک است که در بخش خاصی از حافظه FLASH نوشته می شود. این برنامه در زمان بوت شدن میکرو انجام می شود. اگر این فیوز بیت پروگرام (۰) شود بیانگر وجود برنامه بوت لودر بوده و برنامه به ابتدای آدرس بوت لودر پرش می کند.

  • BOOTSZ[1:0]

این فیوز بیت برای نشان دادن میزان حافظه بوت لودر استفاده می شود. مقدار پیش فرض برای این فیوز بیت ها “۰۰” است که بیانگر سایز بوت لودر برابر با ۱۰۲۴ کلمه یا word می باشد.

  • EESAVE (EEPROM Save)

این بیت برای ذخیره محتوای حافظه EEPROM در زمان پاک کردن چیپ به کار می رود. اگر این فیوز بیت پروگرام (۰) شود محتوای EEPROM ذخیره می شود و بالعکس.

برای راحتی تنظیم فیوز بیت ها می توانید از این لینک استفاده کنید.

 

دانلود مقاله اموزشی درباره فیوزبیت

منتشر شده در آردوینوالکترونیک و میکروکنترلر

اولین باشید که نظر می دهید

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *