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



Teraz jest 24 sty 2025, o 12:31


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 18 ] 
Autor Wiadomość
PostNapisane: 17 lis 2015, o 17:47 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 31 sty 2013
Posty: 435
Lokalizacja: Rybnik
Pomógł: 6

Hej ,
Używam bibliotek Mirka z GB .
Kiedy inicjalizuję moduł przed pętlą główną w tedy mam pobór prądu w nadajniku 1mA :

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



Kiedy inicjalizuję go w pętli głównej która wykonuje się co 15 sec . To pobór prądu przez pierwsze 15 sec wynosi 0,2mA więc sama inicjalizacja pochłania mi 0,8 mA ! .

Czy jest możliwość inicjalizacji go na początku pętli głównej tak jak to robię a pod koniec kiedy się już wykona , dezaktywować inicjalizację aby znowu pobierał 0,2mA ?? BO jeśli pętla główna wykona się raz to następnie znowu jest ciągły pobór prądu 1mA ...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 lis 2015, o 17:51 
Offline
Moderator
Avatar użytkownika

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

Czy ty wiesz do czego służy pętla główna ? Na pewno nie do inicjalizacji wykonywanej milion razy na sekundę - skąd ty takie pomysły bierzesz? Bo na pewno nie z BB ani z GB.

_________________
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: 17 lis 2015, o 18:16 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 31 sty 2013
Posty: 435
Lokalizacja: Rybnik
Pomógł: 6

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


Tak wygląda moja pętla główna , watchdog budzi ją co 20 sec.
W funkcji Stan_naładowania robię inicjalizację RFM12 , a w funkcji Wyslij chciałbym ją dezaktywować .

Napisałem w pierwszym poście że po inicjalizacji układ pobiera 0,8mA więcej , dlatego chcę tak zrobić
Wiem że inicjalizacja powinna być przed pętlą główna..



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 lis 2015, o 20:41 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

A kolega to ma RFM12 czy RFM12B?
Spójrz na stronę15 specyfikacji:
http://www.hoperf.com/upload/rf/rfm12b.pdf
Jest tam opis Power Management Command. Po włączeniu zasilania POR jest tam ustawiona wartość 0x8208, gdzie 82 to komenda, a 08 to ustawienie. Teoretycznie więc wystarczy to wysłać:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Ale to jest robione w kodzie funkcji do nadawania i odbioru.
W kodzie z GB jest też funkcja void rf12_allstop(void) opcjonalnie spróbuj jej użyć.
Można by spróbować wyłączyć jeszcze oscylator i wtedy prąd to już powinien spaść poniżej 1 uA do czego powinieneś dążyć, bo 200 uA to strasznie dużo biorąc pod uwagę, że procesor z watchdogiem pobiera 5 uA a DS18B20 6 uA.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 lis 2015, o 14:38 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 31 sty 2013
Posty: 435
Lokalizacja: Rybnik
Pomógł: 6

Hej , Dzięki za odpowiedź .
Mam moduł RFM12B .

Niestety po wpisaniu tych komend o których mówiłeś pobór prądu nie spadł. Nadal mam 1,1 mA ciągle .. :( jedynie przed wykonaniem pętli głównej jest 0,3mA ... no ale tak jak mówisz to nadal dużo .. za dużo ! problem na pewno będzie też w tym że mam dzielnik napięcia na ADC (10k i 3k3 ) też będzie zwiększony pobór prądu...

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


Tak wygląda szkielet
W funkcji Stan_Naładowania włączam napięcie na moduł RFM12 .

Funkcja wyślij();
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


A z tym oscylatorem to może byłby dobry pomysł gdybym mógł aż tak obniżyć pobór .. jak to zrobić ??



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 lis 2015, o 16:39 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

Morcinek92 napisał(a):
W funkcji Stan_Naładowania włączam napięcie na moduł RFM12 .

To może problemem jest skonfigurowane SPI funkcją rf12_init. Skoro odłączasz napięcie modułowi RFM12B to nie powinien nic pobierać. Skonfiguruj te piny jako wejścia i zawsze potem uruchamiaj funkcję rf12_init po podaniu zasilania.
Morcinek92 napisał(a):
problem na pewno będzie też w tym że mam dzielnik napięcia na ADC (10k i 3k3 )

Stąd pewnie 0,3 mA. Zapomnij o takim pomiarze napięcia zasilania baterii. Zakładając, że procesor zasilony jest z baterii można mierzyć napięcie odniesienia 1,1 V podczas gdy napięciem referencyjnym jest AVCC
Zadanie domowe :mrgreen:
Ustaw jako napięcie odniesienia AVCC. Wykonuj pomiar VBG=1,1 V kanał 14, MUX3..0 = 0b1110 i zobacz jak zmienia się wynik przy zmianie napięcia zasilania mikrokontrolera

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 lis 2015, o 17:07 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 31 sty 2013
Posty: 435
Lokalizacja: Rybnik
Pomógł: 6

Funkcja RFM_init (); ma taką postać
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


jeśli robię wszystko jako wejścia to pobór jest ciągle taki sam...

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


to spada o 100mA ...

Tylko że ja już mam płytkę zrobioną więc nie mogę teraz tak zmieniać kanałów na ADC.. :>



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 lis 2015, o 17:13 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

Morcinek92 napisał(a):
jeśli zrobię tak

Teraz to konfigurujesz wszystko jako wyjścia.
Morcinek92 napisał(a):
Tylko że ja już mam płytkę zrobioną więc nie mogę teraz tak zmieniać kanałów na ADC.. :>

Najlepsze jest to, że nie musisz nic robić, bo kanał 14 do 1,1 V to połączenie wewnętrzne. Rezystory możesz wylutować później.

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 lis 2015, o 17:23 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 31 sty 2013
Posty: 435
Lokalizacja: Rybnik
Pomógł: 6

Wiem,
Napisałem ze jeśli robie jako wejścia

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


To pobór prądu się nie zmienia ... :(

Ustawiłem tak te ADC i też efektu innego nie było nadal taki pobór był :(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 lis 2015, o 18:05 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

Morcinek92 napisał(a):
Wiem

Nie doczytałem. Ustaw też bity w rejestrze PORTx na 0, bo jak tego nie zrobisz to wyjście w stanie 1 po zmianie DDRx.y będzie wejściem, ale z podciąganiem do plusa. Jak chcesz się przekonać czy masz dobrze to po wysłaniu wiadomości zmierz naipęcia na zasilaniu i I/O modułu RFM12B.
Morcinek92 napisał(a):
Ustawiłem tak te ADC i też efektu innego nie było nadal taki pobór był

Dopiero po wylutowaniu rezystorów dzielnika zobaczysz różnicę.


Autor postu otrzymał pochwałę

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 lis 2015, o 19:32 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 31 sty 2013
Posty: 435
Lokalizacja: Rybnik
Pomógł: 6

haaa !!! To jest to : )

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


I teraz działa , po wysłaniu prąd spada do 0,2mA .

Teraz jeśli chodzi o pomiarem napięcia na baterii .
Czyli mam wylutować rezystory ? nie będą one potrzebne do pomiaru jeśli zasilam procesor z baterii a napięcie referencyjne ustawić jako VCC tak ??

Tego troszkę nie rozumiem
"VBG=1,1 V kanał 14, MUX3..0 = 0b1110 , kanał 14 do 1,1 V to połączenie wewnętrzne .



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 lis 2015, o 20:37 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

Cytuj:
Czyli mam wylutować rezystory ? nie będą one potrzebne do pomiaru jeśli zasilam procesor z baterii a napięcie referencyjne ustawić jako VCC tak ??
Tak

Co do ADC to za pomocą REFS1 i REFS0 masz ustawić AVCC jako napięcie referencyjne. Przy użyciu bitów MUX3, MUX2, MUX1 i MUX0 powinieneś wybrać kanał numer 14 (nie ma takiego wejścia na nóżkach procesora) jest to napięcie 1,1 V (które może być napięciem referencyjnym, ale w tym przypadku nie jest)

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 lis 2015, o 17:25 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 31 sty 2013
Posty: 435
Lokalizacja: Rybnik
Pomógł: 6

Zrobiłem tak Krauser
I pobór prądu wynosi teraz w spoczynku około 6,7uA . Podczas nadawania to około 5 mA ( ale to dosłownie 1,5 sec jest )
Jedynie mnie martwi odczyty z tego ADC , nie umiem tego idealnie ustawić ...

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


Ustawiłem tak ADC ,
Bo jeśli ustawie kanał 14 na MUX0 to wartości ADC mam po pare tysięcy :O nie wiem dlaczego
Przy takim ustawieniu mam wartości przy 4,2 V około 450 a przy 2,8 V około 280 V no ale to są wartości skaczące i nie cieżko to ustawić idealnie ..

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


NO i przez radio wysyłam STAN no i przy zasilaczu wychodzą mi takie wyniki a jeśli daje baterię to różnie , czasami to i nawet mi pokaże 110% ...

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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 lis 2015, o 21:31 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

Morcinek92 napisał(a):
Ustawiłem tak ADC ,
Bo jeśli ustawie kanał 14 na MUX0 to wartości ADC mam po pare tysięcy :O nie wiem dlaczego

Coś źle robisz bo dla 10-bitowego ADC maksymalnie jest 1024. Musiałeś przestawić bit ADLAR. Pokaż niedziałający kod. Nie wiem po co mierzysz na PC0/ADC0 coś tam masz podpięte?
Funkcja pomiar nie jest zbyt dobra jeśli korzystasz z kanałów wewnętrznych (nie z zakresu ADC0 - ADC7) w tym sensie, że 0xF8 pozostawi bit MUX3. Zmień to na 0xF0.

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 lis 2015, o 14:46 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 31 sty 2013
Posty: 435
Lokalizacja: Rybnik
Pomógł: 6

No docelowo na płytce mam pod PC0 podpięty dzielnik napięcia mierzyłem nim napięcie , ale wlutowałem go więc już nie jest używany.
Myślałem że jeśli ustawię tak jak powiedziałeś to dalej mam odczyty robić na PC0 .. ( a to są wewnętrzne połączenia... )

Więc tak :
Oglądałem Twój projekt na konkurs lato 2013 gdzie używałeś właśnie tam ADC i masz tak ustawione :

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


Ustawiłem wszystko tak samo i wysyłam battery i ciągle wyświetla mi się 0



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 lis 2015, o 19:47 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

Jakie masz taktowanie miktrokontrolera? Na początek zamiast
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
wpisz
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
i sprawdź.

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 lis 2015, o 20:14 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 31 sty 2013
Posty: 435
Lokalizacja: Rybnik
Pomógł: 6

Taktowanie jest wewnetrzne 8Mhz.
No jesli tak wpisze w tedy pojawia sie wartosci 111 na lcd.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 lis 2015, o 17:46 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

W przykładzie było 1 MHz. Proponuję ustawić preskaler przetwornika ADC na maksymalną wartość za pomocą bitów ADPSx.

_________________
Dragonus Cracovus: Biomagia



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: 18 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

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


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:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO