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?
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?