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

Zbyt duży pobór prądu przez atmega 8 program w bascom'ie.

marcin-k 01 Paź 2010 20:01 3809 15
  • #1 8572837
    marcin-k
    Poziom 15  
    Mam małe pytanie odnośnie bascoma i układu atmega 8 .Napisałem program pilota który działa wykorzystuję sprzętowy uart i mój pilot pobiera dokładnie 21mA dwa razy więcej niż podobne piloty fabryczne pilot jest tak zaprojektowany że nie pobiera w ogóle prądu dopiero jak nacisnę któryś przycisk w pilocie to układ załącza zasilanie i uruchamia program główny moje pytanie jest takie jak jeszcze mogę zmniejszyć pobór prądu wiem że trzeba wyłączyć zasilanie komparatora waddoga i wszystkiego co jest zbędne ale jak ? czy wystarczy na przykład wydać komendę ACI=off żeby wyłączyć wewnętrzne zasilanie komparatora ? co mogę jeszcze wyłączyć i jak to zrobić ?


    inventco.eu - tytuł poprawiłem. Regulamin p.15
  • #2 8574158
    MirekCz
    Poziom 35  
    Najlepiej cały procesor ustawić w stan spoczynku.
    Możesz to zrobić na dwa sposoby:

    a) Włączyć timer np. 50mS, który wybudzi procesor i wejść w stan uśpienia. Po 50mS procesor się wybudzi, sprawdzisz czy został naciśnięty klawisz i ponownie przejdziesz w stan uśpienia. W stanie uśpienia procesor pobiera mały ułamek prądu normalnej pracy.

    b) Podłączyć klawisze pod przerwanie, wejść w stan uśpienia z ustawionym wybudzeniem na przerwanie. Jak ktoś naciśnie przerwanie to procesor automatycznie się wybudzi.

    Bascoma nie znam, więc po dokładną implementację musisz zajrzeć do dokumentacji.
  • #3 8574201
    tmf
    VIP Zasłużony dla elektroda
    A najlepiej to zrezygnować z tego prehistorycznego trupa i zastosować któryś z nowszych procesorów AVR, które bez żadnych cyrków biorą kilka razy mniej prądu. Dodatkowo obniżyć taktowanie, najpewniej 32kHz wystarczy, przełączyć niewykorzystane piny na wyjście, wyłączyć pull upy, ogólnie przeczytać noty katalogowe Atmela poświęcone temu tematowi.
  • #4 8575847
    marcin-k
    Poziom 15  
    Tak tylko jak wspomniałem wyżej układ jeśli nie nadaje to w ogóle nie pobiera prądu a mi głównie chodzi o zmniejszenie poboru prądu podczas pracy , która jest można powiedzieć sporadyczna powiedzmy 20-40 razy na dobę ale pilot jest zasilany z baterii i każdy miliamper jest na wagę złota wydłuża pracę baterii procek taktowany jest kwarcem 4MHz szybkość transmisji 9600B oryginalne piloty pracują ok. 1-2 lat na jednej baterii jeśli mój pobiera dwa razy większy prąd to teoretycznie powinien wycyckać baterię dwa razy krócej 0,5 do roku dlatego co mogę wyłączyć i jak aby choć trochę jeszcze zmniejszyć pobór prądu procka raczej nie zamienię na inny bo posiadam większą ilość właśnie takich
  • #5 8576574
    tmf
    VIP Zasłużony dla elektroda
    Tyle, że te nowsze na wstępie biorą normalnie tyle prądu ile twój po tych wszystkich hokus-pokus. Więc jeśli nie chcesz zmienić procka to dalsze rozważania są lekko bez sensu. Poza tym jeśli układ pobiera nawet te parę mA wyłącznie w czasie nadawania, co trwa kilkaset us to chyba nie ma sensu bawić się w ograniczanie tego prądu. Samorozładowanie baterii będzie większe niż średni pobór prądu przez procesor. A najwięcej zyskasz obniżając taktowanie. Po co ci aż 4MHz do generowania sygnału pilota?
  • #6 8576735
    manekinen
    Poziom 29  
    Twój PILOT pobiera 21mA a nie mikrokontroler. Sam mikrokontroler może 4mA z tego siorbnie i to w dużej mierze zależy od zegara i napięcia zasilania. Zabiegi polegające na wyłączaniu różnych modułów takich jak brown-out detection to zysk rzędu uA. Modyfikacji szukaj w układzie (z resztą nawet nie pokazałeś schematu), jeśli chcesz zmniejszyć pobór prądu podczas nadawania to zwiększ rezystor ograniczający prąd dla... diody?... nadajnika radiowego?... kompletnie nic nie wiadomo o tym twoim pilocie - zasięg będzie mniejszy ale wydłuży się czas pracy.
  • #7 8577393
    LED5W
    Poziom 34  
    Komparator możesz wyłączyć ustawiając bit 7. - ACD w rejestrze ACSR (Analog Comparator Control and Status Register).

    W Bascomie możesz po prostu użyć stop ac.

    Chociaż przy 20mA to nie wiele da. ;)

    Daj lepiej schemat. I napisz czym to konkretnie zasilasz.



    inventco.eu - na życzenie :-) posty scaliłem.
  • #9 8583413
    psine.pl

    Poziom 30  
    Witam.
    Poprosimy schemat tego "pilota".
    Może błąd tkwi w samym układzie.
    Reszta tych rozważań dopiero wtedy będzie miała sens.

    Na chwilę obecną ... 4 - 8 mA uC + 9 mA odbiornik ... a reszta albo błędny układ albo program.


    Pozdrawiam
    Marek
  • #11 8585254
    szelus
    Poziom 34  
    No i wszystko się zgadza. Ok. 13mA tracisz na dzień dobry na R5 i D6 (minus to, co pobierze procesor). Stabilizator równoległy to nie jest oszczędny układ.
  • #12 8585277
    tmf
    VIP Zasłużony dla elektroda
    No to się trochę wyjaśniło. Po pierwsze co każe ci myśleć, że ten układ nie pobiera prądu kiedy nie naciskasz klawiszy? Po drugie, po co są diody D1-D4? Po trzecie robienie stabilizatora na zenerce i rezystorze to olbrzymie straty - tracisz ponad 6V*I, koszmar. Po czwarte kwarc 4MHz to mocne przegięcie. Procesor pobiera tym więcej prądu im szybciej działa, zmniejszenie zegara np. do 32kHz dramatycznie zmniejszy pobór prądu. Po piąte co to jest ten magiczny element P16? I po co jest X1? Po szóste - AGND i AVCC też muszą być podłączone do zasilania. Po siódme - jak ustawiasz niewykorzystane porty IO? Po dziewiąte - po co wykorzystujesz stary, w dodatku duży procesor, zamiast nowoczesnego, małego ATTiny, który będzie brał pare mikroA.
  • #13 8585330
    szelus
    Poziom 34  
    :arrow:tmf No bez przesady, trochę niedokładnie przyjrzałeś się schematowi. ;)
    tmf napisał:
    Po pierwsze co każe ci myśleć, że ten układ nie pobiera prądu kiedy nie naciskasz klawiszy?

    Bo bez naciśnietego klawisza układ nie jest zasilany?
    Cytat:

    Po drugie, po co są diody D1-D4?

    Właśnie po to, aby układ był zasilany.
    Cytat:

    Po piąte co to jest ten magiczny element P16?

    To chyba cewka nadajnika wykonana w postaci drukowanej.
    Cytat:

    I po co jest X1?

    Kwarc nadajnika.

    Reszta uwag oczywiście jak najbardziej słuszna.

    :arrow:marcin-k
    Możesz spróbować zwiększyć trochę R5, ale dużo lepiej byłoby dodać tranzystor w układzie stabilizatora szeregowego.
  • #14 8585608
    marcin-k
    Poziom 15  
    Bez diody zenera układ też działa opornik w szereg z zasilaniem układu jest tak dobrany żeby uzyskać ok. 3-4V zasilania na Procku dioda w tym układzie jest jako zabezpieczenie układu w zasadzie na niej nigdy nie będzie nominalnego zasilania chyba że napięcie baterii będzie ok. 20V czyli opornik R5 i rezystancja zasilania układu (procka) można traktować jak zwykły dzielnik rezystancyjny diody owszem służą do zasilania układu podczas naciśnięcia przycisków w zasadzie zwiększenie opornika ma bardzo mały wpływ na pobór prądu ok. 1-2mA ale znacząco ogranicza pracę układu przy mniejszym napięciu baterii .Przykład z elementami jak na schemacie baterię można rozładować do 5,1V niżej jest za niskie napięcie zasilania procka i przestaje pracować przy oporniku R5 1k układ pobiera o 1,5mA mniej ale baterię mogę rozładować do 7,5V niżej już procek odmawia współpracy za małe zasilanie na procesorze jak wspomniałem dioda służy jako zabezpieczenie procka przed zbyt wysokim napięciem zasilania podczas normalnej pracy przy 12V zasilania przez diodę nie płynie w ogóle prąd W tym układzie i z tymi wartościami elementów oczywiście.
  • #15 8585801
    szelus
    Poziom 34  
    marcin-k napisał:
    Bez diody zenera układ też działa opornik w szereg z zasilaniem układu jest tak dobrany żeby uzyskać ok. 3-4V zasilania na Procku dioda w tym układzie jest jako zabezpieczenie układu w zasadzie na niej nigdy nie będzie nominalnego zasilania chyba że napięcie baterii będzie ok. 20V czyli opornik R5 i rezystancja zasilania układu (procka) można traktować jak zwykły dzielnik rezystancyjny

    Generalnie - nie można. Pobór prądu przez procesor jest zasadniczo dynamiczny i zasilanie szeregowe rezystancyjne to bardzo niedobry pomysł.
    Oglądałeś przebieg na zasilaniu oscyloskopem? Czy tylko mierzyłeś prąd średni?
    Cytat:

    diody owszem służą do zasilania układu podczas naciśnięcia przycisków

    Diody dałbym Schottky'ego aby miec pewność. DS specyfikuje UIL równe -0,5V, więc nie wiadomo, czy np. na niższe (tutaj) układ nie reaguje zwiększonym poborem prądu.
    Dodałbym też mały elektrolit na zasilaniu. I jak pisałem, tranzystor.
    Jak słusznie zauważył kolega tmf powinieneś zmniejszyć ten kwarc - jak 32kHz to za mało z uwagi na wymaganą ilość obliczeń, albo prędkość USARTa, to na 1MHz. I zrobić wtedy obsługę wysyłania na przerwaniach, dając sleep-a w pętli głównej.
    Ale i tak, wg DS, przy praktycznym braku wyjść i przy 4MHz procesor powinien brać rzędu 8mA. Obstawiam, że reszta, to jednak ta zenerka.

    P.S. I używaj poprawnej interpunkcji jak piszesz bo się ciężko czyta...
  • #16 8588627
    marcin-k
    Poziom 15  
    Dziękuję za zainteresowanie sprawa nieco się wyjaśniła udało mi się wyłączyć programowo zasilanie komparatora i zmodyfikować program (nie konfiguruję wolnych portów w procesorze). Bez zmiany kwarcu procesor już pobiera ok. 7mA czyli cały układ pobiera 16mA na dzień dzisiejszy temat mogę uznać za rozwiązany chyba nic więcej nie wycisnę z układu .Układ pobiera o 1mA więcej od oryginalnego pilota więc jest idealnie. Jeśli chodzi o szpilki na zasilaniu odnośnie diody zenera to z kondensatorem na zasilaniu 100n na oscyloskopie brak szpilek bez kondensatora owszem były słabe dlatego zastosowałem kondensator .Mogłem oczywiście zastosować elektrolita było by na pewno lepiej , ale brak miejsca w obudowie jest to kompromis między miejscem w obudowie a jakością w filtrowaniu zasilania. Temat można uznać za zakończony spróbuję jeszcze w wolnej chwili zmniejszyć wartość kwarcu może uda się coś jeszcze uszczuplić
REKLAMA