Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Obniżenie poboru mocy AT90S2313

Towdee 02 Apr 2005 09:32 1785 13
  • #1
    Towdee
    Level 11  
    Jak można zmniejszyć pobór mocy w takim właśnie uC? Programuję w Bascomie i chcę zmniejszyć pobór prądu gdy układ nie jest wykorzystywany (sleep). Podczas normalnej pracy pobiera na okrągło bez przerwy około 30mA przy zasilaniu 5V, jak się włącza sygnalizacja to skacze do około 70mA (diody, przekaźnik), ale pewnie jest jakaś możliwość obniżyć to do kilku mA? Układ jest zamkiem na pastylki DS1990 i gdy nie jest nic dołączone do wejścia, aż się prosi żeby nie pobierał prądu i włączał się dopiero po przyłożeniu takliej pastylki.
  • #2
    Tdv
    Level 34  
    Po pierwsze to zmniejsz mu częstotliwośc zegara o ile jest taka możliwość, po dugie uC ma dwa tryby obniżonego poboru mocy - usawiane bitami w rejestrze MCUCR, bit SM i SE.
    Szczególy - manual str. 27
  • #3
    elektryk
    Level 42  
    Towdee wrote:
    Podczas normalnej pracy pobiera na okrągło bez przerwy około 30mA przy zasilaniu 5V
    To nie wina procka, a jakiś element w układzie pobiera tyle prądu, procesor powinien pobierać znacznie mniej (strzelam [bo nie znam częstotliwości] że <10mA).
  • #4
    wwmajor
    Level 15  
    Słuchaj elektryka prawdę gada. Właśnie robię prototyp urządzenia i mam gołego atmela 2313 i pobiera 8mA przy rezonatorze 4MHz. Najlepiej skorzystaj z jakieś książki bo tak na forum bez podstaw to ci nikt nie pomoże. Polecam „Projektowanie systemów mikroprocesorowych” Pawła Hadama tam jest wszystko opisane od strony technicznej jak co podłączyć i jaki rezystor wlutować.
    Wracając do pytania. Można mikrokontroler wprowadzić w stan idle można go wtedy wy budzić przy pomocy przerwania wzbudzanego przez jeden z liczników jakie ma wbudowane ATMEL 2313. albo przy pomocy zewnętrznych przerwań.
    Tu masz programie który wzbudza się co 1 s można to oczywiście przyspieszyć
    Quote:

    'TU WSZYSTKIE DEKLARACJE i POLECENIA KONFIGURACJI, w tym konfiguracji liczników:
    Config Timer0 = Timer , Prescale = 64 'zwiększanie Timer0 co 16ms (64*0,25us)
    Enable Interrupts 'odblokowanie globalne systemu przerwań
    Enable Timer0 'odblokowanie przerwania od Timera0

    On Timer0 Co1s Nosave 'po przepełnieniu licznika 1 skocz do etykiety o nazwie Co1s

    Do 'główny program

    Loop 'koniec pętli
    End 'koniec programu głównego

    Co1s: 'co 1 sekundę
    ... Tresc Procedury - Zwiekszanie Licznika Sekund
    Return 'koniec obsługi przerwania od T/C1
  • #5
    Towdee
    Level 11  
    Powiem tak: prąd zmierzyłem przed stabilizatorem 78M05 - czyli tym z większą wydajnością prądową(który jest wlutowany na płytce), a do tego doprowadzam napięcie niestabilizowane z zasilacza (sam mostek i kondensator) o wartości około 9V, nie zmienia to faktu, że ze źródła jest pobierany właśnie taki prąd.
    Druga sprawa - cały schemat składa się z procka i resetu DS1813, więc co ma tyle pobierać prądu? Stabilizator ciągnie max kilka mA, DS1813 maksymalnie 40uA. To są jedyne czynne elementy, pozatym kilka kondensatorów (bo obu stronach stabilizatora + dwa przy kwarcu 4MHz) i kilka rezystorów. Nie wiem co może tyle ciągnąć. Ale jest jeszcze szczegół: stabilizator dość mocno się grzeje (obudowa SOT-223) i to mnie już od razu zdziwiło.
  • #6
    Samuraj
    Level 35  
    Quote:
    Ale jest jeszcze szczegół: stabilizator dość mocno się grzeje (obudowa SOT-223) i to mnie już od razu zdziwiło.

    No i sobie sam odpowiedziałes. Spróbuj zmierzyc za stabilizatorem.
  • #7
    Towdee
    Level 11  
    Z czym sobie sam odpowiedziałem? Jakie to ma znaczenie czy zmierzę przed czy za stabilizatorem skoro ja się martwię o trwałość źródło zasilania, że jeśli by to była bateria to za szybko by padła. Możliwe, że za stabilizatorem będzie mniejszy pobór ale ze źródła i tak będzie ciągnięte te 30mA (bo ze stabilizatora nie chcę rezygnować), a ja właśnie o źródło sie martwię. Co z tego że gdzieś tam mógłby być mniejszy pobór prądu jak sumaryczny (całego układu wyciągany ze źródła napięcia) i tak będzie 30mA.
    No dobra, ale czemu stabilizator tak mocno się grzeje? Celowo zastosowałem 78M a nie 78L żeby nie było problemu ze zbyt dużym obciążeniem (dodam że 78L jednakowo się nagrzewa)
  • #8
    wwmajor
    Level 15  
    No to teraz mamy inne pytanie nie dlaczego tyle prądu żre tylko dlaczego się grzeje bo przecież temperatura nie bierze się z nikąd tylko właśnie z prądu:). Kiedyś w sklepie elektronicznym chciałem kupić stabilizator napięcia facet powiedział mi tak „Jeśli to ma być na baterię to Se kup pan regulator napięcia a nie stabilizator. Podpiera go pan rezystorami i nie będą cenne mA ogrzewały powietrza”
  • #9
    Towdee
    Level 11  
    Niemniej jednak główny problem pozostaje. Jak włączyć obniżony pobór mocy w tym atmelu, czyli jak go usypiać i wybudzać. Oczywiście w bascomie.
  • #10
    wwmajor
    Level 15  
    A to żeś mnie wkurzył!
    Napisałem ci program!!! Czytaj posty.
    Mikrokontroler to taka gadzina że jak nic nie robi to i tak coś robi (kręci się w pustej pętli). Więc czy wykonuje jakieś obliczenia czy bezpłodnie kręci się w kółko to żre prądu tyle samo.
    W zasadzie mikrokontroler przez ogromną większość czasu kręci się w kółko nic nie robiąc. Dla tego ktoś wpadł na pomysł że możemy go wyłączać a następnie będziemy go wzbudzać raz na jakiś czas aby sprawdzić czy np. wciśnięto przycisk.
    Np. przy użyciu mniejszego timera wybudzamy go co 256 taktów zegara co sprawia że tak naprawdę taktowany jest z częstotliwością 1562 Hz ale gdy potrzebna jest duża moc obliczeniowa to wracamy do pełnych 4000000Hz
    A teraz niepotwierdzone informacje:
    Są dwa sposoby usypiania mikro. Jeden to IDLE mikrokontroler wyłącza się ale działają jego liczniki i gdy któryś się przepełni to mikro się budzi
    POWERDOWN cały mikro śpi i można go obudzić tylko przez reset albo inne przerwanie zewnętrzne
    Musisz jedno z tych poleceń wstawić
  • #11
    elektryk
    Level 42  
    Towdee wrote:
    Celowo zastosowałem 78M a nie 78L żeby nie było problemu ze zbyt dużym obciążeniem (dodam że 78L jednakowo się nagrzewa)
    No jasne bo część mocy idzie w gwizdek, przy 9V jakieś 40% pojemności baterii pójdzie na grzanie, czy stać Cie na taką strate?
  • #12
    titp
    Level 11  
    Dzieląc sie z wami zauważyłem iż , Atmega8L przy zasilaniu 5V + 3x led pobierał około 14mA a po obniżeniu napięcia do 3 V ten sam układ 6mA skąd ta szalona różnica -nie wiem? Dlatego przy zasilaniu bateryjnym najlepiej stosować powerdown. Tylko jak to zrobić w Bascomie avr jednym przyciskiem który włącza układ i przy nastepny wciśnięciu wyłącza układ ???Przy takim rozwiązaniu pobiera on prąd wielkości µA ! .Za wszelkie info dziekuję.
  • #14
    titp
    Level 11  
    Przełącznik mechaniczny w mikrokontrolerze? -to taki elektroniczny mezalians.Z uwagi na ważny temat napisze mój programik ' uwaga niedoskonały'

    $regfile = "m8def.dat"
    $crystal = 1000000
    Config Pinb.1 = Output
    Config Pind.2 = Input
    Config Pind.1 = Input 'port do Int0
    Set Portd.2 ' podciągam na stan wysoki
    Set Portd.1
    Wy Alias Pind.1 ' zamiana nazwy
    ReturnWl Alias Pind.2

    Enable Interrupts 'odblokowuje Int.
    Enable Int0
    Config Int0 = Low Level ' przerwanie czułe poziom niski

    Do
    Debounce Wy , 0 , Pr1 , Sub ' konfiguracja przycisku wyłączającego
    .... '- jakiś program z pentlą
    Loop
    End 'end program

    Pr1: 'procedura gdy naciśnięty Wy
    Powerdown
    Return



    -dwa przyciski: 'wy' wyłącza -/stan powerdown/ ,'wl' włącza .Może ktoś z kolegów a może i koleżanek ma jakiś pomysł na jeden przycisk włącz wyłącz:D