Silnik krokowy SM60/86-3008B i sterownik SSK-B03

Dyskusje na temat silników krokowych i sterowników silników krokowych.

Autor tematu
ferwus
Nowy użytkownik, używaj wyszukiwarki
Nowy użytkownik, używaj wyszukiwarki
Posty w temacie: 1
Posty: 1
Rejestracja: 12 sty 2012, 11:04
Lokalizacja: Polska

Silnik krokowy SM60/86-3008B i sterownik SSK-B03

#1

Post napisał: ferwus » 12 sty 2012, 12:32

Witam.
Posiadam silnik: SILNIK KROKOWY SM60/86-3008B oraz sterownik do niego SSK-B03 - 4.2A, 50V,1/128 kroku. Sterownik jest zasilany przez napiecie 40V a prad pracy silnika ustawilem na 3,76A czyli (SW1-On,SW2,SW3-OFF). Sygnaly PUL+ i DIR+ na stale podlaczone do +5V zaś sygnaly PUL- i DIR- sa sterowane przez porty procesora np. PB0,PB1( Atmega128 i zegar zewnentrzny 16.000MHz).
PUL - krok
DIR - kierunek
W parametrach sygnalu sterujacego sterownika SSK-B03 jest np. opisane ze sygnal kierunek DIR jest zalaczany 5 μs przed sygnalem krok PUL. PUL jest sygnalem prostokatnym o dlugosci, ktora nie moze byc mniejsza niz 1,5 μs. Po zmianie kierunku znow musi minac 5μs przed PUL ( opis i rysunek jest w instrukcji do sterownika).
Problem mam w tym jak zrealizowac taki schemat dzialania w jezyku C. Czy mam to realizowac na przerwaniach? czy w jakis inny sposob? Moze ma ktos jakis pomysl lub fragment programu jak zrobic zeby sygnal DIR zalacza sie 5 μs przed sygnalem PUL a PUL ma 1.5 μs i zmiana kierunku nastepuje 5 μs przed sygnalem kroku.
Rownierz chcialbym wiedziec czy ten sterownik odpowiada dla danego silnika?
Czy dlugosc sygnalu generowanego wlasnie powinna byc 1,5μs dla dobrego dzialania tego silnika bo zalezy mi na utrzymaniu duzej predkosci obrotu silnika i utrzymaniu duzego momentu obrotowego?
Dzienki z gory za pomoc



Tagi:


Raven
Specjalista poziom 3 (min. 600)
Specjalista poziom 3 (min. 600)
Posty w temacie: 4
Posty: 681
Rejestracja: 24 paź 2011, 11:54
Lokalizacja: Warszawa

#2

Post napisał: Raven » 16 sty 2012, 15:39

Wariant ładny - timer...

Wariant prosty? asm("nop") i dobór odpowiedniej liczby "nic nie rób" do częstotliwości taktowania megi.


Leoo
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 2
Posty: 4017
Rejestracja: 15 lis 2006, 22:01
Lokalizacja: Tarnobrzeg

#3

Post napisał: Leoo » 16 sty 2012, 23:34

Raven pisze:Wariant prosty? asm("nop") i dobór odpowiedniej liczby "nic nie rób" do częstotliwości taktowania megi.
Pierwsze przerwanie zburzy ten "zamek na piasku".
Nie wyobrażam sobie generowania rampy za pomocą nop-ów a silnik krokowy musi poruszać się zgodnie z nią, bo inaczej straci synchronizm.


kasztan
Specjalista poziom 1 (min. 100)
Specjalista poziom 1 (min. 100)
Posty w temacie: 1
Posty: 165
Rejestracja: 12 lip 2010, 15:23
Lokalizacja: Warszawa

#4

Post napisał: kasztan » 19 sty 2012, 10:19

Również nie polecam NOP'ów.
Na jednym Timerze można sporo zdziałać.

Awatar użytkownika

ursus_arctos
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 2
Posty: 2083
Rejestracja: 11 cze 2011, 18:29
Lokalizacja: Warszawa / Lublin

#5

Post napisał: ursus_arctos » 19 sty 2012, 10:53

Z tego, co widzę, to tu nie chodzi o rampę tylko o odpowiednie wyprzedzenie DIR względem STEP. Ja to robię tak, że najpierw ustawiam wyjście DIR, potem coś tam liczę a następnie ustawiam sygnał STEP. Nopy są bez sensu, bo ATMega nie ma aż takiego zapasu mocy obliczeniowej, żeby czas na nopy marnować. Nie używam timerów, bo czas obsługi przerwania jest zbyd długi - jedynym przerwaniem, którego faktycznie używam jest przerwanie do wysyłania przez USART (odbiór robię przez polling - 1 bajt na obrót pętli programu!) - w ten sposób mam zagwarantowaną zarówno wydajność jak i płynność.


Raven
Specjalista poziom 3 (min. 600)
Specjalista poziom 3 (min. 600)
Posty w temacie: 4
Posty: 681
Rejestracja: 24 paź 2011, 11:54
Lokalizacja: Warszawa

#6

Post napisał: Raven » 20 sty 2012, 16:11

Najwyraźniej musiałem nie zrozumieć o co pytał autor tematu... odniosłem wrażenie, że chodzi o prosty generator sygnału do sprawdzenia poprawności działania gotowego sterownika.

Nop z racji zerowego wysiłku jest przy tym bardzo wygodnym rozwiązaniem... w którym nie widzę jak przerwania których obsługi nie będzie miały by zakłócić wykonanie.

Jeśli chodzi mikro kontroler robiący robotę sterownika to nop absolutnie odpada.


Leoo
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 2
Posty: 4017
Rejestracja: 15 lis 2006, 22:01
Lokalizacja: Tarnobrzeg

#7

Post napisał: Leoo » 20 sty 2012, 23:05

Raven pisze:Nop z racji zerowego wysiłku jest przy tym bardzo wygodnym rozwiązaniem... w którym nie widzę jak przerwania których obsługi nie będzie miały by zakłócić wykonanie.
Proszę zajrzeć do mojej galerii. Jest tam generator na popularnej kostce 555, który nie wymaga kompilatora, programatora ani wiedzy z dziedziny procesorów a do sprawdzenia sterownika nadaje się doskonale.
Autor wątku zapina dużą Atmegę do sterowania, tymczasem Kolega prorokuje, że nie będzie obsługi przerwań? Tak nieśmiało zapytam: UART, Flash, klawiatura, wyświetlacz itd. wszystko ma być popychane nop-ami? Jeśli Atmega faktycznie nie będzie miała komunikacji ze światem zewnętrznym, to zwykły generator może wystarczyć.


Raven
Specjalista poziom 3 (min. 600)
Specjalista poziom 3 (min. 600)
Posty w temacie: 4
Posty: 681
Rejestracja: 24 paź 2011, 11:54
Lokalizacja: Warszawa

#8

Post napisał: Raven » 22 sty 2012, 11:42

Absolutnie się zgadzam z powyższym stwierdzeniem.

Im więcej oparte na "sprzęcie" tym lepiej i bezpieczniej.

Mimo to czasami jakiś prosty układzik typu miganie diodami też składam na wielkiej atmega... bo akurat taka jest pod ręką i siedzi na płytce stykowej...

Paradoksalnie jeśli ktoś jest oblatany w programowaniu a mało w sprzęcie to jest mu znacznie prościej napisać mały programik na duży procesor niż robić na gotowych układach... które najpierw trzeba poznać ;)

Awatar użytkownika

ursus_arctos
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 2
Posty: 2083
Rejestracja: 11 cze 2011, 18:29
Lokalizacja: Warszawa / Lublin

#9

Post napisał: ursus_arctos » 23 sty 2012, 11:05

Zaiste, jak już płytka prototypowa z mikrokontrolerem jest, to łatwiej jej użyć do generowania prostokąta niż lutować jakiś wynalazek z 555. Zwłaszcza w takiej sytuacji jak tu, gdzie są potrzebne dwa zsynchronizowane przebiegi.

Co do zakłócania przez przerwania - tak, jak pisałem - ja mam tylko jedno przerwanie i wszystko ładnie hula. Niestety, obsługa przerwań jest zbyt droga, by na tym robić zegar do sterowania silnikami. A jak będzie jakiś ultrakrytyczny kawałek kodu, to można CLI tam dać :)


Raven
Specjalista poziom 3 (min. 600)
Specjalista poziom 3 (min. 600)
Posty w temacie: 4
Posty: 681
Rejestracja: 24 paź 2011, 11:54
Lokalizacja: Warszawa

#10

Post napisał: Raven » 23 sty 2012, 11:52

Później szukać... dlaczego nic nie działa... bo się SEI zapomniało... :mrgreen:

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „Silniki Krokowe / Sterowniki Silników Krokowych”