اطلاعیه

Collapse
No announcement yet.

تنظیمات مود تایمر در کدویژن ورژن جدید!

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

    تنظیمات مود تایمر در کدویژن ورژن جدید!

    با سلام به همه اساتید عزیز
    دارم از CodeVisionAVR 2.05.0 Professional استفاده میکنم که قسمت تایمرهاش به شکل زیره،برای استفاده از pwm در تایمر 1 چه گزینه ای رو باید انتخاب کرد.


    با تشکر

    #2
    پاسخ : تنظیمات مود تایمر در کدویژن ورژن جدید!

    جواب ما رو بدین ثواب داره؟! :angry:

    دیدگاه


      #3
      پاسخ : تنظیمات مود تایمر در کدویژن ورژن جدید!

      با سلام
      جالبه همه تاپیکاشون رو سعی میکنن یجوری به AVR ربط بدن و اونو توی انجمن AVR پربازدید هست مطرح کنند اما شما که تاپیکتون کاملا مرطبطه اینجا زدید !

      میکرو به طوری کلی دو مد PWM داره یکی سریع و دیگری با فاز تصحیح شده که بسته به کاری که میخواهید بکنید مشخص میشه که کدومشون برای اون کار مناسب تر هست و البته هر مد خودش به لحاظ اینکه مقدار بالایی اش چیه و چقدر میتونه باشه و چجوری مقدار دهی میشه بازهم دسته بندی های خودش رو داره

      شما باید ببینید که چه کاری میخواهید بکنید ، موج PWM ای که میخواهید تولید کنید فرکانس اش چیه مقدار دیتوی سایکلش چقدره ؟

      دیدگاه


        #4
        پاسخ : تنظیمات مود تایمر در کدویژن ورژن جدید!

        ممنون از توجهتون
        دارم رو یه ربات تعقیب خط کارمیکنم از میکرو mega32 استفاده میکنم که فرکانس کاریش رو 8.000000 گذاشتم و از پورت D برای خروجی استفاده کرم حالا میخوام PWM رو تنظیم کنم (تایمر 1)، که با این مشکل برخورد کردم اگه میشه بهترین حالت رو راهنمایی کنید.
        با تشکر :nerd:

        دیدگاه


          #5
          پاسخ : تنظیمات مود تایمر در کدویژن ورژن جدید!

          مقدار تایمر 1 رو به صورت زیر تنظیم کنید و مقدار OCR1AL و OCR1BL رو می تونید بین 0 ( برای موتور خاموش ) و 255 ( برای حداکثر سرعت ) بدید.

          دیدگاه


            #6
            پاسخ : تنظیمات مود تایمر در کدویژن ورژن جدید!

            امان از دست زبان فارسی و دیکته !
            قسطنطنیه
            مستطیل
            و حالا مرتبط که من نوشتم مرطبط!
            میدونید وجه اشتراک و کلا قائده ای که بر این ها و مشابه این ها توی زبان فارسی حاکم چیه ؟

            اولا این که کدوم حالت بهتره منم نمیدونم چون تو این کار (رباتیک) تجربه ای ندارم !
            اما
            خود دیتا شیت هر مد رو برای یک سری کار ها پیشنهاد داده به این ترتیب :

            1.Fast PWM mode : دیتا شیت میگه :

            the fast PWM
            mode well suited for power regulation, rectification, and DAC applications. High frequency
            allows physically small sized external components (coils, capacitors), hence
            reduces total system cost.


            2. Phase correct PWM mode : دیتا شیت میگه :

            The dual-slope operation has
            lower maximum operation frequency than single slope operation. However, due to the
            symmetric feature of the dual-slope PWM modes, these modes are preferred for motor
            control applications.


            3. Phase and Frequency Correct PWM mode : دیتا شیت میگه :

            The dual-slope operation gives a lower maximum operation frequency compared
            to the single-slope operation. However, due to the symmetric feature of the dualslope
            PWM modes, these modes are preferred for motor control applications.


            همونطور که میبینید طبق گفته دیتا شیت شما میتونید از دو تا مد برای کاری که میخواهید بکنید یعنی کنترل دور موتور استفاده کنید اما اگه دقت کنید میبیند که دلیل اش برای این پیشنهادش متقارن بودن موج pwm توی این دو تا مد هست اماتوی مد دوم اگر در حین شمارش تایمر مقدار رجیستر مقایسه کننده تغییر کنه تقارن موج از بین میره اما توی مد دوم به خاطر نوع و زمان پدیت شدن رجیستر مقایسه گر (جهت تغییر مقدار دیوتی سایکل) هیچ وقت تقارن شکل موج از بین نمیره پس گزینه مناسب میتونه مد دوم باشه اما این تقارن همیشگی یه بها داره و اون هم کاهش ماکزیمم فرکانس موج pwm هست !

            دوما توی اینترنت مقالات زیادی برای محاسبه موج pwm هست یکیش مقاله جناب حمید بادامی نجات که مال همین سایت هست توی بخش دانلود میتونید پیداش کنید و البته مقاله های فراون دیگه و مهمتر ازاون ها دیتاشیت میکرو !

            اما دوست دارم یه سری چیزایی رو بگم ، شاید به عنوان پیش زمینه که فکر میکنم ندارید بکارتون بیاد.

            کلا بهترین روش کنترل دور یه موتور dc تغیر ولتاژ سیم پیچ تحریک هست که اینجا هم برای تغییر ولتاژ از موج pwm استفاده میکنیم به این ترتیب که میام با تغییر مقدار dc سیگنال pwm مقدار dc ولتاژ اعمالی به موتور رو کنترل میکنیم از 0 تا 100 درصد
            حالا مقدار dc یک موج مربعی میشه چی ؟
            اگه ریاضی مهندسی پاس کرده باشید میدونید که برای هر سیگنال متناوبی میشه یه بسط فوریه نوشت که این بسط همیشه یه مقدار ثابت داره که مقدارش از طریق رابطه زیر محاسبه میشه :


            خوب از اونجا که سیگنال ما یه موج مربعی هست پس انتگرال روی یه دوره تناوبش میشه سطح زیر سیگنالش یعنی مساحتش ، پس :

            مقدار dc سیگنال ما به ازای دامنه سیگنال یک یا همون دیتوی سایکل میشه :

            Duty cycle = dc =time on / T = time on / (time on + time off)


            که این دیتوی سایکل بیانگر به صورت درصد بیانگر درصد ولتاژ dc اعمال شده به موتور هست .

            خوب اگه یادتون باشه اون بسط فوریه جملات دیگه ای ه داشت که به شون اصطلاحا میگیم هارمونیک ، این هارمونیکها هر کدوم دارای یه دامنه ای هستند که با فرکانس اون هارمونیک نسبت عکس داره ، بنابر این هر چقدر فرکانس یا به اصطلاح شماره هارمونیک بره بالا اندازه هارمونیک و نتیجتا تاثیر اون بر سیگنال نهایی کمتر میشه خوب تاثیر این هارمونیک ها همون لرزش و صدای غرم قرم موتور هست ؛ پس نتیجه میگیریم که فرکانس هر چه قدر بالاتر باشه چون اندازه هارمونیک ها کمتر میشه اون لرزشه و صدای موتور هم تبعا کاهش پیدا میکنه اما این افزایش فرکانس یه حدی هم بالاخره داره این محدویدیت مربوط میشه به مدار درایور موتور شما ، اینکه اون درایور تا چه فرکانسی رو میتونه جواب بده ؛

            مثلا یه l298 طبق دیتا شیتش میتونه تا 40 khz رو جواب بده

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

            مثلا برای همین مگا 32 داریم :

            1 . Phase correct PWM mode :



            همونطور که میبینید ماکزیمم فرکانس تو این مد برابر با 31.4 kHz هست و مورد جالبی که اینجا شاهدش هستیم اینه که بیشترین فرکانس رو توی کمترین رزولوشن مداریم ، البته ناگفته نمونه که میشه به رزولوشن های کمتر و بیشتر هم رسید(با انتخاب مقدار بالایی برابر با مقدار رجیستر ICR1 or OCR1A) که مقدار این رزولوشن هم از رابطه زیر محاسبه میشه :


            که کمینه اون 2 و بیشینه اون 16 هست.

            2. Fast PWM mode :



            همونطور که میبینید ماکزیمم فرکانس تو این مد برابر با 62.5kHz هست همونطور که میبنید تقریبا دو برابر حالت قبل شد به خاطر این هست که به این مد میگن pwm سریع و عامل اصلی اون هم تک سیبه بودن شمارش در tcnt1 is
            هست برخلاف مد قبل که به صورت دو شیبه عمل میکنه یعنی از صفر شروع میکنه به مقدار ماکس میرسه و دوباره به صورت نزولی مقدارش تا صفر کاهش پیدا میکنه. و مورد دیگه اینکه تو این مد هم بیشترین فرکانس مربوط به رزولوشن 8 بیت میشه که مثل مد قبل یاز هم میشه براش رزولوشن های دیگه هم متصور شد.

            3. Phase and Frequency Correct PWM mode :
            جالب ترین چیز توی این مد اینه که شما تقریبا و یا با اختلاف بسیار ناچیز میتونید به هر فرکانس دلخواهتون برسید.



            عامل دیگه که توی تعیین فرکانس مستونه نقش داشته باشه ، انسان هست :
            همونطور که میدونید بیشتر مردم صداهایی تا فرکانس 20 کیلو هرتز رو میتونند بشنوند حالا زمانی که یک مدار داره توی توی فرکانس های قابل شنیدار کار میکنه میتونه یه سری صدا های گوش خراش مثل صدای "ویز " تولید کنه که این صدا میتونه ناشی از یه خازن کهنه یا یه کویل توی مدار باشه (این اتفاق برای خازن های کنار های ولتاژ تلوزیون ما افتاد و مثل اینکه خلی هم شایع هست) حالا اگر موج pwm ما با فرکانس کمتر از 20کیلو هرتز بخواد کار کنه و ما اون موج رو بدیم به درایور مثلا یه پل H ممکنه که یه صداهایی ناشی از همون هارمونیک هایی که گفتم ایجاد بشه بنابراین پیشنهاد میشه که فرکانس کار PWM بالای 20 کیلو هرتز باشه اینجوری هیچ صدایی رو انسان نمیتونه بشنوه حتی اگه یه خازن توی مدارتون شروع به سرو صدا کنه!

            حالا بعضی اوقات هست که میخواهید برای کنترل روشنایی از PWM استفاده کنیئد اینجا دیگه عامل انسانی مهمترین چیزی چون با یه پدیده بصری سروکار دارید ؛
            همونطور که میدونید چشم انسان قادر نیست چشمک زدن یا به اصطلاح فیلکر بالا 50 هرتز رو تشخیص بده (این مورد رو باید توی سیستم تلوزیون خونده باشید البته اونجا فکر میکنم 70 هرتز میگرفتیم دقیق یادم نیست)بنابراین اگر هم یه زمانی قصد داشتید یه مدار کنترل روشنای با PWM طراحی کنید باید فرکانس موج PWM بالای 50 هرتز باشه !

            در آخر ، اون مقاله ای که گفتم یه نگاه بندازید اگه متوجه نشدید بگید ، تا جایی که بتونم کمکتون میکنم .

            دیدگاه


              #7
              پاسخ : تنظیمات مود تایمر در کدویژن ورژن جدید!

              سلام
              من میخوام فرکانس مختلف رو با تایمر از میکرو بگیرم
              ولی چون از تاخیر های مختلفی استفاده کردم اون فرکانسی که می خوام رو نمیتونم بگیرم
              ممکنه راهنماییم کنید؟
              مثلا فرکانس 1 ئگا هرتز رو میخوام
              کلاک میکرو هم 4 مگ هست
              تایمر هم تایمر 0
              ممنونم

              دیدگاه


                #8
                پاسخ : تنظیمات مود تایمر در کدویژن ورژن جدید!

                با سلام
                نوشته اصلی توسط reza89amin
                سلام
                من میخوام فرکانس مختلف رو با تایمر از میکرو بگیرم
                ولی چون از تاخیر های مختلفی استفاده کردم اون فرکانسی که می خوام رو نمیتونم بگیرم
                ممکنه راهنماییم کنید؟
                مثلا فرکانس 1 ئگا هرتز رو میخوام
                کلاک میکرو هم 4 مگ هست
                تایمر هم تایمر 0
                ممنونم
                اگه منظورتون تولید یه موج مربعی با دیوتی سایکل 50 درصد و فرکانس 1 مگ هست ؛

                اینجور مواقع باید کار رو بسپاریم به عهده سخت افزار ، برای تولید این موج مربعی میتونید از مد ctc تایمر صفر استفاده کنید ،

                خوب تو مد ctc ، تو حالت "toggled at a compare match" میتونیم با استفاده از فرمول زیر یه موج مربعی با دیوتی سایکل 50 درصد تولید کنیم :



                حالا داده های مسئله با توجه به گفته های شما :
                1 . Focn = 1MHZ
                2 . Fclk_I/O = 4MHZ

                پس طبق فرمول داریم :


                1M = 4M/(2*N*(1+OCRn))

                ==> 2*N*(1+OCRn) = 4

                ==> N = 1,
                ==> OCRn = 1.

                دیدگاه

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