Carte Servos à dsPIC

  • Auteur de la discussion MaX-MoD
  • Date de début
D

dualvsta

Nouveau
MaX-MoD a dit:
Bonsoir,

la résistance sur la grille (Gate) des MOSFET a pour but de limiter la vitesse de montée (intensité) de la tension Grille-source. Il paraît en fait que les transistors MOSFET n'aiment pas une montée trop brusque sur leur grille, ça aurait tendance à les... griller.

Quant à la puissance dissipée par ces résistance, elle est très faible: la grille des MOS se charge en quelques nanosecondes, après quoi l'intensité qui traverse ces résistances est nulle (<µA).

Donc, une simple résistance 1/4W est suffisante. Mais si vous voulez êtes très minutieux, il faut vérifier l'intensité impulsionnelle maxi donnée par le constructeur de la résistance : ~2A

Merci beaucoup pour ces précisions :wink:
 
M

MaX-MoD

Compagnon
Juste un petit mot pour dire que la limitation du courant sera bientôt fonctionnelle.
De plus, le routage de la carte est déjà bien avancé (>75%) mais le plus dur reste à faire : le routage des signaux de puissance.

La carte finale devrait rentrer sur un PCB simple face de 80*100mm
 
F

fred250

Compagnon
C'est bien si ça avance , je pourrais peut être testé ça sur la cn
Le temps que je la termine tu aura peut être fini... car de mon coté ça avance beaucouuuuuup moins vite que prévue...
 
M

MaX-MoD

Compagnon
Bonjour,

Le proto 1 est quasiment terminé. Il manque les MOSFET et les BYV27 que je vais chercher demain.
Il y a plusieurs points que je corrigerai avant la version finale:
  • Retrait du quartz (utilisation de l'horloge interne suffisamment fiable)
  • Déplacement des connecteurs
  • Déplacement du condo d'alim moteur
  • Déplacement des MOSFET (pour pouvoir les fixer sur les parois interne d'un boitier en métal)
  • Création de trous de fixation
  • Réduction de la taille du pcb (objectif: 100*70mm)

à noter que plusieurs composants sont optionnels (9 au total), ils ne sont pas utile pour le moment mais permettent une évolution de YAPSC (contrôle prédictif, signal ENABLE)

La carte de communication PC (RS232 optoisolée) est à part, ainsi on a une carte de programmation pour toutes les cartes servo.
Celle présentée ici utilise un port COM standard, une autre carte utilisant un chip FTDI permettra de connecter YAPSC via USB.
Un connecteur 5*2pins permet de programmer un dsPIC vierge ou de connecter des éventuelles améliorations (bus CAN etc.)

Voila.
Test et état conclusion demain.

P1020135.JPG
La carte

P1020126.JPG
Carte+carte de comm
 
F

fred250

Compagnon
bonne nouvelle , j'attends les résultats avec impatience :-D
 
M

MaX-MoD

Compagnon
Au fait, Fred, j'ai un doute... c'est à toi que j'ai envoyé des dsPIC???
 
F

fred250

Compagnon
oui oui c'est a moi :wink: pour l'instant ils sont bien au chaud en attendant une version opérationnel de ta carte
 
W

wasax

Nouveau
Bonjour à tous,
je trouve ce projet tres interressant.
je souhaiterais m'en inspirer pour piloter des amplis de servos du type industriel dont la commande est en +/-10V.
Sur le schema modifié de MaX-MoD :A la place de l' AOP de puissance mettre un aop lm741. La broche 26 qui est reliée à ILIM en l'air. J'ai egalement rajouté une porte "ET". es ce correct? le choix de l'AOP est il le bon?
Le programme de Max-Mod intitulé dspic-servo-25sep-2006-modif.zip se programme t il comme la version originale http://members.shaw.ca/swstuff/dspic-servo.html , gere t'il la limitation de courant?
Pouvez vous me conseiller?

aop0.JPG
 
M

MaX-MoD

Compagnon
Pour la commande d'une carte ampli en +-10V, c'est un peu plus complexe.
Je t'en dis plus ce soir.

J'ai modifié le programme pour utiliser un pont en H, mais un montage à AOP est toujours possible (j'ai modifié la disposition des pins, il doit y avoir le schémas modifié dans ce fil).
La limitation en courant est évidemment implémentée.

PS: le code source et fichier .hex mis à jour seront bientôt dispo. De même pour le PCB. Il faut d'abord que je mette au propre.
 
M

MaX-MoD

Compagnon
C'est plutôt ça que je ferais, avec les sorties re3 et re5
Enfin c'est un peu flou, j'avoue :roll:

en gros, s=2*re3 - 2*re5

Ou modifier le firmware pour centrer la sortie PWM (0A = PWM à 2.5V), filtrage de la sortie PWM par une cellule RC puis amplificateur centré sur 2.5V avec un coef multiplicateur de 4 (0V PWM => -10V; 5VPWM => +10V)
 
W

wasax

Nouveau
Merci pour ta reponse,
je penche pour la 2éme solution avec ampli.
Pourrais tu etre plus precis quand tu dis "modifier le firmware" car je ne m'y connais pas suffisamment.
dois je supprimer la Function:void set_pwm(float amps) en bas du fichier pwm.c?
PTPER = (FCY/FPWM/2 - 1) quel est la frequence du pwm?
merci

filtre%26adapt.gif
 
M

MaX-MoD

Compagnon
@wasax
Il faut modifier la fin de la fonction set_pwm(float amps):
remplacer
par:
La sortie est alors centrée sur 2.5V (rapport cyclique 50%) => 0V a la sortie de l'aop.
En revanche, je n'ai pas vérifié ton montage à AOP (pas le temps).
Il faut que 0V en entrée <=> -10V en sortie, et que 5V à l'entrée <=> 10V à la sortie, le tout avec un passe-bas. Ou l'inverse si ça t'arrange mieux.

La fréquence est dans dspicservo.h:
24KHz. la résolution de la sortie à cette fréquence est de ~10bits soit >1000 pas.

Dans la derniere version du code, j'ai remplacé par Voila.


@Wika

Pour le moment, dsDRO, YAPSC et PAPSI dorment... dans un carton! (Eh oui, c'est la rentrée et je déménage)

Au fait, j'ai retrouvé ma plaque présensibilisée! Mais comme j'ai remarqué un pb sur le PCB de dsDRO ben... c'est pour le WE prochain (j'espère)

PS: Tout fonctionne au poil, y compris la limitation en courant!
Enfin il reste à corriger le PCB, c'est encore un bon gros bout ça :lol:
 
M

MaX-MoD

Compagnon
le PCB est corrigé.
Il ne devrait pas y avoir d'autre version à composants discrets, à moins d'une évolution majeure.

Viendra ptet plus tard une version CMS.

Bons montages :wink:

Pour lire le PCB, utilisez KiCAD

PS: Le manuel est en préparation Voir la pièce jointe V1.zip voici.
 
M

MaX-MoD

Compagnon
Avec plaisir :wink:

Attention cependant, je dois encore publier la dernière version du firmware du dsPIC, qui gère la limitation en courant.

A+
 
F

fred250

Compagnon
Je vient enfin de prendre un moment pour regarder un peut les fichiers
et bahhh j'ai pleins de questions! :lol:
Le schéma du pcb est orienté coté cuivre ou composant ?
Sur la liste des composant dans la dernière colonne il y a plein de C2
, R3 ...ect derrière des composants qui n'ont pas la même valeurs , ça correspond a quoi ? il y a aussi un "capapol" (C17) :shock: c'est quoi cette bête :lol: sur le pcb il y en a deux qui on l'air l'un sur l'autre ( C17 et C10 ) je viens de rejeté un oeil et c'est donc le condensateur moteur , il en faut combien donc , un ou deux ?
Remarque pour mes moteurs il me faut des valeurs différentes
Je sais pas si tu t'en rappel , c'est des moteurs 260Vdc 5A que je voulais alimenté directement avec le 230V redressé sans passé par un transfo donc environ 320V
Tu m'avait commandé des mur550 en même temps que les dspics et les drivers de mos
pour les mos j'avais déjà des IRFP450
il me faut donc trouver le condensateur moteur et les résistances
pour les mos , une idée des valeurs ? car ça dépasse mes compétences... :wink:
 
M

MaX-MoD

Compagnon
Ah, j'ai pas mis la bonne version du fichier KiCAD.
Quant on ouvre le PCB, c'est vue du côté composants, on voit les pistes par "transparence" à travers le CI.

C17 et C10 sont l'un sur l'autre, pour avoir deux écartements possibles pour le condo moteur. Il n'en faut qu'un seul.
à savoir que ce condo ne sert qu'à réduire les parasites émis sur la ligne d'alimentation, il en faut un plus gros de stockage après le pont de diodes.

320V, c'est bcp, il faudra revoir l'isolement je pense.
Quoique une couche de vernis côté CI et composants pourra faire l'affaire.

Les Nos des composants ne se suit pas, normal j'en ai supprimé puis rajouté, avec KiCAD il faut tous les renommer puis remplacer dans le schémas et PCB, c'est très long à faire et source d'erreurs. Le schémas est bon quant même.

R18 à R22 n'ont pas de valeur, ils ne doivent pas être implémentés. Ils serviront quant j'aurai développé un algorithme plus poussé de contrôle des moteurs.

Bon, il manque plein d'infos.
Je vais essayer de trouver un peu de temps et commencer le manuel...

PS: les IRFP450 ont un boitier TO-247, donc il faut modifier le PCB.
Ils ont l'air parfaitement adaptés à cette tâche.
 
F

fred250

Compagnon
OK merci , il y a rien de vraiment urgent , je commence a regardé l'électronique histoire d'être prêt de ce coté là le moment venu
 
M

MaX-MoD

Compagnon
Pas de problème. J'ai commencé le manuel d'utilisation. ça avance très vite puisque je connais la bête par coeur :P
Pour la conception de la carte, je mettrai quelques précision sur mon site avant de faire le dossier complet.
J'ai aussi modifié le PCB pour utiliser des TO247, tu n'auras pas à t'en charger. La carte est un peu plus grande, et l'isolement peut être un peu limite : dans ton cas, quoiqu'il en soit, je te conseille un coup de vernis acrylique (type voiture, etc.) en bombe sur le côté PCB, comme ça tu seras tranquille.

Voila, A+ :wink:
 
W

wasax

Nouveau
Salut MaxMod.
J'ai modifié le code comme tu me l'avais indiqué precedemment pour centrer la sortie PWM à 2.5V.
Mais apres essais sur platine je trouve des incoherences, lorsque j'envoie step dir je n'ai aucune evolution de la sortie de plus celle ci n'est pas centree a 2.5v.
Pout l'instant j'ai branché l'encodeur et j'envoie les step dir,je fais tourner l'encodeur a la main.
Je pense que j'ai mal compilé, peux tu m'envoyer le code compilé et modifié stp.
merci
 
M

MaX-MoD

Compagnon
Tu as pensé à mettre l'entrée ENABLE à +5V?
C'est la pin 3 (RB1).
je commencerais par vérifier ça :wink:

Pour la modif, si tu n'y est pas arrivé, je t'enverrai ça.
Met déjà le code de pwm.c pour que je le vérifies ici, il n'y a que ça à modifier normalement.

Bonne journée à tous
 
M

MaX-MoD

Compagnon
Alors Wasax,
dans pwm.c, tu dois remplacer void set_pwm(float output) par

La compilation devrait se passer sans problème.
La sortie est centrée sur +2.5V, amplitude 0 à 5V.

Sinon, j'ai besoin de vos avis sur le manuel ci-joint (en cours d'écriture): trop complexe? pas bien structuré? vous aimeriez avoir plus d'infos sur tel ou tel sujet? Exprimez-vous!
Comme je connais très bien le sujet, je ne sais pas ce qu'il faut mettre ou pas, tout me parait évident :wink:

Merci,
Max
 
A

armaris

Compagnon
Je l'ai survolé, pas lu dans les détails.

Good job :smt038 :smt023 .
 
F

fred250

Compagnon
:tumbsupe: je le trouve super bien ton manuel , tout est bien expliqué
il y a juste deux trois détails qu'il faudrait peut être modifier pour facilité la compréhension de ceux qui n'ont pas de notion dans ce domaine;

Alors page 5 c'est juste une faute de frappe dans la phrase "le +5V est utilisé par de microcontroleur

Page 6 il faudrait peut être préciser plus clairement pourquoi sur le schéma il y a deux condensateurs (C10=C17) et qu'il n'en faut qu'un seul car d'autres risque de ce posé la même question que moi

Page 9 aussi une erreur de frappe , sous le schéma a un moment il y a "les câbles on peut regrouper ensemble les câbles de signaux digitaux
Toujours page 9 , dans les moyens de limité les parasite il y a "on peut mettre une cellule R-C en // au moteur" il serai peut être bien d'en dire un peut plus car perso je connais pas , a moins que ce soit comme ça que ce nome la résistance que l'on voit entre les deux fils d'alim du moteur

Page 10 dans "note" tu dit de ne pas relié le blindage du câble d'encodeur a la masse du moteur , qu'appelle tu la masse du moteur ? la terre ? ou le fils - de l'alimentation
Que faut il faire des blindages que ce soit des câbles moteurs , encodeurs et pc ?

Page 14 quand tu parle du réglage X tu dit que X-1 inverse les commandes du pc , c'est a dire ? quel est le réglage pour ne pas multiplié les pas encodeur ? X0 ou X1 ?

et pour finir une dernière petite chose , si un moteur s'arrête après un dépassement de l'erreur max les autres continue de fonctionné , non ?
 
W

wasax

Nouveau
Je n'ai pas mis l'entree RB1 à +5V car dans main.c j'ai:
_TRISB1 = 0; // spare

"dans pwm.c, tu dois remplacer void set_pwm(float output) par :"
je n'ai pas cette fonction dans pwm.c.

j'ai juste remplacé a la fin de la fonction set_pwm(float amps):
PDC1 = temp+(FCY/FPWM)/15;
par:
if(temp_dir)
PDC1 = temp/2 + PTPER/2;
else
PDC1 = PTPER/2 - temp/2;

Je pense que je n'ai pas la bonne version car les dates de modif des fichiers ne sont pas recentes.
Peux tu poster les derniers fichiers ou m'indiquer ou les telecharger.

Ton manuel est super bien fait.
 

Sujets similaires

El Zorro
Réponses
12
Affichages
575
El Zorro
El Zorro
D
Réponses
33
Affichages
1 075
dh42
grandioso
Réponses
7
Affichages
498
grandioso
grandioso
M
Réponses
4
Affichages
486
MakerJoGa
M
M
Réponses
6
Affichages
1 148
MitchCanon
M
Dudulle
Général langage MMBASIC
Réponses
8
Affichages
842
Dudulle
Dudulle
L
Réponses
3
Affichages
690
laurent12100
L
Haut