شاید یکی از مطالب چالش بر انگیز در مورد میکروکنترلر هایAVR بحث فیوز بیت های آن باشد که درصورتی که تجربه کافی در کار با آنها نداشته باشید ممکن است وقت زیادی را در انجام پروژه های مختلف با این میکروکنترلر ها از شما بگیرد.
فیوزبیت ها بخشی از حافظه FLASHهستند که امکاناتی را در اختیار برنامه نویس قرار می دهند که عبارتند از تنظیم کلاک ،RESET، دیباگ کردن برنامه ، بهینه سازی نوسانات کریستال و …
در میکروکنترلر هایAVR اگر مقدار فیوز بیت “1” باشد به معنی فعال نبودن و اگر “صفر” باشد به مفهوم فعال شدن آنهاست.
فیوز بیت هایAVR عبارتند از:
SUT دارای دو بیت و CKSEL با چهار بیت قابلیت تنظیم کلاک سیستم را به برنامه نویس می دهد.
جدول زیر حالت های مختلفی است که با تنظیم فیوز بیت های CKSEL حاصل می شود:
-فیوز بیتWDTON
فعال کردن این فیوز بیت تایمر Watchdog میکروکنترلر را فعال می کند. تایمر Watchdog در صورتی که عملکرد میکروکنترلر حین اجرای برنامه مختل شود به طور خودکار آن را Reset می کند.
-فیوز بیت On Chip Debug Enable) OCDEN)
این فیوز بیت در کنار فیوز بیت JTAGEN جهت دیباگ کردن کد کامپایل شده همزمان با اجرا شدن آن(به صورت بلادرنگ یا Real-Time) به کار می رود. با فعال کردن این فیوز بیت این امکان فراهم می شود.
-فیوز بیتJTAGEN
همانطور که گفته شد از این فیوزبیت برای دیباگ برنامه استفاده می شود. علاوه بر آن می توان از این فیوزبیت برای برنامه ریزی میکروکنترلر ها(پروگرام کردن) استفاده کرد.
-فیوز بیتSPI ENable) SPIEN)
از نام این فیوزبیت مشخص است که جهت فعال کردن ارتباط سریال با پروتکل SPI میکروکنترلر به کار می رود.
-فیوزبیتCKOPT
با فعال کردن این فیوزبیت دامنه سیگنال کلاک تقویت می یابد و باعث می شود میکروکنترلر در محیط های نویزی عملکرد بهتری داشته باشد اما در این حالت توان بیشتری مصرف می شود که در محیط های عادی فعال کردن آن پیشنهاد نمی شود.
-فیوزبیتEESAVE
فعال یا غیر فعال شدن این فیوز بیت ، وضعیت پاک شدن حافظه EEPROM میکروکنترلر را در حین پروگرام کردن تعیین می کند. به این ترتیب که در صورت فعال نشدن آن (“1” شدن ) این حافظه در طی پروسه ی پروگرام شدن میکرو پاک خواهد شد و بالعکس.
–فیوزبیت M103
دو میکروکنترلر ATMega103 و ATMega128 شباهت زیادی (از نظر سخت افزاری) با یکدیگر دارندو در مواردی که متفاوت هستند نیز با فعال کردن این فیوزبیت می توان این دو میکروکنترلر را به یکدیگر تبدیل کرد.
-فیوزبیت BOOTSZ0 و BOOTSZ1
تنظیم اندازه ی BOOTLoader
در دیتاشیت هر یک از چیپ های میکروکنترلر های AVR جدول Boot Size Configuration اطلاعات مربوط به این فیوز بیت قابل مشاهده است.
-فیوزبیت BODLEVEL و BODEN
در صورت کاهش بیش از حد ولتاژ تغذیه میکرو،…… آن را تشخیص داده و در صورت فعال بودن فیوزبیتBODEN، میکروکنترلر Reset می شود.
مقدار ولتاژ آستانه (که اگر تغذیه از آن کمتر شود باعث Reset شدن میکرو می شود) توسط فیوزبیت BODLEVEL تعیین می شود که اگر مقدار آن برابر “1”باشد در 2.7 ولت و اگر “0” باشد در 4.0 ولت این اتفاق می افتد.
سلام دوست عزیز در تایمر ۲ و در مد نرمال اگر بخواهیم از اسیلاتور کریستال مثلا ۱۶MHz استفاده کنیم،تنظیمات کدویزارد به چه صورت خواهد بود؟منبع کلاک تایمر را چگونه باید تعیین کنیم؟(برای شبیه سازی پروتئوس بیشتر مدنظرم هست)
درود توجه داشته باشید که در کُد ویزارد زمانی که فرکانس میکرو را مشخص میکنید تایمر به شما چند نمونه فرکانس با توجه به تقسیم فرکانسی ( prescaler ) منبع کلاک تایمر مقادیر مشخصی داره و ما نمیتونیم هر عددی رو بدلخواه بعنوان فرکانس مرجع تایمر انتخاب کنیم در پروتئوس هم با دابل کلیک روی میکرو میتونیم به فیوز بیت ها دسترسی پیدا کنیم و اونارو تنظیم کنیم.
فیوزبیتهای مربوط به جلوگیری از کپی کردن برنامه کدوما هستن؟
نشانی ایمیل شما منتشر نخواهد شد. بخشهای موردنیاز علامتگذاری شدهاند *
کليه حقوق اين سايت متعلق به سام نیک میباشد