Skocz do zawartości
michal8989

Dekodowanie komunikacji PIC i nadajnika RF

Pomocna odpowiedź

Mam pilot bezprzewodowy a wewnątrz, mikrokotroler (PIC18F25K20) i nadajnik rf(PIC12LF1840T39A). Wpiąłem się w magistralę komunikacyjną między nimi, zrobiłem to analizatorem stanów logicznych. Pinout wygląda jakby była zwykła komunikacja szeregowa. Niestety, na analizatorze dioda pokazuje  odbiór danych na analizatorze ale jakby sygnał był ciągły niski. Jedyna wskazówka to, że oba układy mają oscylatory 32mhz a analizator dobija do 24, dziwi mnie że nie pokazuje nawet losowo żadnego piku, bo zakładam że tak by było gdyby próbkowanie było za rzadkie.
Układy komunikują się tymi pinami:
PIC18F25K20 - RA3, RA4, RA5
PIC12LF1840T39A - RA0, RA1, RA2
Piny są wyprowadzone na złącze ISP jak na zdjęciu.


Co mam na celu? Chcę programowo wysyłać komendy takie jak pilot potrafi wysyłać. Podsłuchać komunikację i wysyłać to samo do nadajnika ale z innego mikrokotrolera. 
Próbowałem rf-replay, na inne urządzenia działa, w tym nie dałem rady. Nagrana próbka może być zbyt uboga.

Skończyły mi się pomysły jak dobrać się do komunikacji. 
Proszę o jakiekolwiek rady. 

IMG_20200217_182259.thumb.jpg.2bae2cd3b2abe6665d56412bd759d70d.jpg1815465014_Beznazwy-1.thumb.jpg.fefed1567a37d4201b8337f51ab3396e.jpg

Udostępnij ten post


Link to post
Share on other sites
3 godziny temu, michal8989 napisał:

zwykła komunikacja szeregowa

Czyli UART? SPI? I2C? Wszystkie są w jakimś sensie "zwykłe". No dobra, typowe I2C i UART raczej odpadają, bo linie są "zaparkowane" w stanach niskich. Zostaje dwukierunkowe SPI czyli zegar i dane full duplex albo zegar, dane w jedną stronę i CS.

Analizator ma swoje progi dyskryminacji tj. łapie tylko sygnały logiczne, które poziomami odpowiadają bramkom na jego wejściach. Jeżeli Twój analizator pracuje np. z sygnałami 5V a tutaj jest zasilanie procesorów np. 2.5 albo 1.8V to nic nie zobaczysz. Zawsze zaczynaj od pomiaru oscyloskopem, wtedy wiesz czego się spodziewać na warstwie fizycznej - jakich napięć, jak długich impulsów itp. Analizator to krok drugi i to zawsze z dopasowaniem poziomów gdy jest ono wymagane.

3 godziny temu, michal8989 napisał:

Niestety, na analizatorze dioda pokazuje  odbiór danych na analizatorze ale jakby sygnał był ciągły niski.

Tego nie rozumiem.

A komunikacje szeregowe, szczególnie gdy nie trzeba się wysilać a ilości danych są niewielkie, zwykle są rzędy wielkości wolniejsze niz zegary procesorów. Podejrzewam, że aktywność na liniach mógłbyś wykryć (tj. odróżnić stan pasywny od transmisji) nawet zwykłym multimetrem, który wahnie się z 0.00V np. na 0.20V.

Udostępnij ten post


Link to post
Share on other sites
1 godzinę temu, marek1707 napisał:

Podejrzewam, że aktywność na liniach mógłbyś wykryć (tj. odróżnić stan pasywny od transmisji) nawet zwykłym multimetrem, który wahnie się z 0.00V np. na 0.20V.

Z całą pewnością tak by było i podejrzewam, że nawet tak jest. Ten "ciągły niski sygnał" to być może jakiś znacznik końca/początku czy coś takiego. Spróbuj tą transmisję skopiować w domenie czasu a nie aktywności tj. zmierz czas trwania ramki. Najlepiej gdyby wysyłać na przemian różne komendy i przeanalizować cały ciąg pod kątem różnicy stanów w każdej z nich. Takie moje pierwsze skojarzenie.

Udostępnij ten post


Link to post
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Gość
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.


×
×
  • Utwórz nowe...