Elektroda.pl
Elektroda.pl
X
Multimetr FlukeMultimetr Fluke
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[Bascom][C]Atmega oraz radiowe moduły RFM01, RFM02, RFM12

ja_dzik 27 Lut 2012 10:14 232721 706
  • #541
    j.szymanowski
    Poziom 12  
    Witam. Załączam moje próby praktycznego wykorzystania modułów RFM12B. Jest to termometr bezprzewodowy na DS18B20. Program napisany w Bascomie, ale działa niezawodnie. Zasięgu max nie testowałem, ale w domu z parteru na piętro po przekątnej - bez problemu. Kod nie jest w 100% mój. Oparłem się przede wszystkim na kodzie kol. kabelek (dzięki). Całość nie jest zbyt "optymalna", dlatego wszelkie poprawki mile widziane.
  • Multimetr FlukeMultimetr Fluke
  • #542
    piochu91
    Poziom 8  
    Witam!

    Mam pewien problem odnośnie odczytywania statusu. Posiadam radio RFM12B, w założeniu jest jeden odbiornik i kilka nadajników. Przed nadaniem czegokolwiek muszę sprawdzić czy inny nadajnik już nie zaczął nadawać. Chciałem to zrobić za pomocą komendy odczytu statusu, czyli 0x0000, ale zaobserwowałem dziwne wyniki. Kiedy, teoretycznie nic nie nadaje, radio odpowiada różnymi statusami:
    0xC400, 0xC404, 0xC405, 0xC406, a czasami nawet 0x4402. Nie wiem jak mam interpretować te wyniki. W dokumentacji niby jest o tym, jaki bit za co odpowiada, ale to ma się nijak do moich obserwacji. W ogóle w dokumentacji nie jest napisane czy np. bit FFIT/RGIT należy odczytywać jako najmłodszy czy jako najstarszy? Czy ktoś próbował rozwiązać podobny problem?

    Robię to w taki sposób:
    Code:
    RF12Cmd(0xCA81);   
    
    RF12Cmd(0xCA83);
    status = RF12Cmd(0x0000);
  • #543
    snnaap
    Poziom 25  
    Panowie taka "ciekawostka" i chciałby się dowiedzieć czy ktoś się z tym spotkał już.
    Mam urządzenie pomiaru temperatury, w urządzeniu wykorzystałem RFM12B, standardowo wszystko było zasilane napięciem 3v3. Z ciekawości chciałem zobaczyć jak układ zareaguje na 5V. Po przejrzeniu not katalogowych na żadnym układzie napięcie 5V nie powinno zrobić większego wrażenia. Oczywiście po zasileniu 5V nie zmuszałem układu do pracy - nie były wysyłane żadne pakiety przez RF. Urządzenie przeżyło próbę. Po powrocie do napięcia 3v3 niby wszytko zaczęło działać poprawnie. Pomiar temperatury działa, wyświetlacz działa, zegar działa, pomiar baterii działa, RFM12b wysyła i odbiera dane, ale o dziwo pomiar temperatury przy wysyłaniu pakietów był zawyżony, okazało się że przyczyną jest grzejący się kwarc w układzie RFM12B - spotkał się ktoś z taką przypadłością?
    Wniosek: chyba jednak nie wolno układów RFM12B zasilać z 5V ;)
    Pozdrawiam
  • #544
    mirekk36
    Poziom 42  
    snaap --> To nie żadna przypadłość, niestety tyle jest krążących mitów na temat RFM12 że i ty w jeden uwierzyłeś - zamiast poczytać noty katalogowe producentów. Są wersje modułów RFM12 - i te mogą być zasilane napięciem w granicach od 3V do 5V , ale są też wersje tylko na 3,3V to właśnie RFM12B..... Niestety chyba nawet w tym tasiemcowym temacie co rusz przewija się szkodliwe stwierdzenie typu:

    "a ja tam zasilałem +5V i wszystko było dobrze"

    tylko że dziwnym trafem nie chce się większości ludziom doczytać o tym podziale modułów w zależności od napięcia zasilania. Jak ktoś potrzebuje zasilać 5V a czasem 3,3V to kupuje RFM12 , a jak ktoś będzie używał tego zawsze i tylko i wyłącznie z zasilaniem 3,3V to kupuje moduł RFM12B ..... .czy to nie wyjaśnia wszystkiego ????

    A co do grzania się - to nie grzeje się żaden kwarc tylko chip ....

    Ja nie dla takich prób tylko przez przypadek całkiem niechcący podłączyłem np +5V dla modułów RFM70, które mogą być zasilane tylko 3,3V, i efekt jest taki, że jeden zdechł od razu, a drugi działa ale tylko przez 2-3 minuty i strasznie się rozgrzewa po czym przestaje działać aż do ponownego włączenia.
  • #545
    snnaap
    Poziom 25  
    Mirek nie chciałby się kłócić z Tobą ale zgodnie z notą układ RFM12B można zasilić do 6V

    [Bascom][C]Atmega oraz radiowe moduły RFM01, RFM02, RFM12

    i rozumiem że napięcie 5V jest to napięcie graniczne przy którym układ RFM12B nie może pracować.


    Gdy układ był zasilony 5V uK nie było w podstawce - RFM12B "nie pracował", nie były wykonywane żadne czynności.

    Co do elementu który się grzeje to nie jestem pewien i może odczucie że to kwarc jest nagrzany wynika z fakty ze jest w metalowej obudowie która może lepiej przewodzi ciepło niż zalany chip.
  • Multimetr FlukeMultimetr Fluke
  • #546
    mirekk36
    Poziom 42  
    snnaap - ale ja też nie chcę się z tobą broń Boże kłócić. Pisałem ogólnie o napięciach i nie o granicznych. Piszę teraz z pamięci dlatego nie podawałem dokładnych zakresów no ale proste pytanie - powiedz mi czym różni się RFM12 od RFM12B ?
  • #547
    zonku
    Poziom 13  
    zauważ że wyraźnie jest napisane non operating. Poza tym skoro producent zaleca napięcie 3,3 V dla RFM12B , a dla RFM12 napięcie do 5 V to po co tak kombinować. Sam uruchomiłem układ w oparciu o RFM12B na napięciu 3,3V. I wbrew różnym opiniom udało się obsłużyć i przerwania i cały układ działa znakomicie.
  • #548
    snnaap
    Poziom 25  
    mirekk36 napisał:
    snnaap - ale ja też nie chcę się z tobą broń Boże kłócić. Pisałem ogólnie o napięciach i nie o granicznych. Piszę teraz z pamięci dlatego nie podawałem dokładnych zakresów no ale proste pytanie - powiedz mi czym różni się RFM12 od RFM12B ?


    Zakres napięcia pracy układu RFM12B wynosi od 2,2 do 3,8V natomiast RFM12 wynosi od 2.2 do 5.4 V.
    Dla obu układów napięcie graniczne wynosi 6V - w oparciu o noty.




    zonku napisał:
    zauważ że wyraźnie jest napisane non operating. Poza tym skoro producent zaleca napięcie 3,3 V dla RFM12B , a dla RFM12 napięcie do 5 V to po co tak kombinować. Sam uruchomiłem układ w oparciu o RFM12B na napięciu 3,3V. I wbrew różnym opiniom udało się obsłużyć i przerwania i cały układ działa znakomicie.


    Rozumiem co znaczy non operating.
    Nikt tu nie pisze że układ RFM12B zasilany napięciem 5V ma pracować on miał tylko przeżyć mały teścik. Zgodnie z nota układ RFM12B powinien bez szwanku przeżyć taki test lecz jak się okazała to co jest napisane w nocie nie musi być prawdą.
    Chodź z drugiej strony układ po powrocie do 3v3 pracuje prawie normalnie - wysyła odbiera i pojawiła się nowa funkcja grzałki ;)
  • #549
    slawek-matyl
    Poziom 11  
    Witam
    W nocie katalogowej zasilanie RFM70 to 3.3V, ale maksymalne napięcie wejściowe pinów cyfrowych to 5V. Jak myślicie jest potrzebna konwersja napięć?? Testował ktoś?
    Pozdrawiam
  • #550
    Mickeyo
    Poziom 2  
    slawek-matyl napisał:
    Witam
    W nocie katalogowej zasilanie RFM70 to 3.3V, ale maksymalne napięcie wejściowe pinów cyfrowych to 5V. Jak myślicie jest potrzebna konwersja napięć?? Testował ktoś?
    Pozdrawiam


    Wszystkie piny są 5V tolerant, działa to całkiem dobrze. Nie ma obawy o wejścia/wyjścia RFM70. Należy tylko pamiętać o zasilaniu, bo to bezwzględnie musi być do 3,6V
  • #551
    pietreksz
    Poziom 11  
    Dziś uruchomiłem moduły RFM22B i jestem mile zaskoczony zasięgiem - na otwartej przestrzeni i antenkach 17cm z drutu uzyskałem zasięg 500m.

    Odczytuje sobie rejestr 0x26 - RSSI ale niezależnie od zasięgu i anteny pokazuje mi wartość od 75 do 90. W dokumentacji prawie nic nie ma o tym rejestrze. Może mi ktoś napisać, w którym momencie dokonywać odczytu. Czy w jakiś sposób się konfiguruje się RSSI?
  • #552
    nanoTECHNO
    Poziom 14  
    Witam
    Może kogoś zainteresuje dzisiaj testowałem zasięg modułów RFM12B.
    Część nadawcza modułu była umieszczona nad dachem 12 metrów nad ziemią. Antena wykonana z 2 odcinków po 17cm dołączona do kabla koncentrycznego. Odbierałem bezbłędne ramki w odległości ... 3,5km. Prędkość transmisji 4.8kbps. Częstotliwość 433Mhz.
    Poziom RSSI można pobrać z kondensatora modułu RFM12b i podać na przetwornik ADC. Poziom jest w zakresie 300-1150mV. Wartość górną można ograniczyć do 1023. W odległości 1,6km przy odbiorze uzyskuje RSSI=500mV. Zauważyłem że zakupione moduły charakteryzują się lepszą i gorszą czułością.
    Testowałem również moduły na 868Mhz ale zasięg jest beznadziejny już są problemy przy 100m przy stosowaniu dołączanych kabeków w roli anteny.
    Pozdrawiam
    nanotechno
  • #553
    pietreksz
    Poziom 11  
    nanoTECHNO napisał:
    Witam
    Może kogoś zainteresuje dzisiaj testowałem zasięg modułów RFM12B...

    1. Możesz opisać dokładniej antenę? Nadawcza i odbiorcza - takie same?
    2. Testowałeś jak wpływa napięcie zasilania i prędkość transmisji na zasięg?
    Piotr
  • #554
    nanoTECHNO
    Poziom 14  
    Antena nadawcza i odbiorcza taka sama. Wzór zaczerpnięty z https://www.elektroda.pl/rtvforum/topic2234312.html
    Dla 433MHz przyjąłem 2 odcinki po 17cm przylutowane do gniazda F i zalane Distalem. Do połączenia między antena - moduł wykorzystałem 4 m odcinek koncentryka 75Ohm (dach nadajnik) oraz koncentryk 4m 50Ohm odbiornik 1,5 metra nad ziemią.
    Rfm12b zasilany jest z 3.3V wraz z mikrokontrolerem. Nie testowałem zasięgu przy zmianie napięć oraz prędkości transmisji.
    Pozdrawiam
  • #555
    mirekk36
    Poziom 42  
    Potwierdzę, że RFM12 ma niesamowite zasięgi ;) wprawdzie nie miałem okazji testować aż na kilka km ..... ale wspomniane w notach 300m jest do pokonania lekką ręką ;) .... więc może i stare te moduły ale za to jeśli chodzi o zasięg w otwartej przestrzeni to wymiatają, że pozwolę sobie takiego określenia użyć ;)
  • #557
    bobekczekoladowy
    Poziom 1  
    witajcie, ten temat pozwolił mi na uruchomienia moich rfm12 433MHz w 4 dni
    moje spostrzeżenia, które mogą się przydać początkującym

    Korzystałem z kodu avatara

    - pamiętajcie żeby sprawdzić czy na pewno, powtarzam na pewno działa wasze SPI, łatwo to spawdzić

    Code:
    if(writeCmd(0x0000)
    
    LED_ON();


    jeżeli dioda się zaświeci to znaczy to, iż "coś" przeczytaliście - ten rejestr (statusowy) nie powinien być pusty

    co się tyczy powyższego, wiem jestem idiotą, ale pamiętajcie żeby sprawdzić czy SPI w waszym procesorze nie jest czasem na innych nóżkach niż Atmega
    (Atiny2313 ma inne)

    ogólnie to mam rezystor 10k podciągający pod FSK/DATA/nFFS
    nRES podłączyłem pod Vcc
    filtruje zasilanie przez kondensator 100n zarówno pod rfm12 jak i atiny2312 i atmegą 168
  • #558
    arcyimperator
    Poziom 14  
    Witam
    Mam problem z RFM12B, przy przejściu z nadawania do odbioru. Najpierw konfiguruje jako nadajnik, potem przechodzę do odbioru, i wtedy rozjeżdża mi się zegar, ramki sychronizacji odbiera OK, a potem zegar się nie dopasowywuje, przeważnie już w drugim odebranym znaku. Wrzucam mój kod, STM32:
    Kod: c
    Zaloguj się, aby zobaczyć kod


    kod programu:

    Kod: c
    Zaloguj się, aby zobaczyć kod


    W tle cały czas działa nadajnik, wysyła dane co około sekundę.
    Przy normalnej inicjalizacji od razu odbiornika działa OK. Wygląda jakby nie działało AFC, ale czemu - nie rozumiem.
  • #559
    LukasSandyra
    Poziom 11  
    Witam, czy ktoś może miał taki problem jak ja, a polega on na tym, że po pewnym czasie moduł przestaje odbierać? Korzystam z bibliotek Pana Mirka, tylko funkcję sprawdzania czy pojawiły się dane wrzuciłem do obsługi przerwania timera, która się wywołuje co 250mS. Wygląda to tak:
    Kod: c
    Zaloguj się, aby zobaczyć kod

    Po pewnym czasie moduł przestaje odbierać, muszę dopiero zresetować uC i wtedy znowu działa przez jakąś minutę i znowu to samo. Jak to można rozwiązać?

    I pytanie do arcyimperator, co u Ciebie oznacza NSEL_RFM12_DOWN oraz NSEL_RFM12_UP? Bo zauważyłem, że po tych funkcjach(?) nie masz średnika i nie potrafię się domyślić co to może robić.

    EDIT: Swój problem rozwiązałem w ten sposób, że jeśli moduł nie odbierze żadnych danych w określonym czasie to wysyłam do niego rozkaz soft reset i na nowo inicjalizuję, trwa to tak krótko, że jest to w ogóle niezauważalne. Potem miałem problem z przełączaniem modułu z odbioru na nadawanie, rozwiązałem go w ten sam sposób, reset, inicjalizacja tryb pracy. W moim zastosowaniu czujnik ma wykonać pomiar na żądanie, więc takie rozwiązanie w moim przypadku jest do przyjęcia.
  • #560
    raftheripper
    Poziom 10  
    Witam szanownych kolegów. Mam pytanie odnośnie modułów RFM12. Jaką wartość powinien zwracać rejestr status w chwili kiedy nic nie nadaje po inicjacji modulu odbiornika? U mnie za kazdym razem zwracana jest inna wartość jednak zawsze jest to 0b11xxxxxxxx , czyli "FIFO is empty" gdzie x są to zmieniające się znaki 0 i 1 za kazdym razem inne kiedy odczytuje status.

    Zauważyłem natomiast ze gdy nadajnik jest nie uruchomiony to te x częściej przyjmują wartość 0 (np. 0b1100101000), natomiast gdy nadajnik nadaje częściej są to 1 (np. 0b1101111011). Gdy nadajnik jest zainicjowany a nic nie nadaje to status się zatrzymuje do chwili wyłączenia nadajnika, lub rozpoczęcia nadawania. Gdy odłącze zasilanie od odbiornika i podłącze odczytywana jest wartość 0b0100000000000000 czyli Power-on Reset, więc wnioskuje że moja procedura odczytu statusu potrafi operować na 16 bitach, jednak nigdy nie otrzymałem odpowiedzi 0x8000.

    Jak to jest u was? Mogł by ktoś to sprawdzić u siebie? Moduły inicjują się ponieważ w zależności od konfiguracji zmienia się pobór prądu. Czekam na odpowiedzi. Pozdrawiam Raftheripper
  • #561
    raftheripper
    Poziom 10  
    Witam. Poradziłem sobie z wyżej wymienionym problemem. W procedurze nadawania danych zmieniłem kod z:

    Code:

       while (bit_is_clear(PINC,NIRQ))   
       {
          Wyslij_rozkaz(0xB800+dana);
       }


    na

    Code:

       if (bit_is_clear(PINC,NIRQ))   
       {
          Wyslij_rozkaz(0xB800+dana);
       }


    i moduły komunikują się poprawnie. Pozdrawiam
  • #562
    BIGJack
    Poziom 16  
    Od kilku dni bez rezultatu probuję uruchomić swoje moduły RFM12B 434Mhz
    Czy ktoś z kolegów posiada sprawdzony kod nadajnika i odbiornika w Bascomie?
  • #563
    piotrva
    Moderator na urlopie...
  • #564
    BIGJack
    Poziom 16  
    Widziałem już ten kod ale nie jestem pewien czy dobrze podłączam swojego rfma do atmegi względem tego kodu i chyba nie poradzę sobie z obliczeniami pasma dla 434Mhz.
  • #565
    nanoTECHNO
    Poziom 14  
    Dla Nadajnika :

    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod



    Odbiornik :
    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod
  • #566
    BIGJack
    Poziom 16  
    Super, czy podłączam tylko te piny rfm-a z kodu?
    Masz może schemat zastosowany w tym konkretnie przypadku.
  • #568
    BIGJack
    Poziom 16  
    Dzięki wielkie, zaraz sprawdze działanie w praktyce.

    Dodano po 2 [godziny] 1 [minuty]:

    Jestem w głębokim szoku ponieważ po dostosowaniu kodu do wyprowadzeń moich układów na atmega8 odbiornik i attiny2313 nadajnik transmisja ruszyła z kopyta. Wielkie dzieki kolego nanoTECHNO.
  • #569
    BIGJack
    Poziom 16  
    Do pełni szczęścia brakuje mi jeszcze jakiegoś przykładu komunikacji master + kilka slave-ów. Czy ma ktoś może taki kod w bascomie?
  • #570
    FastProject
    Poziom 28  
    Witam,
    pozwolę podczepić pod ten temat pewien problem związany z odbieraniem danych z kilku nadajników RFM12 czy RFM22 jednocześnie. W takiej sytuacji mogą wystąpić problemy już wspomniane w tym temacie, a związane z nakładaniem sie danych z kilku nadajników i błędami po takiej sytuacji.

    Problem taki miał kolega snnaap: https://www.elektroda.pl/rtvforum/viewtopic.php?p=9922546#9922546

    Mój jest niemal identyczny i opisałem go tu: https://www.elektroda.pl/rtvforum/topic2512042.html

    Każda sugestia i rada mile widziana.