atmega -> stepper driver

trix

Golden Member

hallo,
ik ben bezig met het onwerp van een proto type PCB. op dit moment stuur ik rechtstreeks vanuit de atmega de: pull dir & enable van de stepper driver aan. dat werkt goed.
word dit altijd zo gedaan of moet er iets van een beveiliging bij tegen b.v. invloeden van buiten af.

eigenwijs = ook wijs
Lambiek

Special Member

Op 29 februari 2020 15:00:12 schreef trix:
word dit altijd zo gedaan of moet er iets van een beveiliging bij tegen b.v. invloeden van buiten af.

Wat bedoel je hier precies mee?

Wat voor stappenmotor driver gebruik je?

Als je haar maar goed zit, GROETEN LAMBIEK.
trix

Golden Member

DM556
ik kan me voorstellen dat er iets wordt toegepast waardoor magnetische velden van buiten af geen invloed hebben op de snelle signale op de pull (step) ingang, van de PCB naar de stepper driver zijn toch draden van pak hem beet 25 cm. of een beveiliging waardoor je bij verkeerd aan sluiten niet meteen de atmega vernield.
dat soort dingen.

eigenwijs = ook wijs
Lambiek

Special Member

Op 29 februari 2020 15:23:09 schreef trix:
ik kan me voorstellen dat er iets wordt toegepast waardoor magnetische velden van buiten af geen invloed hebben op de snelle signale op de pull (step) ingang, van de PCB naar de stepper driver zijn toch draden van pak hem beet 25 cm.

Oké bedoel je dat. Getwiste afgeschermde kabel gebruiken of de bedrading twisten is voldoende bij een afstand van +/- 25 cm. Als extra kun je nog ferriet kernen gebruiken.

of een beveiliging waardoor je bij verkeerd aan sluiten niet meteen de atmega vernield.

Je hebt een driver met optocoupler ingangen, dus je controller zal je niet snel slopen. En met aansluiten moet je altijd opletten natuurlijk. :)

Als je haar maar goed zit, GROETEN LAMBIEK.
trix

Golden Member

laatste punt bedoelde ik eigenlijk de atmega i.p.v. de DM556 driver.

eigenwijs = ook wijs
Lambiek

Special Member

Op 29 februari 2020 15:41:42 schreef trix:
laatste punt bedoelde ik eigenlijk de atmega i.p.v. de DM556 driver.

Ja, ik ook. Door de optocouplers in de driver is je controller ook beschermd, die zorgen voor een galvanische scheiding tussen je uitgang van je controller en de ingang van je driver.

EDIT:
Heb net even in de datasheet gekeken van de driver, de ingangen trekken +/- 18mA bij 5VDC. Dat zou je eventueel nog kunnen verminderen door er een voorschakelweerstand voor te zetten, maar of dat echt nodig is....

http://www.leadshine.com/UploadFile/Down/DM556m.pdf

Als je haar maar goed zit, GROETEN LAMBIEK.
trix

Golden Member

lijkt mij zeker niet nodig, zit nog onder de 20 mA v/d atmega.
trouwens....goed dat je dat aanhaalt, ik moet dat nog wel bij de atmega2560 controleren.

eigenwijs = ook wijs
Lambiek

Special Member

Van Atmega's weet ik niet veel, gebruik zelf andere controllers. :)

Als je haar maar goed zit, GROETEN LAMBIEK.

Mijn ervaring is dat het wel eens wat krap uit kan vallen.
Ik heb vergelijkbaar geval waarbij de drive enkel betrouwbaar werkt als de microcontroller sinkt, niet als hij sourced.

benleentje

Golden Member

lijkt mij zeker niet nodig, zit nog onder de 20 mA v/d atmega.

JE moet ook kijken naar de totaal stroom die de chip kan verwerken in zijn vcc en gnd pinnen. Als je chip bv 100mA totaal aankan dan zit je met 5 van de ingangen aangesloten op de uitgangen als veel te dichtbij de grens. Dat zijn grenzen waarvan je zoveel mogelijk marge wilt houden. Ik hanteer voor mezelf liever 3mA als maximum en 18mA vind ik voor dergelijke ingang erg veel. Zeker als je meerdere van deze drivers moet gaan aansturen.

IK lees hier en daar ook wel eens over problemen als de stroom van eem microcontroller naar de uitgangen hoog word. JE uitgang is dan geen 5V meer maar kan door de interne weerstanden van de chip lager uitvallen. Dus wees voorzichtig en bij deze gewaarschuwd voor dit verschijnsel.

Mensen zijn soms net als een gelijkrichter, ze willen graag hun gelijk hebben.

Op 29 februari 2020 15:54:01 schreef Lambiek:
Dat zou je eventueel nog kunnen verminderen door er een voorschakelweerstand voor te zetten, maar of dat echt nodig is....

Dat lijkt me onwenselijk. Er zit een weerstand-led_van_optocoupler combinatie in de controller. Ze garanderen met de specs dat de led genoeg stroom krijgt om de boel aan de andere kant te activeren als je er 5V op zet. Maar het moet met 24V ook werken, dus daar moet die led dan tegen kunnen. Het "gegarandeerd werkend krijgen" met zo'n grote input-range als 5-25V is niet triviaal. Ze zullen dus wel de minimale stroom hebben uitgerekend en daarop gemikt hebben bij 5V op de input. Daar ga je dan nog ruim 10% onder als er maar 4.5V op staat en je mag hopen dat het dan ook nog werkt.

Op 29 februari 2020 19:18:56 schreef benleentje:
JE uitgang is dan geen 5V meer maar kan door de interne weerstanden van de chip lager uitvallen.

Reken bij een Atmel op ongeveer 30 ohm uitgangsweerstand. Dus bij (afgerond) 20mA ongeveer 0.6V.....

[Bericht gewijzigd door rew op zaterdag 29 februari 2020 19:33:35 (16%)

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
Lambiek

Special Member

Op 29 februari 2020 19:31:41 schreef rew:
Dat lijkt me onwenselijk. Er zit een weerstand-led_van_optocoupler combinatie in de controller. Ze garanderen met de specs dat de led genoeg stroom krijgt om de boel aan de andere kant te activeren als je er 5V op zet. Maar het moet met 24V ook werken, dus daar moet die led dan tegen kunnen.

Het is gebaseerd op 5VDC en niet op 24VDC. Op 24VDC moet er een extra weerstand geplaatst worden.

Als je haar maar goed zit, GROETEN LAMBIEK.

Ah! Ok! Ik snapte al niet dat het voor mij lastig was om een factor twee tussen "min" en "max" te krijgen. Maar dan nog... Ze zullen de boel uitgerekend hebben op de minimale stroom die door de led nodig is. Dat verder reduceren is niet "veilig". Je loopt het risico dat het dan als het warm wordt niet meer werkt. Of na een half jaar veroudering of.... etc.

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
Lambiek

Special Member

Op 29 februari 2020 21:59:41 schreef rew:
Ze zullen de boel uitgerekend hebben op de minimale stroom die door de led nodig is.

Ik denk dat het met 10mA door de led ook nog goed werkt. Maar goed een Arduino / Admega kan 20mA aan zeg je, dus dat moet geen probleem zijn.

Als je haar maar goed zit, GROETEN LAMBIEK.

Je mag het van de TS geen arduino noemen. De AVR kan 20mA per pin aan.

De specs zeggen dan iets van max 80mA per power of GND pin. Dus formeel met 2 GND pins iets van max 8* die 20mA. Nu is het zo dat je bijvoorbeeld de PULSE input maar heel kort hoog maakt in de praktijk. En de "enable" input die eigenlijk "DISABLE" of "-ENABLE" moet heten zal ook uit zijn, de meeste tijd dat je de boel gebruikt. Dus uiteindelijk is er maar 1 output per stepper die relatief lang hoog kan zijn: Dat is de DIR output. ALs je die laag maakt als je de boel uitzet, dan blijft het bij 1 zware output per stepper. Dat er soms heel even een pulsje gedaan wordt dat maakt niet uit.

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
Lambiek

Special Member

Op 29 februari 2020 22:50:51 schreef rew:
Nu is het zo dat je bijvoorbeeld de PULSE input maar heel kort hoog maakt in de praktijk.

Ja dat is ook weer zo, dat scheelt al weer.

En de "enable" input die eigenlijk "DISABLE" of "-ENABLE" moet heten zal ook uit zijn, de meeste tijd dat je de boel gebruikt.

In principe hoef je die niet eens te gebruiken, tenzij je het met de hand wil verdraaien of zo. Ik sluit de enable in 9 van de 10 gevallen nooit aan.

Dus uiteindelijk is er maar 1 output per stepper die relatief lang hoog kan zijn: Dat is de DIR output.

Ja daar heb je gelijk in, dus al met al valt het mee.

Als je haar maar goed zit, GROETEN LAMBIEK.
buckfast_beekeeper

Golden Member

@TS: hoeveel stepperdrivers per ATmega? De DIR functie kan je ook nog schakelen via een ULN2803/ULN2003. Dan loopt de stroom van de uitgang die het langste moet sinken niet meer via de ATmega.

Van Lambiek wordt goede geuze gemaakt.
Lambiek

Special Member

Op 1 maart 2020 11:20:00 schreef buckfast_beekeeper:
@TS: hoeveel stepperdrivers per ATmega? De DIR functie kan je ook nog schakelen via een ULN2803/ULN2003. Dan loopt de stroom van de uitgang die het langste moet sinken niet meer via de ATmega.

Je kunt ook gewoon een extra weerstand plaatsen, zodat er maar tussen de 5 en 8 mA gaat lopen. Moet meer dan genoeg zijn voor de ingang van de driver.

Als je haar maar goed zit, GROETEN LAMBIEK.
buckfast_beekeeper

Golden Member

Meten is dan weten. Typical spreekt de datasheet over 10mA. In de driver zit een weerstand van 270Ω. Bij 5V voeding zou er dan bij 16mA maar 0,68V vallen over de opto led. Lijkt me heel weinig. 10mA geeft een spanningsval over de led van 2,3V. Nemen we voor 24V 2k extra (datasheet figuur 2 en 3) dan kom je weer aan 9,56mA met 2,3V over de led. 5mA zal op het randje zijn. De datasheet spreekt zelf van 7mA. 100Ω extra zou dan ongeveer de limiet moeten zijn.

Van Lambiek wordt goede geuze gemaakt.

Op 1 maart 2020 10:38:20 schreef Lambiek:
In principe hoef je die niet eens te gebruiken, tenzij je het met de hand wil verdraaien of zo. Ik sluit de enable in 9 van de 10 gevallen nooit aan.

Mijn 3D printers doen na 1 of 2 minuten niets doen de motoren uit. Dat vind ik wel een redelijke strategie.

Op 1 maart 2020 11:37:59 schreef Lambiek:
[...]
Je kunt ook gewoon een extra weerstand plaatsen, zodat er maar tussen de 5 en 8 mA gaat lopen. Moet meer dan genoeg zijn voor de ingang van de driver.

Stel ze hebben daar een FOD817BSD in zitten. En stel ze hebben bedacht dat ze een 10mA secondaire stroom willen hebben. Dan nemen ze een 470 ohm pullup weerstand. Omdat de CTR pak-em-beet 200% is, moet je primair ongeveer 5mA er door heen sturen. Maar je moet met de minimale CTR rekenen dus eerder rond de 10mA. Dan kies je ook een primaire weerstand van 470 Ohm.

En als de CTR niet belangrijk hoger is dan het minimum dan gaat het niet goed werken met een 470 of 1k extra weerstand in het primaire circuit. (5mA 3mA).

Zolang jij niets weet over wat voor circuit ze aan de andere kant hebben zitten kan je niet zomaar beslissen dat een extra weerstand gaat werken.

Nu zou IK de boel zo ontwerpen dat je mikt op bijvoorbeeld "max 1mA secondair", dus daar een 4k7. DAN zou het verlagen van de primaire stroom van 10 naar 5 of 3 prima werken. Maar dan hadden ze ook primair een 4k7 kunnen monteren. Alleen dat hebben ze gezien de specs over de forse stromen kennelijk niet gedaan. Ik weet niet waarom, zonder het ding open te maken weet ik niet wat ze uitgehaald hebben dat de specs zijn zoals ze zijn. Dus ik zou niet durven beweren dat het met een lagere stroom ook wel zal werken.

[Bericht gewijzigd door rew op zondag 1 maart 2020 16:31:16 (67%)

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
trix

Golden Member

even snel reageren, gisteren geen kans gehad.

1 atmega 2560 die 10 stepper drivers stuurt, maar nooit meer dan 4 tegelijk.
voor mijn gevoel wil je met de stroom die je gebruikt voor de stepper driver niet te laag zitten, hoe lagere de stroom hoe groter de kans op storingen.....denk ik.

stel dat de stroom te hoog is voor de avr, dan ga je dat denk ik merken aan temperatuur verhoging v/d atmega.

edit: ik maak eerst een proto type PCB, en zal dan eens goed meten wat nu eigenlijk de stroom naar de driver is. en vervolgens indien nodig maat regelen nemen. dat is het voordeel van een proto type PCB :)

eigenwijs = ook wijs
benleentje

Golden Member

IK denk dat de avr eerder gewoon kapot gaat.

Mensen zijn soms net als een gelijkrichter, ze willen graag hun gelijk hebben.

Op 2 maart 2020 18:47:31 schreef trix:
stel dat de stroom te hoog is voor de avr, dan ga je dat denk ik merken aan temperatuur verhoging v/d atmega.

Dat soort specs als "max XXX per IO pin" die staan in het hoofdstukje "ABSOLUTE MAXIMUM RATINGS" (ja met hoofdletters!). Als je een waarde uit dat hoofdstuk ook maar HEEL EVEN overschrijdt, en je chip gaat kapot dan zegt de fabrikant: eigen schuld, dikke bult.

Soms, zoals ik al eerder aangaf, is er wel wat extra marge. Zo heb ik zo m'n theorie dat VEEL "chip gaat kapot" dingen gewoon temperatuur-dingen zijn. Als je lange tijd meer dan 20mA door een pootje stuurt wordt er iets te warm en gaat het kapot. Als je meer dan 100mA per VCC pin doet: Idem. Als je een pootje op een te hoge spanning zet: gaat er stroom lopen waar het niet hoort, er wordt iets te warm en de boel gaat kapot.

Dus je moet een geinformeerde beslissing nemen, niet zomaar: mwah, zal wel los lopen.

Anway, voor de atmega2560 is het 40mA per pin (da's meer dan ik dacht!) en 200mA, volgens mij totaal door ALLE VCC/GND pins bij mekaar. (Ik denk dat het "max 100mA per pin, dat ik van andere atmega's ken OOK geldt, maar dat ze hier slordig in zijn... ).

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
Lambiek

Special Member

Op 1 maart 2020 16:18:57 schreef rew:
Zolang jij niets weet over wat voor circuit ze aan de andere kant hebben zitten kan je niet zomaar beslissen dat een extra weerstand gaat werken.

Even uit testen kan geen kwaad toch, kwestie van een weerstandje ervoor en je weet het. :)

Als je ziet dat er bij 5VDC +/- 18mA doorgaat, bij 12VDC "1K voorschakelweerstand" gaat er +/- 9mA door en bij 24VDC "2K voorschakelweerstand" gaat er +/- 10mA door. Dus ik zou niet weten waarom je dat op 5VDC ook niet toe kan passen. Dus +/- 9mA bij 5VDC is nog een voorschakelweerstand van 270 Ohm ervoor.

Als je haar maar goed zit, GROETEN LAMBIEK.

Ik had die handleiding er nooit bijgepakt. Maar uit de handleiding kan je ongeveer schatten dat:

er is 1k extra weerstand nodig voor 12V extra (het verschil tussen 12V en 24V). Dan zou de stroom dus 12mA zijn.

Bij 12mA heb je 1.2V over de led, 3.2V over de 270 Ohm weerstand, ongeveer 4.4V totaal.

Als je wilt kan je nu een tweede ronde schattingen doen, (12V-4.4V) / 1k = 7.6 mA. 20V/2k = 10mA.

Dat betekent dat als je 5V voeding een beetje aan de lage kant zit, je die 4.4V al nauwelijks haalt: Je verliest zo'n 0.36V over je output driver van je chip.

Anderzijds, we schatten nu dat je met 8mA wel ongeveer toe gaat kunnen komen. Dat maakt de minimale spanning op de ingang 1.2V+270*.008 = 3.4V. Als je uitgaat van 5.0V op de power van de atmel, kom je op uitgangsspanning van de atmel op 4.76V en dan dus een weerstand van maximaal 175 ohm in serie. Maar nu ben je wel aan de marges aan het vreten: Wordt je voeding 4.5V, waar normaliter wel rekening mee gehouden wordt, dan wordt de stroom lager dan de in de handleiding aangeraden minimaal 8mA.

En... een slechte handleiding:

An 8 lead motor in a parallel configuration offers a more stable, but lower torque at lower speeds. But
because of the lower inductance, there will be higher torque at higher speeds. Multiply the per phase
(or unipolar) current rating by 1.96, or the bipolar current rating by 1.4, to determine the peak output
current

Geschreven door iemand die niet weet waar ie mee bezig is. Die de 1.4 ineens 100% vertrouwt en dan 1.4*1.4 = 1.96 gaat zitten doen ipv te begrijpen dat 1.4 een afgeronde wortel-twee is.

[Bericht gewijzigd door rew op dinsdag 3 maart 2020 10:27:54 (21%)

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/