Skocz do zawartości

[stm32] [nrf24] Komunikacja radiowa stm32 i nrf24l01+


kojotuse

Pomocna odpowiedź

Cześć,
pracuję obecnie nad siecią czujników inercyjnych, które będą się ze stacją odbiorczą komunikować drogą radiową. Rozwiązanie oparłem o:

  • mikrokontroler stm32f042,
  • imu lsm9ds0,
  • moduł radiowy nrf24l01+.

Natomiast stacja odbiorcza ma być docelowo oparta na:

  • stm32 discovery f407
  • nrf24l01+.

Uruchomiłem komunikację radiową korzystając z przykładów zawartych w bibliotece https://github.com/maniacbug/RF24 pomiędzy arduino. Następnie chcę skomunikować moduł czujnika z stacją odbiorczą na arduino. I w tym miejscu niestety pojawiają się schody.

Schemat modułu czujnika wygląda tak:

A płytka tak (zdjęcie bez wlutowanych wszystkich elementów):

Oprogramowanie piszę z wykorzystaniem biblioteki hal i cube mx. Kod do obsługi radia zaczerpnąłem z https://github.com/ShapeLab/SwarmUI (autorzy wykorzystują stm32f051) i przerobiłem pod swoje potrzeby. Komunikacja spi z wykorzystaniem hal działa tak że pierwsza transakcja jest z błędem zegara - opisałem to tutaj: https://community.st.com/message/138769-re-stm32f042f6-spi1-clock-polarity-problem , ale już kolejne są w porządku, mogę zapisywać i odczytywać rejestry nrf24. Problem w tym że arduino nic nie odbiera. Sprawdzałem pod analizatorem komunikację i wygląda, że wszystko po pierwszej transakcji jest już dobrze, dlatego za początku odczytuję rejestr statusu modułu, a potem dopiero zaczynam konfigurację. Porównywałem wszystkie wartości rejestrów z modułu na stm32 i arduino które nadawało, kompletnie nie wiem dlaczego z arduino drugie arduino odbiera, a z stm32 nie.

Dodatkowo widzę że w rejestrze statusu jest zwrócona wartość maksymalnej liczby powtórzeń wysłania komunikatu, czyli moduł próbował wysłać dane 15x ale nie dostał potwierdzenia. Próbowałem konfigurować komunikację z automatycznym potwierdzeniem i bez, ale to nic nie zmienia. Również testowałem różne czasy wystawienia w stan wysoki pinu ce (uruchomienie nadawania lub odbierania, w zależności od konfiguracji), różną prędkość komunikacji spi.

Czy ktoś z was uruchamiał nrf24l01+ pod stm32 i napotkał podobny problem?

__________

Komentarz dodany przez: Treker

Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.