Inverseur PWM pour Le laser

frances83
Messages : 63
Enregistré le : 14 sept. 2017 16:15

Inverseur PWM pour Le laser

Message par frances83 »

Bonjour,

Pour faire fonctionner mon laser, il est nécessaire d'inverser le signal PWM !

J'ai fait 3 tentatives Avec Transistor NPN (BC550 et 2N3904 ) et un CI SD4007.

Les tests à vide fonctionnent correctement, mon signal d'entrée est bien inversé.

Mais monté montés sur la CNC, rien ne va plus ! La sortie PA8 du STM est claquée !

J'aimerai savoir si quelqu'un avait déjà réalisé un inverseur qui fonctionne !

Cordialement.
Avatar du membre
HTheatre
Messages : 5960
Enregistré le : 31 mars 2019 08:21
Localisation : Rivesaltes

Re: Inverseur PWM pour Le laser

Message par HTheatre »

Bonjour frances83,
frances83 a écrit : 29 oct. 2020 15:21 On s'en fiche, c'est juste pour t'alerter qu'une réponse à ta question a été postée
As tu déjà essayé d'inverser le signal PWM émis par la carte GRBL via le firmware du STM-32 ?

Il faut reflasher le STM-32 avec la méthode personnalisée en réalisant préalablement un effacement complet du STM-32 (Cf. le détail de ces procédures à la fin de la notice de montage (lien dans ma signature)).

Sous Atollic True Studio, aller dans le fichier config.h et modifier la ligne 280 en la commentant. Il suffit de mettre 2 slashes devant le code de la ligne, ce qui donne :

280 // #define INVERT_SPINDLE_PWM

Inversement, si dans ta version du firmware du STM-32 la ligne est déjà commentée, alors il faut la décommenter, ce qui donnera :

280 #define INVERT_SPINDLE_PWM

@+
frances83
Messages : 63
Enregistré le : 14 sept. 2017 16:15

Re: Inverseur PWM pour Le laser

Message par frances83 »

Oui j'ai bien vu ou l'on pouvait modifier le sofware.

mais actuellement j'utilise un STM pour une broche AMB DI et un STM avec PWM inversé
pour le laser ! Solution qui ne me satisfait pas....
mstrens
Messages : 2611
Enregistré le : 27 févr. 2018 12:58

Re: Inverseur PWM pour Le laser

Message par mstrens »

frances83 a écrit : 29 oct. 2020 15:21 Bonjour,

Pour faire fonctionner mon laser, il est nécessaire d'inverser le signal PWM !

J'ai fait 3 tentatives Avec Transistor NPN (BC550 et 2N3904 ) et un CI SD4007.

Les tests à vide fonctionnent correctement, mon signal d'entrée est bien inversé.

Mais monté montés sur la CNC, rien ne va plus ! La sortie PA8 du STM est claquée !

J'aimerai savoir si quelqu'un avait déjà réalisé un inverseur qui fonctionne !

Cordialement.
Je ne comprends pas pourquoi la sortie PA8 du STM32 claquerait si tu branches ton module inverseur sur la pin PWM de la carte de Romain.
En effet la sortie PWM de la carte n'est pas en lien direct avec la pin PA8 puisqu'il y a le ULN2803 entre les 2.

As tu un schéma du montage que tu essaies d'utiliser?
frances83
Messages : 63
Enregistré le : 14 sept. 2017 16:15

Re: Inverseur PWM pour Le laser

Message par frances83 »

Désolé je ne mesurais pas sur la bonne pin ! Le PA8 fonctionne toujours !

Par contre le montage fonctionne en test hors connection CNC mais aucun effet
raccordé sur la CNC !

Shema : Transistor NPN BC550
https://www.abcelectronique.com/annuair ... osfet.html
Avatar du membre
HTheatre
Messages : 5960
Enregistré le : 31 mars 2019 08:21
Localisation : Rivesaltes

Re: Inverseur PWM pour Le laser

Message par HTheatre »

frances83,
frances83 a écrit : 29 oct. 2020 16:47 blablabla
J'ai une solution alternative : utiliser un seul STM32, programmé exactement de la même manière, pour les 2 utilisations que tu recherches sur ta RS-CNC32 (fraiseuse AMB DI ou laser), si tu me confirme bien que pour le laser il te faut inverser le signal PWM provenant de la carte GRBL et donc avoir la ligne suivante dans le fichier config.h du firmware du STM-32 :

280 #define INVERT_SPINDLE_PWM

C'est la ligne que j'ai dans le fichier config.h du firmware de mon STM-32 et mon AMB DI fonctionne parfaitement bien. L'astuce, c'est que je n'utilise pas le même convertisseur PWM->0-10V que les autres membres. Il accepte un signal PWM ayant une fréquence de 10 kHz (simple paramètre à modifier dans le firmware) et nécessite l'adjonction d'une résistance de rappel de 1000 ohm. Donc, si c'est bien la ligne indiquée ci-dessus dont tu as besoin pour faire fonctionner ton laser, je pense qu'en sortie des pins PWM de la carte GRBL tu pourrais connecter deux circuits distincts (un pour l'AMB et l'autre pour le laser) avec, si nécessaire, un interrupteur permettant de basculer de l'un à l'autre.

Il me reste même un exemplaire du convertisseur PWM -> 0-10 V dont je parle. Il étaient vendus par deux. Si cela intéresse je te l'offre. Je dois même avoir la résistance.





@+
frances83
Messages : 63
Enregistré le : 14 sept. 2017 16:15

Re: Inverseur PWM pour Le laser

Message par frances83 »

Merci HTheatre .... Message en MP !

Cordialement.
Avatar du membre
HTheatre
Messages : 5960
Enregistré le : 31 mars 2019 08:21
Localisation : Rivesaltes

Re: Inverseur PWM pour Le laser

Message par HTheatre »

Convertisseur PWM -> 0-10V (acceptant un signal d'entrée PWM de 10k ohms) + résistor de 1 000 ohms, postés !

J'ai déjà configuré ma version du firmware de du STM-32 pour l'utilisation d'un laser, cela t'évitera de le faire. Et plus en détail voilà les modifications que j'ai effectuée par rapport à la version disponible sur le GitHub de mstrens.

Dans le fichier config.h, je n'ai pas touché la ligne :

280 #define INVERT_SPINDLE_PWM
(c'est la ligne par défaut dans le firmware de mstrens)

Dans le fichier defaults.h, j'ai modifié les lignes :

580 #define DEFAULT_SPINDLE_RPM_MAX 24000.0f // rpm
(c'est "580 #define DEFAULT_SPINDLE_RPM_MAX 1000.0f // rpm" par défaut dans le firmware de mstrens)
Ne me demande pas pourquoi 24000 et non 25000, c'est ce qui me permet d'avoir la plage de rotation la plus proche de 5000 à 25000 tr/min de l'AMB. En max, j'ai eu beau tout essayer, je n'arrive qu'à monter à 24000 - 24500 tr/min.

581 #define DEFAULT_SPINDLE_RPM_MIN 4000.0f // rpm
(c'est "581 #define DEFAULT_SPINDLE_RPM_MIN 0.0f // rpm" par défaut dans le firmware de mstrens)
Ne me demande pas pourquoi 4000 et non 5000, c'est ce qui fonctionne chez moi pour avoir 5000 tr/min en mini et 24000 - 24500 tr/min en maxi sur mon AMB.

595 #define DEFAULT_LASER_MODE 1
(c'est "595 #define DEFAULT_LASER_MODE 0" par défaut dans le firmware de mstrens et le mien, puisque je n'utilise pas de laser)

Dans le fichier cpu_map.h, j'ai modifié les lignes

539 #define SPINDLE_PWM_FREQUENCY 10000 // Hz
(c'est "539 #define SPINDLE_PWM_FREQUENCY 2000 // Hz" par défaut dans le firmware de mstrens)

S'agissant du convertisseur PWM -> 0-10V, j'ai déjà shunté le S2 par un point de soudure, donc en sortie le convertisseur renvoie une tension comprise entre 0 et 10V en fonction du signal PWM qu'il reçoit en entrée. La notice/les caractéristiques du convertisseur se trouvent à la suite de ce schéma de câblage convertisseur/AMB DI/pins carte GRBL. Pour information, je l'ai acheté ici.

En fonction de ton AMB (peut-être que cela peut varier d'un exemplaire à un autre), tu peux ajuster les valeurs DEFAULT_SPINDLE_RPM_MAX et DEFAULT_SPINDLE_RPM_MIN via le mode console. Via la console de l'ARDUINO IDE, par exemple. SPINDLE_RPM_MAX correspond alors à la commande $31 et DEFAULT_SPINDLE_RPM_MIN à la commande $30. Tu n'as donc pas besoin de reflasher pour ajuster ces valeurs. Ensuite, pour tester, tu connais la musique, tu tapes les commandes S=5000, S=10000, etc. dans la console, toujours, et si tu as ou peux te faire prêter un tachymètre, tu peux contrôler que tu as bien sur la fraiseuse la vitesse de rotation demandée.

Pour le raccordement de la tension d'alimentation du convertisseur et du module DI de l'AMB sur le convertisseur, je t'ai déjà donné le lien vers le schéma, au-dessus. Note que sur ce schéma le raccordement aux pins PWM de la carte GRBL est incorrect. C'était avant que mstrens me dise qu'il fallait ajouter la résistance de 1 000 ohms. Donc pour le raccordement du convertisseur aux pins PWM de la carte GRBL et savoir à quelles pins PWM de la carte GRBL tu dois raccorder la résistance, reporte-toi à ce schéma en 3D. Et si tu veux tout le cheminement de la réflexion, tu connais déjà le topic "Tension de sortie du port spindle PWM paramétrable ?".

J'ai déposé le firmware du STM-32, modifié comme indiqué au début de ce message, ici.

Voilà, je crois t'avoir tout dit, mais si tu rencontres des soucis, n'hésites pas !

@+

P.S. : Je me permets de partager le dernier message que je t'ai envoyé en privé, car cela pourrait intéresser d'autres membres disposant d'une AMB DI et désireux de pouvoir profiter également d'un laser sur leur RS-CNC32, sans trop se prendre la tête lorsqu'ils passent de l'un à l'autre.
pju
Messages : 18
Enregistré le : 28 août 2020 14:40

Re: Inverseur PWM pour Le laser

Message par pju »

Il y aussi une solution software, ajouter un $33 (ou plus > 32), a la louche ca parait simple
(et eventuellement ca peut aussi etre embarque direct dans $32 sans $33)

settings.h
float homing_pulloff;
uint8_t invert_spindle_pwm; <--------- NOUVEAU
} settings_t;

spindle_control.c
Au lieu de
#ifdef INVERT_SPINDLE_PWM
outputChannelInit.TIM_OCPolarity = TIM_OCPolarity_Low;
#else
outputChannelInit.TIM_OCPolarity = TIM_OCPolarity_High;
#endif
Faire
if (settings.invert_spindle_pwm)
outputChannelInit.TIM_OCPolarity = TIM_OCPolarity_Low;
else
outputChannelInit.TIM_OCPolarity = TIM_OCPolarity_High;

dans settings.c apres
case 32:
...
Ajouter
case 33: settings.invert_spindle_pwm = int_value; break;

Apres
settings.homing_pulloff = DEFAULT_HOMING_PULLOFF;
Ajouter
settings.invert_spindle_pwm = 0;

dans report.c
Apres
#else
report_util_uint8_setting(32,0);
#endif
Ajouter
report_util_uint8_setting(33,settings.invert_spindle_pwm);

et faire 2 commandes TFT, ex
Cmd6_PWMInvert-ON.txt -> $33 = 1
Cmd7_PWMInvert-OFF.txt -> $33 = 0
mstrens
Messages : 2611
Enregistré le : 27 févr. 2018 12:58

Re: Inverseur PWM pour Le laser

Message par mstrens »

Effectivement c'est aussi une possibilité.
Répondre