اطلاعیه

Collapse
No announcement yet.

کریستال خارجی برای AVR

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    کریستال خارجی برای AVR

    سلام
    برای استفاده از کریستال خارجی تو کد ویژن باید چکار کنیم؟
    چرا زمان Delay تو برنامه زمان دقیقی نیست؟

    #2
    پاسخ : کریستال خارجی برای AVR

    سلام دوست عزیز

    هیچ کار خاصی نباید انجام داد

    کریستال رو به طور مستقیم به دو پایهآ‌های کریستال در میکروی مربوطه وصل میکنید.
    اگر در محیطی هستید که نویز زیاده بهتره دو پایه کریستال رو با دوتا خازن به حدود 20 تا 30 پیکوفاراد به زمین وصل کنی.

    حالا پس از انجام تنظیمات کدویژن، هنگام پروگرم کردن، فیوز بیت ها رو برای اون فرکانس کریستال خارجی تنظیم میکنیم

    مثلا برای 16 مگاهرتز، CKSEL0...3 رو 0000 تنظیم میکنیم

    برای اطلاع از وضعیت فیوزبیتها به یک کتاب مثل کتاب مهندس رهآ‌افروز مراجعه کنید

    دیدگاه


      #3
      پاسخ : کریستال خارجی برای AVR

      نوشته اصلی توسط Mostafa_y
      سلام
      برای استفاده از کریستال خارجی تو کد ویژن باید چکار کنیم؟
      چرا زمان Delay تو برنامه زمان دقیقی نیست؟
      در واقع فرکانس کاری یک میکرو کنترلر را تنها می توان از طریق فیوز بیت های ان میکرو تعیین نمود ، همون طور که آقا احسان فرمودند به طور مثال برای اتصال یک کریستال بعد از اتصال کریستال می بایست فیوز بیت ها را برای استفاده از ان کریستال تنظیم نمود . اما در مورد اینکه چرا زمان های Delay متفاوت می باشد باید این مسئله را در نظر گرفت :
      در میکرو کنترلر همون طور که در بالا گفته شد تنها از طریق فیوز بیت ها می توان فرکانس کاری میکرو را تنظیم نمود . اما این سوال باقی می ماند که تنظیمات مربوط به فرکانس کاری که در ابتدای صفحه ی جادوگر CodeWizard و یا در منوی Project\Configure ، در تب C compiler وجود دارد به چه دردی می خورد ؟
      در پاسخ به این سوال باید گفت که همان طور که می دانید دستورات تاخیر نرم افزاری یا همان Delat_ms یا Delay_us در میکرو ها توسط دستورات اسمبلی پیاده سازی می شوند و شرکت سازنده کامپایلر با توجه به مدت زمانی که هر کدام از این دستورات چند پالس ساعت طول می کشند تا انجام شوند این دستورات را درون حلقه هایی گذاشته و این تاخیر های نرم افزاری را تولید می نمایند ، حالا با توجه به این که پالس ساعت در میکرو با فرکانس کاری میکرو کنترلر در ارتباط مستقیم ( مدت هر پالس ساعت برابر است با 1 بر روی f ) است و از انجایی که تعیین فرکانس کاری میکرو تنها از طریق فیوزبیت ها امکان پذیر می باشد ما بایستی به طریقی به کامپایلر بیچاره فرکانس کاری رو هالیش کنیم تا تاخیر های نرم افزاریشو درست حساب کنه که این را فقط از دو طریق بالا در محیط کامپایلر امکان پذیر می باشد .

      به طور مثال اگه به طور واقعی می خواهید با این مسئله روبرو بشید یه برنامه بنویسید که یک LED به پایه های یکی از پورت ها متصل باشد و به طور مساوی 500 میلی ثانیه روشن و خاموش باشه و با یک تایمر زمان روشن یا خاموشی را اندازه بگیرید و دوباره فرکانس را از منوی Project\Configure ، در تب C compiler تغییر بدهید و دوباره اندازه بگیرید متوجه خواهید شد که زمان روشنی یا خاموشی تغییر خواهد کرد . ( درست یادم نیست ولی فکر کنم اگه فیوز بیت ها رو 1مگاهرتز باشه و در برنامه رو 8 مگاهرتز باشه به جای نیم ثانیه ای که می خواهید تاخیر می شود 4 ثانیه خودمم رابطشو اخر نفهمیدم ) .

      موفق باشید .
      بگذارعشق خاصیت تو باشد نه رابطه خاص تو باکسی
      موفقيت پيش رفتن است نه به نقطه ي پايان رسيدن
      نلسون ماندلا

      دیدگاه


        #4
        پاسخ : کریستال خارجی برای AVR

        اگه بخوام تجربی بگم ، دستورهای تاخیری که در کدویژن استفاده میشن در فرکانس 4 مگاهرتز بیشترین دقت رو دارن و در فرکانس های بالا مثل 16 مگا اشتباه بیشتر میشه

        چون این دستورها مستقیما به فرکانس کار میکرو بستگی دارن

        دیدگاه


          #5
          پاسخ : کریستال خارجی برای AVR

          سلام
          از کمکتون ممنونم دوستان.

          من یه نگاهی به کتاب آقای رضا سپاسیار انداختم.توش نوشته بود برای External crystal/ceramic resonator باید بیت های 0 تا 3 از فیوز بیت CKSEL رو 1010 یا 1111 قرار بدیم.ولی آقا احسان فرمودن که باید 0000 قرار بدیم.من می خوام از کریستال 8M استفاده کنم. وقتی می خواهیم از کریستال خارجی استفاده کنیم که لازم نیست که به میکرو بگیم کریستالمون چند هرتزه؟نه؟ با این تفاسیر من یه کمی گیج شدم.یه بار دیگه راهنمایی کنین لطفا.

          دیدگاه


            #6
            پاسخ : کریستال خارجی برای AVR

            ببخشید یه چیزی یادم رفت.اگه بخواهیم در مورد پروتئوس سوال کنیم باید تو کدوم تاپیک بریم؟

            دیدگاه


              #7
              پاسخ : کریستال خارجی برای AVR


              سلام دوست عزیز به لینک زیر مراجعه کنید:
              http://www.eca.ir/forum2/index.php?board=181.0

              دیدگاه


                #8
                پاسخ : کریستال خارجی برای AVR

                برای کریستال خارجی 1111 درسته . کتاب آقای سپاس یار هم درسته
                ولی ذکر این نکته لازمه اگه مقادیر فیوزبیت ها رو به کلاک خارجی تغییر دادین و میکرو رو یه بار پروگرم کردی دیگه میکرو بدون کریستال به هیچ وجه کار نمیکنه.
                یعنی اگه همینطوری خالی به پروگرمر وصل کنین اونو نمیشناسه و باید همراه کریستال وصلش کنی.
                It's nice to be important but it's important to be nice!

                از اینکه نمی رسم جواب دوستان را بدم معذرت می خوام.

                دیدگاه


                  #9
                  پاسخ : کریستال خارجی برای AVR

                  سلام
                  دستت درد نکنه.
                  منظورتون اینه که فیوز بیت ها یه بار مصرفن؟
                  برای یک کردن فیوز بیت ها باید براشون تیک بزاریم یا تیکشو برداریم؟

                  دیدگاه


                    #10
                    پاسخ : کریستال خارجی برای AVR

                    اون مقدار رو فی المثل گفتم
                    گفتم باید از یک کتاب نگاه کنی

                    در جواب "وقتی می خواهیم از کریستال خارجی استفاده کنیم که لازم نیست که به میکرو بگیم کریستالمون چند هرتزه؟نه؟ "
                    باید بگم که مهمه
                    در ضمن نوع کلاک خارجی که یک ویبراتور مثلا RC باشه یا کریستال هم مهمه
                    فرکانس کریستال هم چند باسه برای تنظیم فیوزبیتها مهمه

                    در چواب "منظورتون اینه که فیوز بیت ها یه بار مصرفن؟"
                    یک بار مصرف نیستند ولی پروگرام کردن فیوزبیت ها با خود میکرو فرق میکنه
                    "پروگرم فلش" و "پروگرم فیوزبیت"

                    در جواب"برای یک کردن فیوز بیت ها باید براشون تیک بزاریم یا تیکشو برداریم؟"
                    اگه تیک بزنی صفر میشه

                    دیدگاه


                      #11
                      پاسخ : کریستال خارجی برای AVR

                      یه سوال اولا پرسیدین که چرا زمان delay دقیق نیست.
                      تا اونجایی که من میدونم هر قطعه الکترونیکی یه ضریب کیفیت داره که این امر تو مقاومت و خازن و سلف زیاد بحث میشه مخصوصا تو بحث های فرکانسی و مخابراتی
                      خوب پس وقتی اسیلاتور داخلی میکرو که یه اسیلاتور RC هست کار میکنه تا یه جایی دقت داره و به همین خاطره که از کریستال استفاده میشه. شما وقتی کریستال میخرین
                      میبینین که با دو تا دقت کاری به فروش میرسن. دقت 1/1000 و 1/1000000 که این فوق العاده ست که مثلا در هر مگاهرتز فقط یک هرتز خطا داشته باشین.
                      البته واسه کارهای دقیقی مثل ساختن ساعت کریستال جدایی میزاریم که جدا از کریستالی که میکرو باهاش کار میکنه فرق داره این کریستال به کریستال ساعت مشهوره
                      که بعد از یه تقسیم کلاک داخل میکرو یک ثانیه رو دقیق تولید میکنه و به پایه های TOSC میکرو وصل میشه.
                      موفق باشین
                      It's nice to be important but it's important to be nice!

                      از اینکه نمی رسم جواب دوستان را بدم معذرت می خوام.

                      دیدگاه


                        #12
                        پاسخ : کریستال خارجی برای AVR

                        دوستان من آخرش نفهمیدم برای کریستال خارجی باید چی برای فیوز بیت ها داد

                        cksel0..4

                        1001 یا 1111 یا 1010
                        من گیج شدمjavascript:void(0);

                        دیدگاه


                          #13
                          پاسخ : کریستال خارجی برای AVR

                          نوشته اصلی توسط ma-bah
                          دوستان من آخرش نفهمیدم برای کریستال خارجی باید چی برای فیوز بیت ها داد

                          cksel0..4

                          1001 یا 1111 یا 1010
                          من گیج شدمjavascript:void(0);
                          دوست عزیز با بسکام کار کن که اینقدر صفر و یک بازی و تیک بازار نداشته باشی
                          در اونجا بجای این کارها اسم هر فیوز بیت مثل (EXT CRYSTAL یا INT RC ) نوشته
                          البته میتونی فقط برای پروگرم کردن فیوز بیتها هم از بسکام استفاده کنی
                          پروردگارا: به من زيستني عطا کن که در لحظه مرگ بر بي ثمري لحظه اي که براي زيستن گذشته است حسرت نخورم، و مردني عطا کن که بر بيهودگيش سوگوار نباشم. بگذار تا آن را خود انتخاب کنم، اما آنچنان که تو دوست ميداري

                          دیدگاه


                            #14
                            پاسخ : کریستال خارجی برای AVR

                            سلام از دوستان میشه کسی راجع به بسکام هم توضیح بده من هرچی سعی کردم نتونستم توی بسکام کریستال خارجی 8 رو تعریف کردم وقتی توی فیوز بیت مربوطه میرم در مورد کریستال خارجی چندین نوع مختلف در بسته بندی های گوناگون داره شاید نزدیک به 15 تا که گیج کنندس کسی میتونه با عکس نشون بده که دقیقن کدوم رو باید انتخاب کرد؟

                            دیدگاه


                              #15
                              پاسخ : کریستال خارجی برای AVR

                              نوشته اصلی توسط alef_avr
                              سلام از دوستان میشه کسی راجع به بسکام هم توضیح بده من هرچی سعی کردم نتونستم توی بسکام کریستال خارجی 8 رو تعریف کردم وقتی توی فیوز بیت مربوطه میرم در مورد کریستال خارجی چندین نوع مختلف در بسته بندی های گوناگون داره شاید نزدیک به 15 تا که گیج کنندس کسی میتونه با عکس نشون بده که دقیقن کدوم رو باید انتخاب کرد؟

                              سلام
                              شما فیوز بیت ها رو با خود نرم افزار بیسکام تنظیم میکنید؟؟اگه با نرم افزار بیسکام تنظیم میکنید یک گزینه بیشتر نداره.

                              دیدگاه

                              لطفا صبر کنید...
                              X