RAMPA na ARDUINO

Dyskusje na temat silników krokowych i sterowników silników krokowych.
Awatar użytkownika

Autor tematu
markcomp77
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 64
Posty: 3962
Rejestracja: 18 wrz 2004, 12:51
Lokalizacja: k/w-wy
Kontakt:

#111

Post napisał: markcomp77 » 22 maja 2012, 13:46

jarekk pisze:16MHz na 100kHz kroku to nie ma wiele czasu .
dodawanie jest niestety jakby long... więc dla AVR to duuużo.... ja to ćwiczę przy 10KHz (przy 25KHz coś nie teges)
zresztą zrobiłem se diagnostykę -- na tym jednym LEDzie z arduino -- dotyczącą nakładania się przerwania na siebie...


SpotkanieCNC: STOM-TOOL Marzec 2014
http://www.cnc.info.pl/topics79/spotkan ... t55028.htm


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

#112

Post napisał: Leoo » 22 maja 2012, 23:09

jarekk pisze:Ja używam tego sposobu. Tyle że faktycznie - obliczenia może nie są skomplikowane (tylko dodawanie), ale jak podzielić 16MHz na 100kHz kroku to nie ma wiele czasu .
Jak by nie liczyć wszelkie kalkulacje procesor musi wykonać najpóźniej w połowie okresu, jakieś 5us :( Jeśli w tym czasie uda się przeliczyć 3 czy nawet 4 osie, to sterowanie praktycznie gotowe :cool:


jarekk
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 21
Posty: 1701
Rejestracja: 17 mar 2006, 08:57
Lokalizacja: Gdańsk

#113

Post napisał: jarekk » 23 maja 2012, 08:49

Leoo pisze: Jak by nie liczyć wszelkie kalkulacje procesor musi wykonać najpóźniej w połowie okresu, jakieś 5us :( Jeśli w tym czasie uda się przeliczyć 3 czy nawet 4 osie, to sterowanie praktycznie gotowe :cool:
Właśnie że nie :lol:

Ja to robię tak - na początku przerwania obsługuję piny z poprzedniego przeliczenia ( mam informację które 'stepy' trzeba wysterować ). Wystawiam te piny i jednocześnie odpalam sprzętowy zegary który tworzy mi impuls 5us na dodatkowym pinie - pin ten , wraz z zewnętrznymi bramkami AND kontroluje mi docelowy sygnał 'step' ( dzięki temu nie potrzebuje dodatkowego przerwania do zmiany stanu stepów z 1 na 0).

Po tym wszystkim mogę już przeliczyć następny krok i odłożyć wynik z zmiennej.


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

#114

Post napisał: Leoo » 23 maja 2012, 10:55

jarekk pisze:Ja to robię tak - na początku przerwania obsługuję piny z poprzedniego przeliczenia...
Bardzo sprytnie. Mogę spytać co jest źródłem przerwań? Pytam, bo STEP-y nie są sygnałem synchronicznym a ich generowanie np. dla 5 osi będzie chwilami wymagało przeliczenia wszystkich równocześnie (10us).


jarekk
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 21
Posty: 1701
Rejestracja: 17 mar 2006, 08:57
Lokalizacja: Gdańsk

#115

Post napisał: jarekk » 23 maja 2012, 11:03

Mój algorytm przeznaczony jest w zasadzie dla FPGA, choć 100Mhz Arm Cortex daje radę generować sygnały step do około 100kHz ( dla 4 osi).

Źródłem przerwań jest chodzący synchronicznie zegar( 10us) i przeliczający za każdym krokiem każdą oś. Kilka dodawań stałoprzecinkowych liczb 64 bitowych i jest :-)

Poszło by szybciej gdyby napisać w assemblerze, ale na razie 100kHz mi wystarcza. W tej chwili testuję ARMa 120Mhz ( LPC1788 + SDRAM) + sieć ( uIP z UDP ) i też wyciąga 100kHz.

Wiem ze nie jest to idealne, można by robić jak MACH - odcinkami o stałej prędkości - wtedy dało by radę używać do 'stepów' timerów sprzętowych.

Awatar użytkownika

Autor tematu
markcomp77
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 64
Posty: 3962
Rejestracja: 18 wrz 2004, 12:51
Lokalizacja: k/w-wy
Kontakt:

#116

Post napisał: markcomp77 » 23 maja 2012, 12:21

przy 100KHz (10us cykl) warto oszczędzić 2us (albo 5us) na generowanie PULS dla STEP...
przy 100us (10KHz) - 2us to drobny procent...

jednak w naszym "zadaniu" chodzi o coś dużo prostszego -->>na dziś: zrobić "to" na arduino
na jutro: stm32f407 (może trochę porozważamy architekturę.. i jak tam timery ustawiać)

dla arm - warto będzie pomyśleć o zaoszczędzeniu tych 2uS (ten sprzętowy zegar - to chyba wystarczy rezystor+kondensator + jakieś cmosowe brami.. lub 555... lub 74123(1))
SpotkanieCNC: STOM-TOOL Marzec 2014
http://www.cnc.info.pl/topics79/spotkan ... t55028.htm

Awatar użytkownika

Autor tematu
markcomp77
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 64
Posty: 3962
Rejestracja: 18 wrz 2004, 12:51
Lokalizacja: k/w-wy
Kontakt:

#117

Post napisał: markcomp77 » 08 wrz 2012, 12:10

Obrazek

takie prawie arduino -- tylko penguino... powinno się lepiej nadać do generowania rampy
w PIC32 jest 32-bit Digital Timers

programowanie prawie identycznie jak dla arduino... jeno środowisko penguino
Obrazek
http://wiki.pinguino.cc/index.php/Main_Page#Download

jest jeszcze podobna odnoga ARMowa... (STM32)
Obrazek

i odpowiednie środowisko arduinopodobne -- Maple IDE
Obrazek
http://leaflabs.com/docs/ide.html
SpotkanieCNC: STOM-TOOL Marzec 2014
http://www.cnc.info.pl/topics79/spotkan ... t55028.htm

Awatar użytkownika

blue_17
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 14
Posty: 1715
Rejestracja: 16 kwie 2009, 07:55
Lokalizacja: Kraków/Kornatka

#118

Post napisał: blue_17 » 08 wrz 2012, 16:11

Środowiska do ARMów nie znałem ale jeszcze jest Wiring

czyli pierwowzór arduino na duże AVRY-y

http://www.maartenlamers.com/ThisIsWiring/

może kolego wiesz jakie są orientacyjne ceny tych płytek ?

Jak chcesz to mogę Ci podesłać link do arduino IDE gdzie możesz sobie programować ten zestaw w arduino :)

http://www.st.com/internet/evalboard/product/252419.jsp

Obrazek
"I siedzieli oni razem pod nagim DOS-em i nie wstydzili sie tego." :D

Awatar użytkownika

Autor tematu
markcomp77
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 64
Posty: 3962
Rejestracja: 18 wrz 2004, 12:51
Lokalizacja: k/w-wy
Kontakt:

#119

Post napisał: markcomp77 » 08 wrz 2012, 20:03

blue_17 pisze:może kolego wiesz jakie są orientacyjne ceny tych płytek ?
te arduino-podobne są olimexowe, na polskiej stronie po jakieś 90zł:
http://www.shop.kristech.eu/index.php?cPath=92_110

jednak do celów rampy będzie górą PIC32 -- bo ma timer 32bity... większa rozdzielczość czasowa...
SpotkanieCNC: STOM-TOOL Marzec 2014
http://www.cnc.info.pl/topics79/spotkan ... t55028.htm

Awatar użytkownika

tuxcnc
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 2
Posty: 9326
Rejestracja: 26 lut 2011, 23:24
Lokalizacja: mazowieckie

#120

Post napisał: tuxcnc » 08 wrz 2012, 21:03

A ja ciągle mam nadzieję, że mi ktoś wyjaśni sens ekonomiczny tego przedsięwzięcia ...

.

ODPOWIEDZ Poprzedni tematNastępny temat

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