اطلاعیه

Collapse
No announcement yet.

یه مشکل با PWM

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

    یه مشکل با PWM

    سلام
    من توی یک برنامه احتیاج دارم که دو تا pwm داشته باشم که با دیوتی سایکل یکسان با هم اختلاف فاز داشته باشند
    دقیقا مثل tl494 یا آی سی های سری ir21XX .
    قبلا با DSPIC این کار کردم ولی قیمت DSPIC وحشتناک بالا رفته و مجبورم برنامه برای AVR تغییر بدم . فقط تایمر 1 دارم و نمیتونم از تایمر دیگه استفاده کنم
    میکرو من مگا 8 هست
    مشکل اینه که لبه استارت دو تا PWM زمان برابر دارند فقط دیوتی سایکل متغیره هست . من میخوام لبه استارت PWM دوم بعد از 50درصد دیوتی PWM اول انجام بشه


    #2
    پاسخ : یه مشکل با PWM

    با درود
    دیوتی سایکل بین دو PWM که باید 50 باشه طبق طراحی که میخوایید انجام بدید ولی کلاکی که برای تایمر ایجاد میشه مثلا برای تایمر 1 که میتونه 3تا OCR یا خروجی داشته باشه یکی هست و نمیشه کاریش کرد.
    تنها راه استفاده از سرعت بالای میکرو و اینتراپت تایمر هست.شما برای مثال تایمر رو طوری کانفیگ کنید که ثانیه ای 100هزار اینتراپت داشته باشه.داخل اینتراپت یه متغیر بزارید و با هربار وارد شدن مقدار اونو از 0 به 1 تغییر بدید و بالعکس طوری که تو هر بار وارد شدن به اینتراپت فقط 0 و 1 داشته باشید.برای مقدار 0 متغیر یه خروجی PWM داشته باشید و برای مقدار 1 یه PWM دیگه داشته باشید.این دو PWM همیشه با هم بصورت دقیق به اندازه 50 درصد دیوتی سایکل دارن که با چندتا دستور دیگه میتونید تو حلقه WHILE مقدار PWM ها رو هم بصورت مجزا تغییر بدید.
    چون کلاک تایمر برای رجیستر TCNT هست و OCR ها همشون از یک TCNT مقدار میگیرن راهی جز روش پیشنهادی ندارید.
    پاینده باشی دوست گرامی

    دیدگاه


      #3
      پاسخ : یه مشکل با PWM

      نوشته اصلی توسط saeiddiod نمایش پست ها
      با درود
      دیوتی سایکل بین دو PWM که باید 50 باشه طبق طراحی که میخوایید انجام بدید ولی کلاکی که برای تایمر ایجاد میشه مثلا برای تایمر 1 که میتونه 3تا OCR یا خروجی داشته باشه یکی هست و نمیشه کاریش کرد.
      تنها راه استفاده از سرعت بالای میکرو و اینتراپت تایمر هست.شما برای مثال تایمر رو طوری کانفیگ کنید که ثانیه ای 100هزار اینتراپت داشته باشه.داخل اینتراپت یه متغیر بزارید و با هربار وارد شدن مقدار اونو از 0 به 1 تغییر بدید و بالعکس طوری که تو هر بار وارد شدن به اینتراپت فقط 0 و 1 داشته باشید.برای مقدار 0 متغیر یه خروجی PWM داشته باشید و برای مقدار 1 یه PWM دیگه داشته باشید.این دو PWM همیشه با هم بصورت دقیق به اندازه 50 درصد دیوتی سایکل دارن که با چندتا دستور دیگه میتونید تو حلقه WHILE مقدار PWM ها رو هم بصورت مجزا تغییر بدید.
      چون کلاک تایمر برای رجیستر TCNT هست و OCR ها همشون از یک TCNT مقدار میگیرن راهی جز روش پیشنهادی ندارید.
      پاینده باشی دوست گرامی
      ممنون . نرم افزاری نمیتونم استفاده کنم . سرعت زیادی از میکرو گرفته میشه . ظاهرا مجبورم از IR2153 استفاده کنم .

      دیدگاه


        #4
        پاسخ : یه مشکل با PWM

        نوشته اصلی توسط sepehr63 نمایش پست ها
        ممنون . نرم افزاری نمیتونم استفاده کنم . سرعت زیادی از میکرو گرفته میشه . ظاهرا مجبورم از IR2153 استفاده کنم .
        درسته سرعت بشدت پایین میاد چون اینتراپت پیاپی و بی وقفه داری.کلا میکرو مشغول پاسخگویی به اینتراپت میشه.
        موفق باشی

        دیدگاه

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