Witam.
Schemat całego układu:
Przed położeniem uC do snu ustawiam stany wysokie na bazach tranzystorów (zmierzyłem prąd samych tranzystorów, poniżej 0.00uA bo miernik nie chwyta).
Ustawiam wszystkie pozostałe piny w stan wysoki oprócz: pinów przycisków S1-S4 które mają być masą dla pinu przerwania INT0 (który ustawiam jako wejście i podciągam wewnętrznie), i pinu PB.1 który wyłącza dzielnik R/R do mierzenia napięcia.
Wsio działa, ale procesor zasilany 2V w trybie power-down pobiera aż 9uA, gdzie producent obiecuje złote góry i mówi o 0.1uA przy 1.8V. Co tu nie gra? Chciałbym jeszcze zjechać z tym prądem bo całość zasilana jest z bateryjki pastylkowej CR2032. Program w bascomie, ale nie sądze że to jest przyczyną. Czy ktoś ma jakieś doświadczenia z takim prockiem? Czy powinienem coś jeszcze ręcznie wyłączać? (ADC wyłączam od razu po dokonaniu pmiaru). Fragment kodu:
Konfiguracja przerwania:
Jeśli program zdecyduje że chce przejść w power-down.
I tak, wiem że mam jeszcze wybudzanie przez pin-change ale chcem żeby było to kompatybilne z Atmega8.
Schemat całego układu:
Przed położeniem uC do snu ustawiam stany wysokie na bazach tranzystorów (zmierzyłem prąd samych tranzystorów, poniżej 0.00uA bo miernik nie chwyta).
Ustawiam wszystkie pozostałe piny w stan wysoki oprócz: pinów przycisków S1-S4 które mają być masą dla pinu przerwania INT0 (który ustawiam jako wejście i podciągam wewnętrznie), i pinu PB.1 który wyłącza dzielnik R/R do mierzenia napięcia.
Wsio działa, ale procesor zasilany 2V w trybie power-down pobiera aż 9uA, gdzie producent obiecuje złote góry i mówi o 0.1uA przy 1.8V. Co tu nie gra? Chciałbym jeszcze zjechać z tym prądem bo całość zasilana jest z bateryjki pastylkowej CR2032. Program w bascomie, ale nie sądze że to jest przyczyną. Czy ktoś ma jakieś doświadczenia z takim prockiem? Czy powinienem coś jeszcze ręcznie wyłączać? (ADC wyłączam od razu po dokonaniu pmiaru). Fragment kodu:
Konfiguracja przerwania:
Config Int0 = Low Level
On Int0 Pobudka
Pobudka:
Return
Jeśli program zdecyduje że chce przejść w power-down.
If Ktory_napis = 0 Then
Disable Timer0
Disable Timer1
Disable Timer2
Timer0 = 0
Timer1 = 0
Znak_next = 1
Portb = &B01111101
Portc = &B111111
Portd = &B00011111
Config Portd.2 = Input
Set Portd.2
Waitms 10
Enable Int0
Powerdown
Disable Int0
Config Portd.2 = Output
Enable Timer0
Enable Timer1
Enable Timer2
End If
I tak, wiem że mam jeszcze wybudzanie przez pin-change ale chcem żeby było to kompatybilne z Atmega8.