logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[Rozwiązano] Odbieranie niestandardowego sygnału 2.4GHz RF za pomocą CC2500

hdx 06 Sty 2021 15:54 747 7
REKLAMA
  • #1 19163256
    hdx
    Poziom 11  
    Hej,
    Wziąłem na warsztat mały* projekt związany z radiokomunikacją. Otóż chciałbym stworzyć tani odbiornik nietypowego sygnału RF na częstotliwości 2.4GHz. Całość została w zasadzie przeanalizowana i opisana przez kogoś więc mam wszystkie informacje do zaprojektowania takiego urządzenia.
    Niestety nie mogę zmusić CC2500 do tego aby wychwycić ten sygnał. W zasadzie zderzyłem się ze ścianą bo konfiguracja CC2500 jest bardzo trudna dla kogoś kto nie ma żadnej wiedzy w temacie. Dla testów zablokowałem wszystkie funkcje od zarządzania pakietami (CRC, FEC, szukanie słowa synchronizującego/preambuły itd.).

    Próbuję nasłuchiwać sygnału o takich parametrach:
    * częstotliwość 2479MHz (mogę zmienić kanał, ale tutaj jest najczyściej u mnie w mieszkaniu)
    * separacja częstotliwości 500kHz
    * modulacja FSK
    * przepustowość 4MHz (2MHz w obu kierunkach) - tego nie jestem pewien, a nie mam analizatora spektrum żeby to potwierdzić
    * bitrate: 96000 bits/s czyli około 96Kbps

    (przepraszam jeżeli pomyliłem jakieś pojęcia, tłumaczę z angielskiego)

    Moje ustawienia w SmartRF Studio:
    Odbieranie niestandardowego sygnału 2.4GHz RF za pomocą CC2500


    1. Ma ktoś doświadczenie z CC2500 i byłby mnie w stanie nakierować?
    2. Jak dobrać parametry do sygnału?
    3 Czy CC2500 w ogóle jest w stanie odebrać taki sygnał?


    * teraz wiem, że mocno mnie to przerosło
  • REKLAMA
  • Pomocny post
    #2 19163409
    Konto nie istnieje
    Poziom 1  
  • REKLAMA
  • #3 19163604
    hdx
    Poziom 11  
    Tak wszystko co się dało wyłączyłem. Nie jestem pewien czy dobrze ustawiłem we parametry w SmartRF względem sygnału, który chce nasłuchiwać
  • REKLAMA
  • Pomocny post
    #4 19163644
    Konto nie istnieje
    Poziom 1  
  • #5 19164013
    hdx
    Poziom 11  
    Ok, to jest jakaś myśl. Ustawiłem tryb "asynchronous serial" ale niestety nie dostaję nic na wyjściu. Sprawdzane pod Arduino i analizatorem logicznym.

    Zechciałbyś rzucić okiem na ustawienia rejestrów? Może coś Ci się rzuci. Załączyłem opis parametrów żebyś nie musiał wertować datasheetu.

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Sam transmitter na 100% działa bo zrobiłem sobie na szybko projekt, który mierzył RSSI na różnych częstotliwościach i zdecydowanie wyłapuje jak nadaje transmiter. Nie wiem natomiast dlaczego nie mogę nic odebrać, spodziewałbym się, że przy pewnych ustawieniach powinien zbierać nawet jakieś totalne śmieci.

    EDIT:
    Dobra pomęczyłem jeszcze ten tryb asynchroniczny i udało się odebrać dane :D Wielkie dzięki za nakierowanie mnie na właściwe tory! Wyraźnie widzę pakiety wysyłane co 4ms, wszystko w zasadzie zgadza się z tym co opisała osoba, która zrobiła reverse engineering protokołu. Teraz muszę rozkminić jak to samo uzyskać w trybie FIFO.
  • #6 19165689
    Konto nie istnieje
    Poziom 1  
  • REKLAMA
  • #7 19165726
    hdx
    Poziom 11  
    Resztę już wiem bo ktoś zrobił pełny reverse engineering całego protokołu ze wszystkimi szczegółami takimi jak choćby algorytm FEC i CRC. Najbardziej mnie martwiło czy w ogóle uda się jakimś tanim układem zdemodulować taki sygnał. W sumie chodzi o bezprzewodowego pada Wavebird do konsoli Nintendo GameCube, gdzie Nintendo wykorzystało customowy transmitter, do którego nie ma datasheetu.

    Sam fakt, że mogę odebrać te dane w trybie async serial mi wystarczy bo w najgorszym wypadku całą resztę da się już zrobić w całości po stronie MCU. Mimo wszystko pomęczę jeszcze packet engine bo chciałbym żeby w następnej rewizji móc wykorzystać układ CC2541, w którym raczej nie da się wyłączyć FIFO i packet handlingu. W CC2541 jest wbudowany MCU 8081 i to by znacznie obniżyło koszt całego urządzenia.

    Jeszcze raz dzięki za pomoc. Gdybyś mnie nie nakierował na ten tryb szeregowy to pewnie uznałbym, że układ nie jest kompatybilny z tym sygnałem i bym odpuścił.
  • #8 19165728
    hdx
    Poziom 11  
    Resztę już wiem bo ktoś zrobił pełny reverse engineering całego protokołu ze wszystkimi szczegółami takimi jak choćby algorytm FEC i CRC. Najbardziej mnie martwiło czy w ogóle uda się jakimś tanim układem zdemodulować taki sygnał. W sumie chodzi o bezprzewodowego pada Wavebird do konsoli Nintendo GameCube, gdzie Nintendo wykorzystało customowy transmitter, do którego nie ma datasheetu.

    Sam fakt, że mogę odebrać te dane w trybie async serial mi wystarczy bo w najgorszym wypadku całą resztę da się już zrobić w całości po stronie MCU. Mimo wszystko pomęczę jeszcze packet engine bo chciałbym żeby w następnej rewizji móc wykorzystać układ CC2541, w którym raczej nie da się wyłączyć FIFO i packet handlingu. W CC2541 jest wbudowany MCU 8051 i to by znacznie obniżyło koszt całego urządzenia.

    Jeszcze raz dzięki za pomoc. Gdybyś mnie nie nakierował na ten tryb szeregowy to pewnie uznałbym, że układ nie jest kompatybilny z tym sygnałem i bym odpuścił.

    Dodano po 1 [minuty]:

    Rozwiązanie: Dane udało się odebrać w trybie asynchronous serial mode więc to na tym etapie mi wystarczy do ukończenia projektu. Packet handling pewnie też uda się wykorzystać przy dopracowaniu konfiguracji.
REKLAMA