Jak przełączać moc mikrokontrolera za pomocą przycisku?

13

Mam urządzenie mikrokontrolera z zasilaniem bateryjnym. Obecnie przełączam zasilanie prostym włącznikiem / wyłącznikiem. Chcę przełączać zasilanie za pomocą jednego przycisku z minimalną modyfikacją schematu (prawdopodobnie programu mikrokontrolera) i bez zużycia, gdy urządzenie jest wyłączone. Jak mogę to zrobić?

DODANO . Znam następującą sztuczkę:

wprowadź opis zdjęcia tutaj

Tutaj na początku mikrokontroler ustawia PB3 na wysoki, a tym samym utrzymuje moc urządzenia. Ale to nie jest rozwiązanie mojego problemu, ponieważ muszę również wyłączyć urządzenie, naciskając S1.

DODANO . Czy mogę wykluczyć VT2 z obwodu (tj. Podstawa napędu mikrokontrolera VT1 bezpośrednio)?


źródło
Czy przyciski zatrzaskowe byłyby akceptowalnym rozwiązaniem?
AndrejaKo
@AndrejaKo: Nie.
W takim razie powodzenia! Jednym ze sposobów jest ładowanie kondensatora, gdy przycisk jest wciśnięty, a następnie próba aktywacji czegoś za pomocą, na przykład MOSFET, ale to zależy od czasu naciśnięcia przycisku.
AndrejaKo,
@ tcrosley To nie jest duplikat, pytanie, które odsyłasz, nie wymaga przełączania zasilania po naciśnięciu przycisku, po prostu wymaga włączenia, aby umożliwić mikrokontrolerowi wyłączenie się.
Bruno Ferreira,
@BrunoFerreira ok, zgadzam się - usunąłem mój wcześniejszy komentarz. W tej odpowiedzi dodałem wiersz do mikro, ale nie uwzględniłem zenera, jak to zrobiliście w odpowiedzi, co jest dobrym dodatkiem.
tcrosley,

Odpowiedzi:

6

W oparciu o podany obwód można po prostu dodać szeregowo diodę zaraz po przełączniku (S1) (katoda podłączona do przełącznika), a następnie można użyć wejścia do wykrycia, czy przełącznik został ponownie naciśnięty, jeśli tak, wyłącz PB3.
Wymagana modyfikacja

Dioda Zenera chroni wejście PIC przed napięciem pochodzącym z zasilacza.

Bruno Ferreira
źródło
Jaka jest rola diody?
m.Alin
@ m.Alin Dioda tutaj pozwala mikrokontrolerowi wykryć, kiedy przełącznik zostanie zwolniony. Gdybyśmy nie mieli diody, kiedy VT1 zaczyna przewodzić, zawsze mielibyśmy wysoki poziom na wejściu mikrokontrolera.
Bruno Ferreira,
8

Jak naprawdę potrzebujesz być? Wiele nowoczesnych mikrokontrolerów ma prąd spania znacznie poniżej prądu samorozładowania nawet małych baterii. Możesz nacisnąć przycisk, aby po prostu poprowadzić styk we / wy mikro, który następnie przełącza się pomiędzy trybem uśpienia a trybem aktywnym po każdym naciśnięciu przycisku. Potrzebne będzie pewne ogłaszanie, ale to wszystko możliwe w oprogramowaniu układowym.

Tego rodzaju metoda włączania / wyłączania staje się obecnie dość powszechna. Kiedy zajmuje tylko µA, mikrokontroler nie musi być naprawdę wyłączony, tylko śpi, co może zrobić pod własną kontrolą. Linia przycisków musi być połączona z czymś, co może spowodować, że mikro obudzi się ze snu, ale prawie każda mikro ma co najmniej jedną z nich, zwykle kilka.

Olin Lathrop
źródło
1
Zgadzam się, wiele moich projektów nie ma nawet przycisku włączania / wyłączania, po prostu budzą się po naciśnięciu przycisku.
Oli Glaser,
Moje urządzenie zawiera także wyświetlacz LCD i inne urządzenia peryferyjne. Dlatego też muszę to wyłączyć.
4
@ użytkownik: To nie znaczy, że musisz wyłączyć mikro, tylko inna logika. Mikro może myśleć o włączaniu / wyłączaniu, dzięki czemu może kontrolować zasilanie innych urządzeń, dzięki czemu są one wyłączone, gdy mikro śpi. Oznacza to, że masz celowe wyjście cyfrowe, które może być dowolną polaryzacją dogodną do włączania i wyłączania rzeczy, i nie musisz implementować przełączania w sprzęcie analogowym.
Olin Lathrop
Mimo że wiele mikrokontrolerów ma bardzo niskie prądy uśpienia, regulatory jakości kosztują więcej niż niewygodne. Regulator, który wykorzystuje dodatkowe 250uA (lub nawet 2,5mA) może być w porządku, jeśli musi być aktywny tylko wtedy, gdy urządzenie jest w użyciu, ale byłby całkowicie nie do przyjęcia, gdyby musiał być aktywny, nawet gdy urządzenie zostało „wyłączone” . Jeden produkt, który zaprojektowałem kilka lat temu, nawet nie używał regulatora - zamiast tego użył trzech tranzystorów i około siedmiu rezystorów, aby zapewnić nominalne napięcie 5 V z kontrolowanym przez procesor wyłączaniem. Według standardów „regulatora” jego dokładność napięcia była naprawdę
kiepska
1
@OlinLathrop: Dwa 2N3094 i 2N3906 kosztują mniej niż 0,07 USD. Nawet jeśli jedna liczba wskazuje, że dziesięć elementów kosztuje jeden grosz za montaż, to wciąż oszczędza ani grosza za jednostkę - jeśli wyprodukowanych zostanie 100 000 sztuk, to 10 000 USD. Jeśli produkt nie będzie miał tego rodzaju wolumenu, może nie warto próbować wycisnąć 0,10 USD; gdyby dzisiejsze regulatory były dostępne, kiedy je zaprojektowałem, i gdybym nie wiedział z góry, jak dobrze by się sprzedawał, prawdopodobnie po prostu użyłbym regulatora z kontrolą w trybie gotowości, ale mój obwód działa i jest tańszy niż cokolwiek innego; nie ma powodu, aby nie używać go dalej.
supercat
3

EDYCJA - po odbiciu obwód poniżej (który pozostawię do odniesienia) prawdopodobnie najlepiej nadaje się do stosowania w obwodach bez mikro. Jak wspomniano w innych odpowiedziach, chyba że naprawdę nie możesz sobie pozwolić na kilka uA, nie ma sensu nie używać mikroprocesora do sterowania przełączaniem mocy, ponieważ wykorzystuje mniej komponentów i może być dokładnie kontrolowany.
Najprostsza wersja może być czymś w rodzaju wejścia IOC (przerwać przy zmianie) z podciąganiem, z przyciskiem do uziemienia. Mikrofon cały czas jest zasilany i kontroluje tranzystor MOSFET (z podciąganiem od bramki do źródła) przez resztę obwodu. Kiedy zasypia, brama unosi się, aby wyłączyć obwód.

Obwód odniesienia:

Przełącznik

Na początku P-MOSFET jest wyłączony, więc nie ma prądu bazowego w Q2, który również jest wyłączony. Q1 jest wyłączone, więc Q1c ma napięcie 5 V. Obwód jest statyczny.

Kiedy S1 (zignoruj ​​węzły + i -, są one dostępne dla celów wyzwalających SPICE), 5V w Q1c jest podłączone do podstawy Q2, włączając je. Spowoduje to przyciągnięcie bramki P-MOSFET do ziemi, a także włączenie jej.
R4 widzi teraz 5 V, a gdy S1 jest zwolniony, zapewnia podstawę Q2 prądem potrzebnym do utrzymania go w stanie otwartym (a zatem także MOSFET włączony) Q1 jest również włączony, gdy prąd przez R2 ładuje C1 do ~ 600 mV, w którym punkcie Q1c jest <200mV (tzn. Q1 jest włączony)
Obwód jest teraz ponownie statyczny.

Po ponownym naciśnięciu S1, Q1 obniża prąd z R4 (który utrzymuje Q2 włączony), wyłączając Q2. R1 wyciąga bazę MOSFET do 5 V i wyłącza ją ponownie.

Oto symulacja (V (push) high oznacza, kiedy przycisk zostanie wciśnięty):

ToggleSwitchSim

Możemy również zobaczyć po wyłączeniu prądu głowic do zera (gdy C1 rozładowuje się, a Q1 wyłącza się), więc obwód nie zużywa energii w stanie wyłączonym (kursor dla I (V1) wynosi 19,86s i mierzy 329nA):

ToggleSwitchPower

Oryginalny pomysł na obwód nie jest mój, pochodzi od Dave'a Jonesa z EEVblog .

Oli Glaser
źródło
1

Jak sugerował Bruno Ferreira, najłatwiejszym sposobem, aby przycisk działał jak przełącznik „wyłączania”, jest zmiana obwodu, aby procesor wiedział, kiedy przycisk zostanie wciśnięty. Myślę, że można rozsądnie wykorzystać rezystory do ochrony wejścia procesora przed napięciami przekraczającymi VDD bez potrzeby użycia Zenera.

Oto ogólny szkic projektu obwodu, którego możesz użyć. Prawa połowa reprezentuje zachowanie procesora, a ja użyłem kombinacji tranzystora, Zenera i rezystora, aby zastąpić regulator. Wyjście procesora jest reprezentowane za pomocą przełącznika analogowego jego VDD, a nie bramki, ponieważ bramki w tym symulatorze zawsze generują wyjście + 5 V.

Kluczowym aspektem obwodu, który może powodować problemy, jeśli zostanie zignorowany, jest to, że jest zaprojektowany tak, że procesor nie może włączyć obwodu, chyba że jego VDD wynosi co najmniej ~ 3,6 wolta; Skonfigurowałem tak symulator, aby procesor zawsze próbował włączyć swoją moc wyjściową, gdy jego VDD jest poniżej 3,5 wolta. Widziałem wiele projektów, w których zakłada się, że procesory nie będą próbowały generować wysokiej logiki, gdy ich moc zanika. To założenie może się sprawdzać w przypadku niektórych partii chipów używanych do testowania, ale może się nie powieść w przypadku innych partii chipów używanych w produkcji na pełną skalę. Zachowanie większości procesorów nie jest określone w warunkach podnapięciowych; dobry projekt powinien być tak zaprojektowany, aby zachowanie procesora w takich warunkach nie miało znaczenia (uwaga: prawdopodobnie bezpiecznie jest założyć, że procesor, który nie jest „ t wyraźnie zaprojektowane do generowania napięć wyższych niż jakiekolwiek przyłożone napięcie nie zacznie magicznie tego robić; Nie sądzę, aby istniała wyraźna specyfikacja, ale myślę, że w większości przypadków można to bezpiecznie wywnioskować).

supercat
źródło