آموزش میکروکنترلر 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 باید از 22PF بزرگتر باشد. همچنین میتوان خازن C را حذف و فیوز بیت CKOPT را فعال نمود،که در این صورت یک خازن داخلی 36PF داخلی فعال میشود و در مدار قرار میگیرد.
اسیلاتور داخلی با اتصال کریستال و رزوناتور:
از جمله موارد دیگر، امکان اتصال کریستالهای خارجی برای تأمین نوسان است،که مزیت آن بر اسیلاتور RC داشتن پایداری بیشتر است.
اسیلاتور در داخل میکروکنترلر قرار دارد و برای تامین نوسان خود از المانهای خارجی مثل کریستال و رزوناتور استفاده میکند.
اسیلاتور داخلی با اتصال کریستال فرکانس پایین:
در شماره هایی مثل MEGA64 این امکان وجود دارد که کریستال خارجی دارای فرکانس پایینی باشد که غیر از اتصال کریستالهایی در حد چند مگا هرتز امکان اتصال کریستالهایی در حد 32768 هرتز را نیز دارا است. این بحث غیر از اتصال کریستال در این شمارهها، برای تأمین کلاک تایمر است که به پایه های XTAL1 و XTAL2 وصل میشود.
اسیلاتور خارجی:
در برخی موارد که بحث نویز پذیری و پایداری نوسان وجود دارد، لازم است که کلاک به صورت خارجی ایجاد شود و به میکروکنترلر اعمال شود.
یک امکان در برخی شمارهها هست که منبع کلاک را به عدد ثابتی تقسیم میکند و بعد به CPU اعمال میشود، که این کار از طریق فیوز بیت مشخص انجام میشود. مثلا در ATTINY13 امکان یک ضریب تقسیم بر 8 در سر راه کلاک وجود دارد یا در ATMEGA48 و ATMEGA88 امکان وجود ضریب های تقسیم متغییر وجود دارد که از طریق خطوط برنامه تنظیم می شوند. در مکانهایی که نیاز است مصرف توان و جریان میکروکنترلر کاهش پیدا کند، با قرار دادن یک ضریب تقسیم بالا مثلا 256،کلاک اعمال شده کاهش پیدا کند و در جای دیگر که ظرفیت پردازشی بالا در طول اجرای برنامه در نرم افزار نیاز است ضریب تقسیم بر یک میشود.
فیوز بیت CKOPT:
زمانی که منبع نوسان از کریستال خارجی است برنامه ریزی این فیوز بیت منجر به افزایش سوئینگ و دامنه نوسان میشود،که در محیط های پر نویز و پرتشعشع شیوه ی مناسبی برای ادامه کار میکرکنترلر است.
سیسوگ در قسمت هشتم آموزش میکروکنترلر AVR به خواندن و نوشتن رجیسترهای 16 بیتی و توضیح Status Register میپردازد. با سیسوگ همراه باشید.
سری مقالات آموزش میکروکنترلر AVR توسط آقای مهندس کینژاد تهیه شده است.
ممنون از مطالب خوب شما
سلام
ممنون دوست عزیز