STM32F407 czy nvem polecą na github (myślę że ok tyg jeszcze) zostały ostatnie testy , różnica to tylko zmiana pliku nagłówkowego który podmieni postprocesor wg ustawień . na STM32F407 zegar TIM2 można śmiało rozpędzić do 4MHz (pulse 0.125uS ) wiec serwo śmiało wysteruje .
Przy NVEM więcej jak 400KHz równych impulsów nie wyrabia już ale i tak uznaje jako bardzo dobry wynik .(wpieram się oscyloskopem oraz analizatorem logicznym do weryfikacji programu)
Komunikacja TCP/IP z PC wczoraj po optymalizacji softu na PC rozpędziłem do 300 komend gcode na 1 sekundę do sterownika , obecnie kończę moduł PLC ( wejścia/wyjścia),RS485 do falownika oraz chcę sprawdzić jak wejścia z osobnymi timerami zachowają się jako odczyt enkoderów .
Przy opracowaniu projektu spędziłem sporo czasu (kilka nocek też poświęciłem jak coś mi nie dawało spokoju w prawidłowym działaniu)
migracja GRBL to pryszcz , konfiguracja kodu dla STM + lwip + rtos to już zabrało najwięcej aby uzyskać szybką komunikacje TCP bez wysypania stosu co kończyło całą zabawę oraz zdarzało się w losowych momentach programu .
Porównując ESP32 do STM32 , to ESP oprócz wifi niczym więcej nie powala na głowę
Minusy ESP32
-ilość pinów (można dodać ekspander I2C / SPI ) ale przy bazowaniu osi dochodzi delay z odczytu ekspandera co np u mnie (2 śruby kulowe na osi Y ) dawało wynik "tak w miarę ... ale może być lepie ..
-240Hz 2 rdzenie ,tak ale do obliczeń ... , co z tego skoro sam program w FLASH zależnie wg ustawień pracuje max 80MHz
-pamięć RAM 520 KiB (ogółem 320Kb) też d.. nie urywa max wielkość tablicy max 64Kb ponieważ pamięć podzielona jest na sektory
-zależnie od środowiska (arduino/IDF) RTOS zalicza wpadkę i następuje przepełnienie stosu (restart modułu) próbowałem już wszystkiego może inni są lepsi i im się udało osiągnąć stabliną komunikacje , ja zrezygnowałem
- zasięg WIFI teroia 300m ,realia poniżej 4m pink do AP na ESP32 jest <2ms potem to loteria i zależy co mamy dookoła , im większy PING tym komunikacja leży , pracując jako serwer TCP i wysyłaniu danych do klienta (PC) nie otrzymując potwierdzenia ,potrafi w pętle wpaść i się wysypać RTOS
+ RMT ten moduł do silników krokowych jest świetny i pracuje bardzo stabilnie .
Dodane 5 minuty 2 sekundy:
cubit pisze: ↑11 lis 2020, 13:15
Gdzie przeczytałeś lub widziałeś źródła do linuxcnc?
https://github.com/pekkaroi/ethernetcnc
Chciałem z ciekawości zerknąć jak to inni robią ale jako programista nie uznaje UDP protokołu do komunikacji , tym bardziej w takich projektach gdzie wymagam dokładności i pewności że pakiet dotarł do sterownika w TCP nie dodając dla siebie w programie dodatkowo ACK od sterownika .