Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

RFM113(110) i RFM213(210) - prośba o uruchomienie układów

x-fly 11 Jan 2018 19:50 654 13
IGE-XAO
  • #1
    x-fly
    Level 10  
    Dzień dobry,
    Kupiłem układziki do bezprzewodowej komunikacji nadajnik (RFM113) + odbiornik (RFM213)

    noty:
    113 - Link 1

    213 - Link 2


    Podłączyłem do atmegi 328 wg schematów w PDFach. Wszystkie nogi GND są do GND. Nogi DATA są bezpośrednio do atmegi bez rezystorów pomiędzy. Zasilanie mikroprocków i RFMów to 3,6V.
    W nadajniku zrobiłem że na pin DATA układu RFM113 po wciśnięciu przycisku wystawiane jest VCC, po puszczeniu jest GND. Widzę to na diodzie.
    W odbiorniku jeden z pinów atmegi zrobiłem jako WEjście bez podciągania (ale próbowałem też z). W programie napisałem że jeśli pin ma na sobie GND to dioda OFF a jeśli VCC to dioda świeci.

    Otóż odbiornik zachowuje się w ten sposób że:
    - dioda która pokazuje to co jest na nodze DATA układu RFM213 miga szybko nieregularnie, raz gnd raz vcc. Po dołączaniu pull-upów w postaci rezytora 22kR czy to do GND czy do VCC dioda dalej nieregularnie sobie miga
    RFM113(110) i RFM213(210) - prośba o uruchomienie układów
    Czy tak powinno być ?
    - z koleji po wciśnięciu w nadajniku przycisku dioda w odbiorniku przestaje migać i jest stan wysoki - widzę to na diodzie, (nie mam oscyloskopu), kiedy puszczę przycisk to znów zaczyna szarpać i zerojedynkować

    Czy to nie jest przypadkiem tak że należy programowo filtrować sygnał który się pojawia na wyjściu odbiornika (ten poszarpany) ?
    Że spośród tej sieczki zero-jeden-zero-jeden należy wychwytywać dłuższe jedynki?


    Proszę o wsparcie. Tyle co się naczytałem zanim je kupiłem i miało być tak prosto.
  • IGE-XAO
  • Helpful post
    #2
    rabbit2
    Level 19  
    Powinno się filtrować . To co ty widzisz na odbiorniku wtedy kiedy nadajnik nie nadaje , to zwykłe zakłócenia .Musisz na odbiorniku poprzez atmege oczekiwać tego co ma się pojawić z nadajnika tzn. Musisz zrobić coś na wzór rozbiegówki czyli przed wysłaniem jakiś danych z nadajnika wyślij np 1,0,1,0 gdzie ściśle ustal ile ma trwać 1 i ile 0 , tyle samo oczekuj w atmedze po stronie odbiornika . Pozostałe impulsy krótsze lub dłuższe poprostuj atmega niech pomija . Dopiero jak wychwyci tą twoją rozbiegówke wtedy powinien odbierać resztę . Nie wiem czy to jasno ci powiedziałem . Chyba że chcesz wysyłać tylko krótki sygnał on/off to wtedy np z nadajnika wysyłasz 1 przez np 500ms , a odbiornik (atmege) programujesz tak że nie robi nic jeśli odbierze sygnał 1 krótszy niż np 450ms lub dłuższy niż 550ms ( to +- 50ms to tolerancja błędu) . Jeśli odbierze sygnał 1 o długości od 450ms do 550ms wtedy wykona dalszy ciąg programu , co tam sobie wymyślisz . Oczywiście to jest bardzo prymitywna metoda ta on/off , i jest szansa ze co jakiś czas i tak załapie jakiś sygnał który się zmieści w tej długości 450ms do 550ms , ale na początek powinno ci rozjaśnić temat .
  • IGE-XAO
  • #3
    x-fly
    Level 10  
    Dziękuje za odpowiedź i to konkretną !!
    Zabrałem się już ostro do roboty i jade aż ślepia wychodzą od ton kodu i biorąc mocno pod uwagę to co napisałeś zrobiłem już wstępnie coś co działa.
    Moja ramka nadawcza wygląda tak:
    :arrow: - sygnał startu:
    5x H=4ms L=1ms
    :arrow: - potem czterokrotnie -> "wartość1" i "sygnał przerywnika", np: wartość1 = 8
    8x H=1ms L=1ms
    1x H=9ms L=1ms
    :arrow: - potem czterokrotnie -> "wartość2" i "sygnał przerywnika", np: wartość2 = 17
    17x H=1ms L=1ms
    1x H=9ms L=1ms
    :arrow: - na koniec sygnał stopu:
    5x H=4ms L=1ms

    I to wszystko ostro filtruję i analizuję. O losie, co za przygoda..

    Tym sposobem uzyskałem jak narazie nawet dość wysoką skuteczność odbioru a możliwe jeszcze że jak pogrzebie w kodzisławie to da się to jeszcze lepiej filtrować.
    Ten układ RFM 113 i 213 to takie ustrojstwo które bez programatora (~400zł) stanowi trudny orzech do zgryzienia i do tego co 2 sekundy idzie w sleepa i się budzi co daje mi przekłamania w odbiorze no ale jakoś ogarnąłem.
    UWAGA: seria 113 i 213 sa wycofane ze sprzedaży. Na podmianki można kupować 110 i 210. Czas odbioru odbiornika w module RFM213 jest 2sek a w RFM210 10 sekund.
    ..a wracając.. mogę nadać 2 wartości np numer nadajnika i co ma w odbiorniku zrobić. Możliwe że obsłużę w ten sposób nawet 10 bitowe liczby albo i większe choć mi tak duże nie są potrzebne. Im wyższe wartości przesyłam tym dłużej to trwa no ale to wiadomo. Oczywiście można żyłować cały ten układ przy czym ja świeżak jestem i najdalej to w trzecim pokoju sprawdzałem, na większe odległości narazie nie. Można skracać czasy i uzyskiwać szybszą komunikację ale czy później to nie wyjdzie mi na gorzej i skróce sobie realny zasięg bo będą przekłamania na większych odległościach... Ja tu przesyłam dwie wartości bo będę miał kilka nadajników i jeden odbiornik i każdy nadajnik musi przesłać wartość1 = 'swój numer' oraz wartość2 = 'co chce aby odbiornik wykonał'.

    Przykładowy całkowity czas od końca nadania w nadajniku do końca filtracji i uzyskania właściwego sygnału w odbiorniku:
    wartość1 = 33
    wartość2 = 19
    czas = 0,55 sekundy

    Dla poprawy skuteczności właściwego wychwytywania tego co nadałem można nadawać np trzy razy a odbiornik zaprogramować aby trzy które przyjdą z rzędu w ciągu nie dłużej niż np 2 sekundy traktował jako jeden. Oczywiscie należy odebrane wartości ze sobą porównywać.

    Twoje rady okazały się dość pomocne. Dostałem również nieco wskazówek na PW i również skorzystałem. Kod odbiornika narazie na jednym timerze i pare delajów ale ujdzie, puściłem to na 1MHz ze względu na to że będzie zasilane z aku 3,7V. Jak narazie całość pobiera wg miernika 1,5mA.
    :sm31: UWAGA: układy RFM tej serii zasilane są TYLKO 3,6V MAX ale za to można drenować aku do 1,8.

    Może się to komuś przyda zwłaszcza że w internecie jest dosłownie zero na temat dokładnie tych układów.
    A możesz mi powiedzieć czy od napięcia zasilania nadajnika (max 3,6V) zależy moc nadawania ?
    (przypadkowo podłączyłem odbiornik na 4,8V :shocked!: i nic mu nie było przy czym trwało to jakieś 3 sekundy i kosztowało litr potu :P
  • #4
    excray
    Level 40  
    x-fly wrote:
    Czy tak powinno być ?

    Czy jak ustawisz odbiornik radiowy na częstotliwość na której nie nadaje żadna stacja to nic nie słyszysz? Nie! Słychać szum! Dlaczego oczekujesz, że w przypadku tego odbiornika radiowego będzie inna sytuacja? Też odbierasz szum.
  • #5
    x-fly
    Level 10  
    Nie jestem szpecem w tym temacie jednak zauważyłem już że te szumy muszą być bo drugi odbiornik identycznie mi się zachowuje. No tak ma to logiczny sens. Gdyby nadajnik nadawał 'zero' i odbiornik nie miałby szumów to strata prądu na ciągłe nadawanie zera. A jak nadajnik nie nadaje no to odbiornik ma szumy. Ale jak pierwszy raz to zobaczyłem to ochocho ;)
  • #6
    excray
    Level 40  
    Jak juz wspomniałem to normalne zachowanie. Są 2 rozwiązania:
    - zastosować odpowiednio sformułowana transmisję tak aby mikrokontroler podpięty do odbiornika był w stanie odróżnić istotne dane od szumów
    - użyć bardziej rozbudowanego układu radiowego który robi taką analizę za Ciebie
  • #7
    x-fly
    Level 10  
    W trzecim poście od góry jest opisane pierwsze rozwiązanie.
    Podłączyłem LCD i widzę własnie że na 1000 pakietów 5 nie doszło ale jeszcze w kodzie pogrzebie i poflirtuje sobie z pakietami..
  • #8
    excray
    Level 40  
    Zanim zaczniesz wyważać otwarte drzwi radzę sprawdzić klamkę. W internecie jest mnóstwo gotowych informacji na temat transmisji danych drogą radiową. Do tego warto przejrzeć dokumentację bardziej zaawansowanych układów radiowych. Polecam dokumentację od RFM12, RFM69, nRF24L01. A także takie zagadnienia jak: różnicowy kod manchester, preambuła, sync word, suma kontrolna itd.
  • #9
    x-fly
    Level 10  
    Wielu z tych rzeczy nie potrzebuję. Kody dochodzą "po mojemu" i jest dobrze. Jak jeden na 500 nie dojdzie to się nic nie stanie. Te układy o których piszę są w sprzedaży i z nich korzystam. Niekoniecznie te modele co żeś wymienił są dla mnie lepsze. Ważną dla mnie cechą jest praca od 1,8V i oszczędność prądu i nóżek uP.
    drzwi już wyważyłem "po mojemu"

    oo, wyszło mi teraz 99,8% sprawności komunikacji, nie mam pojęcia co będzie jak wyjde z tym na zewnątrz domu, może się wszystko porypie, jeszcze nie sprawdzałem zasięgu i rzeczywistej sprawności tego mojego kodzisława w terenie
  • #10
    rabbit2
    Level 19  
    Nie chciał bym Ci psuć nastroju ale jak ja się bawiłem w coś takiego to któregoś razu zauważyłem takie coś . Kiedy napisałem nadajnik i odbiornik to w pokoju gadało ok. Wysylalem np H 100ms i 100ms odbieralem. Ale jak poszedłem z nadajnikiem kawałek dalej to w odbiorniki odbierał np 80ms i czasem odbiornik olewał rozbiegowke i zarazem resztę transmisji. Później dopracowanie kodu pozwoliło unikać takich sytuacji. Nie wiem czym to było spowodowane . Nigdy w sumie nie szukałem powodu tego. Myślę że problem leżał bardziej po stronie odbiornika , ponieważ tak samo było kiedy używałem nadajnika z zestawu, jak i np z pilota od samochodu.Tak czy inaczej miej to na uwadze gdy by nagle nie chciał Cię słuchać. 😀. Ją używałem nieco innego sprzetu niż Ty. W razie czego analizator logiczny będzie Ci pomocny.
    Jeśli chodzi o nadajnik i odbiornik to ja używałem czegoś takiego. https://goo.gl/images/yskVfk

    Powodzenia.
  • #11
    x-fly
    Level 10  
    Dzięki za dobre słowa. Faktycznie to może być inaczej jak się pojawi odległość i zakłócenia "na linii". Narazie na dystansie 15 metrów badałem przez dwie 40centymetrowe ceglane ściany i wykresy były właściwe. No i fakt - bez analizatora ani rusz. Dosłownie. Analizator i LCD i jakoś to idzie. Kluczowe elementy mam na zmiennych, czasy min max itd to sobie zmiennymi poreguluje i może na większym dystansie też pójdzie. Sam jestem ciekawy. Kompletnie nie mam doświadcznia w RF. No ale nabywam. Zdaje sobie sprawę że dystans zweryfikuje całość a narazie męcze jeszcze inne elementy kodu.
    A te Twoje moduły ze zdjęcia to dla hardkorowców, miałem, testowałem i po chwili odsprzedałem dalej w obieg właśnie hardkorowcom z tej dzieciny ;]

    pozdrawiam
  • #12
    rabbit2
    Level 19  
    Dlaczego hardkorowy? Na chwilę obecną u mnie taki zestaw działa w alarmie. Mam w piwnicy założony alarm który gada z centralka w mieszkaniu właśnie przez taki zestaw.Blok z betonu. Pomiędzy nadajnikiem a odbiornikiem 4 piętra i gada ok . Myślę że na otwartej przestrzeni 100m pójdzie . Nie sprawdzałem ale tak uważam.
  • #13
    x-fly
    Level 10  
    Jam średni elektronik nie to co administratorzy i moderatorzy tego forum ; ) Dla mnie to poziom hard zwłaszcza że tu wchodzi w grę kwestia braku czasu na cokolwiek a te moje układy już ciut lżejsze do obsługi - przynajmniej tak mi się zdawało kiedy próbowałem uruchomic te Twoje po raz pierwszy i odsprzedałem je szybciej niż kupiłem. Nie mam oscyloskopu - to też dużo utrudnia a czasem uniemożliwia uruchomienie jakiegoś układu. Pozdrawiam

    --------------------
    PYTANIE:
    A czy orientujecie się jaki można z nadajnika RFM110 (moc +13dB) zasięg wydolić na otwartej przestrzeni? Szacunkowo oczywiście.
    I czy obecność antenek w nadajniku i odbiorniku poprawia zasięg i jak bardzo? (np. o 50% ?)
  • #14
    x-fly
    Level 10  
    Mogę rzec że zrobiłem. Program potrafi:
    - wysyłać numer nadajnika i wartość (liczby 8-bitowe)
    - odbiornik potrafi powielać sygnał jeżeli podłączymy nadajnik - wychodzi z tego transceiver
    - odbiornik przesyła raz na wybrany czas stan akumulatora bezkolizyjnie z odbieranymi pakietami z nadajnika (opcja ON/OFF)
    - natłok tych samych kodów jest natychmiast blokowany na określony czas i tylko jeden jest wykonywany (opcja ON/OFF)
    - natłok różnych kodów jest kolejkowany
    - długości sygnałów L i H można łatwo regulować za pomocą zmiennych
    - zastosowałem stopień tolerancji na odebrany sygnał od 1 do 10 ze skokiem co +/- 0,2ms
    - program błędne bity traktuje jako uszkodzone i ustala z nich w miarę możiwości właściwe
    - kody z danego nadajnika są wysyłane dwu, trzykrotnie w krótkich ale różnych (random) odstępach czasu aby się nie nakładały nawzajem
    - układ wykrywa zawieszenia odbiornika i natychmiast resetuje komunikację
    - wykorzystałem 2 timery 8-bitowe, jeden 16to jest jeszcze dostępny, Int0i1 nie są zajęte
    - układ posiada 3 wejścia z możliwością wyboru czy wejście służy jako L/H czy jako ADC
    - można wybierać czas co jaki układ automatycznie wysyła informacje z czujników
    - i najlepsze :) całość zrealizowałem jako jeden program który się wgrywa do uP pracującego w trybie nadajnika, odbiornika lub transceivera i tam jeszcze dwa trybiki są dodatkowe
    - całość na wewnętrznym 1MHz atmegi328
    - zajętość programu 8kB / 32kB
    - wolny RAM 1kB / 2kB
    - a teraz stwierdziłem że przejde na moduły HC-12

    Dziękuje za rady do tego RFMa. Projekt wyszedł znośnie fajny i jestem w stanie zrobić w domu małą sieć. Na chwilę obecną jest w pełni działający.
    Jednak mi zależy na tym aby obsłużyć działkę a te układy mają za mały zasięg dlatego wybrałem HC-12. Miałbyć nRF24L01+ PA LNA ale za dużo stron w pdfie ;)

    Szczerze? To do tej pory nie wiem jak rozumieć zależność mocy nadajnika i czułości odbiornika do ich wzajemnego zasięgu. DOmyślam się że zależy to np od typu modulacji ale ogólnie pytam czy w ogóle da się to jakoś porównywać? Może któryś z Was dosłownie w kilku słowach mi to opisać?

    Dziękuje, rady okazały się pomocne. Pozdrawiam