Miniaturowy sterownik silników krokowych P46d jest jednym z moich autorskich rozwiązań. Opiera się na układzie L6258ex obsługującym interfejs równoległy oparty na parze sygnałów zegarowych przesuniętych w fazie. Potrzeba jego powstania wynikła z faktu, że zdecydowana większość rozwiązań dostępnych na rynku dostarcza interfejs równoległy oparty na parze sygnałów zegar/kierunek. (Dlaczego w pewnych sytuacjach DIR/CLOCK nie jest optymalnym rozwiązaniem pisałem w: „Interfejs równoległy w sterownikach silników krokowych„)
Driver
L6258 jest jednym z wielu driverów silników krokowych w ofercie STMicroelectronics. Podstawowe cechy układu, za notą katalogową, to:
- Napięcie zasilania: 12-40V,
- Prąd wyjściowy: 1,5A (max. 2A),
- Napięcie zasilania logiki: 5V,
- Współpraca z systemami 5V oraz 3.3V,
- Zabezpieczenie termiczne.
Schemat blokowy:
Driver dysponuje interfejsem równoległym, dającym możliwość podziału kroku do 16 mikrokroków. Wejścia PH_1, PH_2 określają kierunki przepływu prądu przez poszczególne uzwojenia. Piny od I0_x do I3_x stanowią 4-bitowe słowo będące wejściem dla wbudowanego przetwornika cyfrowo-analogowego, i wraz z napięciem odniesienia przyłożonym do pinu Vref, stanowią informacją o poziomie prądu mającego popłynąć przez dane uzwojenie silnika (Napięcie na pinie Vref wraz z rezystorem pomiarowym Rs określają maksymalny prąd, zgodnie z wzorem: I_{max}=\frac{V_{ref}}{2R_{s}} , a 4 bitowe słowo ustawione na pinach I0_x – I3_x określa jaki procent wartości maksymalnej prądu popłynie w danym momencie przez uzwojenie. Patrz Tabela 1‑1).
Aby uzyskać obrót rotora z podziałem kroku do 16 mikrokroków należy podać na wyżej opisane wejścia następujące przebiegi:
Opis pinów płytki P46d
- GND – masa zasilania,
- 5V – zasilanie logiki. To musi być 5V!!! Podanie innego napięcie, nawet niższego (np. 3.3V), może skutkować uszkodzeniem układu,
- Vs – zasilanie uzwojeń silnika (podać napięcie z zakresu 12-40V). Im wyższe napięcie (nie przekraczające wartości maksymalnej) tym szybsze narastanie prądu w uzwojeniach silnika. Ma to szczególne znaczenie w przypadku dużej częstotliwości przełączania,
- PH1, PH2 – wejścia określające kierunki przepływu prądu przez poszczególne uzwojenia (podłączać do wyjścia przeciwsobnego układu sterującego),
- I0x – I3x – 4 bitowe słowo określające jaki procent wartości maksymalnej prądu popłynie w danym momencie przez dane uzwojenie silnika (podłączać do wyjścia przeciwsobnego układu sterującego. Wejścia nie mogą pozostać niepodłączone. W przypadku nie wykorzystywania sterowania mikrokrokowego należy podać na wszystkie wejścia stan niski – „ściągnąć” do masy),
- EN – wejście blokujące/odblokowujące możliwość przepływu prądu przez uzwojenia silnika (podłączać do wyjścia typu otwarty kolektor układu sterującego),
- O1A, O1B – podłączenie pierwszego uzwojenia silnika,
- O2A, O2B – podłączenie drugiego uzwojenia silnika,
- SREF – selekcja napięcia odniesienia przykładanego do pinu Vref1 oraz Vref2. Możliwość wyboru, pomiędzy dwiema wartościami, maksymalnego prądu płynącego przez uzwojenia: stan niski – 0,75A, stan wysoki – 0,2A (podłączać do wyjścia przeciwsobnego układu sterującego),
- RS – napięcie odniesienia przykładane do pinu Vref1 oraz Vref2 w przypadku ustawienia stanu wysokiego na wejściu SREF,
- RM – napięcie odniesienia przykładane do pinu Vref1 oraz Vref2 w przypadku ustawienia stanu niskiego na wejściu SREF.
Napięcie zasilania uzwojeń silnika (Vs)
Zastosowana wielkość napięcia zasilania uzwojeń w dużym stopniu zależy od tego z jaką prędkością obrotową będzie pracował silnik.
Wzór opisujący prąd ładowania indukcyjności wyraża się w następujący sposób: I(t)=\frac{U}{R}(1-e^{-\frac{R}{L}t}), gdzie L/R jest stałą czasową układu LR, będącą główną przeszkodą w uzyskaniu wysokich obrotów wirnika. W przypadku dużej częstotliwości przełączania istnieje ryzyko, że prąd nie będzie w stania narosnąć (w trakcie czasu pomiędzy przełączeniami) do wartości wymaganej dla uzyskania danego momentu obrotowego. Aby przyspieszyć narastanie prądu w silniku można:
- Dodać szeregowo połączone z uzwojeniami silnika oporniki, zmniejszając tym samym stała czasową (rozwiązanie nieefektywne, wymagające oporników o bardzo dużych mocach; duża część energii rozpraszana jest w postaci ciepła w opornikach),
- Zwiększyć napięcie zasilania, co można zrobić praktycznie bezkarnie, jeśli stosujemy układ z kluczowaniem prądu (L6258 jest takim układem).
Jeżeli chcemy „rozkręcić” silnik (L=100mH, R=6,5Ω), przy wysterowaniu pełnokrokowym, do częstotliwości 1000Hz (przełączanie w danym uzwojeniu występuje dwa razy wolniej, a więc z częstotliwością 500Hz) i zastosowaniu opornika pomiarowego Rs=0,3Ω, a pomiędzy kolejnymi przełączeniami prąd musi narosnąć do co najmniej 0,5A, aby uzyskać odpowiedni moment, to zastosowane napięcie zasilania powinno być równe lub większe: 27V.
Poniżej znajdują się przebiegi dla napięcia zasilania 20 i 30V (mierzone na oporniku Rs) przy wysterowaniu pełnokrokowym oraz częstotliwości przełączania w danym uzwojeniu równym 100Hz:
Z powyższych oscylogramów wynika, że maksymalna częstotliwość przełączania w danym uzwojeniu (przy założeniu, że istotne jest osiągnięcie zakładanej wielkości prądu pomiędzy przełączeniami) to dla napięcia zasilania:
- Vs=20V: fmax=128Hz
- Vs=30V: fmax=231Hz
Pobór prądu
Jedną z charakterystycznych cech silnika krokowego jest utrzymywanie rotora w określonej pozycji z pełnym momentem trzymającym. Oznacza to stały pobór prądu, nawet (zwłaszcza) w trakcie postoju wirnika. W przypadku ustawienia zbyt wysokiego napięcia odniesienia (wymuszenie dużego prądu maksymalnego przepływającego przez uzwojenia) może dojść do nadmiernego grzania się zarówno sterownika jak i silnika. Paradoksalnie, im większa częstotliwość przełączania (a więc, im większa prędkość obrotowa rotora) tym mniejszy pobór prądu – wiąże się to z szybkością narastania prądu w uzwojeniach silnika. Zaleca się zmieniać napięcie odniesienia w zależności od tego czy silnik pozostaje w stanie postoju czy ruchu, np. możemy ustawić wartości prądu maksymalnego: 0,2A dla postoju, 0,75A dla ruchu.