Ik had die polulu drivers gekocht, en de boel zitten testen. Ik heb het uitgezocht, op het polulu forum gepost en uiteindelijk gevonden waar het aan ligt.
De A4988 (ik heb het chipje een paar keer bij een verkeerde naam genoemd hierboven, sorry.) heeft een fixed-offtime van ongeveer 30µs. En een minimum on-time van 1µs. Dat betekent een minimum dutycycle van ongeveer 3%.
Doe je 1/16 microstepping (zoals de A4988), dan zal 1 spoel uitstaan op stap nul. Een fullstep verder staat die spoel volledig aan. Na 8 stappen (een halve step) staan beide spoelen op 70%.
Op stap 1, zoekt de chip in een tabelletje de gewenste stroom op en dat is als ik het me goed herinner: 10% van de max stroom.
Wat er nu gebeurt is dat ie gaat PWM-en met een minimum dutycycle van 3%, hetgeen bij deze lage weerstand spoelen een stroom oplevert van ruimschoots de gewenste 10%-van-max. Misschien speelt ook nog mee dat ik mijn motoren op minder dan 50% van /hun/ max gebruik omdat de A4498 niet de volledige motorstroom van mijn motor aan kan.
Anyway, op stap 1 moet de stroom iets van 10%/98% (A/B) zijn, en door de minimum dutycycle van 3% krijg je iets als 70%/98%. De motor stapt dan vrijwel volledig richting de positie die 3 of 4 stappen verder hoort. 3 of vier stappen verder is de gewenste stroom door spoel A wel toegenomen, maar in de praktijk nog nauwelijks veranderd. De stroom door spoel B neemt wel steeds iets af.
Het gevolg van dit alles is dat je micro stappen onregelmatig zijn. Ik heb een spiegel op de as gemonteerd en met een laser zitten meten. Dat betekent echter niet dat de boel stappen zou missen of zo. Maar als je met de hand steeds een microstapje doet, hoor of voel je duidelijk het verschil tussen de "grote" stappen en de kleine stappen.
Goed. Bij dit alles komt nog wat extra kijken: Als de stroom door spoel A zou moeten toenemen omdat je van 0->16 aan het stappen bent, dan verhoogt de chip de efficientie door in de off-tijd niet de spoel "vrij" te laten, maar hij sluit hem kort. Laat je de spoel vrij, komt door de inductie de omgekeerde voedingsspanning op de spoel. De stroom neemt snel weer af. Sluit je de spoel kort, kan met hoge efficiëntie de stroom blijven lopen en kan je de volgende cyclus een klein beetje stroom "bijtanken". Is het idee. Moet de stroom wel afnemen, dan sluit ie de spoel NIET kort, en krijg je de voedingspanning over de spoel, zodat de stroom harder tegengewerkt wordt en sneller afneemt. De chip kan je configureren om deze truuk niet toe te passen, hetgeen voor mijn voedingsspanning/motor/stroom combinatie kennelijk van toepassing is. De polulu printjes hebben hiervoor een lastige SMD-patch nodig....
Dus... in bepaalde configuraties, o.a. die van mij en die van eduard, zijn de microstappen niet allemaal even groot. Daar kan je je zorgen over maken. Of niet. Ik denk niet dat het uitmaakt of je kwart-stappen doet, of 1/32e stappen. Je zult niet stappen missen.
De gewenste stroom door de spoelen wordt gegeven door Ca(n) = Imax * sin (n/16*PI/2), Cb(n)= Imax * cos (n/16*PI/2).
De grootte van het veld, de vectoriele optelling heeft dan altijd de lengte Imax. Na een halve stap (n=8) zijn de sin en cos alletwee 70% (1/sqrt(2)).
Voor n=1, komt daar die 10% uit die ik goed had onthouden. Als in de praktijk nu niet die 10% stroom maar zeg 70% stroom gaat lopen, komt de optelling van de stromen hoger uit dan gewenst. En de richting van de vector klopt ook niet. Al met al: verklaring voor de grotere stap en de rippel in het koppel.