اطلاعیه

Collapse
No announcement yet.

power down mode in codevision

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

    #31
    پاسخ : power down mode in codevision

    سلام
    شما هم از کریستال داخلی و هم خارجی وهم کریستال 32768 برای ایجاد زمان دقیق می تونید استفاده کنید ....پورتهارو کانفیگ کردید؟،پول پ ها رو گذاشتید؟
    به هر حال یک خطای کوچیک دارید که آمپر میکشه...avccرو Lc کردید؟تمام gndهارو وصل کردید؟؟

    دیدگاه


      #32
      پاسخ : power down mode in codevision

      نوشته اصلی توسط میثم قاسمی نیا
      سلام
      شما هم از کریستال داخلی و هم خارجی وهم کریستال 32768 برای ایجاد زمان دقیق می تونید استفاده کنید ....پورتهارو کانفیگ کردید؟،پول پ ها رو گذاشتید؟
      به هر حال یک خطای کوچیک دارید که آمپر میکشه...avccرو Lc کردید؟تمام gndهارو وصل کردید؟؟
      مهندس من در حالت power down در atmega8 نهایت 300میکرو میکشه،پول پ کردن بقیه پین ها هم در این حالت هیچ تاثیری نداشته،اگر adc استفاده نمیکنم گذاشتن LC ضروری نیست که؟

      دیدگاه


        #33
        پاسخ : power down mode in codevision

        نوشته اصلی توسط parvar
        مهندس من در حالت power down در atmega8 نهایت 300میکرو میکشه،پول پ کردن بقیه پین ها هم در این حالت هیچ تاثیری نداشته،اگر adc استفاده نمیکنم گذاشتن LC ضروری نیست که؟
        در هرصورت باید این فیلتر رو بزارید
        شما برنامه منو تو پست قبلی رو مگا8 پروگرام کن،چون من پورت ها رو خروجی کردم پس شما پول پ ها رو بردار...اگه تومدار تقسیم ولتاژ دارید اونم رو برداریدوlc یادتون نره تاثیر داره تو کم مصرفی...حتما ولتاژ رو بزار 3 ولت

        دیدگاه


          #34
          پاسخ : power down mode in codevision

          سلام دوباره

          در حین کار کردن با میکرو atmega328p (و تست ازمایش) اشتباهی فیوزبیت DWEN رو 0 کردم،و دیگر پروگرام این میکرو رو مورد شناسی نکرد،!به کمک دکتر فیوزبیت .(پروگرام ولتاژ بالا ) از دوباره فیوزها رو ریست کردم . اما بعد از ریست کردن،دیگر به درون مد POWERDOWN نمی رفت. جالب اینکه میکرو میگا 8a هم به مانند atmega328 یک بار فیوزبیتش اشتباهی شدو دیگر میکرو لود نشدو بعد از اینکه با دکتر فوزبیت درستش کردم .. کارهای مربوط به powerdown رو انجام دادم که به نتایج که در پست های قبل اشاره کردم می رسیدم(قبل از این مورد تست و ازمایش قرارش نداده بودم)

          میکرو atmega328p بعد از اینکه با فیوزبیت هاش رو ریست کردم، مثل قبل نبود،و این دفعه به بعضی فیوزبیت ها دست میزدم،از دوباره حالش بد میشد و با پروگرام معمولی مورد شناسایی قرار نمی گرفت ! ....
          میکرو در حالت پاور دان حدود 120 میکرو امپر مصرف میکرد ..و در مد idle هم تقریبا 200 میکرو امپر ( در حالی قبل از این وضعیت در حالت power downزیر 1 میکرو مصرف می کرد )
          احتمالا یک میکرو جدید تهیه کنم(انشالله)
          ---
          یک میکرو میگا 32 هم دارم ، روی اون هم تست powerdown رو انجام دادم،که البته اون هم قبول نمی کرد!(البته خدا شکر،تابحال این میکرو ،فیوزبیت هاش رو ریست نکردم)
          چه چیزی به ذهن کاربران محترم خطور می کند؟ بنظرتون می تونه از کیفیت پایین قطعات باشد؟یا نیم سوز شدن قطعات؟ پروگرام موازی (یا ولتاژ بالا) روی میکرو چه تاثیری می گذارد؟
          باتشکر.

          دیدگاه


            #35
            پاسخ : power down mode in codevision

            سلام خدمت مهندسین (قاسمی نیا و SINASET)
            من تاحالا با اتمگا 8 ولی با کریستال 8مگاهرتز امتحان میکردم و در مد powerdown تهش 300 میکرو آمپر میکشید
            ولی این بار با کریستال 1مگاهرتز جریان در این مد به 0.4 میکرو آمپر یا 400 نانو رسید که فوق العاده بود
            البته من pullup کلید INT0رو رعایت کردم فقط و بقیه پین ها و LC رو نذاشتم اینبار.
            خیلی تشکر از هردو بخاطر بحث کامل و به نتیجه رسیدن

            SINASET :
            باحتمال خیلی زیاد نیمسوز شده،هنگ کردن سر فیوز بیت ها قبلا پیش اومده بود برا بچه ها،مجبور شد ی میکرو دیگه بگیره

            دیدگاه


              #36
              پاسخ : power down mode in codevision

              با سلام

              با میکرو جدید میگا 328 مشکلم حل شد و توانستم برنامه بنویسم که در مد powersave کمتر یا در حدود 1 میکرو مصرف داشته باشد (منظورم از برنامه همان پروژه که میخواستم از مد کم مصرف استفاده کنم)

              چند نکته و تجربه ..(برای اساس کدویژن)

              مد powersave را به درون while اصلی(تابع main) برنامه بگذارید ..
              [code=c]void main(void)
              {



              #asm("sei&quot
              while(1)
              {
              powersave();


              }

              }[/code]
              در این وضعیت مد در چرخه اصلی خوانده میشود،اما چون در وضعیت غیر فعال است،کاری انجام نمی دهد. حال شما با نوشتن دستور ;()sleep_enable (به عنوان وقتی دکمه ی فشار داد شده،یا انکه ثانیه گذشت و ..) ان را فعال می کنید و از این به بعد هر وقت میکرو به دستور powersave رسید به ان وضعیت میرود ..
              برای غیر فعال کردنش می تونید از تایمر2 و یک نوسان سازی بیرونی 32768 کمک بگیرید ..
              لازم به ذکر است نیازی به استفاده کردن از پایه های وقفه میکرو نیست! شما می توانید دستوری در تایمر 2 مبنی براینکه
              [code=c]if(PINC.1==1)sleep_disable();[/code]
              و یا هر پایه دیگری بنویسید،تا هر وقت ان پایه مد نظر 1 شد،دستور sleep متوقف شود.(1 ثانیه تاخیر دارد،اما مشکلات شما را حل می کند)
              نکته دیگر،درصورتی که مدها بدرستی کار نکردن،واحد ADC را هم غیرفعال کنید
              [code=c] ADCSRA=(0<<ADEN) | (0<<ADSC) | (0<<ADATE) | (0<<ADIF) | (0<<ADIE) | (1<<ADPS2) | (0<<ADPS1) | (0<<ADPS0);
              [/code]
              باتشکر.

              دیدگاه

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