[RESOLU] Config Stepconf avec Pololu DRV8824 et stepper PL15S020

  • Auteur de la discussion telson
  • Date de début
T

telson

Apprenti
Bonjour,

Je souhaiterai avoir quelques informations complémentaires concernant le réglage de linuxcnc via stepconf en particulier les valeurs :

• Step Time
• Step Space
• Direction Hold
• Direction Setup

J’utilise un driver pololu DRV8824 et selon le datasheet, nous pouvons lire les données suivantes :

2 tWH(STEP) Pulse duration, STEP high 1.9 μs
3 tWL(STEP) Pulse duration, STEP low 1.9 μs
4 tSU(STEP) Setup time, command before STEP rising 200 ns
5 tH(STEP) Hold time, command after STEP rising 200 ns
6 tENBL Enable time, nENBL active to STEP 200 ns
7 tWAKE Wakeup time, nSLEEP inactive high to STEP input accepted 1 ms

iAONAy.png



Alors j’suis dans le juste, si je dis que :

• Step Time = 2 tWH(STEP) Pulse duration, STEP high 1.9 μs = 1900 ns
• Step Space = 3 tWL(STEP) Pulse duration, STEP low 1.9 μs= 1900 ns
• Direction Hold = 4 tSU(STEP) Setup time, command before STEP rising 200 ns
• Direction Setup = 5 tH(STEP) Hold time, command after STEP rising 200 ns


Ensuite, mes moteurs sont des PL15S020 :

Number of Steps per Rotation = 20
Driver Frequency = 400[PPS] pour un torque de 25.10-4 N.m
Driver Frequency = 1400[PPS] pour un torque de 13.10-4 N.m
Maximum PULL-IN Frequency = 1450[PPS]

Dans l’hypothèse ou je souhaiterai conserver un Torque de 25.10-4 N.m donc 440 PPS Max (440 pulses/s).

Si je souhaite utiliser les moteurs en 1/32 µteps les moteurs recevrons pour faire une rotation 20 steps * 32 soit 640 µsteps (640 pulses/s).

Sachant que si je ne souhaite pas dépasser les 440 pulses/s, je devrais donc m’assurer que mes moteurs effectuent (440 pulses/s) / (640 pulses/tour) soit 0,6875 tour/s.

Sachant que mon plateau avance de 3mm par tour je devrais donc paramétrer dans stepconf la valeur : Maximum Velocity à 0,6875 tour/s *3mm/tour soit 2,0625 mm/s.

Est-ce suffisant pour m’assurer que les 440 pulses/s par seconde soient respectés.

Alors, si mes élucubrations sont justes !!! En full step, je serais à un Maximum Velocity de : (440 pulses/s) / (20 pulses/tour) soit 22 t/s donc : 22 t/s* 3mm/tour = 66mm/s.

Et si j’accepte de faire tourner mes moteurs à 1400 pulses/s en 1/32 µteps, alors j’aurai (1400 pulses/s) / (640 pulses/tour) soit 2,1875 tours/s. Soit une Maximum Velocity à 2,1875 tours/s *3mm/tour = 6,5625 mm/s.

Bon……Alors est ce que je peux indiquer une Maximum Velocity de 66 mm/s et un Driver µstepping de 1/32 ?

Comment LinuxCNC ou le générateur de Gcode vont t’il faire pour adapter la vitesse de rotation du moteur dans les courbes où pour des raisons de précisions il faudra nécessairement réduire les pas et passer soit en 1/8, ou 1/16 ou 1/32 pour réussir à suivre la courbe.

Y aura-t-il juste une diminution de la vitesse ou une diminution de la vitesse et un passage en µsteps ????

Parce que avec une Maximum Velocity de 66 mm/s et un Driver µstepping de 1/32 cela va nous donner 22 t/s * 20 pulses/tour * 32 µsteps = 14080 pulses/s. Autant dire que les moteurs vont en louper un sacré paquet !!

Alors je suis dans le juste ou complétement à côté de la plaque ???

en espérant être assez claire.

Merci par avance à tous ceux qui prendrons de lire mes délires et d'y apporter des précisions.

Attention : la maison ne fourni pas l'aspirine !
 
Dernière édition:
G

gaston48

Compagnon
Bonjour,
Ton raisonnement est trop pessimiste là.
Si tu dois respecter un Torque de 25.10-4 N.m donc à 440 PPS Max,
en micropas de 1/32 cela te donne 440 x 32 = 14080 PPS Max
Le moteur va voir à ses bornes une espèce de sinus reconstitué
dont la fréquence de base sera de 440 Hz.
Là ou cela risque de coincer, c’est la fréquence max de ton port //
dans le meilleur des cas, c’est 15 KHz je crois, ainsi que la fréquence
max d’entrée du Pololu.

1/32 n’est pas forcément nécessaire, cela améliore la fluidité et
les problèmes de résonance. Ta précision absolue réelle de positionnement
sans couple résistant sera de +/- 5 % de 1.8° avec une vis de 3mm +/- 0.7 microns.
C'est bien, mais entre une position d’équilibre sans couple contrariant et avec un couple
max, le décalage résultant sera de 1.8° soit 0.027 mm!
3mm / (200 ppt X 32) te donneront une résolution théorique de 0.5 microns !
Configure quelques micropas pour la fluidité et les résonnances dans les 1/4 ou 1/8
et cela suffira, mais si les 15 Khz passe, tu peux aller à 1/32
 
Dernière édition:
T

telson

Apprenti
Bonjour,

En fait j’essaie de bien appréhender les valeurs que je dois renseigner dans stepconf pour éviter que mes moteurs ne sautent des pas ou qu'ils manquent de précision.

Concernant ta réflexion sur :
Si tu dois respecter un Torque de 25.10-4 N.m donc à 440 PPS Max,
en micropas de 1/32 cela te donne 440 x 32 = 14080 PPS Max

je ne te suis pas. Si je souhaite conserver 25.10-4 N.m c'est à 440 PPS Max uniquement que je pourrais le faire. Par conséquent, je ne peux en aucun cas monter jusque 14080 PPS.

Concernant la fréquence max du port // c'est me semble t'il 150 KHz en SPP et 2MHz en EPP....
La fréquence Max. du Pololu c'est 220 KHz me semble t'il...

Donc j'ai de la marge.

Par contre, concernant ta remarque sur la précision et vraiment très juste.

Déjà avec 20 pas/tour, avec 3 mm d'avance cela me donne 3/20 = 0,15 mm par pas......C’est déjà très beau pour l'amateur que je suis.

Si je souhaite améliorer cette précision en passant ne serait ce qu'en 1/4 de pas je vais avoir 80 pas par tour soit 3/80 = 0,0375 mm par pas............Cela me semble plus que satisfaisant pour mes débuts!!

Donc si je ne souhaite pas dépasser les 440 pulses/s, je devrais donc m’assurer que mes moteurs effectuent (440 pulses/s) / (80 pulses/tour) soit 5,5 tour/s.

Sachant que mon plateau avance de 3mm par tour je devrais donc paramétrer dans stepconf la valeur : Maximum Velocity à 5,5 tour/s *3mm/tour soit 16,5 mm/s.

Par contre, comment faire pour déterminer l'accélération max de mes moteurs...?

Et enfin ma première question sur la config de stepconf reste entière :

J’utilise un driver pololu DRV8824 et selon le datasheet, nous pouvons lire les données suivantes :

2 tWH(STEP) Pulse duration, STEP high 1.9 μs
3 tWL(STEP) Pulse duration, STEP low 1.9 μs
4 tSU(STEP) Setup time, command before STEP rising 200 ns
5 tH(STEP) Hold time, command after STEP rising 200 ns
6 tENBL Enable time, nENBL active to STEP 200 ns
7 tWAKE Wakeup time, nSLEEP inactive high to STEP input accepted

iAONAy.png



Alors j’suis dans le juste, si je dis que :

• Step Time = 2 tWH(STEP) Pulse duration, STEP high 1.9 μs = 1900 ns
• Step Space = 3 tWL(STEP) Pulse duration, STEP low 1.9 μs= 1900 ns
• Direction Hold = 4 tSU(STEP) Setup time, command before STEP rising 200 ns
• Direction Setup = 5 tH(STEP) Hold time, command after STEP rising 200 ns
 
Dernière édition:
G

gaston48

Compagnon
Ok ce sont des 20 pas par tour, je pensais à une erreur de frappe
et donc à des habituels 200 pas par tour.
Je persiste avec ce que je t’ai dit :
Pour préserver le couple max, la vitesse maximale correspond
à une rpm max de 1200 donc à 400 PPS soit 400 pas entiers par seconde ou 800 ½ pas par seconde ou 12800 1/32 pas par seconde
le résultat est toujours 1200 rpm.
En fonction de la résolution max que tu souhaites, tu auras une
fréquence max qui te permettra de paramétrer tes largeurs d’impulsions
Toutes les considérations sur la précision sont à reconsidérer
et à baser non plus sur 1.8° mais sur 18°
N’oublie pas aussi que « perdre un pas » que ce soit avec une
commande en pas entier ou en micropas correspond à un
décalage permanent de la valeur de 4 pas soit pour toi 72°
 
Dernière édition:
T

telson

Apprenti
Oui ce sont bien des moteurs 20 pas/tour : PL15S-020

Je ne comprends pas tes calculs :
Pour préserver le couple max, la vitesse maximale correspond à une rpm max de 1200
donc à 400 PPS soit 400 pas entiers par seconde ou 800 ½ pas par seconde ou 12800 1/32 pas par seconde

voici ma méthode de calculs. Pour 440 pulses/s avec un moteur de 20 pulses/tour cela me donne :

440 (pulses/s) / 20 (pulses/tour) = 22 tour/s

Tu pourrais m'expliquer, s'il te plaît tes calculs.

Merci.
 
G

gaston48

Compagnon
400 ou 440 PPS suivant tes messages, avec ton moteur de
20 PPT nous font bien 20 ou 22 tours/s soit 1200 ou 1320
tours/mn ou rev/mn ou rpm. La vitesse max ou nominale d’un
moteur s’exprime plutôt en tr/mn.
Concernant ton moteur, il garde son couple nominal jusqu’à
une vitesse de 1200 tr/mn peu importe si tu lui envoies 400 pas
entier par seconde ou 12800 1/32 pas par seconde.
 
T

telson

Apprenti
Ah oui pardon ce sont des rpm désolé.....

et oui effectivement jusque 22 t/s ou 1320 rpm le moteur garde son couple nominal. Exact.

Par contre quand tu dis perdre un pas » ......correspond à un décalage permanent de la valeur de 4 pas ....c'est une notion qui m'est étrangère. Aurais tu de la doc sur ce phénomène.

Et enfin, concernant le driver pololu DRV8824, j’suis dans le juste, si je dis que :

• Step Time = 2 tWH(STEP) Pulse duration, STEP high 1.9 μs = 1900 ns
• Step Space = 3 tWL(STEP) Pulse duration, STEP low 1.9 μs= 1900 ns
• Direction Hold = 4 tSU(STEP) Setup time, command before STEP rising 200 ns
• Direction Setup = 5 tH(STEP) Hold time, command after STEP rising 200 ns

Merci par avance.
 
G

gaston48

Compagnon
C’est important de bien apprécier et bien quantifier la notion de
perte de pas, quand il y a surcharge mécanique
C’est valable pour tous les moteurs pas à pas, que le rotor soit
positionné suite à la commande d’un pas entier ou d’un micro-pas.

A partir de sa position d’équilibre, si tu forces à la main la rotation
du rotor, un couple résistant va apparaître, pour atteindre une
valeur maximale à l’angle qui correspond à celui du pas nominal
(18° pour toi). si tu continues à forcer le couple va diminuer pour
être nul à l’angle de 2 pas soit 36°. Cette position est instable.
Si tu continues à forcer, il faudra retenir de rotor, car le couple
deviendra entraînant pour finalement atteindre une nouvelle
position d’équilibre stable d’encore la valeur de 2 pas donc 36°.
Donc pour ton moteur, s’il est sous tension et que tu forces
sur le rotor tu vas sauter des positions d’équilibre tous les 72°

Concernant tes réglages, tu as une petite feuille de calcul
dans la doc linuxcnc. Si tu rentres ces paramètres minima,
en fonction du temps de latence et de la base période que tu
va choisir, tu disposeras d’une fréquence max limite.
Si elle est trop performante (suivant les micropas que tu choisis)
Tu as intérêt à modérer ces paramètres, un peu plus de
base période et des temps un peu plus long pour le steplen
et autres.
 

Sujets similaires

V
Réponses
3
Affichages
1 021
vibram
V
01power
Réponses
3
Affichages
13 824
01power
01power
taratata
Réponses
4
Affichages
4 238
taratata
taratata
D
Réponses
9
Affichages
3 050
David80
D
horsot
Réponses
332
Affichages
75 712
Pascal76
P
Haut