اطلاعیه

Collapse
No announcement yet.

جلوگیری از هنگ کردن میکرو و نحوه استفاده از Watchdog Timer

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

    جلوگیری از هنگ کردن میکرو و نحوه استفاده از Watchdog Timer

    با سلام


    ی مشکل که تو بعضی از پروژه های شلوغ بهش بر میخورم هنگ کردن میکرو هست،ولی تا ب حال چاره ایی براش پیدا نکردم الا ریست!

    حالا فرض کنید یه ترموسات دما ساختید و در ابتدای برنامه دما رو روی 25 تنظیم کردید و دکمه استارت رو زدین و رفتین؛بعد از 5 ساعت برمیگردین تا میکرو برگشته به منوی ابتدایی برنامه(مثلا جایی که دمای روشن شدن ترموستات و تنظیم کردین)و از اون طرف رله خروجی هنوز وصل هست دما شده 40 و هیتر داره گرمای محیط رو مرتب میبره بالا در صورتی که ما میخواستیم دما روی 25 ثابت باشه(هیسترزیس دما رو هم 1 درجه در نظر گرفتیم)!

    اینجا برای من دو تا سئوال پیش میاد؛اینکه چکار کنیم میکرو کمتر هنگ کنه؟
    (با اینکه بنده از تغذیه پیشنهادی خود شرکت اتمل برای تغذیه میکرو ها استفاده میکنم و همچنین پایه ریست رو با ی مقاومت 10 کیلو پول پ میکنم)

    دوم اینکه تحت شرایط و یا ب هر دلیلی میکرو هنگ کرد؛ چطور میشه در صورت هنگ شدن، میکرو اتومات ریست ش؟
    (آخه ی جایی خونده بودم که تایمر واچ داگ وظیفش اینه که وقتی Program counter بر اثر هنگ شدن میکرو نمیتونه آدرس بعدی اجرای دستورات رو در اختیار CPU قرار بده واچ داگ فعال شده و پس از اون زمان تعیین شده میکرو رو ریست میکنه؛ولی من تا بحال همچین چیزی رو تو عمل از میکرو ندیدم،که در زمان هنگ شدن ریست ش.فقط تونسم با دستور Start Watchdog میکرو رو ریست کنم)

    #2
    پاسخ : جلوگیری از هنگ کردن میکرو و نحوه استفاده از Watchdog Timer

    سلام
    مشکل هنگ کردن را دقیقا بر طرف کنین تا بخواین میکرو رو با تایمر نگهبان در وضعیت ریست قرار بدین
    من نمونه پروژه داشتم که کنار که فرستنده چندین کیلوات و همچنین چندین موتور AC باید کنترل سیستم را بدون کوچکترین خطایی کنترل می کرد اما خدا رو شکر مشکلی در این رابطه و ریست پیش نیامد ،
    شما هم بزارین مشکل برنامه و بردتون رو ابتدا کامل برطرف کنین و سپس در آخرین مرحله برای جلوگیری از هرگونه مشکل احتمالی(1% خطای هنگ کردن) این گزینه رو به برنامتون اضافه کنین

    اینجا برای من دو تا سئوال پیش میاد؛اینکه چکار کنیم میکرو کمتر هنگ کنه؟
    (با اینکه بنده از تغذیه پیشنهادی خود شرکت اتمل برای تغذیه میکرو ها استفاده میکنم و همچنین پایه ریست رو با ی مقاومت 10 کیلو پول پ میکنم)
    تغذیه صافه و pullup کردن جز یکی از مراحل ابتدایی کمتر کردن نویز و کاهش خطای میکرو در محیطهای صنعتی هست(یعنی واجبترین و اصول پایه هست پس حتما اینها رو در نظر داشته باشن) ، در این باره مقالات و نوشته های زیادی هست که می تونین به راحتی در اینترنت پیدا کنین

    دوم اینکه تحت شرایط و یا ب هر دلیلی میکرو هنگ کرد؛ چطور میشه در صورت هنگ شدن، میکرو اتومات ریست شد؟
    بله با watchdog و یا یک تایمر بیرونی می تونین میکرو را از هنگ کردن محافظت کنین
    هیچ دانش آموزی نیست که به در خانۀ دانشمندی آمد و شد کند, مگر این که خداوند برای هر گامی که برمی دارد عبادت یک سال را برایش رقم زند.

    دیدگاه


      #3
      پاسخ : جلوگیری از هنگ کردن میکرو و نحوه استفاده از Watchdog Timer

      نوشته اصلی توسط baby_1

      بله با watchdog و یا یک تایمر بیرونی می تونین میکرو را از هنگ کردن محافظت کنین
      میشه بفرمائید چطور؟

      آخه من فکر میکنم مشکل از زمین مشترک مدارم باشه؛دو تغذیه مجزا یکی برای تغذیه برد میکرو(5 ولتی 1.5 آمپر)و یکی برای تغذیه فن و رله راه انداز هیتر (12 ولتی 1.5 آمپر) که هر دو تغذیه گرفته شده از دو ترانسفورماتور جداگانه است که در آخر کار زمین هاشون رو ب هم وصل کردم.
      بخاطر این گفتم زمین مشترک مدار چون اکثرا وقتی فن ست یا ریست میشه میکرو هنگ میکنه و از طرفی وقتی تغذیه 12 ولتی رو وصل میکنم مقادیر خونده شده از ADC (در پروژه من ،دما) نسبت حالتی که این ولتاژ متصل نشده مقداری کمتر است (البته مجبور شدم به صورت سعی وخطا حاصل نهایی رو با ی مقداری جمع کنم تا مقدار واقعی بدست بیاد)برای این مشکل راه حلی هست،خواهشا راهنمایی کنید

      ممنونم

      دیدگاه


        #4
        پاسخ : جلوگیری از هنگ کردن میکرو و نحوه استفاده از Watchdog Timer

        سلام
        خسته نباشید
        این watchdog تایمر از سرعت میکرو و اینها نمی کاهد؟
        چه فایده و معایبی داره؟
        [glow=red,2,300]برنامه هاي آموزشي تست شده براي NXP LPC1768 با توابع CMSIS[/glow]
        http://www.eca.ir/forum2/index.php?topic=76623.0

        دیدگاه


          #5
          پاسخ : جلوگیری از هنگ کردن میکرو و نحوه استفاده از Watchdog Timer

          ن از سرعت کم نمیکنه!

          میگن فایده های خوبی داره؛ولی ما که ندیدیم...

          دیدگاه


            #6
            پاسخ : جلوگیری از هنگ کردن میکرو و نحوه استفاده از Watchdog Timer

            نوشته اصلی توسط Reza Sede
            سلام
            خسته نباشید
            این watchdog تایمر از سرعت میکرو و اینها نمی کاهد؟
            چه فایده و معایبی داره؟
            با درود . . .
            واچداگ یه واحد سخت افزاری هستش و در عملکرد برنامه تاثیری نداره
            درد من تنهایی نیست؛ بلكه مرگ ملتی است كه گدایی را قناعت، بی‏عرضگی را صبر، و با تبسمی بر لب این حماقت را حكمت خداوند می‏ نامند! "گاندی"

            به دلیل وجود برخی مشکلات و بی احترامی ها این اکانت رو غیر فعال کردم. همیشه سر بلند باشید.
            بدرود . . .

            دیدگاه


              #7
              پاسخ : جلوگیری از هنگ کردن میکرو و نحوه استفاده از Watchdog Timer

              بله
              به قول دوست عزیزمون baby_1 اول باید دنبال ریشه کار بگردید و اون رو برطرف کنید، ایراد ممکنه حتی از نرم افزارتون هم باشه
              وقفه و تایمر خاصی در برنامتون به کار بردید؟
              خازن های 100nf رو در قسمت های مختلف تغذیه icهاتون گذاشتید؟
              توصیه این که برای جلوگیری از هنگ کردن، استفاده از واچ داگ "آخرین تمهید"تون باشه
              اونچيزي که در دانشگاه ياد ميگيريد، "الفبايي" هست براي نوشتن يک "رمان" !!

              دیدگاه


                #8
                پاسخ : جلوگیری از هنگ کردن میکرو و نحوه استفاده از Watchdog Timer

                نوشته اصلی توسط student-p
                میشه بفرمائید چطور؟

                آخه من فکر میکنم مشکل از زمین مشترک مدارم باشه؛دو تغذیه مجزا یکی برای تغذیه برد میکرو(5 ولتی 1.5 آمپر)و یکی برای تغذیه فن و رله راه انداز هیتر (12 ولتی 1.5 آمپر) که هر دو تغذیه گرفته شده از دو ترانسفورماتور جداگانه است که در آخر کار زمین هاشون رو ب هم وصل کردم.
                بخاطر این گفتم زمین مشترک مدار چون اکثرا وقتی فن ست یا ریست میشه میکرو هنگ میکنه و از طرفی وقتی تغذیه 12 ولتی رو وصل میکنم مقادیر خونده شده از ADC (در پروژه من ،دما) نسبت حالتی که این ولتاژ متصل نشده مقداری کمتر است (البته مجبور شدم به صورت سعی وخطا حاصل نهایی رو با ی مقداری جمع کنم تا مقدار واقعی بدست بیاد)برای این مشکل راه حلی هست،خواهشا راهنمایی کنید

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

                البته طبق تجربه ، هیچ گاه برای ارتباط با کامپیوتر در محیط پر نویز از پروتکلهایی همچون RS232 یا USB به دلیل مشترک بودن سیم زمین استفاده نکنین و RS485 و ... ارجحیت دارند (اما برای دو آداپتور معمولی برای فواصل کوتاه این احتمال کمتر می شود )

                قرائت کمتر ADC چند دلیل می تواند داشته باشد
                1-منبع ولتاژ ADC یا ولتاژ اعمالی مقداری ریپل در دامنه خود در هنگام افزایش بار دارد
                2-با افزایش بار منبع ولتاژتون پاسخگوی تامین جریان بار نیست و اختلاف پتانسیل به وجود می آید
                3-منبع ولتاژ ADC با افزایش بار افت می کند

                بهتر هست برای موشکافی بیشتر سورس برنامه + مدارتون رو قرار بدین
                برای راه اندازی watchdog باید بیت مربوط به ریجستر را فعال یا در زبان های ساده همچون بسکام آن را کانفیگ کنین و در قسمتهای حساس برنامه بعد از انجام چند سیکل تایمر واچداگ رو ریست کنین تا باعث ریست میکرو نشود(اگر چنین کاری را انجام ندین تایمر سریز شده و میکرو را ریست می کند چون فرض را بر هنگ کردن میکرو می گذارد)

                هیچ دانش آموزی نیست که به در خانۀ دانشمندی آمد و شد کند, مگر این که خداوند برای هر گامی که برمی دارد عبادت یک سال را برایش رقم زند.

                دیدگاه


                  #9
                  پاسخ : جلوگیری از هنگ کردن میکرو و نحوه استفاده از Watchdog Timer

                  تشکر از دوستان
                  پس میشه توی همه ی برنامه ها و پروژه ها از این تایمر استفاده کرد؟
                  ممنون
                  [glow=red,2,300]برنامه هاي آموزشي تست شده براي NXP LPC1768 با توابع CMSIS[/glow]
                  http://www.eca.ir/forum2/index.php?topic=76623.0

                  دیدگاه


                    #10
                    پاسخ : جلوگیری از هنگ کردن میکرو و نحوه استفاده از Watchdog Timer

                    به قول دوستمون که اشاره کردن، خازن 100 نانو خیلی تاثیر داره .
                    من یه مداری با 555 درست کرده بودم وقتی مهتابی رو روشن خاموش میکردم ، مدارم ریست میشد . خازن 100 نانو رو بستم به تغذیش درست شد. مخصوصا اگه به پایه ی تغذیه ی آی سی نزدیکتر باشه ، خیلی بهتر میشه .

                    دیدگاه


                      #11
                      پاسخ : جلوگیری از هنگ کردن میکرو و نحوه استفاده از Watchdog Timer

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

                      اما چه طوری این کار انجام میشه؟
                      تایمر یک شمارنده است. این شمارنده یا تایمر به سرعت در حال شمردن هست. هر زمان که شمارش به آخر برسد، میکرو Reset می شود.
                      Cpu در پایان هر سیکل (مجموعه دستورات) شمارش رو ریست می کنه.
                      حالا اگر هنگ بوجود آمد و این سیکل زمانش خیلی طولانی شد، شمارش به آخر رسیده و ریست صورت می گیرد.
                      همواره يادمان باشد:
                      1-مردان بزرگ اراده مي کنند و مردان کوچک آرزو
                      2-افراد بزرگ، هميشه به دنبال ايده هاي بزرگند و افراد کوچک به دنبال افراد بزرگ
                      3-هميشه سعي کن آنقدر کامل باشي که بزرگترين تنبيه تو براي ديگران گرفتن خودت از آنها باشد.

                      دیدگاه


                        #12
                        پاسخ : جلوگیری از هنگ کردن میکرو و نحوه استفاده از Watchdog Timer

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

                        دیدگاه


                          #13
                          پاسخ : جلوگیری از هنگ کردن میکرو و نحوه استفا

                          نوشته اصلی توسط student-p
                          دوم اینکه تحت شرایط و یا ب هر دلیلی میکرو هنگ کرد؛ چطور میشه در صورت هنگ شدن، میکرو اتومات ریست ش؟
                          (آخه ی جایی خونده بودم که تایمر واچ داگ وظیفش اینه که وقتی Program counter بر اثر هنگ شدن میکرو نمیتونه آدرس بعدی اجرای دستورات رو در اختیار CPU قرار بده واچ داگ فعال شده و پس از اون زمان تعیین شده میکرو رو ریست میکنه؛ولی من تا بحال همچین چیزی رو تو عمل از میکرو ندیدم،که در زمان هنگ شدن ریست ش.فقط تونسم با دستور Start Watchdog میکرو رو ریست کنم)

                          WD یه تایمر 8 یا 10 بیتی هست که اغلب میکرو ها دارن و کارش اینه که وقتی فعال شد شروع به شمارش میکنه و هنگامی که سرریز میکنه یه سیگنال ریست ایجاد میشه و میکرو ریست میشه.مدت زمان ریست شدن هم قابل تنظیمه. معمولا با نرخ کلاک 1/16 یه تایمر WD 8 بیتی در حالتی که میکرو با کلاک 4 مگاهرتز کار کنه هر 1 میلی ثانیه سرریز میکنه.
                          برای استفاده از WD باید اول اون فعال کنین و بعدش تو برنامه در جاهای مشخصی قبل از اینکه شمارش به پایان برسه و سرریز صورت بگیره باید بصورت دستی شمارنده 0 کنین. این طوری تا وقتی که میکرو عملکرد عادی داره WD هیچ وقت سرریز نمیکنه و میکرو کار خودش میکنه و اما زمانی که میکرو هنگ کنه یا تو یه حلقه مدت زیادی بمونه باعث میشه کم کم شمارنده سرریز کنه و میکرو با ریست از اون حالت خارج بشه. البته نه بلافاصله. باید شمارش تموم بشه و سرریز حتما صورت بگیره.
                          توجه کنین فعال کردن WD به تنهایی فایده چندانی نداره و همچنین فقط برای مواقعی که میکرو هنگ کنه نیست

                          تو مواردی مثل شما 90 درصد مشکل از برنامه نویسی اشتباه هست و 10 درصد هم سخت افزار. هرچی هم اگه باقی موند ماله سایر موارد!!!!!
                          [glow=red,2,300]تاپيک هاي ايجاد شده[/glow]

                          دیدگاه


                            #14
                            پاسخ : جلوگیری از هنگ کردن میکرو و نحوه استفاده از Watchdog Timer

                            خیلی خیلی ممنون از توجه شما دوستان


                            بله خازن 100 نانو فاراد ی چیز خیلی ضروری و مفید هست و من هم از اون در نقاط مختلف مخصوصا در مسیر تغذیه قسمت های مختلف استفاده میکنم و نتیجه خوبی هم داره؛ ولی فکر میکنم مشکل از زمین باشه،آیا امکان داره بخاطر نویز 50 هرتز برق شهر باشه؟

                            بازم ممنون از توجهتون

                            دیدگاه


                              #15
                              پاسخ : جلوگیری از هنگ کردن میکرو و نحوه استفاده از Watchdog Timer

                              من با اسلاتور داخلی موافق نیستم

                              معمولا میکرو ها اگر درست برنامه نویسی بشوند ، مشکلی نخواهند داشت
                              چه با اسیلاتور داخلی و چه با خارجیش

                              برنامه نویسی اصولی و داشتن دید سخت افزاری خیلی مفیده

                              دیدگاه

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