با سلام خدمت دوستان گرامي
در چه مواقعي است كه استفاد از كريستال خارجي بجاي كريستال داخلي ميكرو ترجيح داده ميشه؟
با سلام خدمت دوستان گرامي
در چه مواقعي است كه استفاد از كريستال خارجي بجاي كريستال داخلي ميكرو ترجيح داده ميشه؟
سلام
در مواقعی که دقت بالاتر و یا سرعت بیشتری نیاز داشته باشیم.
کریستال داخلی میکروکنترلر درواقع یک اسیلاتور متشکل از یک خازن و مقاومت هست که با تغییر مقدار اونها میشه فرکانس های متفاوت ایجاد کرد ، اما فرکانس تولید شده دقت فرکانس تولید شده توسط کریستال خارجی رو نداره و در برابر نویز هم آسیب پذیره.
کلا کریستال های خارجی دارای دقت های بالایی هستن ، اگه دقت کنید بعد از مقدار فرکانسشون 3 تا صفر (بعد از اعشار) یا 6 تا صفر وجود داره. این صفرها نشون دهنده ی دقت کریستال ها هستند.
یکی از جاهائیکه استفاده از کریستال های خارجی با فرکانس مناسب توصیه میشه در ارتباط سریال rs232 هست.
.
در واقع ما کریستال داخلی نداریم ! اون چیزی که داخل میکرو هست که نوستان ساز RC هست که کالیبره شده همین ، یعنی از دقت پایینی داره و برای کار های کنترلی که زمان توش خیلی دخیله کاربرد نداره و فقط برای راه اندازی میکرو و انجام کار هایی هست که وابستگی چندانی به زمان ندارن هست ، کریسال خارجی هم که اقای توضیحات آقای morteza_rk کامل هست و نیاز نمی بینم چیزی اضافه کنم!
متشکرم موفق و پیروز باشید
سلام
1- چطوری باید کریستال داخلی میکروهای avr رو فعال کرد ؟ (مثلا 8Mhz یا 4Mhz)
2- فیوز بیت ها رو در حالتی که کریستال داخلی استفاده کردیم(1و2و4و8) چطوری میشن؟
3- و وقتی که از کریستال خارجی استفاده کردیم(4و8و12و16) باید جطوری تنظیم بشن؟
4-و سوال آخر عملا نحوه تنظیم فیوز بیت ها توی بسکام چطوری و از چه منویی انجام میشه؟
ممنون از همه دوستان
ویرایش توسط mehrdad22 : 06-12-2011 در ساعت 05:49
سلام. به ترتیب سوالاتون و بر اساس دیتاشیت جواب میدم:
1- نیازی نیست. به طور پیشفرض از اسیلاتور داخلی استفاده میکنند.
2و3-
cksel3-0=1xxx + ckopt=x کریستال خارجی رو فعال میکنه. (x= 0 or 1)
و اگر ckop=1 , cksel3=0 اسیلاتور داخلی روشنه.
4- اینجوری: http://images.elektroda.net/76_1204291406.jpg
بستگی به پروگرامرتون هم داره. اگر با بسکام نشد باید با نرم افزاری که مخصوص پروگرامرتون هست پروگرام کنید. مثل ProgISP و...
یک نکته هم اضافه کنم:
اگه کریستال خارجی میکرو رو فعال کردید برای پروگرام کردن دوبارش باید یک کریستال بذارید
ویرایش توسط Cortex : 07-12-2011 در ساعت 19:14
با سلام
خوب دوستمون كامل توضيح دادن البته اينو بايد در نظر بگيريد كه تو نرم افزاراي مربوط به پروگرمرا تنظيم فيوز بيتا فرق ميكنه. حالا به نوع پروگرمر و نرم افزراي كه داريد استفاده مي كنيد بستگي داره.
البته حواستون باشه اگه ميكرو درست پروگرم نكنيد ممكنه براتون ايجاد مشكل كنه. مثلا ميكرو قفل بشه.
________________________
برنامه نويسي، الكترونيك(PE)
________________________
سلام
ممنون از جوابتون
کلا قاطی کردم ، یه چیزایی از قبل هم میدونستم ولی الان دیگه کلا قاطی شد(اول در مورد اسیلاتور داخلی صحبت کنیم بعد میریم خارجی)
مگه پیشفرض اسیلاتور داخلی روی 1mhz نیست؟
خب پیشفرض که روی 1mhz هستش فیوز بیتها به اون صورتی که گفتی تنظیم میشن
خب حالا شروع سوالات:
حالا من میخوام مقدار پیشفرض رو عوض کنم و بکنم 8mhz اولا چطوری این کار رو بکنم ؟
دوما فیوز بیتها چه تغییری میکنن؟
سلام
ببين براي حالت پيش فرض اصلا نياز نيست شما فيوز بيت هارو تغير بدي تغير فيوز بيت ها فقط براي زمانيه كه شما ميخاي از كريستال خارجي استفاده كني
پس زمانيكه از اسيلاتور(كريستال) داخلي استفاده ميكني
همون قسمت برنامه كه مقدار كريستال رو تعين ميكني ميتوني مقدارش رو تغير بدي مثلا 1 مگا هرتز بزاري يا 8 مگا هرتز بزاري پس با فيوز بيت ها كاري نداري....
موفق باشي
*** اللّهم عجّل لولیک الفرج ***
سلام
من یه جا دیدم که اینطوری گفته بودن:
کریستال داخلی رو میشه روی مقادیر دیگه ای هم گذاشت (1و2و4و8)
برای قرار دادن هرکدوم از این کریستال های داخلی باید فیوزبیت CKSEL رو عوض کنی
به این شکل :
اگه 1Mhz تعریف کنی ، باید *( CKSEL 0 )* رو برابر 1 کنی و بقیه رو 0 کنی
اگه 2Mhz تعریف کنی، باید *(CKSEL 1)* رو برابر با 1 کنی و بقیه رو 0 کنی
اگه 4Mhz تعریف کنی ، باید *( CKSEL 0)* و *(CKSEL 1)* رو برابر با 1 کنی و بقیه رو 0
اگه 8Mhz تعریف کنی ، باید *( CKSEL 2)* را برابر 1 کنی و بقیه رو 0
پیشفرض روی یک مگا هرتز هستش
یعنی این توضیحات غلط هستش؟
نه عزیز. اینا صفر و یک منطقی هستند.
0= برنامه ریزی فیوز بیت
1= عدم برنامه ریزی فیوز بیت
cksel3-0=1xx1 + ckopt=x کریستال خارجی رو فعال میکنه. (x= 0 or 1)
و اگر ckop=1 , cksel3=0 اسیلاتور داخلی روشنه.
بعد از فعال کردن کریستال خارجی میکرو باید یک کریستال بین پایه های xtal1 , xtal2 قرار بدید و بهتره هر پایشو با یه خازن 12-22 پیکو فاراد با زمین سری کنید.
ویرایش توسط Cortex : 07-12-2011 در ساعت 19:54
با سلام
ckopt اگه برنامه ریزی بشه خازنهای داخلی36پیکو را فعال میکنه و نیازی نیست که خازن استفاده کنیم ... اگر یکی از دوستان مجددا زحمت میکشیدند و نحوه ی تنظیم فیوز بیتها برای اسیلاتور داخلی وکریستال خارجی کاملا با مثال توضیح میدادند بسیار عالی بود..مثلا اگه فیوز بیتهای میکرو برای کریستال خارجی تنظیم بشه برای پروگرام کردن مجدد با همون فرکانس باز نیاز هست جهت پروگرام کردن به یه کریستال وصل بشه؟ چندین بار میکرو را با همون فرکانس تعریف شده و با تغییرات در اجرای کد برنامه پروگرام کردم میکرو در کوتاه مدت برنامه را اجرا میکنه ولی بعد از گذشت یک یا دو روز قسمتی از برنامه اجرا نمیکنه حسابی گیج شدم نمیدونم اشکال از برنامه است یا از نحوه ی پروگرام کردن میکرو ..!
ویرایش توسط safavism : 07-12-2011 در ساعت 23:48
درسته
برنامه ریزی ckopt واسه محیطهای نویزی یا وقتی که از پایه xtal2 کلاک خروجی بگیریم هم هستش.
واسه سوالتون:
آره باید کریستال بذارید ولی لازم نیست حتما همونمقدار باشه فقط باید تو رنجی که فیوزبیتها واسش پروگرام شدن باشه.
مثلا اگه فیوز بیتها رو به این صورت پروگرام کنید:
ckopt=0 cksel3-0=1111,1011,1101
اینجوری میتونید یک کریستال اکسترنال از 1Mhz به بالا استفاده کنید و دوباره میکرو رو پروگرام کنید.
ولی موقع کار کردن میکرو کریستال باید همون مقداری باشه که موقع برنامه نویسی گذاشتید.
ویرایش توسط Cortex : 08-12-2011 در ساعت 15:14
با سلام
مثلا atmega8
با برنامه ريزي ckopt خازن 36پيكو داخلي فعال ميشه
ویرایش توسط safavism : 07-12-2011 در ساعت 23:48