توضيحات دوستمون كلا خوب بود ، اما
چند تا نكته ...
نقل قول: دوستان یه سوال خازن ها را کسی میدونه به چه دردی میخوره ؟
نقل قول: واسه نویز گیری فرکانس تولید شده توسط کریستال هستش.
قبلا اين موضوع رو چندين بار گفتم. مدار نوسان ساز داخل ميكرو هست و تنها يك المان به عنوان كريستال از خارج به ميكرو وصل مي شه ، كه باعث مي شه مدار نوسان ساز كامل بشه ، كريستال به تنهايي نوسان درست نمي كنه و نمي تونه درست كنه.
--> اون خازن هاي در حد pf كه مي ذاريم ، براي نويز گيري نيست !
براي كامل كردن مدار كريستال هست. اون دوتا خازن باعث مي شن ولتاژ درست سر طبقه هاي كريستال بيفته و بتونه كار كنه.
در مورد اسيلاتور داخلي:
يه اسيلاتور RC هست كه خيلي دقيق نيست ، اما براي كارهاي عادي كافيه و فقط رنج هاي 1 و 2 و 4 و 8MHz رو دارهه. ( شرايط دمايي هم روش اثر مي ذارهه )
براي كاراي دقيق مثل ارتباط سريال و ... براي دقت بيشتر بهترهه از كريستال استفاده بشه ، اگرم نشه مشكلي نيست.
تثبيت مهم هست و ميزان خطا ( كه بعدا باهاش آشنا مي شيد. )
اگر ميزان فركانس خواستيد ببريد بالا هم بايستي از كريستال با مقدار مناسب استفاده كنيد كه سرعت پردازشتون زياد بشه.
سري AVR هاي 8 بيتي ، بجز چند مورد كه تا 20MHz شركت سازنده عملكردشون رو گارانتي كرده ، بقيه و اكثرا تا 16MHz گارانتي شده هستن.
البته اگر كار دقيقي انجام نمي گيرهه و فقط سرعت بالاتر نياز هست ، مي شه اون ها رو Over Clock كرد ( با استفاده از كريستال با مقدار بيشتر ، مثلا 20 يا 24MHz ) البته در اين صورت ممكنه بعضي قسمت ها درست كار نكنند.
نقل قول: ببخشید یه سوال دیگه هم دارم. وقتی از کریستال استفاده می کنیم زمانی که از پروگرامر استفاده می کنیم برای پروگرم کردن میکرو اگه مثلا ما یه فرکانس رو از ممنبع خارجی بگیریم ولی موقع ریختن اطلاعات میکرو به کریستال وصل نباشه نمیشه پروگرم کرد؟
جواب درست اينه...
بستگي داره !!
كلاك مورد نياز ميكرو از چند طريق مي تونه تامين بشه ...
ميكرو مي تونه توسط يك منبع clock خارجي ، clock مورد نيازش رو مستقيما تامين كنه.
مي تونه از طيق اسيلاتور RC داخلي نوسان بسازهه و كلاك اش رو تامين كنه.
مي تونه توسط كريستال خارجي و نوسانساز ديگري كه در داخل ميكرو هست ، نوسان ايجاد كنه و كلاكش رو تامين كنه.
متاسفانه AVR هاي 8 بيتي يه سري ريجستر دارن كه در خطوط برنامه نمي شه مستقيم بهشون مقدار داد و بايد به صورت سخت افزاري مقدار دهي بشن. اين كار هم پروگرامرها انجام ميدن اما تنظيماتش با خودمون هست.
به اين ريجسترها اصطلاحا فيوزبيت مي گن.
چون تازه كار هستيد بهتون توصيه مي كنم از دستكاريشون بپرهيزيد تا اينكه يه زماني بگذرهه و خوب دركشون كنيد و بهشون مسلط بشيد و با آگاهي كامل باهاشون كار كنيد.
ميكرو به صورت پيشفرض روي 1MHz داخلي تنظيم شده. همين براي شروع خوب هست.
اگر فيوزبيت اين قسمت رو به صورت خارجي تنظيم كنيد ( چه كلاك خارجي و چه كريستال خارجي ) در صورت وصل نبودن خط كلاك از خارج به ميكرو و يا كريستال ، ميكرو نوساني ندارهه كه بتونه از دستورات پروگرامر پيروي كنه ،بخاطر همين بعضي فكر مي كنن ميكرو خراب شده و ...
پس شما حداكثر كاري كه فعلا مي كنيد نوسانساز رو روي 8MHz داخلي تنظيم مي كنيد ( زمان startup اش مهم نيست ) و فيوزبيت هاي Jtag رو غيرفعال مي كنيد.
فيوزبيت پروگرام كردن به صورت سريال رو هم اصلا دست نزنيد ( بايد فعال باشه ) اگر غيرفعال كنيد ، ميكرو ديگه از اين روش پروگرام نمي شه ...
پايه ي Reset رو غير فعال نكنيد و ...
براي درك نكات آخريي كه گفتم ، بايد يه مقداري در مورد فيوزبيت ها تحقيق كني و ببينيشون. بچه ها هم جدول فيوز بيت ها رو گذاشتن و هم مقاله ...
يه سرچ بزنيد پيدا مي كنيد. بهترين كار هم اينه كه يه كتاب مرجع بگيريد.
بعد از تحقيق ،اگر باز هم سوالي بود بپرسيد ، دوستان كمكتون مي كنند.
موفق باشيد.