Silnik krokowy SM60/86-3008B i sterownik SSK-B03
-
Autor tematu - 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
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
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:
-
- Lider FORUM (min. 2000)
- Posty w temacie: 2
- Posty: 4017
- Rejestracja: 15 lis 2006, 22:01
- Lokalizacja: Tarnobrzeg
Pierwsze przerwanie zburzy ten "zamek na piasku".Raven pisze:Wariant prosty? asm("nop") i dobór odpowiedniej liczby "nic nie rób" do częstotliwości taktowania megi.
Nie wyobrażam sobie generowania rampy za pomocą nop-ów a silnik krokowy musi poruszać się zgodnie z nią, bo inaczej straci synchronizm.
-
- Lider FORUM (min. 2000)
- Posty w temacie: 2
- Posty: 2083
- Rejestracja: 11 cze 2011, 18:29
- Lokalizacja: Warszawa / Lublin
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ść.
-
- Specjalista poziom 3 (min. 600)
- Posty w temacie: 4
- Posty: 681
- Rejestracja: 24 paź 2011, 11:54
- Lokalizacja: Warszawa
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.
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.
-
- Lider FORUM (min. 2000)
- Posty w temacie: 2
- Posty: 4017
- Rejestracja: 15 lis 2006, 22:01
- Lokalizacja: Tarnobrzeg
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.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.
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ć.
-
- Specjalista poziom 3 (min. 600)
- Posty w temacie: 4
- Posty: 681
- Rejestracja: 24 paź 2011, 11:54
- Lokalizacja: Warszawa
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ć
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ć

-
- Lider FORUM (min. 2000)
- Posty w temacie: 2
- Posty: 2083
- Rejestracja: 11 cze 2011, 18:29
- Lokalizacja: Warszawa / Lublin
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ć
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ć
