W związku z tym, że posiadam odpowiednie odbiorniki (R9Mini i XSR) to chciałem sprawdzić możliwości nowego protokołu F.Port. W tym celu wgrałem odpowiednią wersję firmware do odbiorników.
W związku z tym nie można było podłączyć odbiornika bezpośrednio. W przypadku kontrolera lotu zbudowanego przy użyciu mikrokontrolera F4 potrzebny będzie nam dwukierunkowy inwerter. Niestety kontroler lotu DYS F4 PRO V2 nie posiada takiego. Inną możliwością jest wykorzystanie nieodwróconego sygnału S.Port ale obawiam się, że przy tym rozmiarze odbiornika (R9Mini) będzie ciężko dolutować się do jakiegoś elementu jak miało to miejsce w odbiornikach XSR i X4RSB. Dokładny opis ustawienia parametrów pracy UART'a dla protokołu F.Port przy użyciu różnych typów mikrokontrolerów F3/F4/F7 można znaleźć tutaj.
Niestety ustawienia przedstawione na stronie Betaflight'a nie sprawdzają się w przypadku R9Mini i kontrolera lotu DYS F4 PRO V2. Można ten problem ominąć wykorzystując rozwiązanie programowe i skorzystać z SoftSerial. W tym celu musimy przemapować odpowiednie piny mikrokontrolera. Przechodzimy do CLI:
resource
resource serial_tx 1 none
resource is freed
resource serial_tx 11 A09
save
Przypisaliśmy w ten sposób do wyjścia A09 (TX1) port Soft Serial. W zakładce Configuration musimy włączyć obsługę SoftSerial oraz w zakładce Ports włączyć dla SoftSerial odbiór danych (RX).
Następnie przechodzimy znowu do CLI i sprawdzamy czy mamy tak ustawiony nasz port
serialrx_inverted = ON
serialrx_halfduplex = ON
Po podłączeniu odbiornika do tak przygotowanego portu TX1
udało się uzyskać sterowanie oraz obsługę telemetrii.
W związku z tym, że jest to rozwiązanie programowe, które w jakiś sposób obciąża procesor postanowiłem złożyć dwukierunkowy inwerter. Posłużyłem się rozwiązaniem przedstawionym na tej stronie SmartPort inverter for F4 flight controllers.
Niestety to rozwiązanie nie pozwoliło na obsługę F.Port, działało tylko sterowanie przy braku telemetrii. Zdziwiony tą sytuacją wgrałem do odbiornika XSR również firmware, który obsługuje F.Port.
Następnie podłączyłem odbiornik do kontrolera lotu.
Ustawiłem serialrx_inverted = OFF i serialrx_halfduplex = OFF i jakie było moje zdziwienie, że zarówno sterowanie jak i telemetria działały.
Wydaje mi się, że są jakieś problemy z obsługą F.Port w przypadku odbiornika R9Mini i użycia sprzętowego inwertera, który poskładałem. Działa sterowanie ale brak jest obsługi telemetrii. Co ciekawe w przypadku odbiornika XSR tego problemu nie ma.
W związku z powyższym odbiornik R9Mini został zamontowany w modelu Martian II, który posiada kontroler lotu z mikrokontrolerem F3.
Na chwilę obecną nie mam już wolnych odbiorników R9Mini aby przeprowadzić więcej testów. Ostatnio znalazłem również informacje o dostępności nieodwróconego sygnału S.Port w odbiorniku R9Mini co może być rozwiązaniem powyższych problemów.
Brak komentarzy:
Prześlij komentarz