Dla linii RUN I DIR wystarczą transoptory, np. jeden podwójny PC827. Sterowanie obrotami odbywa się przebiegiem PWM o częstotliwości zwykle 1..2kHz, ale można ja w MACH3 ustawiać w dość szerokich granicach, powiedzmy 100Hz..10kHz. Dlatego tą linię zamierzam izolować szybkim transoptorem, np. 6N137.
Problemem jest demodulacja sygnału PWM. Wprawdzie sygnał jest podany wejście bramkujące timer, ale częstotliwość może się zmieniać w szerokich granicach, czyli musiałbym zgrubnie ustawiać prescaler timera. Teraz okazało się, że nie mam czasu na dzielenie mimo, że program jest pisany w asemblerze.
W zasadzie mógłbym podać wyjście transoptora na filtr RC i odczytać napięcie wejściem ADC, ale to ostateczność.
Pamiętam, że istnieje metoda demodulacji PWM polegająca na wielokrotnym próbkowaniu sygnału w losowych odstępach czasu. Przy odpowiednio dużej liczbie pobranych próbek, najlepiej będącą wielokrotnością 2 (proste dzielenie), liczba próbek "wysokich" była proporcjonalna do wypełnienia.
Nie mogę znaleźć szczegółów tej metody a zwłaszcza: zasad doboru odstępów próbkowania, wpływu liczby próbek na dokładność demodulacji, itp.
Może jakiś student jest na bieżąco?
![Smile :)](./images/smilies/yellowsmile.gif)