اطلاعیه

Collapse
No announcement yet.

چرا atmega8A با ولتاژ کمتر از 4.8 ولت دیگه همه دستورات را بدرستی فرمان نمیده ؟

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

    چرا atmega8A با ولتاژ کمتر از 4.8 ولت دیگه همه دستورات را بدرستی فرمان نمیده ؟

    با سلام و عرض خسته نباشید : شرمنده فیوز بیت ها را هم مثل تصویر زیر زده ام ،وقتی ولتاژ 4.9 تا 4.8 ولت میاد به میکرو همه دستورات را بدرستی عمل می کند ومدار بدون اشکال کار می کند ولی وقتی ولتاژ میکرو بشه 4.7 دیگه بعضی دستورات را بدرستی عمل نمی کند ؟!!! لطفا راهنمایی کنید اشکال کار کجاست . با سپاس و تشکر

    #2
    پاسخ : چرا atmega8A با ولتاژ کمتر از 4.8 ولت دیگه همه دستورات را بدرستی فرمان نمیده ؟

    طبق دیتا شیت باید کار بکنه
    ولی کلاکش میاد پایین
    از دو چیز بسیار زیاد یاد گرفتم (1) نمونه مدارهای موجود در سایت های خارجی (2) مهندسی معکوس بردهای غیر ایرانی. به نقل از آقای مرتضی امانی
    --------------------------------------------------------
    تمام دنیا ما را تحریم کرده اند؛ حداقل خودمان همدیگر را تحریم نکنیم. به نقل از pencil
    --------------------------------------------------------
    اشک هایی که پس از هر شکست ریخته میشوند همان عرق هاییست که برای پیروزی ریخته نشده است. mehran901

    دیدگاه


      #3
      پاسخ : چرا atmega8A با ولتاژ کمتر از 4.8 ولت دیگه همه دستورات را بدرستی فرمان نمیده ؟

      نوشته اصلی توسط amiri630
      با سلام و عرض خسته نباشید : شرمنده فیوز بیت ها را هم مثل تصویر زیر زده ام ،وقتی ولتاژ 4.9 تا 4.8 ولت میاد به میکرو همه دستورات را بدرستی عمل می کند ومدار بدون اشکال کار می کند ولی وقتی ولتاژ میکرو بشه 4.7 دیگه بعضی دستورات را بدرستی عمل نمی کند ؟!!! لطفا راهنمایی کنید اشکال کار کجاست . با سپاس و تشکر
      به دیتا شیت هیچ توجهی نکردید
      ATMega8A نوع Active هستش که مناسب خطوط تولیدی کارخانه ای و صنعتی هستش
      برای اینکار باید از
      ATMega8L استفاده کنید. که مخفف Low Power هستش. تنها میکرو هایی که با پسوند L همراه هستند قابلیت کار در ولتاژ پایین را دارند.
      If the wind will not serve, take to the oars

      دیدگاه


        #4
        پاسخ : چرا atmega8A با ولتاژ کمتر از 4.8 ولت دیگه همه دستورات را بدرستی فرمان نمیده ؟

        ممنونم از همه اساتید که راهنمایی فرمودن : حالا هیچ راهی برای رفع این اشکال بجز تعویض میکرو وجود نداره ؟ 4 تا atmega8A خریده ام دیتاشیت را هم نگاه کرده بودم نوشته بود ولتاژ کاری اش 4.5 تا 5.5 ولته ولی الان با 4.7 هم درست کار نمیده !!!!!!!!

        دیدگاه


          #5
          پاسخ : چرا atmega8A با ولتاژ کمتر از 4.8 ولت دیگه همه دستورات را بدرستی فرمان نمیده ؟

          atmega8a با ولتاژ 3 هم کار میکنه، میکروهای پسوند a قادرند از ولتاژ 2.7 تا 5 ولت کار کنند. در ولتاژهای پایینتر حداکثر فرکانس 8 مگاهرتز خواهد بود و فقط با 5 ولت میتونید کلاک 16 مگاهرتز داشته باشید. شما فیوزبیت boden را هم فعال کنید. کلاک رو هم کمتر از 8 بگیرید. کریستال خارجی استفاده کنید.
          اگه جواب نداد اشکال از میکروی شماست. بعضی از میکروها خراب ازآب درمیان.
          انسانها 10 دسته اند: دسته اي که باينري ميدانند و دسته اي که باينري نميدانند!

          دیدگاه


            #6
            پاسخ : چرا atmega8A با ولتاژ کمتر از 4.8 ولت دیگه همه دستورات را بدرستی فرمان نمیده ؟

            تو ولتاژ 4.7 ولت کدوم دستورات درست کار نمیکنه ؟

            دیدگاه


              #7
              پاسخ : چرا atmega8A با ولتاژ کمتر از 4.8 ولت دیگه همه دستورات را بدرستی فرمان نمیده ؟

              سلام. به نظر من ولتاژ میکرو تاثیری در اجرای دستورات نداره، فقط سرعت اجرای دستورات رو کم میکنه. شما برنامه+شماتیک مدارت رو بذار تا بررسی بشه.
              سُبُّوحٌ قُدُّوسٌ رَبُّ الْمَلَائِکَةِ وَ الرُّوحِ

              (SMART DESIGN....(POWERFUL & QUICK

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

              دیدگاه


                #8
                پاسخ : چرا atmega8A با ولتاژ کمتر از 4.8 ولت دیگه همه دستورات را بدرستی فرمان نمیده ؟

                نوشته اصلی توسط seyyed mohammad Razavi
                سلام. به نظر من ولتاژ میکرو تاثیری در اجرای دستورات نداره، فقط سرعت اجرای دستورات رو کم میکنه. شما برنامه+شماتیک مدارت رو بذار تا بررسی بشه.
                بله موافقم
                http://s6.uplod.ir/i/00674/9cm41hm4inx0.jpg

                دیدگاه


                  #9
                  پاسخ : چرا atmega8A با ولتاژ کمتر از 4.8 ولت دیگه همه دستورات را بدرستی فرمان نمیده ؟

                  نوشته اصلی توسط amiri630
                  با سلام و عرض خسته نباشید : شرمنده فیوز بیت ها را هم مثل تصویر زیر زده ام ،وقتی ولتاژ 4.9 تا 4.8 ولت میاد به میکرو همه دستورات را بدرستی عمل می کند ومدار بدون اشکال کار می کند ولی وقتی ولتاژ میکرو بشه 4.7 دیگه بعضی دستورات را بدرستی عمل نمی کند ؟!!! لطفا راهنمایی کنید اشکال کار کجاست . با سپاس و تشکر
                  یعنی چی بعضی از دستورات!!!؟
                  کارِ برد و برنامه ای که نوشتید چی هست؟
                  شاید مشکل مربوط به میکروکنترلر نیست.

                  دیدگاه


                    #10
                    چرا atmega8A با ولتاژ کمتر از 4.8 ولت دیگه همه دستورات را بدرستی فرمان نمیده ؟

                    نوشته اصلی توسط Davood Kheradmand
                    یعنی چی بعضی از دستورات!!!؟
                    کارِ برد و برنامه ای که نوشتید چی هست؟
                    شاید مشکل مربوط به میکروکنترلر نیست.
                    با سلام و تشکر :شرمنده از اینکه دیر پاسخ میدم ؛ در واقع منظورم از اینکه بعضی دستورات در ولتاژ زیر 4.7 درست کار نمیکنه اینه :سرعت اجرای دستورات خیلی خیلی کم میشه که در واقع میشه هم گفت دیگه درست کار نمی کنه چون دستوری که به موقع انجام نشه دیگه دردی را دوا نمی کنه . بنابراین اگر از اول اینجوری بیان میکردم خیلی درست تر بود و این گفته دوستمان که فرمودن سرعت اجرای دستورات کم میشه کاملا درسته و منظور من هم همینه. با تشکر
                    همچنین به فرض دستوری نوشته شده که در ولتاژ 190 ولت رله قطع بشه ولی وقتی ولتاژ بیاد 140 ولت انرا قطع میکنه ! درصورتیکه اگر ولتاژ میکرو بالاتر از 4.7 باشه دقیق عمل می کنه و رله را طبق دستور ، در ولتاژ 190 قطع می کنه.
                    همچنین اگر مشکل مربوط به میکرو نبود پس چرا با ولتاژ بالاتر از 4.7 بدرستی کار میکنه و هیچگونه مشکلی نداره !!!
                    فیوز بیت BODEN را هم تیک زدم + میکرو را عوض کردم و با فرکانس داخلی 8 مگاهرتز - ولی مشکل همچنان باقی بود و میکروی نوع atmega8A با ولتاژ های زیر 4.7 دیگه بدرستی کار نمیده.در واقع سرعت اجرای بعضی دستورات انقدر میاد پایین که گفتم بعضی دستورات را بدرستی اجرا نمی کنه . atmega8L خریده ام برسه به دستم نتایج را اعلام می کنم. با تشکر از همه دوستان و اساتید محترم

                    دیدگاه


                      #11
                      پاسخ : چرا atmega8A با ولتاژ کمتر از 4.8 ولت دیگه همه دستورات را بدرستی فرمان نمیده ؟

                      سلام. من فکر میکنم شما برای سنجیدن ولتاژ توسط میکرو، از adc استفاده میکنید و وقتی ولتاژ تغذیه ی مدارت کم میشه، ولتاژ رفرنس adc هم کم میشه و همین امر باعث میشه تا مدارت به درستی کار نکنه. اگه تا اینجای کار رو درست گفتم، برو ولتاژ رفرنس میکرو رو روی ولتاژ رفرنس داخلی تنظیم کن تا مشکلت حل شه
                      سُبُّوحٌ قُدُّوسٌ رَبُّ الْمَلَائِکَةِ وَ الرُّوحِ

                      (SMART DESIGN....(POWERFUL & QUICK

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

                      دیدگاه


                        #12
                        پاسخ : چرا atmega8A با ولتاژ کمتر از 4.8 ولت دیگه همه دستورات را بدرستی فرمان نمیده ؟

                        نوشته اصلی توسط amiri630
                        با سلام و تشکر :شرمنده از اینکه دیر پاسخ میدم ؛ در واقع منظورم از اینکه بعضی دستورات در ولتاژ زیر 4.7 درست کار نمیکنه اینه :سرعت اجرای دستورات خیلی خیلی کم میشه که در واقع میشه هم گفت دیگه درست کار نمی کنه چون دستوری که به موقع انجام نشه دیگه دردی را دوا نمی کنه . بنابراین اگر از اول اینجوری بیان میکردم خیلی درست تر بود و این گفته دوستمان که فرمودن سرعت اجرای دستورات کم میشه کاملا درسته و منظور من هم همینه. با تشکر
                        همچنین به فرض دستوری نوشته شده که در ولتاژ 190 ولت رله قطع بشه ولی وقتی ولتاژ بیاد 140 ولت انرا قطع میکنه ! درصورتیکه اگر ولتاژ میکرو بالاتر از 4.7 باشه دقیق عمل می کنه و رله را طبق دستور ، در ولتاژ 190 قطع می کنه.
                        همچنین اگر مشکل مربوط به میکرو نبود پس چرا با ولتاژ بالاتر از 4.7 بدرستی کار میکنه و هیچگونه مشکلی نداره !!!
                        فیوز بیت BODEN را هم تیک زدم + میکرو را عوض کردم و با فرکانس داخلی 8 مگاهرتز - ولی مشکل همچنان باقی بود و میکروی نوع atmega8A با ولتاژ های زیر 4.7 دیگه بدرستی کار نمیده.در واقع سرعت اجرای بعضی دستورات انقدر میاد پایین که گفتم بعضی دستورات را بدرستی اجرا نمی کنه . atmega8L خریده ام برسه به دستم نتایج را اعلام می کنم. با تشکر از همه دوستان و اساتید محترم
                        ببینید در یک میکروپروسسور اگر یک یا چند دستور درست اجرا نشه باعث هنگ شدن سیستم میشه
                        فرض کنید یک دستور جامپ بدرستی اجرا نشه معلوم نیست به کجای برنامه بپره و کل سیستم به هم میریزه
                        ممکنه در یک لوپ بی انتها گیر بیوفته و اتفاق های عجیب غریب دیگه
                        در مورد سرعت هم چون کلاکش از کریستال هست اون هم کم نمیشه
                        اما همونطور که دوست بالایی گفتند من هم فکر میکنم مشکل مربوط به بخش ADC مدارتون هست
                        شما بجز نمونه برداری از ولتاژ شهر جای دیگه هم احتمالن نمونه برداری کردید که با تغییر اون نمونه
                        روند اجرای دستورات در برنامه تون عوض میشه و همونطور که ایشون هم گفتند مرجع ADC رو داخلی
                        استفاده کنید برطرف میشه

                        دیدگاه


                          #13
                          پاسخ : چرا atmega8A با ولتاژ کمتر از 4.8 ولت دیگه همه دستورات

                          نوشته اصلی توسط seyyed mohammad Razavi
                          سلام. من فکر میکنم شما برای سنجیدن ولتاژ توسط میکرو، از adc استفاده میکنید و وقتی ولتاژ تغذیه ی مدارت کم میشه، ولتاژ رفرنس adc هم کم میشه و همین امر باعث میشه تا مدارت به درستی کار نکنه. اگه تا اینجای کار رو درست گفتم، برو ولتاژ رفرنس میکرو رو روی ولتاژ رفرنس داخلی تنظیم کن تا مشکلت حل شه
                          با سلام و تشکر فراوان از شما و اقای Davood Kheradmand و دیگر دوستان:بله حدس شما کاملا درسته که فرمودین " برای سنجیدن ولتاژ توسط میکرو، از adc استفاده میکنید " و اینکه فرمودین ولتاژ رفرنس میکرو رو روی ولتاژ رفرنس داخلی تنظیم کن تا مشکلت حل شه ؛ میشه لطف کنید راهنمایی کنید چطوری این تنظیم ولتاژ رفرنس میکرو را روی ولتاژ رفرنس داخلی تنظیم کنم ؟
                          AREF و VCC هم بهم وصل شده اند و به 5 ولت وصل شده.
                          ولتاژ سمپل (0~5 ولت) میاد به PORTC.0 وصل میشه.(تصویر زیر) و با مولتی ترن روی مدار ان را تنظیم کرده ام.
                          فیوز بیت ها را هم مطابق این تصویر تیک زده ام.

                          این هم از شماتیک


                          کد:
                          unsigned int read_adc(unsigned char adc_input)
                            {
                            ADMUX = adc_input|0x00;
                            delay_us(10);
                            ADCSRA|=0x40;
                            while ((ADCSRA & 0x10)==0);
                            ADCSRA|=0x10;
                            return ADCW;
                           }
                          .................................................. ...............................
                          کد:
                          void main(void)
                          {     
                            
                            ADMUX=0X00;
                            ADCSRA=0x86;
                            DDRC.0=0X00;
                            PORTC.0=0X00;
                          }
                          کد:
                          while(1)
                            {  
                              adc_in1=read_adc(0);
                              adc_in=adc_in1/2.025;
                              op=adc_in; 
                              sa=op/10;  
                              sa1=op%10; 
                              da=sa/10; 
                              da1=sa%10;

                          دیدگاه


                            #14
                            پاسخ : چرا atmega8A با ولتاژ کمتر از 4.8 ولت دیگه همه دستورات را بدرستی فرمان نمیده ؟

                            طبق تجربه اینا رو حتما رعایت کن :
                            1- از خازن تثبیت ولتاژ و نویزگیر بر روی خط ولتاژ حتما استفاده کن.
                            2-موازی با رله هات حتما دیود معکوس بذار
                            3- ولتاژ adc رو هم تثبیت کن.
                            براي جوينده ي علم محدوديتي نيست. "ولو بالسين"

                            دیدگاه


                              #15
                              پاسخ : چرا atmega8A با ولتاژ کمتر از 4.8 ولت دیگه همه دستورات

                              نوشته اصلی توسط amiri630
                              [b]با سلام و تشکر فراوان از شما و اقای Davood Kheradmand و دیگر دوستان:بله حدس شما کاملا درسته که فرمودین " برای سنجیدن ولتاژ توسط میکرو، از adc استفاده میکنید " و اینکه فرمودین ولتاژ رفرنس میکرو رو روی ولتاژ رفرنس داخلی تنظیم کن تا مشکلت حل شه ؛ میشه لطف کنید راهنمایی کنید چطوری این تنظیم ولتاژ رفرنس میکرو را روی ولتاژ رفرنس داخلی تنظیم کنم ؟
                              AREF و VCC هم بهم وصل شده اند و به 5 ولت وصل شده.
                              ولتاژ سمپل (0~5 ولت) میاد به PORTC.0 وصل میشه.(تصویر زیر) و با مولتی ترن روی مدار ان را تنظیم کرده ام.
                              ریفرنس داخلی میکروکنترلر 2.5 ولت هست و مستقل از ولتاژ تغذیه ست.
                              پس ابتدا مقادیر نمونه برداری شده که به ورودیها میاد رو باید بتونید نصف کنید
                              چون ریفرنس قبلیتون 5 ولت بوده.
                              برای استفاده از ریفرنس داخلی هم به فیوز بیت مربوط نیست
                              من الان یادم نیست، شما میتونید به دیتاشیت مراجعه کنید و نحوه ی برنامه ریزی برای استفاده
                              از ریفرنس داخلی رو از داخل دیتاشیت پیدا کنید. تا جایی که یادمه یک سویچ هست که میشه
                              به پایه ریفرنس بیرونی وصل کرد و در حالت دوم به ریفرنس تثبیت شده ی داخلی وصل میشه

                              دیدگاه

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