آموزش میکروکنترلر AVR قسمت هفتم (منابع تولیدکلاک در میکروکنترلر AVR)
منابع تولید کلاک در میکروکنترلر AVR :
1. اسیلاتور کریستالی خارجی (external crystal / ceramic resonator )
2. اسیلاتور RC خارجی (external RC oscillator)
3. اسیلاتور RC کالیبره شده داخلی (calibrated internal RC oscillator)
4. اسیلاتور کریستالی فرکانس پایین(کریستال ساعت) (external low frequency crustal)
5. کلاک خارجی(external clock)
که در پایین هر یک رو به طور کامل توضیح میدم:
1-اسیلاتور کریستالی خارجی :
یکی از منابع تولید کلاک در میکروکنترلر AVR استفاده از اسیلاتور کریستالی خارجی می باشد .در این حالت پایه های XTAL1 و XTAL2 میکرو کنترلر مانند شکل به کریستال متصل می شود. مقادیر خازن های مورد استفاده و نحوه تنظیم فیوز بیت ها در جدول های پایین آمده است.
2-اسیلاتور RC خارجی:
می توان بجای استفاده از از کریستال خارجی از مدار RC خارجی مطابق شکل استفاده کرد .
در کاربردهایی که به زمان بندی ها حساسیتی ندارد می توان از ساختار اسیلاتور RC خارجی استفاده کرد که فرکانس آن به صورت تقربی از رابطه ی( f=1/(3RC
بدست می آید . C حداقل باید 22pf باشد. با برنامه ریزی فیوز CKOPT می توان خازن 36pf مابین پایه های XTAL و GND را فعال کرد به این ترتیب نیازی به استفاده از خازن خارجی نیست.
اسیلاتور می تواند در چهار حالت مختلف کار کند که هریک برای محدوده ی خاصی از فرکانسها مناسب می باشد این حالت ها به کمک فیوز بیت های CKSEL0..3 تنظیم می شود. که در جدول پایین مقادیر لازم آورده شده است.
3-اسیلاتور RC کالیبره شده داخلی :
این اسیلاتور چهار 1 و 2 و4 و8 MHZ را تولید میکند. که برای استفاده از این اسیلاتور باید فیوز بیت های CKSEL0..3 تنظيم شود.که مقادیر این این فیوز بیت ها در جدول پایین آورده شده است.
4-اسیلاتور کریستالی فرکانس پایین(کریستال ساعت):
اگر از یک کریستال ساعت بعنوان کلاک استفاده شود باید فیوز بیت های CKSEL0..3 را به صورت 1001 برنامه ریزی نمود. اتصال ای کریستال همانند کریستال خارجی است.
نکته : با فعال کردن فیوز بیت CKOPT خازن داخلی 36pf فعال شده و دیگر نیازی به استفاده از خازن خارجی نمی باشد.
5-کلاک خارجی :
در صورت استفاده از یک کلاک خارجی بعنوان منبع کلاک این کلاک به پایه ی XTAL1 متصل میشود وپایه ی XTAL2 بدون اتصال باقی می ماند. در این حالت باید فیوز بیت های CKSEL0..3 را به صورت 0000 برنامه ریزی نمود.
در پست بعدی کامل در مورد فیوزبیت ها توضیح میدم و بعد از اون پست به بحث شیرین برنامه نویسی میکروکنترلر ها وارد می شیم .
آیا می توان بجای استفاده از کریستال خارجی از کریستال داخلی میکرویی که همان مقدار فرکانس را نوسان می کند استفاده نمائیم؟
سلام تاکیدی بر استفاده از کریستال خارجی نیست و به راحتی می توانید از کلاک داخلی خود میکرو استفاده کنید. استفاده از کریستال خارجی دقت کلاک میکرو رو افزایش می ده و باعث کاهش اثر نویز روی میکرو میشه برای همین از کریستال خارجی استفاده می کنند
با سلام. یعنی شما میفرمایید برای کاهش نویز روی AVR بهتره از کلاک (کریستال) خارجی استفاده بشه؟
یه سوال دیگه! برای کمتر کردن نویز بهتره از خازن های داخلی میکرو در اتصال XTAL1,XTAL2 استفاده بشه یا خودمون خازن ها رو به صورت خارجی مطابق دستور دیتاشیت میکرو قرار بدیم؟
دقت و پایداری کریستال خارجی بهتر از اسیلاتور rc داخلی هست. در مورد استفاده از خازن های داخلی میکرو هم من تا به حال مدار هایی که دیدم همشون از خازن خارجی استفاده کردند. بهتره طبق گفته ی دیتاشیت عمل بشه
سلام
من در حال ساخت یه فاصله سنج لیزری هستم با atmega32 و sharp GP2D12 که تو دیتاشیتش نوشته خروجیش آنالوگه. حالا 2 تا سوال دارم.
یکی اینکه به a/d داخلی خود میکرو جواب میده یا باید از مبدل بیرونی استفاده بشه؟
و یکی هم اینکه نیاز به چه اسیلاتور خارجی هستش؟ با تشکر
میشه با میکرو راه انداخت فقط خروجیش خطی نیست یکم ریاضی و برنامه نویسی می خواد
با سلام خدمت شما…
من یه مدار تایمر برای موتور درست کردم که تو برنامه نویسی از دستور Enable Timer2 استفاده کردم…..تو پروتوس مدار کار میکنه اما وقتی که مدار رو بستم تایمر او کار نمی کنه….نمی دونم مشکل از کجاست….
اگر در شبیه ساز کار میکنه پس باید در عمل نیز کار کنه چک کنید ببنید چه مواردی رو رعایت نکردید مثلا پول آپ کردن پایه ریست یا استفاده از خازن برای جلوگیری از نویز و اینکه بهتره مدار تغذیه ی موتور جدا از تغذیه میکروکنترلر باشه
با سلام برای استفاده از کلاک داخلی 1 نگا هرتز من CKSEL رو 0001 قرار دادم برای مدار راه اندازش چجوری باید عمل کنم یعنی پایه های XTAL1 و XTAL2 رو باید به چی وصل کنم؟