کریستال رو به طور مستقیم به دو پایهآهای کریستال در میکروی مربوطه وصل میکنید.
اگر در محیطی هستید که نویز زیاده بهتره دو پایه کریستال رو با دوتا خازن به حدود 20 تا 30 پیکوفاراد به زمین وصل کنی.
حالا پس از انجام تنظیمات کدویژن، هنگام پروگرم کردن، فیوز بیت ها رو برای اون فرکانس کریستال خارجی تنظیم میکنیم
مثلا برای 16 مگاهرتز، CKSEL0...3 رو 0000 تنظیم میکنیم
برای اطلاع از وضعیت فیوزبیتها به یک کتاب مثل کتاب مهندس رهآافروز مراجعه کنید
سلام
برای استفاده از کریستال خارجی تو کد ویژن باید چکار کنیم؟
چرا زمان Delay تو برنامه زمان دقیقی نیست؟
در واقع فرکانس کاری یک میکرو کنترلر را تنها می توان از طریق فیوز بیت های ان میکرو تعیین نمود ، همون طور که آقا احسان فرمودند به طور مثال برای اتصال یک کریستال بعد از اتصال کریستال می بایست فیوز بیت ها را برای استفاده از ان کریستال تنظیم نمود . اما در مورد اینکه چرا زمان های Delay متفاوت می باشد باید این مسئله را در نظر گرفت :
در میکرو کنترلر همون طور که در بالا گفته شد تنها از طریق فیوز بیت ها می توان فرکانس کاری میکرو را تنظیم نمود . اما این سوال باقی می ماند که تنظیمات مربوط به فرکانس کاری که در ابتدای صفحه ی جادوگر CodeWizard و یا در منوی Project\Configure ، در تب C compiler وجود دارد به چه دردی می خورد ؟
در پاسخ به این سوال باید گفت که همان طور که می دانید دستورات تاخیر نرم افزاری یا همان Delat_ms یا Delay_us در میکرو ها توسط دستورات اسمبلی پیاده سازی می شوند و شرکت سازنده کامپایلر با توجه به مدت زمانی که هر کدام از این دستورات چند پالس ساعت طول می کشند تا انجام شوند این دستورات را درون حلقه هایی گذاشته و این تاخیر های نرم افزاری را تولید می نمایند ، حالا با توجه به این که پالس ساعت در میکرو با فرکانس کاری میکرو کنترلر در ارتباط مستقیم ( مدت هر پالس ساعت برابر است با 1 بر روی f ) است و از انجایی که تعیین فرکانس کاری میکرو تنها از طریق فیوزبیت ها امکان پذیر می باشد ما بایستی به طریقی به کامپایلر بیچاره فرکانس کاری رو هالیش کنیم تا تاخیر های نرم افزاریشو درست حساب کنه که این را فقط از دو طریق بالا در محیط کامپایلر امکان پذیر می باشد .
به طور مثال اگه به طور واقعی می خواهید با این مسئله روبرو بشید یه برنامه بنویسید که یک LED به پایه های یکی از پورت ها متصل باشد و به طور مساوی 500 میلی ثانیه روشن و خاموش باشه و با یک تایمر زمان روشن یا خاموشی را اندازه بگیرید و دوباره فرکانس را از منوی Project\Configure ، در تب C compiler تغییر بدهید و دوباره اندازه بگیرید متوجه خواهید شد که زمان روشنی یا خاموشی تغییر خواهد کرد . ( درست یادم نیست ولی فکر کنم اگه فیوز بیت ها رو 1مگاهرتز باشه و در برنامه رو 8 مگاهرتز باشه به جای نیم ثانیه ای که می خواهید تاخیر می شود 4 ثانیه خودمم رابطشو اخر نفهمیدم ) .
موفق باشید .
بگذارعشق خاصیت تو باشد نه رابطه خاص تو باکسی
موفقيت پيش رفتن است نه به نقطه ي پايان رسيدن
نلسون ماندلا
اگه بخوام تجربی بگم ، دستورهای تاخیری که در کدویژن استفاده میشن در فرکانس 4 مگاهرتز بیشترین دقت رو دارن و در فرکانس های بالا مثل 16 مگا اشتباه بیشتر میشه
چون این دستورها مستقیما به فرکانس کار میکرو بستگی دارن
من یه نگاهی به کتاب آقای رضا سپاسیار انداختم.توش نوشته بود برای External crystal/ceramic resonator باید بیت های 0 تا 3 از فیوز بیت CKSEL رو 1010 یا 1111 قرار بدیم.ولی آقا احسان فرمودن که باید 0000 قرار بدیم.من می خوام از کریستال 8M استفاده کنم. وقتی می خواهیم از کریستال خارجی استفاده کنیم که لازم نیست که به میکرو بگیم کریستالمون چند هرتزه؟نه؟ با این تفاسیر من یه کمی گیج شدم.یه بار دیگه راهنمایی کنین لطفا.
برای کریستال خارجی 1111 درسته . کتاب آقای سپاس یار هم درسته
ولی ذکر این نکته لازمه اگه مقادیر فیوزبیت ها رو به کلاک خارجی تغییر دادین و میکرو رو یه بار پروگرم کردی دیگه میکرو بدون کریستال به هیچ وجه کار نمیکنه.
یعنی اگه همینطوری خالی به پروگرمر وصل کنین اونو نمیشناسه و باید همراه کریستال وصلش کنی.
It's nice to be important but it's important to be nice!
از اینکه نمی رسم جواب دوستان را بدم معذرت می خوام.
اون مقدار رو فی المثل گفتم
گفتم باید از یک کتاب نگاه کنی
در جواب "وقتی می خواهیم از کریستال خارجی استفاده کنیم که لازم نیست که به میکرو بگیم کریستالمون چند هرتزه؟نه؟ "
باید بگم که مهمه
در ضمن نوع کلاک خارجی که یک ویبراتور مثلا RC باشه یا کریستال هم مهمه
فرکانس کریستال هم چند باسه برای تنظیم فیوزبیتها مهمه
در چواب "منظورتون اینه که فیوز بیت ها یه بار مصرفن؟"
یک بار مصرف نیستند ولی پروگرام کردن فیوزبیت ها با خود میکرو فرق میکنه
"پروگرم فلش" و "پروگرم فیوزبیت"
در جواب"برای یک کردن فیوز بیت ها باید براشون تیک بزاریم یا تیکشو برداریم؟"
اگه تیک بزنی صفر میشه
یه سوال اولا پرسیدین که چرا زمان delay دقیق نیست.
تا اونجایی که من میدونم هر قطعه الکترونیکی یه ضریب کیفیت داره که این امر تو مقاومت و خازن و سلف زیاد بحث میشه مخصوصا تو بحث های فرکانسی و مخابراتی
خوب پس وقتی اسیلاتور داخلی میکرو که یه اسیلاتور RC هست کار میکنه تا یه جایی دقت داره و به همین خاطره که از کریستال استفاده میشه. شما وقتی کریستال میخرین
میبینین که با دو تا دقت کاری به فروش میرسن. دقت 1/1000 و 1/1000000 که این فوق العاده ست که مثلا در هر مگاهرتز فقط یک هرتز خطا داشته باشین.
البته واسه کارهای دقیقی مثل ساختن ساعت کریستال جدایی میزاریم که جدا از کریستالی که میکرو باهاش کار میکنه فرق داره این کریستال به کریستال ساعت مشهوره
که بعد از یه تقسیم کلاک داخل میکرو یک ثانیه رو دقیق تولید میکنه و به پایه های TOSC میکرو وصل میشه.
موفق باشین
It's nice to be important but it's important to be nice!
از اینکه نمی رسم جواب دوستان را بدم معذرت می خوام.
دوستان من آخرش نفهمیدم برای کریستال خارجی باید چی برای فیوز بیت ها داد
cksel0..4
1001 یا 1111 یا 1010
من گیج شدمjavascript:void(0);
دوست عزیز با بسکام کار کن که اینقدر صفر و یک بازی و تیک بازار نداشته باشی
در اونجا بجای این کارها اسم هر فیوز بیت مثل (EXT CRYSTAL یا INT RC ) نوشته
البته میتونی فقط برای پروگرم کردن فیوز بیتها هم از بسکام استفاده کنی
پروردگارا: به من زيستني عطا کن که در لحظه مرگ بر بي ثمري لحظه اي که براي زيستن گذشته است حسرت نخورم، و مردني عطا کن که بر بيهودگيش سوگوار نباشم. بگذار تا آن را خود انتخاب کنم، اما آنچنان که تو دوست ميداري
سلام از دوستان میشه کسی راجع به بسکام هم توضیح بده من هرچی سعی کردم نتونستم توی بسکام کریستال خارجی 8 رو تعریف کردم وقتی توی فیوز بیت مربوطه میرم در مورد کریستال خارجی چندین نوع مختلف در بسته بندی های گوناگون داره شاید نزدیک به 15 تا که گیج کنندس کسی میتونه با عکس نشون بده که دقیقن کدوم رو باید انتخاب کرد؟
سلام از دوستان میشه کسی راجع به بسکام هم توضیح بده من هرچی سعی کردم نتونستم توی بسکام کریستال خارجی 8 رو تعریف کردم وقتی توی فیوز بیت مربوطه میرم در مورد کریستال خارجی چندین نوع مختلف در بسته بندی های گوناگون داره شاید نزدیک به 15 تا که گیج کنندس کسی میتونه با عکس نشون بده که دقیقن کدوم رو باید انتخاب کرد؟
سلام
شما فیوز بیت ها رو با خود نرم افزار بیسکام تنظیم میکنید؟؟اگه با نرم افزار بیسکام تنظیم میکنید یک گزینه بیشتر نداره.
دیدگاه