آموزش میکروکنترلر AVR
در قسمت ششم آموزش میکروکنترلر AVR به بررسی مراحل راهاندازی یک دیکودر BCD به 7segment به وسیله کامپایلرهای بسکام و کدویژن پرداختیم، حال در این قسمت از آموزش میکروکنترلر AVR میخواهیم با منابع کلاک بیشتر آشنا شویم. منابع کلاک در AVR از طریق فیوزبیتها قابلتنظیم هستند و بستهبه شماره AVR تعداد منابع قابلدسترس متفاوت است.
اسیلاتور RC داخلی:
اولین منبع کلاک که در شمارههای مختلف بهصورت پیشفرض از آن استفادهمیشود منبع اسیلاتور RC داخلی میباشد. این اسیلاتور در فرکانسهای مختلفی موجود است و ممکناست در یک شماره از AVR بیشاز یک اسیلاتور RC وجود داشتهباشد. محدوده فرکانسی این اسیلاتور MHZ 1,1.2,1.6,2.4,4.8,9.6 است. در شمارههای مختلف، ورژن و کیفیت اسیلاتورهای داخلی متفاوت است؛ مثلاً در شمارهای مانند ATTINY13 ورژن اسیلاتورداخلی بالاتر از ATTINY128 است، بنابراین حساسیتها نسبتبه تغییرات دما، VCC، پایداری و… در شمارههای مختلف متفاوت هستند که برای اطلاعات بیشتر باید به دیتاشیت مربوطه مراجعهنمود.
اسیلاتورداخلی با RC خارجی:
امکان کالیبرهکردن اسیلاتورداخلی ازطریق خطوط برنامه وجود دارد و فرکانس میتواند ازطریق calibration byte تغییرکند. یکیدیگر از امکاناتی که در اسیلاتورداخلی RC وجود دارد، امکان تأمین نوسان در بعضیاز شمارهها بهصورت قراردادن RC خارجی بهصورتزیر است:
مثلاً در شمارههایی مانند ATMEGA64 مقدار فرکانس نوسان برابر f=1/3RC است، که خازن C باید از ۲۲PF بزرگتر باشد. همچنین میتوان خازن C را حذف و فیوزبیت CKOPT را فعالنمود،که در اینصورت یک خازن داخلی ۳۶PF داخلی فعال میشود و در مدار قرار میگیرد.
اسیلاتورداخلی با اتصال کریستال و رزوناتور:
ازجمله موارددیگر، امکان اتصال کریستالهای خارجی برای تأمین نوسان است، که مزیت آن بر اسیلاتورRC داشتن پایداری بیشتر است.
اسیلاتور در داخل میکروکنترلر قرار دارد و برای تامین نوسان خود از المانهای خارجی مثل کریستال و رزوناتور استفاده میکند.
اسیلاتورداخلی بااتصال کریستال فرکانس پایین:
در شمارههایی مثل MEGA64 این امکان وجود دارد که کریستال خارجی دارای فرکانس پایینی باشد که غیراز اتصال کریستالهایی درحد چند مگاهرتز امکان اتصال کریستالهایی درحد ۳۲۷۶۸هرتز را نیز دارا است. این بحث غیراز اتصال کریستال در این شمارهها، برای تأمین کلاک تایمر است که به پایههای XTAL1 و XTAL2 وصل میشود.
اسیلاتور خارجی:
دربرخیموارد که بحث نویزپذیری و پایداری نوسان وجود دارد، لازماست که کلاک بهصورتخارجی ایجادشود و به میکروکنترلر اعمالشود.
یک امکان دربرخی شمارهها هست که منبع کلاک را به عددثابتی تقسیم میکند و بعد به CPU اعمال میشود، که اینکار ازطریق فیوزبیت مشخص انجام میشود. مثلا درATTINY13 امکان یک ضریب تقسیم بر ۸ در سر راه کلاک وجود دارد یا در ATMEGA48 و ATMEGA88 امکان وجود ضریبهای تقسیم متغییر وجود دارد که ازطریق خطوط برنامه تنظیم میشوند. در مکانهایی که نیاز است مصرف توان و جریان میکروکنترلر کاهش پیداکند، با قراردادن یک ضریب تقسیم بالا مثلا ۲۵۶، کلاک اعمالشده کاهشپیداکند و درجایدیگر که ظرفیت پردازشی بالا درطول اجرای برنامه در نرمافزار نیازاست ضریب تقسیمبر یک میشود.
فیوز بیت CKOPT:
زمانیکه منبع نوسان از کریستالخارجی است برنامهریزی این فیوزبیت منجربه افزایش سوئینگ و دامنه نوسان میشود، که در محیطهای پرنویز و پرتشعشع شیوهی مناسبی برای ادامه کارمیکرکنترلر است.
در قسمت هشتم آموزش میکروکنترلر AVR به خواندن و نوشتن رجیسترهای ۱۶بیتی و توضیح Status Register میپردازد. با ما همراه باشید.
منبع:سیسوگ