Elektroda.pl
Elektroda.pl
X

Search our partners

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

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

ja_dzik 19 Jan 2011 12:53 236630 707
Helukabel
  • #421
    kajojj
    Level 13  
    Posiadam 3 zestawy (uC + RFM12), udało mi się na nich uruchomić obustronną transmisję na przerwaniach. Podczas testowania na każdy moduł wgrywałem lekko zmodyfikowany program:

    1) nadajnik -> odbiornik -> nadajnik ....
    2) odbiornik -> nadajnik -> odbiornik ...
    3) odbiornik

    Wszystko po to, żeby zrealizować tzw. ping-pong pomiędzy 1) i 2) a 3) żeby zbierał wszystkie pakiety (ale nic nie wysyłał). Podczas testu zestawy były umieszczone na tym samym biurku, co się okazuje działa to naprawdę dobrze i stabilnie. Test trwał ponad 24h, w "eter" było wysyłanych 20 pakietów na sekundę po 110 bajtów. Razem przesłanych ponad 2mln pakietów, żaden się nie zgubił i w wszystkich zgadzała się suma crc16. Robiłem sporo innych testów, ale też zakończyły się sukcesem. Aż do momentu kiedy zrobiłem taki test:

    1) nadajnik (wysyła co sekundę pakiet o długości 8 bajtów)
    2) odbiornik
    3) odbiornik

    Przy takim teście nadajnik pracuje dobrze, ale odbiorniki po jakimś czasie przestają odbierać (np. jeden po 2h a drugi po 3h). Na początku dostrajania było to 20-30min, teraz jest 2-3h. Nie wiem jak temu zaradzić, żeby działało to cały czas. Z tego co zauważyłem to na długość poprawnej pracy mają wpływ rejestry: Receiver Control Command (0x9000), Data Filter Command (0xc228) oraz AFC Command (0xc400). Czyli pewno chodzi o rozstrojenie częstotliwości. Miał ktoś taki problem lub ma pomysł jak go rozwiązać?

    No i jeszcze jedno pytanie, bo nie mogę znaleźć na nie odpowiedzi. W rejestrze Configuration Setting Command (0x8000) mamy możliwość ustawienia tzw. load capaction. Jak tą wartość dobrać i od czego ona zależy?
  • Helukabel
  • #422
    victoriii
    Level 18  
    Chodzi zapewne o load capacitance? To jest wewnętrzny kondensator do kwarcu w RF12 i moim zdaniem powinna ta wartość być dobrana do pojemności kwarcu. Ale w dokumentacji do RF12 jest też napisane, że zmieniając wartość tej wewnętrznej pojemności można dokładnie dostroić kwarc do częstotliwości która powinien mieć (wiadomo, jakaś tolerancja jest).
  • Helukabel
  • #423
    DXFM
    Level 20  
    kajojj wrote:

    Przy takim teście nadajnik pracuje dobrze, ale odbiorniki po jakimś czasie przestają odbierać (np. jeden po 2h a drugi po 3h).


    Jaką ustawiłeś szerokość filtru pośredniej (w odbiornikach)?
  • #424
    kajojj
    Level 13  
    DXFM wrote:
    Jaką ustawiłeś szerokość filtru pośredniej (w odbiornikach)?

    Może podam wszystkie parametry:
    - prędkość transmisji 19200bps
    - deviation 90kHz
    - bandwidth 200kHz
    - DQD 4
  • #425
    kajojj
    Level 13  
    Poprzez metodę testowania różnych konfiguracji, doszedłem że znacznie lepiej działa konfiguracja:
    - prędkość 9600bps
    - deviation 120kHz
    - bandwidth 340kHz

    Taka konfiguracja działa znacznie dłużej, ale i tak po pewnym czasie moduł przestaje generować przerwanie. Na pinie VDI wtedy ustawia się 0 i tak stoi (normalnie to się szybko zmienia 000101101010101111...).

    Problem uwidacznia się wtedy kiedy przez dłuższy czas moduł tylko coś odbiera. Bo jak między czasie nadaje, to problem praktycznie w ogóle nie występuje. To może by rozwiązać to w taki sposób, że po każdym odebranym pakiecie niech wyśle jakiś nikomu nie potrzebny pakiet. Tylko takie rozwiązanie jest nie jest zbyt fajne...

    Ręce mi już opadają na działanie tych modułów. One po prostu "trochę" działają.
  • #426
    DXFM
    Level 20  
    kajojj wrote:
    Poprzez metodę testowania różnych konfiguracji, doszedłem że znacznie lepiej działa konfiguracja:
    - prędkość 9600bps
    - deviation 120kHz
    - bandwidth 340kHz

    Taka konfiguracja działa znacznie dłużej, ale i tak po pewnym czasie moduł przestaje generować przerwanie. Na pinie VDI wtedy ustawia się 0 i tak stoi (normalnie to się szybko zmienia 000101101010101111...).


    Dorób w programie ręczne reinicjowanie modułu radiowego np. za pomocą przycisku. Jeśli się "zatnie" - zresetuj moduł programowo. U nas dał popalić układ detekcji napięcia baterii - przy bardzo wolnej zmianie napięcia zasilającego w okolicy ustawionego progu zadziałania włączał się nadajnik blokując częstotliwość. Może u Ciebie wychodzi jakaś inna wada?
  • #427
    kajojj
    Level 13  
    DXFM wrote:
    Dorób w programie ręczne reinicjowanie modułu radiowego np. za pomocą przycisku. Jeśli się "zatnie" - zresetuj moduł programowo. U nas dał popalić układ detekcji napięcia baterii - przy bardzo wolnej zmianie napięcia zasilającego w okolicy ustawionego progu zadziałania włączał się nadajnik blokując częstotliwość. Może u Ciebie wychodzi jakaś inna wada?

    Moduły jak przestają odbierać, to tak się "zacinają" że nie da się ich zresetować poprzez wysłanie 0xfe00. Jedynie poprzez podanie niskiego stanu na wyprowadzeniu reset. Co ciekawe nie reagują też na inne polecenia, ale status zawsze po zawieszeniu da się odczytać. I wynosi on przeważnie 0x0080. No nic, więcej chyba nic się nie da wykombinować po prostu trzeba zastosować prędkość 9,6kbps i tyle. Wtedy działa to całkiem przyzwoicie.
  • #428
    arturfocus
    Level 10  
    Witam,
    czy da się jakoś odczytać w modułach RFM12B zajętość kanału? Chodzi o to, że brama w mojej sieci wysyła ramkę Broadcast a węzły, które je odbierają zaczynają je powielać zmniejszając wartość pola TTL. Niestety dzieje się to wszystko w jednym czasie i cześć tych pakietów nie dociera lub nachodzi na siebie.

    Odczytuję status za pomocą komendy writeCmd(0x0000) - czy bit ATS (Antenna tuning circuit detected strong enough RF signal) lub CRL (Clock recovery locked) może mi powiedzieć o tym, że nikt teraz nie wysyła i mogę śmiało wytransmitować pakiet?
  • #429
    adammruk
    Level 16  
    Witam. Już kilka dni męczę się z tymi modułami. Schemat mam taki jak na stronie http://loee.jottit.com/rfm12b_and_avr_-_quick_start , jedynie zamieniłem ze sobą linie MOSI i MISO. Używam programowego SPI. Korzystałem z kilku bibliotek zamieszczonych w tym temacie, m. in. ze strony 3 (https://www.elektroda.pl/rtvforum/topic890223-60.html) którą zamieścił kolega Korazon, programy kolegi avatar, z lekką modyfikacją pod attiny2313, oraz tej biblioteki: http://www.hansinator.de/rfm12lib/

    Za każdym razem mam podobne wyniki: Nadajnik w pętli nadaje jakiś pakiet (wysyła cały bufor, który jest na początku inicjowany) a odbiornik ma za zadanie w przypadku poprawnego odbioru zaświecić jedną diodę, w przypadku błędnego drugą, a ostatnio dorzuciłem jeszcze wysyłanie bufora przez RS232. I niestety nigdy nie ma sygnalizacji poprawnego odbioru, na RS wysyłane są śmieci, ale odbiornik dobrze sygnalizuje odbiór na pinie nIRQ, w takt wysyłania pakietu przez nadajnik (mam tam podłączoną diodę). Wnioskuję więc że moduły się "widzą", pakiet jest wysyłany, ale nie mam już pojęcia jak się do niego dobrać i poprawnie odebrać... Anteny mam podłączone do modułów, chodzą na osobnych zasilaczach, nadajnik na 3,3V, odbiornik na 3,8V (tyle wymaga MAX232 do poprawnej pracy).
    Jakieś pomysły co może być tego przyczyną?
  • #431
    mk1265
    Level 11  
    Mam pytanie Ile urządzeń maksymalnie mogę połączyć za pomocą modułów RFM01 i RFM02 praz HM-T i HM-R na częstotliwości 868Mhz. Mam dylemat który układ wykorzystać i nie wiem jaki posiadają one rozmiar sieci
  • #432
    atom1477
    Level 43  
    Nie ma czegoś takiego jak rozmiar sieci w przypadku tych modułów.

    EDIT.
    Jedynym ograniczeniem są wymiary modułów i ich zasięg.
    Zasięg to ze 200m a wymiary to z 1x1x2cm.
    Kula o promieniu 200m ma objętość 33520000000000cm^3 zatem maxymalna ilość układów RFM0x jaką da się połączyć to 16760000000000.
    I tu pojawia się problem bo chyba producent nie wyprodukował jeszcze tylu modułów :D

    W przypadku HM-x to nie wiem :D
  • #433
    mk1265
    Level 11  
    Zapytałem z ciekawości ponieważ np moduły ZigBee mogą tworzyć sieć o rozmiarze 65535 modułów
  • #436
    FastProject
    Level 28  
    kajojj wrote:


    1) nadajnik (wysyła co sekundę pakiet o długości 8 bajtów)
    2) odbiornik

    Przy takim teście nadajnik pracuje dobrze, ale odbiorniki po jakimś czasie przestają odbierać (np. jeden po 2h a drugi po 3h). Na początku dostrajania było to 20-30min, teraz jest 2-3h. Nie wiem jak temu zaradzić, żeby działało to cały czas. Z tego co zauważyłem to na długość poprawnej pracy mają wpływ rejestry: Receiver Control Command (0x9000), Data Filter Command (0xc228) oraz AFC Command (0xc400). Czyli pewno chodzi o rozstrojenie częstotliwości. Miał ktoś taki problem lub ma pomysł jak go rozwiązać?


    Witam. Mam podobny problem jak kolega. Od kilku dni testuję urządzenie które wysyła 2 bajty temperatury do odbiornika. Ramka to kolejno: adres, TH, TL, CRC8 i koniec ramki zawsze &hDD.

    Nadajnik co 10sekund budzi się za pomocą Wake-Up Timera z RFM12, a odbiornik jest ciągle zasilany i odbiera ramkę wyświetlając na LCD temperaturę. Komunikacja jest 2 dwustronna. Nadajnik wysyła ramkę i czeka na potwierdzenie od odbiornika. Jak odbierze potwierdzenie to procesor usypia RFM12B a następnie siebie samego (PowerDown mode). Odbiornik więc większość czasu tylko czeka i nasłuchuje eter, w którym co 10sekund pojawiają się dane z nadajnika.

    Po różnych kombinacjach odbiornik po jakimś czasie (od kilku do kilkunastu minut "zawiesza się"). Polega to na tym, że nadajnik zawsze wysyła ramkę i ponawia pomiar jak nie dostanie odpowiedzi, a tak nie może być bo musi się uśpić bo zasilanie bateryjne.

    Gdy odbiornik "zawiesi się", to odbiera i uaktualnia dane na LCD, ale z jakiegoś nieznanego mi powodu nie wysyła poprawie ramki potwierdzenia, czyli coś dzieje się z częścią nadawczą modułu RFM12. DOPIERO RESET PROCESORA ODBIORNIKA POWODUJE POPRAWNE ODEBRANIE A NASTĘPNIE WYSŁANIE ODPOWIEDZI DO NADAJNIKA.

    Dodam, że po odebraniu danych, wyłączałem RX i TX i ponownie inicjowałem cały moduł tak jak po resecie procka, ale to także nic nie dało.

    Kombinowałem z ustawieniami ale nic nie wskórałem...czy spotkał się ktoś jeszcze z podobnymi problemami. Chciałbym i wierzę, że wina leży raczej po stronie mojego oprogramowania, a jeśli tak to jeszcze nie wiem gdzie robię błąd.

    Proszę o ewentualne pomysły i wskazówki.
  • #437
    wicy
    Level 22  
    Napiszcie jak wygląda konfiguracja waszych modułów i jak przełączanie trybów nadawanie/odbiór.
  • #438
    FastProject
    Level 28  
    Moja konfiguracja dla Tx i Rx wygląda aktualnie tak jak na screenie:
    [Bascom][C]Atmega oraz radiowe moduły RFM01, RFM02, RFM12
    Nadajnik wysyła:
    Code:
       Tx_buff(6) = Adress
    
       Tx_buff(9) = Crc8(tx_buff(6) , 3)
       Tx_buff(10) = &HDD

       Spi_tx_wrd = &H8201
       Gosub Rfm12_spi_wrt

       Spi_tx_wrd = &HB8AA
       Gosub Rfm12_spi_wrt

       Spi_tx_wrd = &H0000
       Gosub Rfm12_spi_wrt

       Spi_tx_wrd = &H8239                                      'turn on Tx
       Gosub Rfm12_spi_wrt
       Waitus 150

       For I = 1 To 10                                          'Send TxBuf(1) tru (11).
          Spi_tx_wrd = &HB800 + Tx_buff(i)                      'combine send command and data into one word.
          Gosub Rfm12_tx_ready                                  'wait for Tx ready.
          Gosub Rfm12_spi_wrt                                   'write one word to SPI. RFM12 should Tx one byte.
       Next I

       Waitms 10

       Gosub Rfm12_rx_on           'czekaj na potwierdzenie od odbiornika
       Wait_for_reply = 1
       Enable Int1
       I = 0


    Nadajnik zawsze wysyła i odbiera odpowiedzi...po odebraniu odpowiedzi nadajnik idzie spać ;) Gdy nie ma odpowiedzi, to ponawia pomiar T i wysyła nową ramkę.

    Odbiornik:
    Po włączeniu zasilania:
    Code:
    Gosub Rfm12_init
    
    Gosub Rfm12_rx_on
    Spi_tx_wrd = &H0000
    Gosub Rfm12_spi_wrt
    I = 0

    teraz odbiornik w pustej pętli czeka na ramkę od nadajnika.

    Po poprawnym odebraniu ramki odbiornik przełącza się na nadawanie i wysyła potwierdzenie:
    Code:
             Gosub Rfm12_clear_fifo
    

             Spi_tx_wrd = &H8201
             Gosub Rfm12_spi_wrt

             Spi_tx_wrd = &H0000
             Gosub Rfm12_spi_wrt

             Spi_tx_wrd = &H8239                                'turn on Tx
             Gosub Rfm12_spi_wrt
             Waitus 150

             For J = 1 To 9                                     'Send TxBuf(1) tru (11).
                Spi_tx_wrd = &HB800 + Tx_buff(j)                'combine send command and data into one word.
                Gosub Rfm12_tx_ready                            'wait for Tx ready.
                Gosub Rfm12_spi_wrt                             'write one word to SPI. RFM12 should Tx one byte.
             Next J

             Waitms 10

             Gosub Rfm12_rx_on
             Spi_tx_wrd = &H0000
             Gosub Rfm12_spi_wrt
             I = 0

    W takiej konfiguracji nadajnik po kilku kilkunastu minutach przestaje poprawnie wysyłać odpowiedzi, mimo, że dalej odbiera ponawiane przez nadajnik ramki. Po resecie samego odbiornika, on sam ponownie zaczyna poprawnie nadawać i odbierać.
  • #439
    wicy
    Level 22  
    Akurat mam pod ręką nadajnik z odbiornikiem działające na podobnej zasadzie. Zapuszczę jutro na dłużej i zobaczę, czy się wiesza bo konfigurację mam inną :)
  • #440
    wicy
    Level 22  
    Nadajnik wysyła do odbiornika 4 bajty + 1 CRC. Odbiornik sprawdza co przyszło i odsyła inne 4 bajty + 1 CRC do nadajnika. Dodatkowo nadajnik przekazuje odebrane z odbiornika dane do komputera. Komputer przesyła dla nadajnika rozkaz nadawania co 10 sek.
    Nie używam usypiania i wybudzania modułów. Wszystko działa już 2h bez najmniejszych zakłóceń.

    Inicjalizacja modułu
    Code:

    Start_programu:
    Rf_sck = 0 : Rf_nsel = 1

    Gosub Rf_init : Waitms 10

    Data_out = &H8299 : Gosub Rf_komenda
    Data_out = &H0000 : Gosub Rf_komenda
    'FIFO reset
    Data_out = &HCA81 : Gosub Rf_komenda
    Data_out = &HCA83 : Gosub Rf_komenda
    Data_out = &H0000 : Gosub Rf_komenda


    Code:

    Rf_init:
       Data_out = &H80E8 : Gosub Rf_komenda
       Data_out = &H8238 : Gosub Rf_komenda
       Data_out = &HA640 : Gosub Rf_komenda
       Data_out = &HC623 : Gosub Rf_komenda
       Data_out = &H94A4 : Gosub Rf_komenda
       Data_out = &HC2EC : Gosub Rf_komenda
       Data_out = &HCA83 : Gosub Rf_komenda
       Data_out = &HCED4 : Gosub Rf_komenda
       Data_out = &HC443 : Gosub Rf_komenda
       Data_out = &H9850 : Gosub Rf_komenda
       Data_out = &HCC77 : Gosub Rf_komenda
       Data_out = &HE000 : Gosub Rf_komenda
       Data_out = &HC800 : Gosub Rf_komenda
       Data_out = &HC000 : Gosub Rf_komenda
    Return


    Nadawanie i odbiór
    Code:

    Wyslij_dane:
       'przestaw sie na nadawanie
       Data_out = &H0000 : Gosub Rf_komenda
       Data_out = &HCA81 : Gosub Rf_komenda
       Data_out = &HCA83 : Gosub Rf_komenda
       Data_out = &H8228 : Gosub Rf_komenda
       'wyslij rozbiegówkę
       Data_to_send = &HAA : Gosub Rf_send
       Data_to_send = &HAA : Gosub Rf_send
       Data_to_send = &HAA : Gosub Rf_send
       Data_to_send = &H2D : Gosub Rf_send
       Data_to_send = &HD4 : Gosub Rf_send
       'wyslij dane
       Data_to_send = Buf_pc(1) : Gosub Rf_send
       Data_to_send = Buf_pc(2) : Gosub Rf_send
       Data_to_send = Buf_pc(3) : Gosub Rf_send
       Data_to_send = Buf_pc(4) : Gosub Rf_send
       Data_to_send = Buf_pc(5) : Gosub Rf_send
       Data_to_send = &HAA : Gosub Rf_send
       Data_to_send = &HAA : Gosub Rf_send
       Data_to_send = &HAA : Gosub Rf_send
       'przestaw się na odbiór
       Data_out = &H8298 : Gosub Rf_komenda
       Data_out = &H0000 : Gosub Rf_komenda
       Data_out = &HCA81 : Gosub Rf_komenda
       Data_out = &HCA83 : Gosub Rf_komenda
    Return

    Odbierz_bufor:
       'odbierz dane
       Gosub Rf_receive : Buf_rf(1) = Received_data
       Gosub Rf_receive : Buf_rf(2) = Received_data
       Gosub Rf_receive : Buf_rf(3) = Received_data
       Gosub Rf_receive : Buf_rf(4) = Received_data
       Gosub Rf_receive : Buf_rf(5) = Received_data
       'resetuj FIFO
       Data_out = &H0000 : Gosub Rf_komenda
       Data_out = &HCA81 : Gosub Rf_komenda
       Data_out = &HCA83 : Gosub Rf_komenda
    Return


    Kod dla nadajnika i odbiornika jednakowy.

    Wygląda na to, że gdzieś masz problem z usypianiem i wybudzaniem. Może spróbuj najpierw wyłączyć te funkcje i sprawdź jak wygląda transmisja.
  • #441
    FastProject
    Level 28  
    Raczej to nie sprawa usypiania, bo usypiam tylko nadajnik, a on wysyła i odbiera poprawnie. Odbiornik nie jest usypiany i tylko odbiornik się blokuje. Odbiornik po odebraniu danych i odesłaniu potwierdzenia przełącza się na odbiór i czeka na kolejne dane w pustej pętli.

    Dodam, że jeśli odbiornik tylko odbiera dane i nie wysyła potwierdzeń, to działa ciągle bez zawieszeń. Jak się zawiesi to wystarczy reset albo odłączenie zasilania. Aktualnie działa mi już dłużej nawet 2h czasami ale ma działać ciągle. Do odbioru danych wykorzystuję przerwania.

    Sprawdzę sobie twoja konfigurację i zobaczymy..dzięki na razie.

    Zamieszczę kod dla odbiornika, który aktualnie działa mi od 45min. Jak ktoś będzie miał czas i zajrzy to będę wdzięczny-a nóż coś wypatrzy. Kod w Bascom. Nie znaczy to, że już jest ok bo czasami działał ponad 1h i dopiero się zacioł.
  • #442
    atom1477
    Level 43  
    A jak masz rozwiązane odbieranie?
    Może po prostu układ gdzieś raz błędnie odbierze jakiś znak i od tej pory już wszystko się sypie. Bo każdą ramkę od tej pory odbiera przesuniętą o 1 bajt a więc każdą odrzuca jako błędną. I w związku z tym nie odsyła potwierdzenia?
  • #443
    FastProject
    Level 28  
    atom1477 wrote:
    Może po prostu układ gdzieś raz błędnie odbierze jakiś znak i od tej pory już wszystko się sypie. Bo każdą ramkę od tej pory odbiera przesuniętą o 1 bajt a więc każdą odrzuca jako błędną. I w związku z tym nie odsyła potwierdzenia?


    Jak by zgubił jakiś bajt, a następnie przesuwał kolejne, to nie odbierał by bajtów z danymi prawda? A mimo, że nie odsyła potwierdzeń, to odbiera dane i uaktualnia poprawną wartość temperatury na LCD.

    Powyżej kod...
  • #445
    FastProject
    Level 28  
    atom1477 wrote:
    No racja.
    Może przed wysłaniem potwierdzenia poczekaj ze 20ms. Na razie mach chyba 10ms czyli dokładnie tyle ile nadajnikowi schodzi przejście w tryb odbioru.


    To 10ms jest po to żeby nadajnik zdążył wysłać ramkę. Po tym czasie dopiero przełączam się na odbiór, a kolejne dane przychodzą i tak po 10s. Czas o którym mówisz dawałem też większy...ale to też raczej nie to, bo przecież na początku działa ok, tylko po czasie coś nie trybi. Ale może ostatnia konfiguracja z pliku jest już dobra, bo działa poprawnie już pełną 1h.

    EDIT..chodzi mi już ponad 2h poprawnie. Jedyne zmiany wprowadziłem w rejestrze 10.AFC Command &HC4E7 (włączyłem High Accuracy i AFC Mode=Keep the F offset value)...może będzie już dobrze...

    EDIT2...3h bezproblemowej pracy...zrobiłem reset i zobaczymy czy przeżyje do rana. A tak to wygląda http://www.youtube.com/watch?v=02B2axGMDpY ...testuje przy odległości około 1m od siebie.

    Dobranoc

    EDIT3...niestety rano odbiornik już ani nie odbierał ani nie wysyłał danych.
  • #446
    FastProject
    Level 28  
    Słuchajcie..a może to nie wina modułu, a może to to, że mam ciągle podłączony metrowy przewód od programatora, bo używam sprzętowego SPI? Może to też wina zbyt dużego zasilanie, bo mam 5V choć producent zaleca zasilanie RFM12B napięciem do 3,8V?
  • #447
    adammruk
    Level 16  
    Próbuj odłączyć przewód, trzeba coś kombinować;]
    Co do zasilania to niektórzy pisali że im działa ładnie przy 5V, no ale wychodzę z założenia że skoro w pdf'ie jest max 3,8V to nie przekraczamy:)

    Miałem sytuację że odbiornik mi się nie wyrabiał z odbieraniem danych i gubił pakiet często... Po wprowadzeniu małego opóźnienia przy nadawaniu problem zniknął.
  • #448
    wicy
    Level 22  
    Nie wiem, czy to będzie miało znaczenie, ale
    1) na stronie http://www.hoperf.com/upfile/RFM12B.pdf w nocie jest napisane "Supports very short packets (down to 3 bytes)", czyli jeśli dobrze odczytuję transmisja minimum 3 bajtów
    2) na stronie http://www.hoperf.com/upfile/RF12TOOLS.pdf podany jest przykładowy pakiet - AA AA AA AA 2D D4 Dane AA

    Może więc warto spróbować przesłać temperature dwa razy w 4 bajtach? I wydłużyć preambułę do 4 bajtów?

    Zasilanie chyba nie ma znaczenia. Nie znalazłem informacji o jakimś wewnętrznym zabezpieczeniu modułu. Jeśli działa 2h na 5V to powinien działać i 6h...
  • #449
    FastProject
    Level 28  
    Co do zasilania to zgodzę się, bo myślę, że nie ma to większego znaczenia, bo przecież nadajnik działa na 5V i się nie zacina.

    Spróbuje wieczorem do odpowiedzi odsyłanej przez odbiornik dodać dodatkowe bajty. Ale tylko w odpowiedzi, bo jak pisałem nadajnik wysyła poza preambuła: Adres, TH, TL, CRC, czyli 4 bajty i te cztery bajty są praktycznie zawsze odbierane przez odbiornik. Odbiornik odpowiada: Adres, STAN, CRC czyli 3 bajty. STAN jest ustawiany na 0F, gdy odbiornik poprawnie odbiera dane, a gdy coś nie tak ustawia na F0. Jednak nawet jak poprawnie odbierze i ustawi STAN na 0F, to nie odsyła danych więc tu jest chyba coś przełączaniem modułu z odbioru na wysyłanie. Codziennie coś zmieniam i obserwuje.
  • #450
    adammruk
    Level 16  
    Spróbuj wysyłać jeden bajt w paczce... Ja tak robię. Wiem, nie jest to wtedy demon prędkości, ale możesz wytestować i takie coś. Mianowicie: AA AA AA 2D D4 bajt_do_wysłania AA AA AA