اطلاعیه

Collapse
No announcement yet.

عملکرد غیر همسان یک برنامه در چند میکرو attiny 13!!

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

    عملکرد غیر همسان یک برنامه در چند میکرو attiny 13!!

    سلام دوستان
    من یه برنامه تایمر نوشتم که 20 دقیقه روشن و یک ساعت خاموش باشه.
    این برنامه را رو 7 تا آی سی تینی13 ریختم رو 7 تا برد بستم .هیچکدوم در یک زمان قطع و وصل نمیشن!!چرا؟!!!! oo: oo: :angry:
    فیوزبیتها همه یه جور تنظیم شدند.
    اینم متن برنامه که با بسکام نوشتم:
    $regfile = "attiny13.dat"
    $crystal = 128000
    $hwstack = 4
    $swstack = 8
    $framesize = 24

    Config Portb.0 = Output

    Dim Contor As Word

    Enable Interrupts

    Config Timer0 = Timer , Prescale = 1024
    Enable Timer0
    On Ovf0 Faal
    Start Timer0


    Do
    Loop
    End

    Faal:
    Incr Contor

    If Contor <= 600 Then Set Portb.0 Else Reset Portb.0

    If Contor >= 2400 Then Contor = 0

    Return
    الهم صل علی محمد و آل محمد و عجل فرجهم

    #2
    پاسخ : عملکرد غیر همسان یک برنامه در چند میکرو attiny 13!!

    فرکانس کریستال رو از کجا اوردی؟/
    همچین کریستالی ندیدم؟؟

    دیدگاه


      #3
      پاسخ : عملکرد غیر همسان یک برنامه در چند میکرو attiny 13!!

      آی سی های سری تینی ، 128 کیلو هم دارن.با کریستال(RC) داخلی.
      مگا 48 و88 هم داره
      الهم صل علی محمد و آل محمد و عجل فرجهم

      دیدگاه


        #4
        پاسخ : عملکرد غیر همسان یک برنامه در چند میکرو attiny 13!!

        بهتر نیست 1 مگاهرتز رو امتحان کنید؟

        دیدگاه


          #5
          پاسخ : عملکرد غیر همسان یک برنامه در چند میکرو attiny 13!!

          اونم فرقی نداشت.کلا rc داخلی چون مقاومتش به دما حساسه خب زیاد دقیق نیست و با تغییرات دما فرکانس هم تغییر میکنه.ولی میخواستم بدونم چرا اینقدر تفاوت داره ؟اونم چند تا آی سی که باهم خریدم و از یه شرکت و تایوانی هم هستند چینی نیستن.
          مثلا واسه 20 دقیقه ش این 7 تا تایمر تا 2 دقیقه با هم تفاوت دارن!
          تازه یه چیز دیگه هم فهمیدم اینکه هرچی فرکانس میکرو را بالاتر ببریم داغتر میشه و تازه تغییرات فرکانسشم بیشتر میشه! یعنی دقتش بیشتر بهم میخوره!
          الهم صل علی محمد و آل محمد و عجل فرجهم

          دیدگاه


            #6
            پاسخ : عملکرد غیر همسان یک برنامه در چند میکرو attiny 13!!

            سرعت اجرای دستورات در بسکام خیلی پایینه. یک خطای خیلی کوچک وقتی بارها تکرار بشه ، به یک خطای بزرگ تبدیل میشه. از طرفی درصد خطای خود اسیلاتور داخلی avr بالاست. همه این ها دست به دست هم می دهند و خطای 2 دقیقه را به وجود می آورند.

            دیدگاه


              #7
              پاسخ : عملکرد غیر همسان یک برنامه در چند میکرو attiny 13!!

              نوشته اصلی توسط حسین وکیل زاده
              سرعت اجرای دستورات در بسکام خیلی پایینه. یک خطای خیلی کوچک وقتی بارها تکرار بشه ، به یک خطای بزرگ تبدیل میشه. از طرفی درصد خطای خود اسیلاتور داخلی avr بالاست. همه این ها دست به دست هم می دهند و خطای 2 دقیقه را به وجود می آورند.
              میشه بیشتر توضیح بدید؟
              آخه این برنامه هم که نوشتم چیزی نداره که بخواد جاییش خطا داشته باشه؟!
              البته یبار هم با c نوشتم اونم دقیق نبود مثلا تو 24 ساعت 10 دقیقه با چیزی که باید باشه فرق میکرد.البته رو یه میکرو بود.
              یعنی اسیلاتور داخلی میکروهای دیگه مثلا pic دقیقتره؟
              متن برنامه را هم گذاشتم گفتم شاید یه ریزه کاری جاییش داره و من ننوشتم.
              سرعت اجرای دستورات در بسکام یکم کمتر از مثلا c هست بخاطر اینکه ممکنه یسری دستورات اضافی را به میکرو بده.اونم تو بعضی از دستورات که بصورت عمومی هستند.ممکنه یسری از فرمانها تو یه برنامه نیاز نباشه ولی چون عمومی هست اجرا میشه.
              الهم صل علی محمد و آل محمد و عجل فرجهم

              دیدگاه


                #8
                پاسخ : عملکرد غیر همسان یک برنامه در چند میکرو attiny 13!!

                دقت اسیلاتور داخلی در همین حدوده (دیتاشیت رو نگاه بندازین) و برای دقت بهتر چاره ای جز استفاده از اسیلاتور/کریستال خارجی ندارین

                دیدگاه


                  #9
                  پاسخ : عملکرد غیر همسان یک برنامه در چند میکرو attiny 13!!

                  میدونم دقت زیاد نیست ولی تو چند تا آی سی در شرایط یکسان باید بایکدیگه هم اینقدر تفاوت داشته باشن؟
                  راستی یه دزدگیر-ساعت-تقویم واسه ماشین با یه مگا88 و کریستال ساعت با بسکام درست کردم ولی ساعتش که با کریستال کار میکنه تو چند روز دو سه دقیقه جلو میره!چرا؟
                  البته برنامه با اسیلاتور داخلیه ولی قسمت ساعتش با کریستال ساعته.
                  الهم صل علی محمد و آل محمد و عجل فرجهم

                  دیدگاه


                    #10
                    پاسخ : عملکرد غیر همسان یک برنامه در چند میکرو attiny 13!!

                    با سلام
                    باتوجه به یکسان بودن کد میکروها، به نظرم تفاوت در زمان عملکرد میکرو ها به کد بسکام و تاخیر و اینها ربطی نداره - چون همونطور که خودتون هم اشاره کردید شرایط یکسانه
                    الان دیتاشیت tiny13 رو نگاه کردم- در Table 18-2 صفحه 119 نوشته که دقت اسیلاتور 4M6 , 9M6 در حد +-10% است
                    برای فرکانس 128K ننوشته ولی نمودار تغییرات بر حسب دما و ولتاژ داره
                    به هر حال اگر دقت اسیلاتور 128Kهم 10% باشه، در یک ساعت تا 6 دقیقه هم خطا مجازه
                    و نباید تعجب کنید و انتظار بهتر از این داشته باشید
                    دو راه بهتون پیشنهاد می کنم
                    یا کریستال بذارید
                    یا فرکانس رو روی 4M6 تنظیم کنید و از رجیستر osccal برای کالیبره کردن اسیلاتور استفاده کنید
                    البته خودتون هم میدونید راه اول خیلی بهتره
                    متاسفانه رجیستر osccal برای اسیلاتور 128k استفاده نمی شود و همچنین این میکرو با RC خارجی کار نمی کند
                    موفق باشید

                    دیدگاه


                      #11
                      پاسخ : عملکرد غیر همسان یک برنامه در چند میکرو attiny 13!!

                      خعلی ممنونم دوست عزیز.حالا خوب روشن شدم.
                      کار با این رجیستر که گفتی چه جوریه؟
                      الهم صل علی محمد و آل محمد و عجل فرجهم

                      دیدگاه


                        #12
                        پاسخ : عملکرد غیر همسان یک برنامه در چند میکرو attiny 13!!

                        بهتره از کریستال ساعت 32768 هرتز استفاده کنید.

                        دیدگاه


                          #13
                          پاسخ : عملکرد غیر همسان یک برنامه در چند میکرو attiny 13!!

                          دوست عزیز
                          تینی13 کریستال خارجی بهش وصل نمیشه
                          راستی دیتاشیت را هم خوندم تلرانس اسیلاتور 1%+- بود نه 10%؟!
                          این تنظیم واسه چیه؟
                          الهم صل علی محمد و آل محمد و عجل فرجهم

                          دیدگاه


                            #14
                            پاسخ : عملکرد غیر همسان یک برنامه در چند میکرو attiny 13!!

                            سلام دوستان و خسته نباشید
                            منم خواستم یک چند نکته ای عرض کنم گفتم شاید مفید واقع بشه
                            اونم اینه که بسکام یک چند تای باگ داره که بیشتر تو attiny خودشو نشون میده و معمولا دستورات wait دقیق نیستن البته تو وقفه ها تامیر مشکلی درست نمی کنند و به هر حال بهتره که اگه مجبور شدید تو بسکام برنامه نویسی کنید این کار رو بکنید , options> compiler>output>optimize code تیک این گزینه رو فعال کنید بعدش چند بار فرکانس کریستال رو در برنامه تون کم و زیاد کنید تا مشکل حل بشه برای اطمینان کدتون رو در پروتئوس شبیه سازی بکنید فقط با یک wait میشه راحت فهمید . البته باید در خود پروتئوس هم این کار روبکنید درقسمت clock frequency فرکانس اسیلاتور رو وارد کنید .
                            اینم بگم از پایه portb.3 میکرو می تونی برای اسیلاتور خارجی استفاده بکنی من خودم برای دقت بیشتر تو یک برنامه ارتباط سریال usart نرم افزاری نوشته بودم همین کارو کردم اسیلاتور رو میتونی با خود کریستال هم ساخت که دقته خوبی دار فکر کنم برای کار شما هم خوب جواب بده البته اگه مدارت زیادی نشه؟
                            ولی تذکری که دوست عزیزمون گفتن مهمه اونم اینکه که کالیبره کردن اسیلاتور داخلی تو حالت فرکانس داخلیه برای فرکانسهای بالای 1Mhz است osccal یک ریجستر خواندن/نوشتنی پس می تونی مقدار لازم رو از جدولی که تو دیتا شیت هست یا خود avr studio همین رو حساب می کنه بعد بهش بدی .اینطوری مثلا osccal=xx .

                            دیدگاه

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