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