Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 18 sty 2025, o 03:39


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 26 ] 
Autor Wiadomość
PostNapisane: 1 paź 2012, o 15:14 
Offline
Użytkownik

Dołączył(a): 14 maja 2012
Posty: 518
Pomógł: 6

nadajnik musi być malutki i zasilany z CR2032 lub mniejszej
odbiornik na zasilacz 12V

problem tkwi w nadajniku, który ma działać mozliwie jak najdłużej

mam następujący algorytm:

nadajnik śpi

nadajnik wysyła sygnał "zalanie" (przerwanie z sondy podającej stan niski na INT0),
wysyła tak długo, aż przyjdzie z odbiornika sygnał "zalanie_przyjalem"

odbiornik po otrzymaniu sygnału "zalanie" i wysłaniu potwierdzenia "zalanie_przyjalem"
wyje, aż do wyłączenia np. zasilania

... i to mam, tak działa i programowo i sprzętowo

w czym problem?

odbiornik robi swoje, a nadajnik niepotrzebnie zżera prąd, bo do czasu wytarcia sondy
wciąż nadaje, że zalane

ja bym chciał, aby nadajnik po wysłaniu i odebraniu potwierdzenia poszedł spać i zaczął
czuwać dopiero po zniknięciu sygnału "zalanie" (wysuszeniu sondy)

coś mi się wydaje, że chciałbym zjeść ciastko i mieć ciastko :)
ktoś pomoże?

ps. stosowałem różne flagi, ale może biała coś da :D



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 paź 2012, o 15:28 
Offline
Użytkownik

Dołączył(a): 15 lut 2012
Posty: 344
Lokalizacja: Bydgoszcz
Pomógł: 11

wireless a rzuć okiem na tryb power down, chociażby jak zostało to wykonane w projekcie pilota w niebieskiej książce Mirka bo myślę że właśnie tam znajdziesz rozwiązanie(Mirek zastosował bibliotekę avr/sleep.h)

Pozdrawiam!



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 paź 2012, o 15:44 
Offline
Użytkownik

Dołączył(a): 14 maja 2012
Posty: 518
Pomógł: 6

mój obecny algorytm usypia procesor w power down, a nawet robi power_all_disable,
natomiast jak przychodzi przerwanie to procesor jest budzony,
a ja bym chciał, żeby był budzony tylko raz, a następny raz ma się obudzić po wysuszeniu
sondy i ponownym zalaniu

czyli, bo może to źle tłumaczę:

-sonda jest sucha, śpi
-sonda mokra, budzi się, wysyła sygnał i czeka na potwierdzenie
-sonda dalej mokra, ale ja chcę by dalej spał, bo odbiornik już o tym wie
-sonda zostaje wysuszona, algorytm działa jak przed zalaniem

zajrzę do tego pilota, ale tam nie ma chyba potrzeby zastosowania czegoś takiego



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 paź 2012, o 15:58 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 24 cze 2012
Posty: 414
Lokalizacja: Oborniki
Pomógł: 5

Nie wiem czy dobrze mysle, ale przerwanie powinno byc wyzwalane zboczem, a nie poziomem?

_________________
Pozdrawiam:
Mikołaj



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 paź 2012, o 16:12 
Offline
Użytkownik

Dołączył(a): 14 maja 2012
Posty: 518
Pomógł: 6

nawet mam pojęcie o czym piszesz :) , ale co to za różnica co go obudzi?
przestudiowałem nawet atomowość dostępu do danych, ale jakbym wyłączył
przerwanie to co by go budziło :(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 paź 2012, o 17:50 
Offline
Użytkownik

Dołączył(a): 14 maja 2012
Posty: 518
Pomógł: 6

mikandrzej i GwynBleidD

dzięki za pomysł i wyjaśnienie, spróbuję to zrealizować w programie



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 paź 2012, o 20:15 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 24 cze 2012
Posty: 414
Lokalizacja: Oborniki
Pomógł: 5

Spróbuj :) Podejrzewam, że to właśnie będzie to. Musisz dokładnie przestudiować notę PDF, przetłumaczyć sobie co nieco i będziesz wiedział o czym mowa :)

Wyzwalanie zboczem kiepsko sprawdza się przy przyciskach, gdzie dochodzą drgania styków, ale przy wodzie podejrzewam, że coś takiego nie występuje.

Pzdr

_________________
Pozdrawiam:
Mikołaj



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 paź 2012, o 22:15 
Offline
Użytkownik

Dołączył(a): 14 maja 2012
Posty: 518
Pomógł: 6

TO JUŻ CHODZI ! dzięki jeszcze raz



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 paź 2012, o 10:51 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27346
Lokalizacja: Szczecin
Pomógł: 1041

Panowie, Panowie .... przy pełnym uśpieniu procesora nie ma możliwości wybudzenia go zboczem jeśli chodzi o wejścia INT0 oraz INT1 ... :( można wybudzać go wtedy TYLKO i wyłącznie poziomem z tego co mi wiadomo. (jedynie INT2 jest asynchroniczne i wynika z PDF'a że może reagować na zbocze - więc to można spróbować - jeśli mamy w procku INT2.

Jeśli zaś wireless piszesz że tobie działa wybudzanie zboczem na INT0 to znaczy tylko że albo go nie usypiasz tylko tak ci się wydaje albo nie usypiasz go do największej hibernacji najniższego poboru prądu.

Weź sobie miernik (amperomierz w rękę) i spróbuj zmierzyć pobór prądu podczas tego uśpienia - napisz ile uA widzisz ?

Być może coś źle piszę - bo tylko z doskoku ..... ale sprawdź to ok ?

Poza tym do kodu pilota zajrzyj bo przyda się np wiedzieć o tym że normalnie (domyślnie) włączony jest komparator analogowy, który zjada niepotrzebnie sporo prądu gdy z niego się nie korzysta :( ... Warto też przejrzeć cały schemat pod kątem np niepotrzebnych i zbyt małych rezystorów podciągających czy czegokolwiek co zjada prądzik ;)

dlatego ciekawy jestem szczerze do ilu uA uda ci się zejść i napisz jaki procek OK ?

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 paź 2012, o 16:59 
Offline
Użytkownik

Dołączył(a): 14 maja 2012
Posty: 518
Pomógł: 6

mam ATmega88 PA
czy to, że w opisie jest taka tabelka (2313 też tak ma) nie oznacza, że INT0 może być wyzwalane zboczem?

Table 13-2. Interrupt 0 sense control.
ISC01 ISC00 Description
0 0 The low level of INT0 generates an interrupt request
0 1 Any logical change on INT0 generates an interrupt request
1 0 The falling edge of INT0 generates an interrupt request
1 1 The rising edge of INT0 generates an interrupt request

na razie mam ok 3mA, ale w to mieszam rfm70, którego nie wiem czy dobrze usypiam,
muszę bez rfm70 poćwiczyć usypianie i dopiero jak uda się zejść do uA, podłączyć nadajnik

doczytałem, chociaż od tego mnie bolą oczy i głowa :)
dla 2313: For INT0, only level interrupt - Power-down Mode :(
w 88 też

i co mi teraz poradzicie, aby algorytm spełniał moje wymagania?
i wchodził w Power-down mode, się da?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 paź 2012, o 19:42 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 24 cze 2012
Posty: 414
Lokalizacja: Oborniki
Pomógł: 5

Może po prostu jak wybudzisz go pozniomem, to zrób co musisz i uśpij go z INT na poziom niski, a jak przejdzie w niski to tylko przestaw w wysoki i uśpij?

_________________
Pozdrawiam:
Mikołaj



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 paź 2012, o 21:23 
Offline
Użytkownik

Dołączył(a): 14 maja 2012
Posty: 518
Pomógł: 6

przeprowadziłem testy bez nadajnika
prąd przy 1MGz idealnie 0.1 uA

zbocza działają tak jak trzeba, pewnie źle je ustawiałem i to nie są jednak zbocza,
bo to niemożliwe przy tym poborze prądu

przez pomyłkę zrobiłem sobie dobrze :lol:
być może tak jak sugeruje mikandrzej,
obejrzę to, bo zrobiłem to przez kopiowanie ;)

Mirku, jeszcze gdybyś dorobił usypianie rfm70 do swoich bibliotek, to bym Cię ozłocił
(taką cienką warstwą jak na płytki się daje, ale zawsze)
Porzuć linuxa, tyle czasu straciłeś, nie idź tą drogą ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 paź 2012, o 22:01 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27346
Lokalizacja: Szczecin
Pomógł: 1041

no 0.1 uA to już ładny wynik ;)

a co do linuxa to jak widzisz zaparłem się jak osioł - jeszcze trochę powalczę ale znowu opadam z sił ;)

odnośnie bibliotek dla RFM70 to będę musiał niedługo się za nie i tak wziąć ;) .... kurka wodna bo zbliża mi się pewien projekt, a też tym bardziej że nadchodzi koci RFM73 a RFM70 znika z rynku a co najgorsze różnią się :( .... jak mówił mi dostawca - aaaaa tam niewiele - tylko kilka rejestrów ;) ...... kuuuurza twarz - kilka rejestrów w tym bagnie to jest niestety morze .... no ale cóż też będę chyba zmuszony i to na dodatek właśnie też będę chyba musiał usypiać ;) go

z drugiej strony - skoro testy na razie robisz to nie możesz spróbować dodać jednego tranzystorka i próbować odcinać programowo zasilanie do RFM70 na czas uśpienia ? a po wybudzeniu i włączeniu zasilania szybko go zainicjalizować i zrobić co trzeba dalej ?

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 paź 2012, o 22:14 
Offline
Użytkownik

Dołączył(a): 14 maja 2012
Posty: 518
Pomógł: 6

samo odcięcie zasilania mało daje, jeszcze coś obciąża, na spi pewnie, jakieś kilkanaście mA, ale może to z innego powodu, nie wiem,
może podpowiedz co ustawić, aby było tak jak przed inicjalizacją nadajnika



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 paź 2012, o 22:57 
Offline
Użytkownik

Dołączył(a): 04 paź 2011
Posty: 8597
Pomógł: 337

Gwyn , ale na linuxowym avrdude niema tego problemu ... poczytaj
Co do Eclipse ... nie chce mi się babrać z linuxem .... wystarczy jeden problem z windą
a linuxów od podszewki mi starczy już na całe życie ... bo nie wydaje mi się żeby ten system był w stanie zaoferować
zgodność z samym sobą choćby na poziomie win3.11 ... do puki to anarchia i samowolka ... szkoda czasu , dobre
dla młodzieniaszków dla zabawy:)

_________________
Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 paź 2012, o 13:04 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27346
Lokalizacja: Szczecin
Pomógł: 1041

SunRiver napisał(a):
... bo nie wydaje mi się żeby ten system był w stanie zaoferować
zgodność z samym sobą choćby na poziomie win3.11 ... do puki to anarchia i samowolka ... szkoda czasu , dobre
dla młodzieniaszków dla zabawy:)


hahaha ;) ... z jednej strony to powiem, że miło mi to słyszeć - bo jak się poddam, to wiem że nie miałem czego żałować ;) hahahaha ale świetne określenie

Ale teraz się już nie oblałem kawą ze śmiechu, bo przezornie gdy zaczynam czytać to co napisał Sun a piję kawę to od razu śliniaczek zakładam hahaha

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 paź 2012, o 15:22 
Offline
Użytkownik

Dołączył(a): 14 maja 2012
Posty: 518
Pomógł: 6

moglibyście mi to przetłumaczyć na C?
może uśpię rfm70

How to make Power down mode current consumption is the lowest?

BK2421 CSN need to set high, CE is set low, if the line, there are pull-up resistor, CLK and MOSI to be set high, if the line does not pull, CLK and MOSI to be set low. Please also note that pin MCU idle processing.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 paź 2012, o 15:57 
Offline
Użytkownik

Dołączył(a): 04 paź 2011
Posty: 8597
Pomógł: 337

Aby przełączyć RFM70 w tryb zmniejszonego poboru należy:

Ustawić CSN w stan wysoki , CE w stan niski . Linie CLK i MOSI powinny być w stanie wysokim z załączonymi rezystorami podciągającymi
Należy też pamiętać o tym żeby piny procesora były w stanie bezczynności .

np tak:

Składnia: [ Pobierz ] [ Ukryj ]
język cpp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

_________________
Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 paź 2012, o 16:02 
Offline
Użytkownik

Dołączył(a): 14 maja 2012
Posty: 518
Pomógł: 6

to nie jest język C ;)
Sun nie czujesz, że jesteś w dziale rybnym? :lol:
wszystkie piny mają być bezczynne? nie bardzo rozumiem

moje ustawienia poniżej

#define CE (1<<PB3)
#define CSN (1<<PB4)
#define MOSI (1<<PB5)
#define MISO (1<<PB6)
#define SCK (1<<PB7)

#define SPI_DIR DDRB
#define SPI_PORT PORTB
#define SPI_PIN PINB



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 paź 2012, o 16:13 
Offline
Użytkownik

Dołączył(a): 04 paź 2011
Posty: 8597
Pomógł: 337

zerknij wyżej ...

_________________
Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 paź 2012, o 16:24 
Offline
Użytkownik

Dołączył(a): 14 maja 2012
Posty: 518
Pomógł: 6

miałem tak jak niżej i to nie dawało 3 uA, czy to to samo?
czy miałem jakiś błąd?

void rfm70_mode_powerdown( void )
{
unsigned char value;

SPI_PORT &= ~CE; // CE=0;
value = SPI_Read_Reg(CONFIG);
value &= 0xFD; // clear PWR_UP bit
SPI_Write_Reg(CONFIG, value);
}



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 paź 2012, o 16:37 
Offline
Użytkownik

Dołączył(a): 04 paź 2011
Posty: 8597
Pomógł: 337

no dobrze , ale musisz spełnić powyższe warunki które podaje nota
czyli na SPI żadnej transmisji piny CLK i MOSI podciągnięte pullupem do VCC stan HI
i BK2421 CSN w stanie wysokim , a CS na LOW

najprościej zamiast negować sygnał CS ustalić go w stan LOW na czas wyłączenia RFM-a

_________________
Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 paź 2012, o 16:50 
Offline
Użytkownik

Dołączył(a): 14 maja 2012
Posty: 518
Pomógł: 6

będę próbował, dzięki



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 paź 2012, o 18:20 
Offline
Użytkownik

Dołączył(a): 14 maja 2012
Posty: 518
Pomógł: 6

ustawiłem co trzeba i chyba jest dobrze, z naciskiem na chyba,
napięcie stoi jak drut, ale jak próbuję podłączyć się szeregowo :) w zasilanie
to układ rfm70 nie startuje chociaż procesor działa (led),
amperomierz pokazuje duży prąd - 10mA
co robię nie tak?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 paź 2012, o 21:31 
Offline
Użytkownik

Dołączył(a): 04 paź 2011
Posty: 8597
Pomógł: 337

RMF-70 pobiera sporo obniż mu moc nadawania

tu masz tabelkę :

Obrazek

_________________
Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 paź 2012, o 21:38 
Offline
Użytkownik

Dołączył(a): 14 maja 2012
Posty: 518
Pomógł: 6

ale to jakiś "głupi" pomiar, w uśpieniu rfm, nadajnik nie startuje jak wchodzę z amperomierzem
robiłem wcześniej testy bez nadajnika i mierzyło się normalnie, było 0.1 uA, z sondą zalaną 3 uA



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 26 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 0 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO