منابع کلاک در AVR از طریق فیوزبیتها قابلتنظیم هستند.
کلاک در AVR را میتوان از طریق منابع زیر تأمین کرد:
شاید برای شما مفید باشد: آموزش AVR از مقدماتی تا پیشرفته | 100% رایگان
بهصورت پیشفرض در شمارههای مختلف از این منبع برای تأمین کلاک استفاده میشود. این اسیلاتور در فرکانسهای مختلف موجود است و ممکن است در یک شماره بیش از یک اسیلاتور RC داخلی وجود داشته باشد.
فرکانسهایی مثل1, 1.2, 1.6, 2, 4, 4.8, 8, 9.6 MHz و همچنین، 128kHz در برخی از شمارهها نمونههایی از فرکانس اسیلاتور RC داخلی هستند.
از لحاظ ورژن و نوع ساخت اسیلاتور RC داخلی، در شمارههای مختلف ورژن و کیفیت اسیلاتورهای RC داخلی متفاوت است. مثلاً در شماره AT Tiny13 ورژن اسیلاتور داخلی بالاتر است از شمارهای مثل ATmega128 بنابراین حساسیتها نسبت به تغییرات دما، تغییرات VCC به لحاظ پایداری در شمارههای مختلف متفاوت است که برای جزئیات بیشتر باید به دیتاشیت هر میکروکنترلر مراجعه کنید.
در برخی مواقع با بالارفتن دما فرکانس اسیلاتور افزایش مییابد و در بعضیاوقات فرکانس کاهش مییابد که نوع ورژن اسیلاتور داخلی در این عملکرد تأثیرگذار است و لزوماً شمارهای مثل ATmega128 از این لحاظ بهتر از شمارهای مثل AT Tiny13 نیست چون ATmega128 نسخه 3.1 است ولی AT Tiny13 نسخه 4.1 هست که برای اطلاعات بیشتر میتوانید به مراجع موجود در سایت atmel مراجعه کنید.
امکان کالیبره کردن فرکانس اسیلاتور RC داخلی از طریق خطوط نرمافزار وجود دارد و فرکانس میتواند از طریق calibration byte مقداری تغییر کند.
از دیگر امکانات موجود در اسیلاتورهای RC، امکان تأمین نوسان در بعضی از شمارهها از طریق قراردادن RC بهصورت خارجی مطابق شکل زیر است.
مثلاً در ATmega64 فرکانس نوسان است که خازن C باید از 22pF بزرگتر باشد و همچنین، در این شماره این امکان وجود دارد که خازن حذف شود و از طریق فعال کردن فیوزبیت CLKOPT یک خازن 36pF داخلی در مدار قرار گیرد تا نوسان تأمین شود.
از جمله موارد دیگر اتصال کریستال و رزوناتور خارجی برای تأمین نوسان است. بهاینترتیب که یک کریستال به دو خازن متصل میشود و نوسان از این طریق تأمین میشود که پایداری اینگونه اسیلاتورها نسبت به اسیلاتور RC چه داخلی و چه خارجی بیشتر است.
نکته: اسیلاتور درهرصورت داخل میکروکنترلر وجود دارد؛ ولی برای تأمین نوسان خودش از المانهای خارجی مثل کریستال و رزوناتور استفاده میکند.
در شمارههایی مثل MEGA64 این امکان وجود دارد که کریستال دارای فرکانس پایینی باشد. (مقادیری در 32768Hz) .
این امکان غیر از بحث امکان اتصال کریستال در این شمارهها برای تأمین کلاک تایمر است و به پایههای XTAL1 و XTAL2 برای ایجاد فرکانس متصل میشویم.
در این مورد کلاک از منبع نوسان خارجی تأمین میشود.
در بعضی موارد که بحث نویزپذیری یا پایداری نوسان مطرح باشد، لازم است کلاک بهصورت خارجی ایجاد شود و به میکرو اعمال شود.
امکانی در برخی از شمارهها وجود دارد این است که منبع کلاک به یک عدد ثابت تقسیم شود و بعد به CPU اعمال شود که این کار از طریق تنظیم فیوزبیت مشخصی انجام میشود.
مثلاً در ATTiny13 امکان یک ضریب تقسیم بر 8 در راه کلاک است. در برخی از شمارهها امکان قراردادن یک تقسیمکننده متغیر وجود دارد.
مثلاً درATmega48 وATmega88 این امکان وجود دارد که یک ضریب تقسیم متغیری که از طریق خطوط نرمافزار قابلتنظیم هست سر راه کلاک قرار بگیرد.
در جایی که لازم است مصرف جریان و توان میکرو کاهش یابد با قراردادن یک ضریب تقسیم بالا کلاک اعمال شده به CPU کاهش پیدا کند.
در جایی که ظرفیت پردازش بالا در طول اجرای نرمافزار موردنیاز باشد، این ضریب تقسیم روی 1 قرار میگیرد.
زمانی که منبع نوسان از کریستال خارجی است برنامهریزی این فیوزبیت (CLKOPT) منجر به افزایش سویینگ و دامنه نوسان میشود.
در محیطهای پر نویز و پر تشعشع امکان خوبی است برای اینکه میکرو به شیوه بهتری به کار خودش ادامه دهد.
برای انتخاب کلاک با گزینههای متفاوت در شمارههای مختلفی روبرو هستیم که در هر شماره امکانات متفاوتی موجود است.
در ATTiny13 امکان اتصال کریستال خارجی موجود نیست و منبع نوسان یا اسیلاتور داخلی در 3 فرکانس مختلف یا کلاک خارجی است.
نویسنده شو !
سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.