logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

XMega - duży pobór prądu - jaka może być przyczyna

antrykot 09 Mar 2014 21:33 2178 12
REKLAMA
  • #1 13387355
    antrykot
    Poziom 20  
    Witam.
    Mam problem z XMegą, konkretnie 32D4, choć sprawdzałem też na 64A3 i wyniki podobne. Chodzi o pobór prądu:
    XMega - duży pobór prądu - jaka może być przyczyna
    Zgodnie z danymi podanymi w datasheet, pobór przez układ zasilany z 3.3V w trybie IDLE z zegarem wew 2MHz powinien wynosić około 270uA.
    Tak wygląda kod testowej aplikacji :
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    Jak widać, nie ustawiam zegara, także chodzi na wew. 2MHz.
    W trybie IDLE bierze 1.5mA.
    W trybie POWER_DOWN 150uA
    Sprawdzałem już sprzęt, nie ma innych upływności, co zresztą widać, w trybie POWER_DOWN.
    Na xmega64A3 podobne rezultaty.
    Może robie jakiś oczywisty błąd, któergo nie jestem w stanie dojrzeć ? Ktoś sie spotkał z czymś takim ?
    Będe wdzięczny za pomoc.

    //edit
    Po wyłączeniu wszystkich timerów (PRC-F) = 0x5F pobór spadł do 1.25 w trybie IDLE.
  • REKLAMA
  • Pomocny post
    #2 13397417
    2rs232
    Poziom 18  
    Konfiguracja portów :wink: (teraz "wiszą w powietrzu")
  • #3 13397563
    antrykot
    Poziom 20  
    No tak - wszystkie są zostawione celowo w Hi-Z, żeby wyeliminować ewentualne upływy przez piny i ich pull-upy.
  • Pomocny post
    #4 13397614
    2rs232
    Poziom 18  
    Włącz pull-upy i sprawdź różnicę, przy Hi-Z następuje losowe przełączanie stanu portu i przez to niepotrzebnie wzrost pobieranego prądu.
  • REKLAMA
  • #5 13397978
    antrykot
    Poziom 20  
    Faktycznie, miałeś rację - prąd spadł, ale do ok 500uA, co dalej jest wartością prawie dwa razy większą niż oczekiwana.
  • #6 13398752
    dondu
    Moderator na urlopie...
    Cytat:
    To further reduce power consumption, the peripheral clock to each individual peripheral can optionally be stopped in active mode and idle sleep mode.

    Nie znam XMega, ale powinieneś sprawdzić, czy niektóre moduły nie są domyślnie włączone i czy nie trzeba je czasem wyłączyć. Tak np. jest z komparatorem w ATmegach.
    Watchdog, itp. ... szukaj w dokumentacji.
  • REKLAMA
  • #7 13398845
    antrykot
    Poziom 20  
    Właśnie do tego służy power reduction register PR.XXX. Testowałem wyłączenie wszystkich modułów, łacznie z timerami, czyli PR.PRPC = 0x5F;
    Daje to właśnie pobór rzędu 500uA przy 3.3V i 2MHz internal clock.
  • #8 13399469
    2rs232
    Poziom 18  
    Nie wyłączyłeś chyba jeszcze wszystkiego w Power Reduction :wink:
    Dla 32D4 (według tabelki na str. 82 )
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Cytat:
    Testowałem wyłączenie wszystkich modułów, łacznie z timerami, czyli PR.PRPC = 0x5F;

    To spowoduje wyłączenie tylko timerów powiązanych z portem C.

    Proponuje używać takiego zapisu,
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    będzie widać co się wyłącza bez zaglądania do pdf.
  • #9 13399497
    antrykot
    Poziom 20  
    Wyraziłem się troche nie jasno. Do rejestrów od C do F wpisałem 0x5F, także wyłączone powinny być wszystkie moduły.

    XMega - duży pobór prądu - jaka może być przyczyna
  • REKLAMA
  • Pomocny post
    #10 13412290
    Konto nie istnieje
    Konto nie istnieje  
  • #11 13412606
    antrykot
    Poziom 20  
    BOD jest wyłączony. Jak będe w domu, to sprawdzę, ale zakładałem, że pobór prądu w trybie IDLE z wewnętrznym zegarem 2MHz uzwględnia także oscylator.
  • #12 13414493
    antrykot
    Poziom 20  
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Cały kod wygląda tak. Na porcie A są podpięte 3 diody LED, stąd podciągam je do V+.
    W trybie IDLE - 500uA
    W trybie power_down - ok 2uA

    Faktycznie, w tabelce podają pobór prądu dla Ext Clk 2MHz od 170 typowo do 350uA, natomiast na wykresie IDLE 2MHz Internal - ok 300uA, a w innej tabelce - jak już zauważyłeś - 85uA dla oscylatora 2MHz.
    Jeżeli założyć, że te 85uA jest podane przy 1.8V, to faktycznie, pewnie wychodzi te 500uA.
    Na innym wykresie podają prąd w trybie STANDBY z włączonym oscylatorem kwarcowy, Ja chciałem go używać na zewnętrznym kwarcu 4MHz w trybie IDLE. Wychodzi z tego wszystkiego że nawet na 1.8V wyjdzie pobór rzędu 1mA, co niestety jest dla mnie wartością za dużą.
    Zbyt optymistycznie podszedłem do tych wykresów, więc wracam do mojego orginalnego attiny.
    Dziękuje za pomoc.
  • #13 13417469
    dondu
    Moderator na urlopie...
    antrykot napisał:
    Zbyt optymistycznie podszedłem do tych wykresów, ...

    Nie spotkałem jeszcze przypadku, by parametry znacząco odbiegały od stanu faktycznego przynajmniej w przypadku AVR i PIC. Różnice były minimalne i zgodne z zastosowaną metodą pomiarową i błędem multimetru. Na przykład w PIC18F67K90 pomiar w najgłębszym śnie pokazywał około 22nA, przy katalogowym typowym 20nA i maksymalnym 500nA. Tak nano, nie mikro :)

    Sprawdzałem kiedyś ATmega8A uśpiony do Power Down jadąc z napięciami zasilania od minimalnego do maksymalnego i mierząc prąd - wyniki idealnie zgadzały się z wykresami. Podobnie zrobiłem z generatorem wewnętrznym i kwarcem przy bodajże 8MHz - wyniki odpowiadały tym z wykresów w dokumentacji.
REKLAMA