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

[Atmega8]Duży pobór prądu w wyniku podłączenia AVCC.

miccaldo 28 Maj 2015 14:37 1323 8
REKLAMA
  • #1 14727830
    miccaldo
    Poziom 12  
    Posty: 86
    Ocena: 4
    Witam,

    Projektuje automatyczne rolety na czujnik światła. Płytkę, program oraz obudowę mam już gotową, pozostaje jedynie problem oszczędzania prądu a z tym niestety jest kiepsko.

    Tutaj schemat płytki, zaznaczam tylko że zasilam układ z zasilacza od laptopa 19,8V, a nie 12V jak jest w schemacie:


    [Atmega8]Duży pobór prądu w wyniku podłączenia AVCC.



    Edytuj

    Płytka bez podłączonych silników oraz bez uśpienia atmegi pobierała ~90mA a więc bardzo dużo.

    Sprawdzałem płytkę przerywając ścieżki do dalszych części układu aby dowiedzieć się co pobiera tyle prądu.


    Na samym początku zostawiłem tylko stabilizator i nic podłączone do jego wyjścia. Sam stabilizator pobierał 8,64mA.


    Następnie doszedłem do mostka H i okazało się że źle zrobiłem podłączając wejścia Enable mostka H L298N na stale do +5V. Mostek pobierał prąd nawet wtedy kiedy silniki były wyłączone. Będę pamiętał o tym następnym razem.

    Z odłączonymi Enable mostka H, układ pobiera 58mA.

    Nie zauważyłem aby ULN2003 bez podłączonych silników pobierał jakiś prąd, chyba że bardzo małe wartości.


    Przy uśpieniu Atmegi w tryb power down, układ pobiera 33,4mA.

    Idąc dalej, zauważyłem że jeśli odłączę dławik od Atmegi a więc zasilanie części analogowej, to układ pobiera 10,11mA.

    Tylko nie wiem dlaczego tak się dzieje, w programie wyłączam ADC komendą:

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Jeszcze przed uśpieniem procesora.

    Proszę o pomoc jak mógłbym podłączyć ADC żeby nie pobierało +20mA.

    Pozdrawiam.
  • REKLAMA
  • #2 14728117
    dondu
    VIP Zasłużony dla elektroda
    Posty: 13906
    Pomógł: 1292
    Ocena: 809
    1. ACD nie wyłącza ADC, tylko komparator, który domyślnie jest włączony. Przetwornik ADC wyłącza się bitem ADEN.

    2. Zastosuj ATmega8A - bardziej oszczędna.

    Pytania:
    P1. Jaka częstotliwość zegara i (uprzedzając odpowiedź) w jakim celu tak duża?
    P2. Czy jesteś świadomy jaki prąd spoczynkowy ma L298?
    P3. Podobnie z LCD?
    P4. Do jakiego trybu usypiasz mikrokontroler i pokaż jak to robisz.
  • REKLAMA
  • Pomocny post
    #3 14728505
    Konto nie istnieje
    Poziom 1  
  • #4 14730385
    miccaldo
    Poziom 12  
    Posty: 86
    Ocena: 4
    atom1477 no bardzo prawdopodobne bo podłączyłem inną atmege zasilając tylko VCC i na AVCC było właśnie około 4,4V.

    W układzie z rolet, przy takim samym zasilaniu na AVCC jest 0V. Tylko w jaki sposób to się uszkodziło? Kupiłem nową atmege ze sklepu, wszystko ostrożnie podłączałem. A może dlatego że lutowałem atmege bez podstawki... chociaż wątpię.

    A co do pytań:

    1. Atmega jest taktowana wewnętrznym kwarcem 8Mhz. Tutaj też zrobiłem niestety błąd bo żeby usypiać procesor np w tryb power save, potrzebuję zewnętrznego kwarca :| i no raczej będę musiał wprowadzić zmiany. Częstotliwość duża to nie jest, choć w tym projekcie spokojnie wystarczyło by 1Mhz także zmienię, pewnie zmniejszy to pobór prądu.

    2. Szukałem tej informacji w internecie, dokumentacji ale nie mogłem znaleźć. A mógłbym się dowiedzieć jaki jest ten prąd spoczynkowy?

    3. Jak wyżej.

    4. Usypiam do trybu power down w taki sposób:

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Też raczej będę musiał zrezygnować z tego trybu bo nie będę miał czym wybudzić procesor. Z tego co czytałem, procesor budzi przerwanie zewnętrzne wyzwalane zboczem opadającym, u mnie w układzie jest tylko fototranzystor na którym w nocy owszem napięcie spada, ale z nocy na dzień już nie wybudzi atmegi. Myślałem o trybie powersave, ale do tego muszę zastosować zewnętrzny kwarc.

    Muszę jeszcze pomyśleć jaki tryb uśpienia będzie tutaj najodpowiedniejszy.

    Na początku podmienię atmegę w układzie.
  • Pomocny post
    #5 14730582
    dondu
    VIP Zasłużony dla elektroda
    Posty: 13906
    Pomógł: 1292
    Ocena: 809
    miccaldo napisał:
    atom1477 no bardzo prawdopodobne bo podłączyłem inną atmege zasilając tylko VCC i na AVCC było właśnie około 4,4V.
    W układzie z rolet, przy takim samym zasilaniu na AVCC jest 0V.

    Oj kolego, podstawy: http://mikrokontrolery.blogspot.com/2011/04/minimalne-podlaczanie-pinow.html

    miccaldo napisał:
    Częstotliwość duża to nie jest, choć w tym projekcie spokojnie wystarczyło by 1Mhz także zmienię, pewnie zmniejszy to pobór prądu.

    Jak nie jest duża, skoro spokojnie wystarczy 8 razy mniej?
    Co do oszczędzania energii (3 artykuły): http://mikrokontrolery.blogspot.com/2011/01/bateria-zasila-mikrokontroler-czesc-1.html

    miccaldo napisał:
    2. Szukałem tej informacji w internecie, dokumentacji ale nie mogłem znaleźć. A mógłbym się dowiedzieć jaki jest ten prąd spoczynkowy?
    3. Jak wyżej.

    Szukaj w dokumentacji parametru: Question Current
    i napisz co znalazłeś podając jednocześnie linki do dokumentacji.


    miccaldo napisał:
    Muszę jeszcze pomyśleć jaki tryb uśpienia będzie tutaj najodpowiedniejszy.

    Kwarc zegarkowy 32,768kHz i Timer2 + tryb asynchroniczny + Power Save. Do tego zmiana F_CPU na 1MHz wewnętrzny generator.
    Zrób sobie testy a zobaczysz, że wartości pokazane w dokumentacji ATmega8A w tym trybie będzie około 10-12µA (z tego co pamiętam).

    Co do programu, to albo wykorzystuj wpisy do rejestrów, albo nagłówek sleep.h: http://www.nongnu.org/avr-libc/user-manual/gr...sleep.html#ga157b2578d95309c197b739f812938d94
    A Ty mieszasz oba sposoby - brak konsekwencji :)
  • REKLAMA
  • #6 14730665
    Konto nie istnieje
    Poziom 1  
  • #7 14730672
    dondu
    VIP Zasłużony dla elektroda
    Posty: 13906
    Pomógł: 1292
    Ocena: 809
    Mam nadzieję, ale testowanie nieprawidłowego podłączenia (de facto nie znanej struktury wewnętrznej mikrokontrolera) nie ma sensu, bo można wyciągnąć nieprawidłowe wnioski.
  • REKLAMA
  • #8 14730904
    miccaldo
    Poziom 12  
    Posty: 86
    Ocena: 4
    Dondu Twój poradnik bardzo sobie cenię i często tam zaglądam, nie tylko do artykułu o podłączeniu procka :)

    Po podmienieniu atmegi jest ok. Atmega pobiera 0,3mA. Fakt nie jest to 10uA ale już zdecydowanie lepiej.

    Teraz układ pobiera 11mA. To jest już zadowalające i chyba tak zostawię, a wprowadzę zmiany na płytce.

    Dziękuję za pomoc. :D

Podsumowanie tematu

✨ W dyskusji poruszono problem wysokiego poboru prądu w projekcie automatycznych rolet z wykorzystaniem mikrokontrolera ATmega8. Użytkownik zauważył, że bez podłączonych silników układ pobierał około 90mA, co było zbyt dużą wartością. Po analizie okazało się, że stabilizator oraz mostek H L298N przyczyniają się do tego poboru, zwłaszcza gdy wejścia Enable mostka były podłączone do +5V. Po ich odłączeniu pobór prądu spadł do 58mA. Użytkownik rozważał również uszkodzenie pinu AVCC, co mogło wpływać na zasilanie układu. Zastosowanie ATmega8A oraz zmniejszenie częstotliwości zegara do 1MHz mogłoby poprawić efektywność energetyczną. Po wymianie mikrokontrolera na nowy, pobór prądu spadł do 0,3mA, co uznano za zadowalający wynik.
Podsumowanie wygenerowane przez AI na podstawie treści dyskusji.
REKLAMA