اطلاعیه

Collapse
No announcement yet.

ایجاد فرکانس متغیر با PWM میکرو

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

    ایجاد فرکانس متغیر با PWM میکرو

    سلام دوستان :nerd:
    میخوام یه مدار درست کنم که فرکانسشو از 1 تا مثلا حدود 100hz تغیر بدم و بتونم رو پهنای پالسم هم کنترل داشته باشم .اما مشکل اینجاست که
    زمانی که از pwm استفاده میکنیم فقط میشه فرکانسهای معینی رو ساخت چون فرمول ها اجازه هر فرکناسی رو نمیده مثلا محدودیت کریستال که باید ثابت باشه. محدودیت pwm که اعدادش 511و1022و2046 و محدودیت پریسکلر که 1و8و64و256و1024 هست خوب با اینا نمیشه هر فرکانس دلخاه مثلا بین 0 تا 100 هرتز ساخت .
    راستی با بسکام برنامه مینویسم.
    مثلا میخوام 2 تا ولوم بزارم یکی فرکانسو تغیر بده یکی پهنای پالسو.
    با PWM این کار شدنی هست؟
    مهندسین عزیز لطفا راهنمایی کنید.ممنون.
    دعا پشتِ دعا برای آمدنت
    گناه پشــــــتِ گناه برای نیامــدنت
    دل درگــیر ، مــیان این دو انتخــــــــــــــــــــاب
    کــــــــــــــدام آخر ؟ آمـــدنـت یا نیامدنـــــــــــــــــــــــت

    #2
    پاسخ : ایجاد فرکانس متغیر با PWM میکرو

    واسه مشکله اولت که باید بگم لینکه مدارتو برنامتو بذار اینجا تا بشه نظر داد گلم.
    دومین مشکلت با تغییر تعداد بیت شمارش شده حل میشه.
    تو فرمولِ ساخت فرکانس داریم:
    کریستال تقسیم بر (تعدادبیت شمارش شده ضربدر پرسکیل).
    ?Why not

    دیدگاه


      #3
      پاسخ : ایجاد فرکانس متغیر با PWM میکرو

      ممنون از پاسختون
      این برنامه و فایل شبیه سازی برای حل مشکل اول

      http://s4.picofile.com/file/7819692254/PWM.rar.html

      برای دومی هم هر عددی نمیشه انتخاب کرد و برای بیت میکرو هم فقط 3 تا عدد داریم وبرای همین هم نمیشه هر فرکانسی ساخت . میتونید باماشین حساب تست کنید مثلا 10 و 20 هرتز بسازید؟؟ نمیشه :sad:
      دعا پشتِ دعا برای آمدنت
      گناه پشــــــتِ گناه برای نیامــدنت
      دل درگــیر ، مــیان این دو انتخــــــــــــــــــــاب
      کــــــــــــــدام آخر ؟ آمـــدنـت یا نیامدنـــــــــــــــــــــــت

      دیدگاه


        #4
        پاسخ : ایجاد فرکانس متغیر با PWM میکرو

        خواهش میشه ^_^
        نه خب ببین تایمرت (برای مثال تایمر 0 ) 255 بار میشمره بعد سرریز میشه. شما اگه بتونی به جای 255 برای مثال نصفه 255 بار بشمری فرکانست دوبرابر میشه.
        ?Why not

        دیدگاه


          #5
          پاسخ : ایجاد فرکانس متغیر با PWM میکرو

          آهان تازه فهمیدم. میخوای با PWM هم کار کنی.
          خب والا فک نکنم با بسکام بشه.
          البته میشه یه پایهآ‌ی دیگه رو خودت PWMش کنی. اینجوری هم فرکانس و هم پهنای پالسشو میتونی تغییر بدی. اینو مطمئنم میشه.
          کمک خواستی خودم در بست مخلصتم عزیزم.
          ولی مشکله پروتئوست با تعویض میکرو عوض میشه.
          ?Why not

          دیدگاه


            #6
            پاسخ : ایجاد فرکانس متغیر با PWM میکرو

            دمت گرم
            البته میشه یه پایهآ‌ی دیگه رو خودت PWMش کنی
            اینجوری فکر کنم دقتش بیاد پایین
            اینکارو تابحال انجام دادی؟
            مثلا اگه نیاز به یه پالس دقیق باشه هر do loop چند us زیاد میکنه . :sad:
            دعا پشتِ دعا برای آمدنت
            گناه پشــــــتِ گناه برای نیامــدنت
            دل درگــیر ، مــیان این دو انتخــــــــــــــــــــاب
            کــــــــــــــدام آخر ؟ آمـــدنـت یا نیامدنـــــــــــــــــــــــت

            دیدگاه


              #7
              پاسخ : ایجاد فرکانس متغیر با PWM میکرو

              آره دقتش که میاد پایین.
              ولی خب راهآ‌ دیگهآ‌آ‌ای نیست.
              اره چند سال پیش انجامش داده بودم.
              کاره سختیم نیست.
              توی AVR هر خط یک میکرو ثانیه طول میکشه. البته به جز چندتا دستور.
              ?Why not

              دیدگاه


                #8
                پاسخ : ایجاد فرکانس متغیر با PWM میکرو

                توی AVR هر خط یک میکرو ثانیه طول میکشه. البته به جز چندتا دستور.
                از کجا این حرفو میزنید ؟ برای اینکه بدونم دقیقا هرخط وهر دستور چقدر طول میکشه هیچ جا ندیدم بنویسه شما اگه جایی دیدی بزار تا منم دقیقا بدونم هر دستور چقدر تاخیر داره.مرسی
                دعا پشتِ دعا برای آمدنت
                گناه پشــــــتِ گناه برای نیامــدنت
                دل درگــیر ، مــیان این دو انتخــــــــــــــــــــاب
                کــــــــــــــدام آخر ؟ آمـــدنـت یا نیامدنـــــــــــــــــــــــت

                دیدگاه


                  #9
                  پاسخ : ایجاد فرکانس متغیر با PWM میکرو

                  نوشته اصلی توسط مرتضی ب
                  از کجا این حرفو میزنید ؟ برای اینکه بدونم دقیقا هرخط وهر دستور چقدر طول میکشه هیچ جا ندیدم بنویسه شما اگه جایی دیدی بزار تا منم دقیقا بدونم هر دستور چقدر تاخیر داره.مرسی
                  یه سر به دیتاشیتش بزن. خط سوم از صفحهآ‌ی اول نوشته.
                  حالا مثلاً شما کجا سرچ کردید که پیدا نشد؟؟؟
                  ?Why not

                  دیدگاه


                    #10
                    پاسخ : ایجاد فرکانس متغیر با PWM میکرو

                    حق با شماست سرچ نکردم ممنون.
                    دوستال هنوز نمیتونم چطور باید فرکانس متغیر و پهنای پالس متغیر داشته باشم .
                    دعا پشتِ دعا برای آمدنت
                    گناه پشــــــتِ گناه برای نیامــدنت
                    دل درگــیر ، مــیان این دو انتخــــــــــــــــــــاب
                    کــــــــــــــدام آخر ؟ آمـــدنـت یا نیامدنـــــــــــــــــــــــت

                    دیدگاه


                      #11
                      پاسخ : ایجاد فرکانس متغیر با PWM میکرو

                      با سلام
                      من c کار میکنم.اگه میشه به سی هم بگین
                      تکاور شدن جرات افزون کند.....هراس از دل مرد بیرون کند....


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

                      دیدگاه


                        #12
                        پاسخ : ایجاد فرکانس متغیر با PWM میکرو

                        نوشته اصلی توسط QUARK
                        توی AVR هر خط یک میکرو ثانیه طول میکشه. البته به جز چندتا دستور.
                        نوشته اصلی توسط مرتضی ب
                        از کجا این حرفو میزنید ؟
                        نوشته اصلی توسط QUARK
                        یه سر به دیتاشیتش بزن. خط سوم از صفحهآ‌ی اول نوشته.
                        نوشته اصلی توسط مرتضی ب
                        حق با شماست سرچ نکردم ممنون.
                        دستورات اسمبلی یک سیکل طول میکشه. دستورات C یا بیسیک ممکنه هزاران سیکل طول بکشه.

                        در مورد سوال اصلی:
                        به دلیل پایین بودن فرکانسهای مورد نیاز شما امکان ایجاد اونها با ماژول pwm وجود نداره.
                        باید با تایمر ها و وقفه هاشون کار کنید.
                        در ضمن فاکتورهایی هست که باید مشخص کنید.
                        پله فرکانستون چقدر باید باشه. (مثلاً یک هرتز یا 0.1 هرتز)
                        دقت قابل قبول چقدره؟ (برحسب درصد یا ppm)

                        دیدگاه


                          #13
                          پاسخ : ایجاد فرکانس متغیر با PWM میکرو

                          نوشته اصلی توسط freedom_truth
                          دستورات اسمبلی یک سیکل طول میکشه. دستورات C یا بیسیک ممکنه هزاران سیکل طول بکشه.

                          در مورد سوال اصلی:
                          به دلیل پایین بودن فرکانسهای مورد نیاز شما امکان ایجاد اونها با ماژول pwm وجود نداره.
                          باید با تایمر ها و وقفه هاشون کار کنید.
                          در ضمن فاکتورهایی هست که باید مشخص کنید.
                          پله فرکانستون چقدر باید باشه. (مثلاً یک هرتز یا 0.1 هرتز)
                          دقت قابل قبول چقدره؟ (برحسب درصد یا ppm)
                          در رابطه با اولین گفتتون میشه گفت نه کلیه دستورات اسمبلی ویا همون دستورات ماشین یک پردازنده ممکن است نیاز به چند کلاک داشته باشد(اگر پردازنده پایپ لاینم داشته باشه نمیشه گفت کلیه دستوراتش فقط نیاز به یک کلاک دارند. ولی خوب چون پردازنده avr با معماری RISC ساخته شده تا حداکثر 3 4 تا کلاک بیشتر نمیشه) (شما دستور اسمبلی یا زبان ماشین بگو من میگم چند سیکل طول میکشه) اگر میخواهید متوسط بگیرید باید CPI متوسط گروه دستوراتی که در برنامه استفاده میکنید را داشته باشید.

                          در رابطه با مابقی گفته ها بله نمیشه روی پین PWM فرکانس متغییر ایجاد کنید ولی خوب میشه یه کارایی کرد و اون هم دادن کلاک خارجی از طریق یک اوسیلاتور به واحد تایمر است (به شرطی که بتوانید تغییرش بدید.)
                          وگرنه که همون کاری که دوستان گفتن باید انجام شود (و دقتشم با فرکانس کاری میکرو رابطه مستقیم دارد) ولی اگر در حد فرکانس هایی که در پست اول ذکر شد فکر نمیکنم اینقدرا دقت مهم باشد.
                          راه اندازی ماژول nrf24l01p برای codevision (ارتباط بیسیم بین دو میکرو) : http://www.eca.ir/forum2/index.php?topic=78587.0
                          کوچ کردن از کدویژن به http://www.eca.ir/forum2/index.php?topic=81025.0 : AtmelStudio
                          نحوه نوشتن اصولی یک لایبرری و درایور نرم افزاری( بصورت ساده) : http://www.eca.ir/forum2/index.php?topic=81071
                          http://www.eca.ir/forum2/index.php?topic=82130.0 سفارش راه انداز ماژول های مختلف توسط اعضای انجمن
                          انشالله به زودی تاپیک ها به روز رسانی خواهد شد،

                          دیدگاه


                            #14
                            پاسخ : ایجاد فرکانس متغیر با PWM میکرو

                            ممنون از راهنماییتون

                            دقت 1 یا 2 هرتز هم برام کافیه
                            پس اگه پا PWM نمیشه باید با تایمر و تاخیر هایی که خودم ایجاد میکنم برنامم رو بنویسم؟ درسته .
                            راه دیگه ای که وجود نداره ؟ داره؟
                            دعا پشتِ دعا برای آمدنت
                            گناه پشــــــتِ گناه برای نیامــدنت
                            دل درگــیر ، مــیان این دو انتخــــــــــــــــــــاب
                            کــــــــــــــدام آخر ؟ آمـــدنـت یا نیامدنـــــــــــــــــــــــت

                            دیدگاه


                              #15
                              پاسخ : ایجاد فرکانس متغیر با PWM میکرو

                              نوشته اصلی توسط RubeuS
                              ولی خوب میشه یه کارایی کرد و اون هم دادن کلاک خارجی از طریق یک اوسیلاتور به واحد تایمر است (به شرطی که بتوانید تغییرش بدید.)
                              راه اندازی ماژول nrf24l01p برای codevision (ارتباط بیسیم بین دو میکرو) : http://www.eca.ir/forum2/index.php?topic=78587.0
                              کوچ کردن از کدویژن به http://www.eca.ir/forum2/index.php?topic=81025.0 : AtmelStudio
                              نحوه نوشتن اصولی یک لایبرری و درایور نرم افزاری( بصورت ساده) : http://www.eca.ir/forum2/index.php?topic=81071
                              http://www.eca.ir/forum2/index.php?topic=82130.0 سفارش راه انداز ماژول های مختلف توسط اعضای انجمن
                              انشالله به زودی تاپیک ها به روز رسانی خواهد شد،

                              دیدگاه

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