Jak zmniejszyć pobór prądu do 2mA w projekcie z AT90S8535 i zasilaniu bateryjnym?
=?iso-8859-2?Q?Ile_ten_AVRek_pr=B1du_=BFre!!?=
From: "Konop" <konop13_at_nospam_poczta.onet.pl>
Subject: =?iso-8859-2?Q?Ile_ten_AVRek_pr=B1du_=BFre!!?=
Date: Fri, 21 Jun 2002 23:55:55 +0200
   
Witam   
    Buduję ostatnio urządzenie oparte na procku AT90S8535, którego ważnym   
elementem jest zegar. Urządzenie zasilane jest z sieci, a procek ma   
dodatkowo awaryjne zasilanie bateryjne. I tu pojawia się problem: jak   
zmniejszyć pobór prądu. W momencie wykrycia zaniku napięcia sieciowego   
procek przechodzi w tryb PowerSave. Jednak co sekundę budzi go przerwanie.   
Wtedy on dodaje sekundkę, raz na minutę przeleci EEPROMA i znów "idzie   
spać". Dodatkowo wyłączam jeszcze przetwornik AC (w Bascomie: Stop Adc).   
Niestety, mój mierniczek wskazał mi pobór prądu rzędu 8mA, co przy małych   
bateryjkach LR44 daje jakieś 16 godzin pracy... to trochę mało. Warto byłoby   
zejść do katalogowych 2mA (dla PowerSave), bo niżej raczej byłoby trudno...   
Co mogę jeszcze zrobić, aby zmniejszyć pobór prądu? Aha, procka taktuję   
8MHz... czy nie da się tego programowo spowolnić??   
Pozdrawiam   
Konop   
From: "Tomasz Bednarz" <tb_at_nospam_internet.pl>
Subject: Re: Ile ten AVRek prądu żre!!
Date: Sat, 22 Jun 2002 00:02:27 +0200
   
Co mogę jeszcze zrobić, aby zmniejszyć pobór prądu? Aha, procka taktuję   
8MHz... czy nie da się tego programowo spowolnić??   
   
Zastosuj jakis ukladzik zegarek np I2C i tylko czytaj go z procka   
TB   
From: zielpro_at_nospam_cavern.pl (ziel)
Subject: =?iso-8859-2?Q?RE:_Ile_ten_AVRek_pr=B1du_=BFre!!?=
Date: 22 Jun 2002 00:51:53 +0200
   
zmniejszyć pobór prądu. W momencie wykrycia zaniku napięcia sieciowego   
procek przechodzi w tryb PowerSave. Jednak co sekundę budzi go przerwanie.   
A jak go wprowadzasz w stan Powersave?   
Wtedy on dodaje sekundkę, raz na minutę przeleci EEPROMA i znów "idzie   
spać". Dodatkowo wyłączam jeszcze przetwornik AC (w Bascomie: Stop Adc).   
Zbędne.   
Niestety, mój mierniczek wskazał mi pobór prądu rzędu 8mA, co przy małych   
bateryjkach LR44 daje jakieś 16 godzin pracy... to trochę mało.   
Warto byłoby   
zejść do katalogowych 2mA (dla PowerSave), bo niżej raczej byłoby   
trudno...   
katalogo przy 4 MHz i 3V zasilania to 15uA.   
Prawdopodobnie włącza Ci się jakieś przerwanie nie wyłączone, a jego   
wyprowadzenie   
wisi w powietrzu, lub jest w trybie Idle.   
pzdr   
Artur   
--    
Archiwum grupy: http://niusy.onet.pl/pl.misc.elektronika  
From: "Konop" <konop13_at_nospam_poczta.onet.pl>
Subject: =?iso-8859-2?Q?Re:_Ile_ten_AVRek_pr=B1du_=BFre!!?=
Date: Sat, 22 Jun 2002 18:33:56 +0200
   
A jak go wprowadzasz w stan Powersave?   
   
Normalnie ;) W BASCOMIE po prostu wystarczy wpisać Powersave i już...   
(podobno...)   
Zbędne.   
   
Powaga?? Bo ja słyszałem, że nie... Bo jeśli tego nie zrobię, to co każdą   
sekundę , gdy procek będzie się budzić zasilony zostanie jeszcze układ ADC,   
a tak - nie...   
katalogo przy 4 MHz i 3V zasilania to 15uA.   
Prawdopodobnie włącza Ci się jakieś przerwanie nie wyłączone, a jego   
wyprowadzenie   
wisi w powietrzu, lub jest w trybie Idle.   
   
Nie, włączone jest tylko przerwanie z zegarka... poza tym mam kwarc 8MHz, a   
to 15uA to chyba dotyczy Power Down, a nie Save... Choć - nie ukrywam - mogę   
się mylić...   
Dzięki za odpowiedź   
Pozdrawiam   
Konop   
From: zielpro_at_nospam_cavern.pl (ziel)
Subject: =?iso-8859-2?Q?RE:_Ile_ten_AVRek_pr=B1du_=BFre!!?=
Date: 22 Jun 2002 20:16:48 +0200
   
Normalnie ;) W BASCOMIE po prostu wystarczy wpisać Powersave i już...   
(podobno...)   
Teoretycznie tak tylko, żę budzi go zbocze opadające na wyprowadzeniu   
portd.3 INT1 lub stan niski na wejściu INT0 portd.2, więc jeśli nie zadbałeś   
o wysłanie "1" na to wyprowadzenie, to szybciej wyskakuje z PS niż w niego   
wchodzi.   
Powaga?? Bo ja słyszałem, że nie... Bo jeśli tego nie zrobię, to co każdą   
sekundę , gdy procek będzie się budzić zasilony zostanie jeszcze   
układ ADC,   
a tak - nie...   
A bo nic nie napisałeś, że używałeś wcześniej ADC w trybie FREE.   
to 15uA to chyba dotyczy Power Down, a nie Save... Choć - nie   
ukrywam - mogę   
się mylić...   
Przy PD ma 5uA, przy 4MHz i 3V.   
Dzięki za odpowiedź   
Pozdrawiam   
Konop   
pzdr   
Artur   
--    
Archiwum grupy: http://niusy.onet.pl/pl.misc.elektronika  
From: Marek Lewandowski <nospam_at_nospam_poczta.onet.pl>
Subject: =?iso-8859-2?Q?Re:_Ile_ten_AVRek_pr=B1du_=BFre!!?=
Date: Fri, 21 Jun 2002 23:51:45 GMT
   
Konop wygenerował manualnie w wiadomości <af0796$qi$1_at_nospam_news.onet.pl>   
udostępnionej publicznie dnia Fri, 21 Jun 2002 23:55:55 +0200 co   
następuje:   
Witam   
Buduję ostatnio urządzenie oparte na procku AT90S8535, którego ważnym   
elementem jest zegar. Urządzenie zasilane jest z sieci, a procek ma   
dodatkowo awaryjne zasilanie bateryjne. I tu pojawia się problem: jak   
zmniejszyć pobór prądu. W momencie wykrycia zaniku napięcia sieciowego   
procek przechodzi w tryb PowerSave. Jednak co sekundę budzi go przerwanie.   
Wtedy on dodaje sekundkę, raz na minutę przeleci EEPROMA i znów "idzie   
spać". Dodatkowo wyłączam jeszcze przetwornik AC (w Bascomie: Stop Adc).   
Niestety, mój mierniczek wskazał mi pobór prądu rzędu 8mA, co przy małych   
   
8mA?   
1) bateria zasila coś więcej niż tylko proca   
2) proc wcale nie siedzi w powersave   
3) proc co prawda w poversave wchodzi, ale coś go stamtąd piorunem   
wyciąga   
--    
Marek Lewandowski    ICQ# 10139051  
locustXpoczta|onet|pl  
http://locust.republika.pl  
[! Odpowiadaj pod cytatem. Tnij cytaty. Podpisuj posty. !]  
From: "Jacek Bogusz" <jacek.bogusz_at_nospam_wp.pl>
Subject: Re: Ile ten AVRek prądu żre!!
Date: Sat, 22 Jun 2002 10:33:42 +0200
   
1) bateria zasila coś więcej niż tylko proca   
   
Cześć! Też mi się tak wydaje, gdzieś tam w opisie nawet pojawia się "raz na   
minutę przeleci eeproma". W praktyce zasilanie pobierane z baterii warto   
"wydzielić" chociaż układem diodowym tak, aby zasilane był tylko niezbędne   
układy.   
JAcek   
From: "Konop" <konop13_at_nospam_poczta.onet.pl>
Subject: =?iso-8859-2?Q?Re:_Ile_ten_AVRek_pr=B1du_=BFre!!?=
Date: Sat, 22 Jun 2002 18:42:52 +0200
   
Jak już napisałem w odpowiedzi na post Marka Lewandoswkiego, EEPROM jest   
wewnątrz procka i nie mogę go nie zasilać...   
Konop   
From: Romuald Bialy <romek_b_at_nospam_o2.pl>
Subject: Re: Ile ten AVRek =?iso-8859-2?Q?pr=B1du=20=BFre=21=21?=
Date: Sat, 22 Jun 2002 18:32:46 +0200
   
Marek Lewandowski wrote:   
spać". Dodatkowo wyłączam jeszcze przetwornik AC (w Bascomie: Stop Adc).   
Niestety, mój mierniczek wskazał mi pobór prądu rzędu 8mA, co przy małych   
8mA?   
1) bateria zasila coś więcej niż tylko proca   
2) proc wcale nie siedzi w powersave   
3) proc co prawda w poversave wchodzi, ale coś go stamtąd piorunem   
wyciąga   
   
4) proc wchodzi w powersafe, ale na jego lapkach pozostaja napiecia   
ktore zasilaja reszte ukladu.   
--    
	Pozdrawiam....  Romuald Bialy  
		E'mail: romek_b_at_nospam_o2.pl  
		WWW:    http://www.polbox.com/r/romekb	  
		yampp:  http://www.yamppsoft.prv.pl  
From: "Konop" <konop13_at_nospam_poczta.onet.pl>
Subject: =?iso-8859-2?Q?Re:_Ile_ten_AVRek_pr=B1du_=BFre!!?=
Date: Sat, 22 Jun 2002 20:04:23 +0200
   
4) proc wchodzi w powersafe, ale na jego lapkach pozostaja napiecia   
ktore zasilaja reszte ukladu.   
   
A czy któreś z elementów urządzenie może tyle prądu pobierać?? Są to: buzzer   
(nie piszczy), LCD (nic na nim nie widać, podświetlanie wyłączone), 3   
tranzystory, termometr, potencjometr do regulacji kontrastu (tylko 1k!!!) i   
to już chyba wszystko. Czy to może być coś z tego. Problem polega na tym, że   
z 8KB mam wolne 8B pamięci i obawiam się, że przełączanie portów może się   
już nie zmieścić.   
Dzięki   
Pozdrawiam   
Konop   
From: zielpro_at_nospam_cavern.pl (ziel)
Subject: =?iso-8859-2?Q?RE:_Ile_ten_AVRek_pr=B1du_=BFre!!?=
Date: 22 Jun 2002 20:24:33 +0200
   
A czy któreś z elementów urządzenie może tyle prądu pobierać?? Są   
to: buzzer   
(nie piszczy), LCD (nic na nim nie widać, podświetlanie wyłączone), 3   
tranzystory, termometr, potencjometr do regulacji kontrastu   
(tylko 1k!!!) i   
zakładając, że wyprowadzenia są jako wyjścia i mają ustawioną 1, a w bazach   
tranzystorów siedzą oporniki 10k :   
 5V-0,7=4,3V ; 4,3V/10k=0,43mA ; 3*0,43=1,29mA   
 5V/1k=5mA   
 razem 6,3mA   
to już chyba wszystko. Czy to może być coś z tego. Problem polega   
na tym, że   
z 8KB mam wolne 8B pamięci i obawiam się, że przełączanie portów może się   
już nie zmieścić.   
Zmieścisz.   
ddra=&B00000000   
ddrb=&B00000000   
ddrc=&B00000000   
ddrd=&B00000000   
porta=&B00000000   
portb=&B00000000   
portc=&B00000000   
portd=&B00001100 - te jedynki na wszelki wypadek   
nie pamiętam dokładnie jak ma konfigurowane porty 8535   
Dzięki   
Pozdrawiam   
Konop   
pzdr   
Artur   
--    
Archiwum grupy: http://niusy.onet.pl/pl.misc.elektronika  
From: "Konop" <konop13_at_nospam_poczta.onet.pl>
Subject: =?iso-8859-2?Q?Re:_Ile_ten_AVRek_pr=B1du_=BFre!!?=
Date: Sat, 22 Jun 2002 21:09:01 +0200
   
zakładając, że wyprowadzenia są jako wyjścia i mają ustawioną 1, a w   
bazach   
tranzystorów siedzą oporniki 10k :   
5V-0,7=4,3V ; 4,3V/10k=0,43mA ; 3*0,43=1,29mA   
5V/1k=5mA   
razem 6,3mA   
   
Tak, ale to tranzystory PNP, z ktorych 2 wlaczone sa tak, ze: E - do 12V,   
C - do przekaznika i leda, B - przez rezystor do procka, a jeden podłączony   
jest tak: B - przez rezystorek  22k do procka, E - do masy, C - do katody   
podświetlenia wyświetlacza. A to chyba tyle prądu nie ciągnie. Zastanawia   
mnie tylko, czy to nie może być LCDek... choć na nim nic nie widać!   
Konop   
From: "Zbych" <bzb_at_nospam_poczta.onet.pl>
Subject: Re: =?iso-8859-2?Q?Re:_Ile_ten_AVRek_pr=B1du_=BFre!!?=
Date: Sun, 23 Jun 2002 10:52:56 +0200
   
Tak, ale to tranzystory PNP, z ktorych 2 wlaczone sa tak, ze: E - do   
12V, C - do przekaznika i leda, B - przez rezystor do procka   
   
To ja mam pytanie: ten przekaznik wylacza sie kiedykolwiek ?   
Jesli procesor jest zasilany 5V, a na emiterze masz 12V to    
nijak nie da sie wylaczyc tranzystora nawet wprowadzajac pin   
wyjsciowy w stan wysokiej impedancji - wlacza sie diody zabezpieczajace   
wbudowane w porty.   
Jesli sie myle to niech mnie ktos poprawi.   
From: "Konop" <konop13_at_nospam_poczta.onet.pl>
Subject: =?iso-8859-2?Q?Re:_Re:_Ile_ten_AVRek_pr=B1du_=BFre!!?=
Date: Sun, 23 Jun 2002 12:53:24 +0200
   
To ja mam pytanie: ten przekaznik wylacza sie kiedykolwiek ?   
Jesli procesor jest zasilany 5V, a na emiterze masz 12V to   
nijak nie da sie wylaczyc tranzystora nawet wprowadzajac pin   
wyjsciowy w stan wysokiej impedancji - wlacza sie diody zabezpieczajace   
wbudowane w porty.   
Jesli sie myle to niech mnie ktos poprawi.   
   
Masz rację, były z tym problemy. A wzięło się to stąd, że jestem w ogóle   
niedoświadczony jeśli idzie o mikrokontrolery, a musiałem (albo chciałem)   
coś takiego sklecić. Myślałem, że AVRki to tak jak '51 i że po starcie mają   
wszędzie stany wysokie. Gdybym zastosował NPNki, to by się włączały   
przekaźniki przy starcie... Więc bez zastanowienia zainstalowałem PNPki...   
Oczywiście, to nie działało, więc zrobiłem taką fajną konstrukcję. Użyłem   
dwóch rezystorów i jednej diody Zenera (na każdy z przekaźników). Baza   
połączona jest z emiterem rezystorkiem (1k6), a baza do procka podpięta jest   
przez szereg: rezystor (8k2) i dioda Zenera (5V1). A to, to już działa... ;)   
Nie jest to najlepsze rozwiązanie, ale kiedy miałem zmontowaną płytkę, to   
przeróbka obwodów sterowania na takie z NPNkami byłoby już zbyt trudne...   
Pozdrawiam   
Konop   
From: Marek Lewandowski <nospam_at_nospam_poczta.onet.pl>
Subject: =?iso-8859-2?Q?Re:_Ile_ten_AVRek_pr=B1du_=BFre!!?=
Date: Sat, 22 Jun 2002 18:31:50 GMT
   
Konop wygenerował manualnie w wiadomości <af2e31$8vt$1_at_nospam_news.onet.pl>   
udostępnionej publicznie dnia Sat, 22 Jun 2002 20:04:23 +0200 co   
następuje:   
4) proc wchodzi w powersafe, ale na jego lapkach pozostaja napiecia   
ktore zasilaja reszte ukladu.   
A czy któreś z elementów urządzenie może tyle prądu pobierać?? Są to: buzzer   
(nie piszczy), LCD (nic na nim nie widać, podświetlanie wyłączone), 3   
tranzystory, termometr, potencjometr do regulacji kontrastu (tylko 1k!!!) i   
1k między +5V a masę pobiera 5mA.   
--    
Marek Lewandowski    ICQ# 10139051  
locustXpoczta|onet|pl  
http://locust.republika.pl  
[! Odpowiadaj pod cytatem. Tnij cytaty. Podpisuj posty. !]  
From: "Konop" <konop13_at_nospam_poczta.onet.pl>
Subject: =?iso-8859-2?Q?Re:_Ile_ten_AVRek_pr=B1du_=BFre!!?=
Date: Sat, 22 Jun 2002 18:41:50 +0200
   
8mA?   
   
Tak... to nie jestst wersja L (90LS8535)... I jest taktowana 8MHz... Nie   
sprawdzałem ile ciągnie nie w Power Save...   
1) bateria zasila coś więcej niż tylko proca   
   
Procek jest zasilany przez diodki, więc to nie wchodzi w grę... Faktem jest,   
że nie przełączam portów procka w stan HiZ, więc może tamtędy coś ucieka...   
Do procka podpięte są: 4 przyciski, 2 tranzystory PNP, 1 tranzystor NPN,   
buzzzer z generatorkiem, LCD, złącze ISP, termometr LM335 i to chyba   
wszystko... No oczywiście 2 rezonatorki (8MHz i 32768Hz). Więc nie wiem,   
którędy to może uciekać... A ten EEPROM, którego co sekundę czytam jest w   
procku, więc nie mogę zrezygnować z jego zasilania...   
2) proc wcale nie siedzi w powersave   
   
Hmmmmm... czy można to jakoś łatwo sprawdzić??   
3) proc co prawda w poversave wchodzi, ale coś go stamtąd piorunem   
wyciąga   
   
A co może procka wyciągnąć?? I ile trwa przejście do Power Save??   
Dzięki za odpowiedź   
Konop   
From: "Konop" <konop13_at_nospam_poczta.onet.pl>
Subject: =?iso-8859-2?Q?Re:_Ile_ten_AVRek_pr=B1du_=BFre!!?=
Date: Sat, 22 Jun 2002 20:59:49 +0200
   
Ha! Teraz jeszcze zauwazylem, ze przy zasilaniu sieciowym uklad pobiera   
sobie 12uA z baterii... nie wiem czemu... to troszkę dużo jak na   
kondensatorek aluminiowy...   
Konop   
PS Zaraz wypróbuję pare rzeczy...   
From: "Konop" <konop13_at_nospam_poczta.onet.pl>
Subject: =?iso-8859-2?Q?Re:_Ile_ten_AVRek_pr=B1du_=BFre!!?=
Date: Sat, 22 Jun 2002 22:30:16 +0200
   
Zrbiłem mały eksperyment. Napisałem taki programik:   
$crystal = 8000000   
Config Pinb.2 = Output   
Set Portb.2   
Wait 1   
Do   
Powersave   
Reset Portb.2   
Waitms 250   
Set Portb.2   
Waitms 250   
Loop   
End   
i zaprogramowałem nim procesor (do pinu B.2 podpięty był Buzzer). Buzzerek   
nie piszczał, więc chyba wisiał w PowerSave... Spojrzałem na amperomierz i o   
mały włos nie spadłem z krzesła - ponad 20 mA. Wyłączyłem bateryjkę, wyjąłem   
procka, włączyłem i było pare uA, a później spadło do 0,0 uA. A gdy   
zwierałem nóżke 3 (= pin b2 procka) do masy, to buzzer piszczał, więc   
zasilanie było...   
Więc o co chodzi?!   
Konop   
From: zielpro_at_nospam_cavern.pl (ziel)
Subject: =?iso-8859-2?Q?RE:_Ile_ten_AVRek_pr=B1du_=BFre!!?=
Date: 22 Jun 2002 23:18:47 +0200
   
mały włos nie spadłem z krzesła - ponad 20 mA. Wyłączyłem   
bateryjkę, wyjąłem   
procka, włączyłem i było pare uA, a później spadło do 0,0 uA. A gdy   
zwierałem nóżke 3 (= pin b2 procka) do masy, to buzzer piszczał, więc   
A te 20mA to żre ciągiem czy też sobie skacze w rytm 250ms?   
To zobacz jeszcze tak:   
$crystal = 8000000   
ddra=&B00000000   
ddrb=&B00000100 ' portb.2 wyjście   
ddrc=&B00000000   
ddrd=&B00000000   
porta=&B00000000   
portb=&B00000100 'dla zagmatwania ;-)   
portc=&B00000000   
portd=&B00001100 - te jedynki na wszelki wypadek   
On int0 intzero nosave   
on int1 intjeden nosave 'bo nic nie robi   
Enable int0   
enable int1   
Enable Interrupts   
Set Portb.2       'a co mi tam ma jeszcze dużo pamięci   
wait 1   
Reset Portb.2   
Waitms 250   
Set Portb.2   
Waitms 250   
Reset Portb.2   
Waitms 250   
Set Portb.2   
Waitms 250   
Do   
Powersave   
Reset Portb.2   
Waitms 250   
Set Portb.2   
Waitms 250   
Loop   
End   
intzero:   
intjeden:   
return   
A teraz wywołaj przerwanie INT0 lub INT1   
zobacz co zrobi patrząc na miliamperomierz.   
A najlepiej odłącz od procka wszystko, a następnie kolejno podłączaj.   
pzdr   
Artur   
--    
Archiwum grupy: http://niusy.onet.pl/pl.misc.elektronika  
From: "Konop" <konop13_at_nospam_poczta.onet.pl>
Subject: =?iso-8859-2?Q?Re:_Ile_ten_AVRek_pr=B1du_=BFre!!?=
Date: Sun, 23 Jun 2002 13:07:05 +0200
   
A te 20mA to żre ciągiem czy też sobie skacze w rytm 250ms?   
   
Ciągle...   
To zobacz jeszcze tak:   
(...)   
A teraz wywołaj przerwanie INT0 lub INT1   
zobacz co zrobi patrząc na miliamperomierz.   
   
Zaprogramowałem, odpaliłem, i dwa piski, potem cisza... 21mA, a przy piskach   
było jakieś 35mA... . Przy przerwaniach znów wzrasta do 35mA, piszczy i   
wraca do 21mA... To jest o tyle dziwne, że program właściwie nie chodzi (bo   
nie piszczy), ale 21mA to on może mieć podczas pracy!!   
A najlepiej odłącz od procka wszystko, a następnie kolejno podłączaj.   
   
Niestety, trochę nie bardzo wiem, jak to zrobić...   
Zastanawia mnie tylko, czy przypadkiem nie powinnem odłączyć od baterii i   
podłączyć tylko do stabilizatora 7805 pinów: AVCC i AREF... Być może to   
układ ADC tyle prądu ciągnie...   
Pozdrawiam   
Konop   
From: marekmSPAM_at_nospam_amelek.gda.pl (Marek Michalkiewicz)
Subject: Re: Ile ten AVRek prądu żre!!
Date: Sun, 23 Jun 2002 12:43:21 +0000 (UTC)
   
Konop <konop13_at_nospam_poczta.onet.pl> wrote:   
Zastanawia mnie tylko, czy przypadkiem nie powinnem odłączyć od baterii i   
podłączyć tylko do stabilizatora 7805 pinów: AVCC i AREF... Być może to   
układ ADC tyle prądu ciągnie...   
   
AVCC nie powinno się różnić o więcej niż 0,3V od VCC, więc raczej nie.   
AREF za to odłączyć całkiem gdy się nie korzysta - sprytnie nie liczą   
tego do całkowitego poboru prądu, a jest to typowo 10k do masy...   
Jeszcze jedna pułapka - przed "sleep" wyłączyć ADC (ADEN=0), inaczej   
startuje konwersję (ADC Noise Canceler Function).  Może to ten problem?   
Kiedy wyprodukowany ten AT90S8535?  Do jakichś starych (do 9836 jeśli   
dobrze pamiętam) była errata że pobierają za dużo prądu...   
Marek   
From: "Konop" <konop13_at_nospam_poczta.onet.pl>
Subject: =?iso-8859-2?Q?Re:_Ile_ten_AVRek_pr=B1du_=BFre!!?=
Date: Sun, 23 Jun 2002 15:27:25 +0200
   
AVCC nie powinno się różnić o więcej niż 0,3V od VCC, więc raczej nie.   
AREF za to odłączyć całkiem gdy się nie korzysta - sprytnie nie liczą   
tego do całkowitego poboru prądu, a jest to typowo 10k do masy...   
   
Te 10k to problemu nie rozwiązują. Przy 5V pociągnie to 0,5mA, a co z   
pozostałymi 20mA??   
Jeszcze jedna pułapka - przed "sleep" wyłączyć ADC (ADEN=0), inaczej   
startuje konwersję (ADC Noise Canceler Function).  Może to ten problem?   
   
W BASCOMIE wpisuję "Stop Adc", czy to wystarczy??   
Kiedy wyprodukowany ten AT90S8535?  Do jakichś starych (do 9836 jeśli   
dobrze pamiętam) była errata że pobierają za dużo prądu...   
 To jest 0125, więc tego błędu już być chyba nie powinno...   
Pozdrawiam   
Konop   
From: marekmSPAM_at_nospam_amelek.gda.pl (Marek Michalkiewicz)
Subject: Re: Ile ten AVRek prądu żre!!
Date: Sun, 23 Jun 2002 18:02:08 +0000 (UTC)
   
Konop <konop13_at_nospam_poczta.onet.pl> wrote:   
Te 10k to problemu nie rozwiązują. Przy 5V pociągnie to 0,5mA, a co z   
pozostałymi 20mA??   
   
Nie wiem, tak tylko wspomniałem o dodatkowym problemie, na który warto   
zwrócić uwagę jak już się znajdzie problem z tymi 20 :-)   
Jeśli jest jakieś źródło napięcia odniesienia (np. TL431), to warto mu   
podawać zasilanie z któregoś portu (sterowanego programowo) a nie VCC.   
W BASCOMIE wpisuję "Stop Adc", czy to wystarczy??   
   
Nie wiem, używam GCC :).  Proponuję napisać mały program testowy   
w asemblerze - zmierzyć pobór prądu po wykonaniu czegoś takiego,   
kolejno dla każdej z 3 wartości wpisywanych do MCUCR:   
	cli   
	ldi r24,0x40	; SE=1 SM1=0 SM0=0 -> Idle Mode   
;	ldi r24,0x60	; SE=1 SM1=1 SM0=0 -> Power Down   
;	ldi r24,0x70	; SE=1 SM1=1 SM0=1 -> Power Save   
	out 0x35,r24	; MCUCR   
petla:   
	sleep   
	rjmp petla   
Może wyniki tych pomiarów coś podpowiedzą, w zależności od nich można   
próbować szukać dalej...   
pozdrawiam   
Marek   
From: zielpro_at_nospam_cavern.pl (ziel)
Subject: =?iso-8859-2?Q?RE:_Ile_ten_AVRek_pr=B1du_=BFre!!?=
Date: 23 Jun 2002 19:14:05 +0200
   
Zaprogramowałem, odpaliłem, i dwa piski, potem cisza... 21mA, a   
przy piskach   
było jakieś 35mA... . Przy przerwaniach znów wzrasta do 35mA, piszczy i   
wraca do 21mA... To jest o tyle dziwne, że program właściwie nie   
chodzi (bo   
nie piszczy), ale 21mA to on może mieć podczas pracy!!   
No to coś Ci żre 21mA. Skoro wszystkie wyprowadzenia były jako wejścia, to   
zostaw   
procka w spokoju i zobacz co tam jeszcze jest podłączone.   
A najlepiej odłącz od procka wszystko, a następnie kolejno podłączaj.   
Niestety, trochę nie bardzo wiem, jak to zrobić...   
Wylutuj wszystko co jest, a później po kolej podłączaj.   
Zastanawia mnie tylko, czy przypadkiem nie powinnem odłączyć od baterii i   
podłączyć tylko do stabilizatora 7805 pinów: AVCC i AREF... Być może to   
układ ADC tyle prądu ciągnie...   
Czy zasilanie procka idzie przez 7805, który jest zasilany z baterii?   
pzdr   
Artur   
--    
Archiwum grupy: http://niusy.onet.pl/pl.misc.elektronika  
From: "Konop" <konop13_at_nospam_poczta.onet.pl>
Subject: =?iso-8859-2?Q?Re:_Ile_ten_AVRek_pr=B1du_=BFre!!?=
Date: Sun, 23 Jun 2002 19:34:47 +0200
   
No to coś Ci żre 21mA. Skoro wszystkie wyprowadzenia były jako wejścia, to   
zostaw   
procka w spokoju i zobacz co tam jeszcze jest podłączone.   
   
Jak wyjme procka z podstawki, to nie bierze nic... tzn. przez chwilke   
elektrolit sie ładuje jakimiś mikroaperkami, a później idzie 0,0uA...   
Wylutuj wszystko co jest, a później po kolej podłączaj.   
   
Dlatego wydaje mi się, że to nie ma zbytnio sensu... Jeśli jednak ma -   
popraw mnie... A najgorsze jest to, że ja jestem słaby w wylutowywaniu i jak   
za dużo mieszam zawsze mi pady i ścieżki od płytki odchodzą... :(   
Czy zasilanie procka idzie przez 7805, który jest zasilany z baterii?   
 Nie, absolutnie. Całość wygląda tak:   
transformator - prostownik - kondensatory - 7805 - kondensatory - dioda -   
procek (Vcc, AVcc, ARef) i buzzer   
bateria (4,5V, obecnie 3R12, docelowo 3x LR44) - kondensatory - dioda -   
procek (j. w.)   
Oczywiście te kondensatory (mimo, że tak zapisane) nie są szeregowo, tylko   
równolegle, czyli pomiędzy + i - zasilania... ;)   
Pozdrawiam   
I dziękuję za dotychczasową pomoc   
Paweł Konopacki   
From: Wojciech Markowski <wmr_at_nospam_krakus.top.pl>
Subject: Re: Ile ten AVRek =?x-user-defined?Q?pr=B1du=20=BFre=21=21?=
Date: Sun, 23 Jun 2002 16:20:36 +0200
   
tak tak - bascom jest swiety!!!!!!!!!!!   
ludzie - nauczie sie w koncu, ze to co bascom wyprawia, to w wielu przypadkach   
analizujac kod to stwierdzenie - 'paranoja programowani' jest zbyt delikatne....   
coz - w sumie to sie ciesze, ze takich gosci jest duzo ba ja mam robote :)   
pzdr. - wmr   
Konop wrote:   
Zrbiłem mały eksperyment. Napisałem taki programik:   
$crystal = 8000000   
Config Pinb.2 = Output   
Set Portb.2   
Wait 1   
Do   
Powersave   
Reset Portb.2   
Waitms 250   
Set Portb.2   
Waitms 250   
Loop   
End   
i zaprogramowałem nim procesor (do pinu B.2 podpięty był Buzzer). Buzzerek   
nie piszczał, więc chyba wisiał w PowerSave... Spojrzałem na amperomierz i o   
mały włos nie spadłem z krzesła - ponad 20 mA. Wyłączyłem bateryjkę, wyjąłem   
procka, włączyłem i było pare uA, a później spadło do 0,0 uA. A gdy   
zwierałem nóżke 3 (= pin b2 procka) do masy, to buzzer piszczał, więc   
zasilanie było...   
Więc o co chodzi?!   
Konop   
   
From: "Konop" <konop13_at_nospam_poczta.onet.pl>
Subject: =?iso-8859-2?Q?Re:_Ile_ten_AVRek_pr=B1du_=BFre!!?=
Date: Sun, 23 Jun 2002 17:22:15 +0200
   
tak tak - bascom jest swiety!!!!!!!!!!!   
ludzie - nauczie sie w koncu, ze to co bascom wyprawia, to w wielu   
przypadkach   
analizujac kod to stwierdzenie - 'paranoja programowani' jest zbyt   
delikatne....   
coz - w sumie to sie ciesze, ze takich gosci jest duzo ba ja mam robote :)   
pzdr. - wmr   
   
Wiem, że BASCOM wpycha do kodu wynikowego same śmieci (programik, który   
zawierał tylko jedno polecenie - Powersave - zajmował ponad 100B (z może   
nawet ponad 200...)!!!!!!! Ale co, miałem w Assemblerze to napisać?? Tak   
skomplikowanego programu do Assemblera nie wrzucę... A może zechciałbyś mi   
pomóc zamiast bluzgać tylko Bascoma. Podaj mi programik, który przełączy   
procka w tryb PowerSave, a po (ewentualnym) wyjściu z niego poda stan niski   
(w trybie Output) na pin PB.2... Potestujemy, czy to BASCOM nawala, czy   
procek...   
Pozdrawiam   
Konop   
PS Możesz mi podesłać pliki *.bin skompilowane w czymkolwiek...   
From: Wojciech Markowski <wmr_at_nospam_krakus.top.pl>
Subject: Re: Ile ten AVRek =?x-user-defined?Q?pr=B1du=20=BFre=21=21?=
Date: Sun, 23 Jun 2002 20:28:51 +0200
   
Wiem, że BASCOM wpycha do kodu wynikowego same śmieci (programik, który   
zawierał tylko jedno polecenie - Powersave - zajmował ponad 100B (z może   
nawet ponad 200...)!!!!!!! Ale co, miałem w Assemblerze to napisać?? Tak   
skomplikowanego programu do Assemblera nie wrzucę... A może zechciałbyś mi   
pomóc zamiast bluzgać tylko Bascoma. Podaj mi programik, który przełączy   
procka w tryb PowerSave, a po (ewentualnym) wyjściu z niego poda stan niski   
(w trybie Output) na pin PB.2... Potestujemy, czy to BASCOM nawala, czy   
procek...   
Pozdrawiam   
Konop   
PS Możesz mi podesłać pliki *.bin skompilowane w czymkolwiek...   
   
nie mam czasu na pisanie programow, bo musze wyzywic rodzine i sam troche   
zapchac co najmniej brzuch, ale program (?!), ktory wpowadza procesor w dowolny   
tryb oszczednosci poboru nie przekroczy 10 linijek w assebmplerze - wiec radze   
Ci przerzuc sie na niego, bop bascom..... - odrzucilem go na wstepie, bo tez   
myslalem, ze ktos zrobil cos, co potrafi chociaz najmniej pomyslec a to tak na   
prawde jest zwykly kompilator z predkoscia interpretera. Sprobuj sam -jezeli na   
prawde nie bedziesz mogl to Ci pomoge, ale jeszcze nie teraz.   
pzdr. - wmr   
ps. program nie jest skompliowany tylko prosty - koszt ok. 30 min.   
From: marekmSPAM_at_nospam_amelek.gda.pl (Marek Michalkiewicz)
Subject: Re: Ile ten AVRek prądu żre!!
Date: Sun, 23 Jun 2002 18:37:53 +0000 (UTC)
   
Konop <konop13_at_nospam_poczta.onet.pl> wrote:   
Wiem, że BASCOM wpycha do kodu wynikowego same śmieci (programik, który   
zawierał tylko jedno polecenie - Powersave - zajmował ponad 100B (z może   
nawet ponad 200...)!!!!!!! Ale co, miałem w Assemblerze to napisać?? Tak   
   
Niekoniecznie, można też w C :)   
http://www.smartsolutionnet.de/avrgcc/   
(w trybie Output) na pin PB.2... Potestujemy, czy to BASCOM nawala, czy   
procek...   
   
Aha - jest errata, przed obsługą przerwania budzącego z Power Save   
wykonują się 2-3 rozkazy z głównego programu.  Może ma to jakiś wpływ?   
Po "sleep" proponuję wstawić ze 3 "nop" na wszelki wypadek - ale nie   
mam pojęcia, jak to zrobić w BASCOM-ie...   
Marek   
From: zielpro_at_nospam_cavern.pl (ziel)
Subject: =?iso-8859-2?Q?RE:_Ile_ten_AVRek_pr=B1du=BFre!!?=
Date: 23 Jun 2002 21:17:40 +0200
   
Aha - jest errata, przed obsługą przerwania budzącego z Power Save   
wykonują się 2-3 rozkazy z głównego programu.  Może ma to jakiś wpływ?   
Po "sleep" proponuję wstawić ze 3 "nop" na wszelki wypadek - ale nie   
mam pojęcia, jak to zrobić w BASCOM-ie...   
Marek   
   
Po prostu:   
...   
nop   
nop   
...   
;-)   
pzdr   
Artur   
PS   
w mega128 nie potrzeba, no chyba, ze mam jakieś selekcjonowane ;-)   
--    
Archiwum grupy: http://niusy.onet.pl/pl.misc.elektronika  
From: Ireneusz Niemczyk <i.niemczyk_at_nospam_multispedytor.com.pl>
Subject: Re: Ile ten AVRek =?iso-8859-2?Q?pr=B1du=BFre=21=21?=
Date: Sun, 23 Jun 2002 21:48:28 +0200
   
Nie widzialem zadnej erraty do Mega128, w PDF-ie wręcz chwalš się brakiem -   
może jeszcze za młoda kostka ;-))   
--   
PZD, Irek.N.  
From: jfox_at_nospam_poczta.onet.pl (J.F.)
Subject: Re: Ile ten AVRek =?iso-8859-1?Q?pr=B1du_=BFre!!?=
Date: Mon, 24 Jun 2002 08:37:15 +0000 (UTC)
   
On Sun, 23 Jun 2002 17:22:15 +0200, <konop13_at_nospam_poczta.onet.pl> wrote:   
Wiem, że BASCOM wpycha do kodu wynikowego same śmieci (programik, który   
zawierał tylko jedno polecenie - Powersave - zajmował ponad 100B (z może   
nawet ponad 200...)!!!!!!! Ale co, miałem w Assemblerze to napisać?? Tak   
skomplikowanego programu do Assemblera nie wrzucę...    
   
A czemu nie ? Ile to linijek w asm - 10 ?    
J.   
From: "Konop" <konop13_at_nospam_poczta.onet.pl>
Subject: =?iso-8859-2?Q?Re:_Ile_ten_AVRek_pr=B1du_=BFre!!?=
Date: Mon, 24 Jun 2002 10:44:49 +0200
   
A czemu nie ? Ile to linijek w asm - 10 ?   
   
Masz rację. Programik, który wrzuca proca w Power Save nie jest zbyt   
skomplikowany. Ale ja nie mówiłem tu o tym programie tylko o tym, który ma   
być w końcowym projekcie. Właściwie już jest gotowy, a po skompilowaniu i   
zaprogramowaniu procka zostaje w nim jakieś 8B z 8192B wolnego... Pisania 8   
kilobajtowego programu za pomocą Asemblera się nie podejmuję, bo nawet   
BASCOM będzie bardziej optymalny niż ja...  ;)   
Pozdrawiam   
Konop   
From: jfox_at_nospam_poczta.onet.pl (J.F.)
Subject: Re: Ile ten AVRek =?iso-8859-1?Q?pr=B1du_=BFre!!?=
Date: Mon, 24 Jun 2002 10:35:11 +0000 (UTC)
   
On Mon, 24 Jun 2002 10:44:49 +0200, <konop13_at_nospam_poczta.onet.pl> wrote:   
A czemu nie ? Ile to linijek w asm - 10 ?   
Masz rację. Programik, który wrzuca proca w Power Save nie jest zbyt   
skomplikowany. Ale ja nie mówiłem tu o tym programie tylko o tym, który ma   
być w końcowym projekcie. Właściwie już jest gotowy, a po skompilowaniu i   
zaprogramowaniu procka zostaje w nim jakieś 8B z 8192B wolnego... Pisania 8   
kilobajtowego programu za pomocą Asemblera się nie podejmuję, bo nawet   
BASCOM będzie bardziej optymalny niż ja...  ;)   
   
Ale wez pod uwage ze w asmie to moze byc 1KB :-)   
Ile linii w basicu ? IMHO - *3 i dostaniesz ilosc linii w assemblerku ..   
J.   
From: "Michał Wysocki" <mwsoft_at_nospam_satkabel.com.pl>
Subject: Re: Ile ten AVRek prądu żre!!
Date: Mon, 24 Jun 2002 23:23:58 +0200
   
Wiem, że BASCOM wpycha do kodu wynikowego same śmieci (programik, który   
zawierał tylko jedno polecenie - Powersave - zajmował ponad 100B (z może   
nawet ponad 200...)!!!!!!! Ale co, miałem w Assemblerze to napisać?? Tak   
   
ale zauważ że w tych 100 bajtach są podstawowe biblioteki + inicjalizacja   
całego proca   
jak dopiszesz jeden rozkaz to wzrośnie o 4 bajty a nie 100 :)   
From: "Konop" <konop13_at_nospam_poczta.onet.pl>
Subject: =?iso-8859-2?Q?Re:_Ile_ten_AVRek_pr=B1du_=BFre!!?=
Date: Tue, 25 Jun 2002 12:29:53 +0200
   
ale zauważ że w tych 100 bajtach są podstawowe biblioteki + inicjalizacja   
całego proca   
jak dopiszesz jeden rozkaz to wzrośnie o 4 bajty a nie 100 :)   
   
Ja to rozumiem, tylko mnie zastanawia, po co on wpycha te biblioteki i po co   
mu taka duża inicjalizacja do jednego polecenia?? Ciekawy jestem, czy np.   
mam tam biblioteki do magistrali I2C, 1WIRE czy do LCD, których nie   
wykorzystuję...   
Pozdrawiam   
Konop   
From: zielpro_at_nospam_cavern.pl (ziel)
Subject: =?iso-8859-2?Q?RE:_Ile_ten_AVRek_pr=B1du_=BFre!!?=
Date: 25 Jun 2002 19:13:45 +0200
   
Ja to rozumiem, tylko mnie zastanawia, po co on wpycha te   
biblioteki i po co   
mu taka duża inicjalizacja do jednego polecenia?? Ciekawy jestem, czy np.   
mam tam biblioteki do magistrali I2C, 1WIRE czy do LCD, których nie   
wykorzystuję...   
Pozdrawiam   
Konop   
   
A, to jeśli jesteś ciekaw, musisz bardziej wnikliwie zobaczyć co BASCOM   
robi.   
Skoro robi taką inicjalizację to należy się zastanowić, dlaczego cały obszar   
pamięci   
jest zerowany, dlaczego wyłącza nieużywane przerwania i timer'y, dlaczego   
ustawia stos, ...   
W 100 bajtach nie ma IIC, 1W lub LCD, jeśli chcesz aby włączył taką   
bibliotekę, musisz   
użyć polecenia które używa tej biblioteki.   
Taka analiza jest przydatna, po to aby zobaczyć te "śmieci" które BASCOM   
wkleja, są podejrzenia,   
że to celowa robota krasnoludków, które uważają C za jedynie słuszny język.   
;-)   
pzdr   
Artur   
PS   
I żeby było jasne, w/g mnie BASCOM pozwala w miarę bezboleśnie wejść w   
programowanie uC,   
C pozwala na maksymalne wykorzystanie procesora przez  zaawansowanych   
użytkowników.   
--    
Archiwum grupy: http://niusy.onet.pl/pl.misc.elektronika