eLeReS by Mifau?
Moderatorzy: marbalon, moderatorzy2014, moderatorzy
Re: eLeReS by Mifau?
Telemetria nadawana jest zaraz po odebraniu ramki sterującej. A wysyłanie S-BUS to całkiem osobny task, ale jest szybszy niż wysyłanie PPM, więc może coś jest na rzeczy...
Pzdr. -----MIŚ-----
Re: eLeReS by Mifau?
Druga rzecz jaka przychodzi mi na myśl, to może są jakieś szpilki na sygnale których nie widzę na oscyloskopie. Jeśli PPM od razu robi interrupta to FC będzie bardzo wrażliwy. UART zapewne sampluje każdy bit wielokrotnie i może być przez to bardzej odporny. Taka hipoteza.
Co do samego SBUS-a - możesz mi powiedzieć czemu wysyłanie ramki SBUS z eleresa trwa ~6ms, kiedy innym wystarcza 3ms?
Pociągnąłbym temat po stronie iNav-a, tylko potrzebuję argumentów :)
Co do samego SBUS-a - możesz mi powiedzieć czemu wysyłanie ramki SBUS z eleresa trwa ~6ms, kiedy innym wystarcza 3ms?
Kod: Zaznacz cały
/*
* Observations
*
* FrSky X8R
* time between frames: 6ms.
* time to send frame: 3ms.
*
* Futaba R6208SB/R6303SB
* time between frames: 11ms.
* time to send frame: 3ms.
*/
#define SBUS_TIME_NEEDED_PER_FRAME 3000
Re: eLeReS by Mifau?
Eleres robi uarta S.BUS programowo, i nie może blokować innych tasków w tym czasie na kilka milisekund, dla tego wysyłany jest jeden bajt, robione inne taski, kolejny bajt itd aż do opróżnienia bufora nadawania sbus (22 bajty są do wysłania).
I ten czas wysyłania ramki nie wynosi zawsze 6ms, najczęściej wynosi 3-4ms, ale jak akurat tak trafi że ma do zrobienia więcej, to się wydłuża bo pomiędzy kolejnymi wysyłanymi bajtami jest coś pilnego do obsłużenia. No i wtedy może się wydłużyć do max. 6ms.
Interwał pomiędzy ramkami jest stały i typowy dla futaby, czyli 14ms (11+3 w przykładzie powyżej).
I ten czas wysyłania ramki nie wynosi zawsze 6ms, najczęściej wynosi 3-4ms, ale jak akurat tak trafi że ma do zrobienia więcej, to się wydłuża bo pomiędzy kolejnymi wysyłanymi bajtami jest coś pilnego do obsłużenia. No i wtedy może się wydłużyć do max. 6ms.
Interwał pomiędzy ramkami jest stały i typowy dla futaby, czyli 14ms (11+3 w przykładzie powyżej).
Pzdr. -----MIŚ-----
Re: eLeReS by Mifau?
Dla zainteresowanych - poprawka będzie na inav 1.9.
-
- Posty: 382
- Rejestracja: wtorek 03 sty 2017, 13:48
- Lokalizacja: Ustroń
Re: eLeReS by Mifau?
Poprawka rozumiem będzie dotyczyć zwłoki czasowej na odebranie ramki SBUS? Będzie to konfigurowane z poziomu konfiguratora?KM pisze:Dla zainteresowanych - poprawka będzie na inav 1.9.
Re: eLeReS by Mifau?
Tak, chodzi o maksymalny czas potrzebny na odebranie ramki.
Nie będzie żadnej konfiguracji. Zmiana na stałe.
Natomiast mam jeszcze jedną obserwację dotycząca SBUS - kontroler pokazuje mi wszystkie kanały zawyżone o 19 (tzn. 1519 w centralnej pozycji zamiast 1500). To nie kwestia radia, bo zanim go włączę to też już pokazuje 1519... Nie bardzo rozumiem o co chodzi...
Edit: mam RX 1.26c.
Nie będzie żadnej konfiguracji. Zmiana na stałe.
Natomiast mam jeszcze jedną obserwację dotycząca SBUS - kontroler pokazuje mi wszystkie kanały zawyżone o 19 (tzn. 1519 w centralnej pozycji zamiast 1500). To nie kwestia radia, bo zanim go włączę to też już pokazuje 1519... Nie bardzo rozumiem o co chodzi...
Edit: mam RX 1.26c.
Ostatnio zmieniony niedziela 04 lut 2018, 13:59 przez KM, łącznie zmieniany 1 raz.
-
- Posty: 382
- Rejestracja: wtorek 03 sty 2017, 13:48
- Lokalizacja: Ustroń
Re: eLeReS by Mifau?
Mam dokładnie tak samo, ale działa wszystkoKM pisze:Tak, chodzi o maksymalny czas potrzebny na odebranie ramki.
Nie będzie żadnej konfiguracji. Zmiana na stałe.
Natomiast mam jeszcze jedną obserwację dotycząca SBUS - kontroler pokazuje mi wszystkie kanały zawyżone o 19 (tzn. 1519 w centralnej pozycji zamiast 1500). To nie kwestia radia, bo zanim go włączę to też już pokazuje 1519... Nie bardzo rozumiem o co chodzi...
Re: eLeReS by Mifau?
sbus.c, funkcja static uint16_t sbusReadRawRC...KM pisze:Natomiast mam jeszcze jedną obserwację dotycząca SBUS - kontroler pokazuje mi wszystkie kanały zawyżone o 19 (tzn. 1519 w centralnej pozycji zamiast 1500). To nie kwestia radia, bo zanim go włączę to też już pokazuje 1519... Nie bardzo rozumiem o co chodzi...
" return (0.625f * sbusChannelData[chan]) + 880;"
Środek dla s.bus to wartość 1023 (niektórzy podają 1024), zakres 0..2047. Według tego 1023*0.625 = 639 + 880 = 1519.
No i już wiadomo skąd te 1519 Żeby było 1500 to zamiast +880 musiało by być +861, lub współczynnik zmieniony z 0.625 na 0.606
Wygląda na to że inav zakłada że MidRC wynosi 1520 a nie 1500. Może tak ma być... A może gdzieś się da to w konfiguracji zmienić.
Pzdr. -----MIŚ-----
Re: eLeReS by Mifau?
Krzysiek dzięki za poprawkę w iNav - widziałem na githubie. A co do 1519 to Misiek wytłumaczył, ale to w sumie taka zaszłość, bo aktualnie wszystkie FrSky nadają 1500, a kiedyś centrum było 1519 dla Furaby tylko że wtedy nikt tego nie oglądał pewnie tak dokładnie
Re: eLeReS by Mifau?
marbalon, w iNav jest opcja wyboru odbiornika SPI/eleres,
czy oznacza to, że można jakoś podłączyć moduł RFM do kontrolera,
czy jest to zarezerwowowane wyłącznie dla KFC?
czy oznacza to, że można jakoś podłączyć moduł RFM do kontrolera,
czy jest to zarezerwowowane wyłącznie dla KFC?
Re: eLeReS by Mifau?
Można, tylko musiałbyś "dokompilować" obsługę tego i mieć w kontrolerze który używasz mieć wystawiony interfejs SPI...
Re: eLeReS by Mifau?
KM, a nie wiesz może jak w kwestii BetaFlight? myślisz, że byłaby szansa na zmianę timeoutu dla sbus'a? :)
Re: eLeReS by Mifau?
Zróbmy tak - niech ta zmiana zostanie potestowana troche w inav-ie i jak będzie wszystko OK to wrzucę też do BF. Jeszcze tam nic nie zmieniałem ale... kiedyś trzeba zacząć :)a nie wiesz może jak w kwestii BetaFlight? myślisz, że byłaby szansa na zmianę timeoutu dla sbus'a? :)
W inav centrum to 1500. Da się zmienić, ale...eLeRes jako nowoczesny RX powinien dawać ładne 1500 też :)Wygląda na to że inav zakłada że MidRC wynosi 1520 a nie 1500. Może tak ma być... A może gdzieś się da to w konfiguracji zmienić.
Z tego co się dowiedziałem to typowo S.BUS ma mieć: min: 173, mid: 993 and max: 1812
Natomiast CRSF ponoć daje o 1 mniej, tzn: 172, 992,1811
Re: eLeReS by Mifau?
Gdzieś to znalazł ?KM pisze:Z tego co się dowiedziałem to typowo S.BUS ma mieć: min: 173, mid: 993 and max: 1812
No wszędzie gdzie widzę to mid = 1023 albo 1024...
Pzdr. -----MIŚ-----
-
- Posty: 382
- Rejestracja: wtorek 03 sty 2017, 13:48
- Lokalizacja: Ustroń
Re: eLeReS by Mifau?
Może nie jest to jakiś dobitny dowód ale wszystkie przykłady jakie Ja znalazłem zakładają mid na ~993.miś pisze:Gdzieś to znalazł ?KM pisze:Z tego co się dowiedziałem to typowo S.BUS ma mieć: min: 173, mid: 993 and max: 1812
No wszędzie gdzie widzę to mid = 1023 albo 1024...
https://www.google.pl/amp/s/quadmeup.co ... e-way/amp/
Generalnie jest coś na rzeczy z tym co wypluwa eleres rx bo u mnie zarówno na pixhawku z wpiętym eleresem rx jak i na spracing f3 z podpiętym eleres rxem środkowe wartości inav oraz arducopter wskazuje na 1519, do testów do tych samych dwóch kontrolerów podpiąłem odbiorniki frsky (x8r oraz x4rsb) i inav pokazał równo 1500 oraz ardu też 1500.