[TUT]Programowanie regulatorów na Fast PWM Silabs

Moderatorzy: moderatorzy2014, moderatorzy

Awatar użytkownika
shaggee
Posty: 2718
Rejestracja: piątek 03 lut 2012, 00:32
Lokalizacja: Poznań/Kalisz

[TUT]Programowanie regulatorów na Fast PWM Silabs

Post autor: shaggee »

Dużo osob pyta mnie jak programować regulator z prockiem Silabs na fast PWM. Przysyłacie też regulatorki. Opiszę krok po kroku jak tego dokonać. A naprawdę łatwiej jest niż z procem Atmega.

Soft ten według mnie jest o wiele lepszy niż Simonk. Można go konfigurować wedle uznania. A regulatory z prockiem Silabs w moim odczuciu są mniej awaryjne od Atmegi. Testowałem kilka regulatorów. W skwarze i zimą. Brak jakichkolwiek anomalii. Na Nazie działają jak złoto. Według mnie lepiej kupić dobrego Pluszaka od Turnigy i samemu go przerobić niż kupić regle rctimera fast PWM i modlić się żeby w powietrzu nie odmówiły posłuszeństwa.
Dodatkowo poniższy soft ma bardzo dobrą funkcję Soft Start. Może nam uratować palce gdy coś pójdzie nie tak. Jest też alarm w przypadku kiedy zapomnimy odłączyć model z zasilania itd.

I. Co potrzebujemy?
Obojętnie jaką płytkę z prockiem Atmega aby tymczasowo przerobić ją na programator procków Silabs. Może być multiwii SE, Multiwii AIO a nawet MinimOSD. Ważne żeby płytka miała piny ISP(pokaże niżej jak wyglądają). Spokojnie nie będziemy nic lutować. Wgramy jedynie tymczasowo inny soft.

II. Oprogramowanie
Paczka oprogramowania: http://www.olliw.eu/2012/owsilprog/#firmware

III. Przygotowanie programatora
Podłaczamy płytkę którą przerabiamy pod USB i uruchamiamy program z paczki o nazwie AvrBurnTool aby wgrać tymczasowe oprogramowanie do naszej płytki programującej. Wybieramy typ atmegi. Ja akurat mam CRIUS AIO więc wybieram owSilProg on Arduino Mega 2650. Jak ktoś ma mniejszą Atmegę to powinien wybrać owSilProg on Arduino Nano 328P.
Dalej wybieramy port COM (chociaż powinien automatycznie być wybrany) i klikamy BURN ALL. Po wgraniu softu mamy gotowy programator. Oczywiście po programowaniu regulatora możemy wgrać z powrotem to co mieliśmy na płytce np Multiwii.

Obrazek

IV. Przygotowanie połaczenia z regulatorem.
Prawie każdy regulator ma pady do programowania. Musimy sprawdzić ich kolejność połączeń. Pomoże nam ta strona: http://wiki.openpilot.org/display/Doc/R ... AtmelBased
Szukamy naszego regulatora. Moim regulatorem jest Turnigy Plush 30A. Po prawej mamy link do zdjęcia regulatora z opisem padów:
Obrazek
Pady łaczymy zgodnie z kolorami z wyjściem ISP naszej płytki programującej. Mamy do podłączenia tylko 3 pady (czerwony, czarny, biały). Wyjście i kolory wyglądają tak:
Obrazek

V. Programowanie
Regulator podłączony pod programator musimy zasilić lipolem w trakcie programowania. Jeśli ktoś się boi to można go zasilić przez szeregowo podłączoną żarówkę samochodową. W razie pomyłki zaświeci nam się żarówka a nie regulator.
Mamy już zasilony regiel i podłączony pod programator. Uruchamiamy program BLHeliTool.
Obrazek
Standardowo wybieramy port (jeśli sam się nie ustawi automatycznie).
Multiple ESC mode ustawiamy na default.
Przechodzimy na zakładkę FlashBLHeli to ESC:
Obrazek
Z listy rozwijanej BESC wybieramy nazwę naszego regulatora.
Niżej wersję softu (najlepiej najnowszą).
Mode ustawiamy na MULTI (czyli program dla multikopterów).
Klikamy Verify. Jeżeli wszystko jest dobrze podłączone, powinniśmy niżej ujrzeć coś takiego. (oczywiście numer Device ID możę być inny).
Obrazek
Jeżeli pojawi się napis "Connection to target FAILED" to znaczy że regulator jest źle podłączony, coś nie styka albo nie jest zasilony z lipola.
"MCU INCORRECT"- któryś ze styków nie łączy z padem.
"Block read FAILED" Oznacza, że regulator jeszcze nie ma wgranego softu fast PWM. Nie przejmujemy się tym napisem.
Jeśli wszystko jest OK. Klikamy Flash. Parę sekund, widzimy status "Flash HEX file.... DONE"
Mamy zaprogramowany regulator na soft Fast PWM


Możemy sobie wejść teraz w zakładkę SETUP Basic i kliknąć niżej READ. Wczytają się wszystkie ustawienia jakie mamy w regulatorze. Nie zalecam ich zmieniać bo są już na gotowo ustawione pod dany regulator.

Kalibracja gazu:
1. Podłączamy regulator pod kanał gazu aparatury ustawiony na MAX.
2. Po zasileniu regulatora usłyszymy sekwencję rosnących piknięć. Gry się skończą dajemy gaz aparatury na MIN
3. Usłyszymy sekwencję malejących piknięć. Gaz skalibrowany, można odłączyć regulator z zasilania.



Wyjaśnienie funkcji
Tak dla ciekawostki, choć nie polecam niektórych tykać.


1.Name: Można nadać indywidualną nazwę regulatora.
2. BESC: Nazwa i typ regulatora
3. Motor/Gear Setup:Właściwości silnika (KV, magnesy i zęby). Zmiana tych właściwości nie wpływa na ustawienia regulatora.
4. Main Governor P-Gain: Pidologia. Dla zrozumienia: jak szybko mam biegnąć na autobus biorąc pod uwagę jak daleko od niego jestem.
5. Main Governer I-Gain: Pidologia. Dla zrozumienia: Jak szybko mam biegnąć biorąc pod uwagę jak długo autobus będzie stał zabierając pasażerów.
6. Main Governer Mode: Zmiana ustawień regulatora za pomocą TX.
7. Low Voltage Limiter: Wiadomo. Odcięcie zasilania przy spadku napięcia celi.
8. Startup Method: Sposób rozruchu silnika. W silniku bezszczotkowym uruchamianie silnika jest trochę skomplikowane. Regulator musi wiedzieć w którą z 3 faz "uderzyć" aby uruchomić silnik. Funkcja Stepped uruchamia silnik od najwolniejszych obrotów bez zrywu.
9. Startup Power: Moc "rozrusznika silnika".
10. PWM Frequency: Częstotliwość wyjściowa sygnału PWM (do silnika)
11. Motor Direction: Kierunek silnika
12. Input Polarity: Polaryzacja sygnału wejściowego PWM. Jeśli ją przestawimy to przy ustawieniu drążka gazu na minimum ESC poda maksymalny gaz na silnik.
13. Damping Force: Hamowanie silnika przy jego wyłączeniu.
14. Starting RPM: Coś w stylu: Jak szybko chcesz odpalić silnik.
15. Startup Acceleration: Przyspieszenie od zera
16. Demag Compensation: Oszczędzanie energii. Coś w stylu kiedy pedałujesz rowerem i osiągasz żądaną prędkość to nie musisz już tak mocno naciskać na pedały.
17. Motor Timing: Wyobraź sobie naciskanie na pedały w rowerze. Możesz naciskać na pedały od razu kiedy jest np. na godzinie 1 lub w połowie obrotu. (nie wiem jak to wytlumaczyc logiczniej)
18. Governor Setup Target: ???
19. Governor Range: Czybkość zmiany faz. Coś jak praca cylinda w samochodzie.
20. Throttle Change Rate: Ta funkcja najbardziej nas interesuje czyli szybkość reakcji silnika na podawany sygnał PWM. Lepiej nie zmieniać tej wartości bo każdy regulator ma inną. Ta wartość już jest dopieszczona :)
21. PPM Min Throttle: Wiadomo. Minimalny gaz z aparatury.
22. PPM Max Throttle: Maksymalny gaz aparatury.
23. Beep Strenght: Głośność pikania silnika przy podłączaniu zasilania, zmiany ustawień itd.
24. Beacon Strength: Głośność piknięcia kiedy regulator wykryje sygnał PWM z aparatury (ostatnie piknięcie)
25. Beacon Delay: Alarm niewykrycia sygnału PWM. Przydaje się kiedy zapomnimy odłączyć model z zasilania.
26. Re Arming every Start: Sprawdza czy przy włączaniu regulatora nie daliśmy przypadkiem gazu. Lepiej tego nie tykać bo kiedyś możemy stracić paluchy.
27. Programming by TX: Programowanie z aparatury
Ostatnio zmieniony czwartek 03 paź 2013, 13:11 przez shaggee, łącznie zmieniany 5 razy.
KBCH
Posty: 132
Rejestracja: czwartek 26 lip 2012, 18:23
Lokalizacja: aa

Post autor: KBCH »

Bardzo ciekawe, szkoda ze zamówiłem już regle hk ale to nic. Czy wszystkie regulatory oparte na Silabsach mają wewnętrzny oscylaor czy zdarzają się takie i z zewnętrznym kwarcem?
mantiss
Posty: 16
Rejestracja: wtorek 23 lip 2013, 12:24
Lokalizacja: Wrocław

Post autor: mantiss »

Dzięki za opis - wszystko działa.
Czekam jeszcze tylko na opis funkcji ;-)
Awatar użytkownika
shaggee
Posty: 2718
Rejestracja: piątek 03 lut 2012, 00:32
Lokalizacja: Poznań/Kalisz

Post autor: shaggee »

Będę miał czas w tygodniu to coś nasmaruję ale to tylko tak dla wiadomości bo przestawianie niektórych wartości może zrobić kuku regulatorowi.
Awatar użytkownika
Pawlo_j23
Posty: 166
Rejestracja: poniedziałek 25 cze 2012, 18:17
Lokalizacja: Wojkowice

Post autor: Pawlo_j23 »

Dzięki wielkie za ten poradnik i za pomoc na pw :) Regle przeprogramowane w pół godzinki, zobaczymy jak poradzą sobie w nazie :D
Pozdrawiam!
Paweł

Zapraszam na mój profil
https://www.facebook.com/WnukuLaboratory
Awatar użytkownika
shaggee
Posty: 2718
Rejestracja: piątek 03 lut 2012, 00:32
Lokalizacja: Poznań/Kalisz

Post autor: shaggee »

Dodałem opis funkcji.
Fajnie żeby ktoś podwiesił temat żeby nie zginął w czeluściach.
Awatar użytkownika
BQB
Posty: 341
Rejestracja: czwartek 13 wrz 2012, 19:06
Lokalizacja: Elbląg(okolice)

Post autor: BQB »

Jakiś czas temu szukałem kodu źródłowego do regulatora, aby tak sobie zerknąć i jest to wielki problem, niby to wszystko bazuje na opracowaniu jakiegoś niemca, jednak, tak jakby wszyscy nabrali wody w usta. shaggee masz może jakieś źródło? Nawet najprostsze?
Awatar użytkownika
shaggee
Posty: 2718
Rejestracja: piątek 03 lut 2012, 00:32
Lokalizacja: Poznań/Kalisz

Post autor: shaggee »

BQB pisze:Jakiś czas temu szukałem kodu źródłowego do regulatora, aby tak sobie zerknąć i jest to wielki problem, niby to wszystko bazuje na opracowaniu jakiegoś niemca, jednak, tak jakby wszyscy nabrali wody w usta. shaggee masz może jakieś źródło? Nawet najprostsze?
https://github.com/bitdump/BLHeli/blob/ ... BLHeli.asm
Awatar użytkownika
simoneus
Posty: 89
Rejestracja: niedziela 15 kwie 2012, 14:28
Lokalizacja: Bielsko-Biała

Post autor: simoneus »

Witam
Mam regulator Skywalker quattro i zacząłem go flashowa'ć, i tak poszedł nr 2 i nr 4, jednak przy nr 1 zaczęły się problem. Program pokazuje coś takiego:
Flash hex file... Please wait!
delay... OK
v... OlliW SilProg v1.20 PB2PB3
flash target no. 1
r... rok
d... dok0A -> Device ID 0A F33x
i... iok
e... .....bc.Device erase FAILED!
Nr 4 ma takie same problemy. Czy możecie mi podsunąć jakieś rozwiązanie bo tak nie ciekawie zostałem z połówką przed i połówką za.
w_kaczmarek
Posty: 98
Rejestracja: poniedziałek 24 cze 2013, 10:55
Lokalizacja: Poznań

Post autor: w_kaczmarek »

Dziekuję Shagee! Świetny tutorial. Przejrzę w weekend swoje regle na silabsach.
KonRi
Posty: 82
Rejestracja: niedziela 10 lip 2011, 12:10
Lokalizacja: Kraków

Post autor: KonRi »

simoneus pisze:Device erase FAILED!
kiedyś ktoś juz o tym pisał na: http://www.olliw.eu/2012/owsilprog/
możliwe, że to jest tylko błędny komunikat.
Link do pdf'a z pinami i instrukcją: https://raw.github.com/bitdump/BLHeli/m ... 20ESCs.pdf
Awatar użytkownika
shaggee
Posty: 2718
Rejestracja: piątek 03 lut 2012, 00:32
Lokalizacja: Poznań/Kalisz

Post autor: shaggee »

Masz najnowsze oprogramowanie wypalone na programatorze?
Ja programowałem chyba ze 5 skywalkerów. Zawsze bez problemu.
Awatar użytkownika
simoneus
Posty: 89
Rejestracja: niedziela 15 kwie 2012, 14:28
Lokalizacja: Bielsko-Biała

Post autor: simoneus »

Witam
Problem rozwiązany. Przy felernym programowaniu zasilałem regulator z pakietu, jednak coś mnie tknęło i zasiliłem go na wprost z arduino 3.3V i ruszyło. Ciekawostką jest, że zasilane z pakietu uC miało to 3,3V i działało poprawnie, ale nie chciało się przeprogramować.
Loki
Posty: 674
Rejestracja: niedziela 17 kwie 2011, 16:59
Lokalizacja: Chełmno

Post autor: Loki »

Może troszkę odkopie temat . Dziś właśnie przerobiłem swojego hobbywinga skywalkera 4 in 1 20A na soft bl-heli. użyłem do tego opisanego sposobu i softu ze strony olliw.eu , do flashowania użyłem minim osd bez najmniejszego problemu i do odczytu danych też . Natknąłem sie jednak na taką paczunie z najnowszym softem w wersji 11V http://www.helifreak.com/blog.php?b=2001 w paczce tej też jest fajny soft do ostawień i za razem do przerobienia programatora i tu nastąpił problem mój programator niby działa a tak naprawdę nie mogę nic wgrać ani odczytać mogę w tym programie przerobić OSD i niby wszystko idzie tak jak należy a jednak nie działa. Zdesperowany wgrałem soft w wersji v11 po przez program ze stronki olliw .eu i wszystko ładnie chodzi oprócz opcji odczytu i zmiany ostawień program podaje że inna wersja i nie da rady odczytać. Miał ktoś do czynienia z tym nowym softem? może coś źle robię . A i jeszcze jedno czy do Nazy trzeba coś zmieniać w ustawieniach tych regli? Naza niby potrzebuje mid point na 1520 a w tych reglach jest ustawiony środek na 1480 czy to będzie coś robiło?
Pozdrawiam łukasz
Awatar użytkownika
shaggee
Posty: 2718
Rejestracja: piątek 03 lut 2012, 00:32
Lokalizacja: Poznań/Kalisz

Post autor: shaggee »

Nowego blheli nie używałem.
Pierwsze słyszę żeby Naza wymagała regli z midpointem 1520. Kalibrujesz regulator z aparatury i nic więcej nie trzeba zmieniać.
ODPOWIEDZ