Samokontrola zasilania - Arduino

Ustrojstwo ma być zasilane z akumulatora i pozbawione przycisków. Przy zbyt niskim napięciu ma być off. A po naładowaniu ma być on. Aż do rozładowania. Czy Atmega jest dość inteligentna aby sama się wyłączyć kiedy trzeba i czy nie będzie próbowała na siłę wybudzać (resetować) się przedwcześnie?

Tzn. czy nie włączy się na brązowo i potem będzie dziwnie, bez szans na zwykły reset?

TIA

Reply to
slawek
Loading thread data ...

W dniu 2017-05-18 o 09:49, slawek pisze:

AtMega ma wszystko co trzeba, dużo zależy od programu jaki się napisze no i fuse bity jak ustawi.

Reply to
Janusz

Ok, sprawdziłem:

  1. Przy za niskim Vcc robi wysoką impedancję i stan resetu (z którego jak rozumiem nie wychodzi aż do przywrócenia zasilania).

  1. Jest sztuczka - pomiar Vref przy Vcc jako wzorcu - na kontrolę napięcia Vcc. Bez czegokolwiek (dzienniki, diody, FET) na zewnątrz. Cool.

  2. Tanie chińskie załaduje Li-pol. Jak bateryjka całkiem rozładuje się to CPU stanie. To oczekiwane. Jak się załaduje: ruszy. Przy okazji błyskając diodami, resetując co trzeba itd.

  1. Pozostaje problem jak zmusić jeden konkretny pin do tego aby był akurat Hi w czasie resetu. Tzn. aby układ siedzący na SPI nie myślał że jest wybrany przez CS kiedy akurat SPI służy do ISP. Wychodzi na to że dać 1M do +V na sztywno. Pociągnie to, a normalnie nie będzie przeszkadzać. Te parę uA nie powinny być dramatyczne dla bateryjki.

  2. Przez bootloader nie da się ustawić fuse bitów. Stąd konieczność dogadania się przez SPI.

  1. Teoretycznie może powstać zombie: Atmega będzie off, a współpracujące układy nadal on. Nie widzę jak Atmega mogłaby w warunkach bycia off podjąć działania dla zrobienie off innym. Takie coś da się zrobić choćby przez CS każdego układu: dać opór 1M do Vcc ew. Gnd.

Reply to
slawek

moja wiedza na temat arduino jest bardzo podstawowa. ale na zdrowy rozum, układ który nie działa, nie bardzo może sterować czymkolwiek, albo decydować o tym czy się załączy czy nie. to musisz rozwiązać zewnętrznie. I jak się nad tym zastanowić to jest to stosunkowo proste. Niech owa atmega podczas pracy "trzyma" przekaźnik w górze. jak przekaźnik klapnie na "dół", wszelkie dodatkowe układy dowiedzą się że przestała działać

ToMasz

PS. oczywiście bez przekażnika też się da, ale tak jest bardzeij obrazowo

Reply to
ToMasz

Przekaźnik odpada: za prądożerny. Można pokombinować FET ami.

To będą sensory, ich (niepotrzebna) praca nie ma znaczenia w warunkach wejścia Atmegi w reset przy zbyt niskim napięciu zasilania. Fakt że nadal będą rozładować baterię jest do zaakceptowania.

Inaczej przy sleep/hibernacji. Piny out zachowują swój stan. Więc można wyłączyć zasilanie (zewnętrznych) obwodów. Czy to poprzez odpowiednie wejścia (rozmaite enable itp.), czy też przez ekstra FET sterujący ich zasilaniem.

Ogólnie chodzi o to, aby urządzenie nie musiało mieć ani przycisku power, ani przycisku reset. A jedyną rzeczą jaką robi użytkownik było ładowanie.

Czyli uniknięcie sytuacji gdy bateria rozładowuje się choć urządzenie nie było używane, a więc przeszło w stan uśpienia.

Reply to
slawek

ATmega w power down (bez zegara) sama z siebie nie wstanie, cos musi ja wybudzic.

Reply to
Adam Wysocki

Że co?

Jakoś goła Atmega, bez kwarcu nawet, startuje mi po zwykłym podłączeniu do baterii. Ale fakt: robi to gdy Vcc rośnie od zera.

Reply to
slawek

Słabo, wez pdf-a od np atmegi 48 i poczytaj, po 1, możesz mierzyć nap baterii bezpośrednio przez prosty dzielnik na dwóch oporach w stosunku do Vref= około 1,1V

Mierząc nap możesz wyłączyć czujniki i procka wcześniej uśpić, a timerem lub WD budzić co np 1 sek i sprawdzać czy już nap rośnie.

Mozna i tak.

Procek ma jeszcze brown-out detection który zrobi Ci reset przy zbyt niskim zasilaniu.

Fusy się ustawia raz przy programowaniu procka.

Atmega 48V chodzi już od 1,8V na 4Mhz zegarze, więc pójdzie Ci na całkiem padniętym li-onie z palcem w D4 :)

Reply to
Janusz

slawek snipped-for-privacy@fakeemail.com napisał(a):

Power down w sensie uśpienia a nie odłączenia zasilania.

Reply to
Grzegorz Niemirowski

Ściślej: wprowadzi w stan resetu z którego wyjście nastąpi gdy napięcie będzie w normie.

Reply to
slawek

Istnieją przekaźniki bistabilne. (Np. DS2E-SL2-DC5V) Jeśli nie będzie klepany co chwilę trudno mu zarzucić prądożerność.

Reply to
Pcimol

Ja bym zrobił jakiś prosty układ, który odcina zasilanie procesora poniżej określonego (zbliżonego do minimum poprawnego działania) zasilania. Najlepiej z małą histerezą, żeby uniknąć niestabilności.

Oczywiście sam mcu też musi mieć brownout włączony. Wtedy ryzyko, że coś pójdzie nie tak będzie minimalne.

Reply to
sundayman

Zasil ten procesor z baterii litowej aby cały czas był na chodzie, niezależnie od akumulatora, oczywiście ze średnim poborem prądu np. 10uA. Po ponad 12 latach wymieniasz baterię, ale przez ten czas masz pewność, że nie wejdzie w jakieś stany nieustalone.

jp

Reply to
jacek pozniak

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.