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

[PIC16F876] Optymalizacja poboru prądu przez zmniejszenie taktowania do 1kHz

mikmas 24 Lut 2012 09:49 2011 6
REKLAMA
  • #1 10590937
    mikmas
    Poziom 18  
    Posty: 611
    Pomógł: 9
    Ocena: 18
    Na pewno był poruszany podobny temat, ale nie mogę coś znaleźć. Mam urządzenie zrobione na pic16f876 i pic16f84a (2 "części"), które pracuje przez 24h/dobę. Mimo że operacje, które wykonuje są dosyć skomplikowane, to może je robić powoli (mało jest zależne od niego, bo steruje mechaniką). Sam analizować danych praktycznie nie musi. Po co to mówię? Chcę maksymalnie obniżyć koszty pracy (czyt. pobór prądu) poprzez zmniejszenie taktowania. Jednak jak bardzo rzeczywiście przekłada się to na pobór? Pracuje już na najwolniejszym trybie (LP? Nie pamiętam) i dostaje taktowanie 1MHz. Czy dalsza optymalizacja ma sens? Chciałbym zrobić tak, aby pracował w trybie tak jakby hibernacji - wszystkie funkcje życiowe byłyby maksymalnie spowolnione (mogę się zgodzić nawet na 1kHz). Uśpienie go niestety nie jest zbyt możliwe, bo czynnik budzący może przyjść zarówno z czujników, klawiaturki, jak i komenda drugiego procka (prosty protokół szeregowy). Co wy o tym myślicie?
  • REKLAMA
  • #2 10591054
    Konto nie istnieje
    Konto nie istnieje  
  • REKLAMA
  • #3 10591238
    mikmas
    Poziom 18  
    Posty: 611
    Pomógł: 9
    Ocena: 18
    Układ nic nie robi, dopóki nie rozkażą mu procesory (które w tym momencie aktywnie uczestniczą w kontroli) - w okresie, w którym procesory mogą się na chwilę kimnąć układ kompletnie nic nie robi.
  • REKLAMA
  • #5 10592397
    mikmas
    Poziom 18  
    Posty: 611
    Pomógł: 9
    Ocena: 18
    Zasilany jest zasilaczem transformatorowym dający 12v/2A (poboru prądu przez niego - nie znam, nie jest napisane) - taki "ot zwykły" :). Po drodze stabilizator 5v i prosto do 2 procesorów. Jakie oszczędności? Pobór już teraz jest bardzo mały, jednak jak to ma chodzić na okrągło non-stop to nawet m zamienia się w M (chodzi o jednostkę :P), więc skąd tylko się da wycisnąć.
    Pierwsze to właśnie zmniejszyć do minimum prąd pobierany na jałowym biegu, a drugie to sztuka dla sztuki - warto wiedzieć na przyszłość o jakiś mykach, które robią układ bardziej oszczędnym
  • Pomocny post
    #6 10592573
    dondu
    VIP Zasłużony dla elektroda
    Posty: 13906
    Pomógł: 1292
    Ocena: 809
    OK, rozumie Twoje intencje i z chęcią pomogę, bo minimalizowanie poboru energii to mój "bzik" :)

    Jednakże zacząłbym od tego, że przy takim zasilaniu gdy ustawisz ten mikrokontroler na kwarcu 32kHz, to zużywać będzie zaledwie 20 μA przy 3V i niewiele więcej przy 5V. Czy to nie wystarczy? Większe straty masz na samym zasilaczu.

    Co do usypiania - piszesz, że już masz zrobione urządzenie, więc faktycznie może być problem z osiągnięciem maksymalnych oszczędności (trzeba to dobrze rozplanować). Pamiętaj, że wybudzanie ze snu można osiągać na wiele sposobów:

    Cytat:
    12.13.1 WAKE-UP FROM SLEEP
    The device can wake-up from SLEEP through one of
    the following events:
    1. External RESET input on MCLR pin.
    2. Watchdog Timer Wake-up (if WDT was
    enabled).
    3. Interrupt from INT pin, RB port change or
    peripheral interrupt.


    ...


    The following peripheral interrupts can wake the device
    from SLEEP:
    1. PSP read or write (PIC16F874/877 only).
    2. TMR1 interrupt. Timer1 must be operating as an
    asynchronous counter.
    3. CCP Capture mode interrupt.
    4. Special event trigger (Timer1 in Asynchronous
    mode using an external clock).
    5. SSP (START/STOP) bit detect interrupt.
    6. SSP transmit or receive in Slave mode
    (SPI/I2C).
    7. USART RX or TX (Synchronous Slave mode).
    8. A/D conversion (when A/D clock source

    Zawsze możesz ustawić timer by wybudzał okresowo uC np. 100x na sekundę.

    Polecam także zapoznać się z 3 częściowym artykułem: Bateria zasila mikrokontroler
    by poznać techniki oszczędzania energii przez mikrokontroler (nie tylko z baterii).
  • REKLAMA
  • #7 10592763
    mikmas
    Poziom 18  
    Posty: 611
    Pomógł: 9
    Ocena: 18
    Czyli najłatwiejszym sposobem jest ustawienie wybudzania przez timer. Łatwe, bo software-owe (hardware - jak już zauważyłeś - jest zrobiony). Dzięki za pomoc ;)

Podsumowanie tematu

LABEL_AI_GENERATED
Użytkownik poszukuje sposobów na optymalizację poboru prądu w urządzeniu opartym na mikrokontrolerach PIC16F876 i PIC16F84A, które pracuje przez 24 godziny na dobę. Chce zmniejszyć taktowanie do 1 kHz, aby zredukować zużycie energii, jednak zastanawia się, jak bardzo wpłynie to na pobór prądu. Odpowiedzi wskazują, że zmniejszenie taktowania może znacząco wpłynąć na oszczędności, a także sugerują, aby rozważyć użycie kwarcu 32 kHz, co może obniżyć pobór do 20 µA. Użytkownik może również zastosować timer do okresowego wybudzania mikrokontrolera, co jest prostym rozwiązaniem programowym.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA