Pilotage d'un servomoteur avec un HIP4080A
Répondre à la discussion
Page 1 sur 2 1 DernièreDernière
Affichage des résultats 1 à 30 sur 36

Pilotage d'un servomoteur avec un HIP4080A



  1. #1
    biduleur34

    Question Pilotage d'un servomoteur avec un HIP4080A


    ------

    Bonjour,
    je suis en train d'esssaye de metre au point une carte de controle pour un moteur a courant continue + codeur quadrature, toute la partie regulation est gere par Linux et EMC2.

    J'ai un soucis au niveau de la mise au point de mon HIP4080A.

    LEs mosfet utilisé sont des IRF540N
    les resistances de gate sont de 7 ohm pour une tension de bootstrap de 12.5V.

    Les valeurs des resistances HDEL et LDEL sont de 120K ohm ce qui correspont a un dead time de 50nS, le MOSFET est vendu comme comutant en 40nS max, donc en theorie tout roule mais en pratique j'ai des probleme de X conduction et je grille des mosfet.

    Malheureusement je ne possede pas d'oscilo.
    d'apres vous quel doit etre l'ecart entre le dead time theorique et le tmx de comutation de mon mosfet.

    merci de tout vos conseils.

    -----
    Images attachées Images attachées

  2. #2
    biduleur34

    Re : Pilotage d'un servomoteur avec un HIP4080A

    Petite precision,la frequence du PWM apliqué sur la broche 2 HEN du HIP4080A est de 100Khz.
    En vitesse lente pas de soucis le moteur tourne tres lentement et aucun mosfet ne chauffe.

  3. #3
    MorpheusPic

    Re : Pilotage d'un servomoteur avec un HIP4080A

    jais utiliser la meme config ya pas longtemp et jais pas eu ce probleme

    verifie deja t'es alimes a l'oscillo, qui peuvent etres tres sales avec ces moteurs et faire faire n'importe koi au controleur ...

  4. #4
    biduleur34

    Re : Pilotage d'un servomoteur avec un HIP4080A

    Malheureusement je n'est pas n'oscillo.
    Je n'est rien prevu pour ecreté les surtension imposé par l'induit du moteur.
    actuellement l'ensemble est alimenté en 40V.

    Le 12V qui alimente le HIP est independant du 40V sauf le 0V cablé en etoile, ce 12v vient d'une petite alim à decoupage pour Disque Dur externe.

    J'ai monté mes resistances HDEL et LDEL a 165K, et suprimé les resistances de gate.il semblerai que ce soit un peu mieux mais au bout de 15min rebelotte.

    quel info il vous faudrez pour m'aidé ?

    merci

  5. A voir en vidéo sur Futura
  6. #5
    biduleur34

    Re : Pilotage d'un servomoteur avec un HIP4080A

    Citation Envoyé par MorpheusPic Voir le message
    jais utiliser la meme config ya pas longtemp et jais pas eu ce probleme

    verifie deja t'es alimes a l'oscillo, qui peuvent etres tres sales avec ces moteurs et faire faire n'importe koi au controleur ...

    Finalement quelle solution as tu adopté ??

    merci

  7. #6
    MorpheusPic

    Re : Pilotage d'un servomoteur avec un HIP4080A

    mon montage fonctionne sur une batterie 12V

    voila le shemas et le routage que jais fait ... et je n'est pas eu de problemes.

    jais pas hesiter a separer les 2 plan de masse je pense que jaurais eu des problemes surtout avec un recepteur 433 MHZ sur le meme pcb
    mais sa marche

    la seulle grosse difference avec ton montage est que jais laisser les resistances que le fabricant du hip preconiser (220 Khom)

    c'est surement largement asser pour les IRFZ44N


    c'est peut etre ton probleme ... dead time trop juste ?...

    a+
    Images attachées Images attachées
    Dernière modification par MorpheusPic ; 24/04/2011 à 02h26.

  8. #7
    biduleur34

    Re : Pilotage d'un servomoteur avec un HIP4080A

    Effectivement, on a utilisé les memes shema, pas de zener ni de diode transil, qui protege le tout, la seule difference c'est que tu a placé un snubber sur ton moteur et ton 12V me parait lissé par un filtrage, moi j'ai juste Transfo 20V--->pont de diode----->condo chimique 22000µF 63V.

    J'ai joint le fichier PCB, on peu voir que j'ai aussi utilisé deux plan de masse "pointillé bleu" relier a un meme 0V situé au bornier.

    mes condo de bootstrap sont de 220nF.

    les valeur de ton shema sont t'elles les valeur difinitive finale ??

    merci
    Dernière modification par Tropique ; 24/04/2011 à 16h24.

  9. #8
    biduleur34

    Re : Pilotage d'un servomoteur avec un HIP4080A

    Sur ton schema je comprend pas comment marche ton entrée IN+ IN-, pourquoi IN- est t'elle relié au +12V comment fais tu pour avoir un IN+ >IN- pour ton DIR ??

    ensuite à quoi sert le transistor branché sur la Sortie OUT/BLI, tu utlises bien le HIP4080A ou le HIP4081A ??

    merci

    ++

    Léo

  10. #9
    Tropique

    Re : Pilotage d'un servomoteur avec un HIP4080A

    Bonjour

    Merci de respecter les http://forums.futura-sciences.com/el...-sabonner.html, et de convertir l'image dans un format autre que le pdf (réservé aux documents complexes et multipages).
    Pas de complexes: je suis comme toi. Juste mieux.

  11. #10
    bobflux

    Re : Pilotage d'un servomoteur avec un HIP4080A

    C'est fort ennuyeux cette discrimination envers les pdf

    Je suspecte un problème de layout, les MOSFETs sont assez chatouilleux sur l'inductance des connections...

    L'inductance à considérer pour la connection de la gate des MOS du bas est celle de la boucle :

    - capa de découplage +12V du driver
    - traces
    - driver
    - traces
    - MOS

    Ce qui est bien dans un schéma en PDF c'est qu'on peut utliser la fonction recherche (Ctrl-F "+12V") ce qui me permet de dire qu'ici, le découplage sur le +12V du driver me semble anémique voire carrément insuffisant. Donc la commutation OFF->ON des MOS du bas va probablement être très sale.

    De plus le découplage sur le +80V n'a pas l'air non plus d'être au top. Il faudrait quelques céramiques pour absorber les pics de tension, sinon vu l'inductance de la grosse capa, c'est les MOS qui vont les manger, et je n'ai pas vérifié si ils sont "avalanche rated"... probablement pas.

  12. #11
    biduleur34

    Re : Pilotage d'un servomoteur avec un HIP4080A

    Le drivers est decouplé par une capa de XR7 1µF au borne de VCC VDD et Vss, plus une capa chimique de 470ùF pour le filtrage grossier en arrrivé du 12V de l'alim.

    c'est pas suffisant ?

    merci

  13. #12
    bobflux

    Re : Pilotage d'un servomoteur avec un HIP4080A

    ça dépend du layout, il faut voir... tu peux le reposter ? sinon tu me l'envoies par MP, en pdf...

    Y'a aussi le dV/dT : en fonction du layout et de l'impédance dans la grille du MOS du bas, quand le MOS du haut se met à conduire, si il commute assez vite, le MOS du bas prend un gros dV/dT sur son drain, ce qui cause un courant dans la capacité parasite Cgd, et ce courant se retrouve dans la grille.

    Si la grille n'est pas fermement maintenue au potentiel de la source (via une impédance très basse) Vgs peut dépasser le seuil et le MOS du bas se met à conduire à chaque fois que celui du haut commute de OFF à ON. Rapidement ça crame

    On ne peut pas forcément contrôler ça : si l'inductance du package du MOS, sa Rg interne, et sa Cgd sont assez élevées, on ne peut rien faire à part ralentir la commutation du MOS du haut en insérant une résistance plus élevée dans la gate (ou mieux, dans l'alim positive du driver du MOS du haut).

    google "dv/dt induced turn-on"

    c'est un critère important du choix du MOS...

    Tu as quelle tension/courant max dans le moteur ?

  14. #13
    biduleur34

    Re : Pilotage d'un servomoteur avec un HIP4080A

    Voici mon PCB en format jpg
    Images attachées Images attachées  

  15. #14
    biduleur34

    Re : Pilotage d'un servomoteur avec un HIP4080A

    Le moteur est donné pour 200W à 75V soit 2.6A.

    En fait sur mon PCB j'ai fait une erreur en creant le HIP4080A sous eagle et les sorTie A et B son inversé, j'ai corigé en hard sur le PCB en sectionnat les piste et effectué les ponts necessaires.

    La capa de decouplage de 1ùF est drirectement soudé sous le PCBau bornes du drivers.

  16. #15
    bobflux

    Re : Pilotage d'un servomoteur avec un HIP4080A

    Hum, bon...

    Où et comment sont reliés les deux plans de masse ?

  17. #16
    biduleur34

    Re : Pilotage d'un servomoteur avec un HIP4080A

    Ils sont relier a droite, au niveau des deux broche centrale du bornier +12V 80V.

    le point de soudure n'est pas sur le pcb.

    au niveau du mosfet AHO la piste est de taille correcte sur le Pcb gravé, pas comme sur ce jpg
    Dernière modification par biduleur34 ; 24/04/2011 à 21h11.

  18. #17
    MorpheusPic

    Re : Pilotage d'un servomoteur avec un HIP4080A

    salut en fait c'est le hip4081 que jais utiliser
    avec des IRFZ44N

    pour le shemas je me suis baser sur celui de cette page

    http://www.planete-sciences.org/foru...11677&start=30

    les valeur du shemas sont bien celles sur le circuit a l’exception des 2 condensateur 68n remplaces pas des 10n vu que j'en avait pas ...

    pour le commander j'envoi un PWM sur un des transistor et sur l'autre 1 ou 0 pour le sens ...

  19. #18
    bobflux

    Re : Pilotage d'un servomoteur avec un HIP4080A

    OK

    Alors, je ne sais pas si c'est pour ça que les MOSFET crament, mais ce layout a de nombreux problèmes...

    Premièrement, c'est supposé commuter à 50 ns / 100 kHz et c'est pas des CMS...

    Ensuite la boucle de courant principale, qui passe par la capa de découplage, un des MOS du haut, le moteur, l'autre MOS du bas, RSense, et retour à la capa de découplage. Cette boucle porte un un courant qui est un signal rectangulaire à 100 kHz, soit entre 0 et I (max 2.5A) soit entre -I et +I suivant la façon dont tu commutes tes MOS.

    Il fallait placer le retour de cette boucle (la borne négative de RSense) sur la masse de la capa de découplage de l'alim (C4), minimiser l'aire de cette boucle, et utiliser un vrai plan de masse. Là, tu as une aire de boucle assez grande et une inductance probablement assez importante pour poser des problèmes. Le pire c'est que R40 (RSense) est connectée au plan de masse "signal" donc le courant du moteur passe dans le plan de masse signal, ce qui est une catastrophe. Du coup la mesure sur RSense est probablement faussée.

    En fait le plan de masse du bas ne sert pas à grand chose puisque rien n'est connecté dessus !

    Les fentes dans les plans de masse, c'est traître. En plus là, ça fait une belle antenne. Je dirais que ce montage va émettre des interférences en large bande et parasiter tout ce qui est autour...

    Je ne sais pas trop comment ton driver de MOS va réagir à ce routage surréaliste de la masse, il peut le tolérer bien, ou mal... à voir.

    Quand aux MOS qui grillent, d'après ce que tu dis c'est quand tu augmentes le courant dans le moteur. Ce n'est donc pas forcément un problème de cross-conduction, c'est peut-être dû à un pic de tension mal absorbé (à cause de l'inductance importante des connections).

    Il faudrait placer des capas de découplage céramique sur entre le +40V et la masse pour absorber les pics, mais je ne vois pas où les mettre sur ton pcb

    A la limite, une capa céramique de 100nF entre "Res+" et le plan de masse "puissance", plus une autre entre le "+80V" et le plan de masse du bas, les 2 au plus près des MOS, mais il faudra probablement rajouter quelques straps et surtout régler le problème du courant de retour par R40... ça me semble assez mal barré...

    Le plus simple AMHA est d'oublier les 100 kHz et la commutation des MOS à 50 ns... donc je te conseillerais de passer à une fréquence plus réaliste (mettons 20 kHz) et augmenter les résistances de grille pour ralentir les commutations des MOS. Il y aura des pertes, tant pis.

    Normalement à 2.5A, tu aurais pu utiliser des MOS en boîtier CMS SO-8 qui ont une inductance très faible, sans dissipateur, avec une version CMS de ton driver, et tout le reste en CMS aussi, et un vrai plan de masse. Cela pose beaucoup moins de problèmes.

    Ton choix de MOS est aussi un problème. Ces dinosaures ont une Qg de plus de 60 nC ! On devrait en trouver des plus modernes à moins de 10 nC...

  20. #19
    biduleur34

    Re : Pilotage d'un servomoteur avec un HIP4080A

    Ok, en fait ce PCB est un "Proto" pour valider mon montage et corrigé mes erreurs.nombreuse apparement et temps mieux .

    Donc ce que je doit faire:

    -->Retour de Rsense directement au 0V sans passer par mon "plan de masse "
    ,ou effectivement d'ailleur pas grand chose est connecté a part Rsense-.

    -->Capa de 100nF en paralele Drain source de chaque mosfet et de l'alim. en stock j'ai que du mks2 100nF 100V polyester et 10nF ceramique, je met un de chaque sur chaque mosfet et sur l'alim ?

    ---> Trouver des mosfet plus rapide.

    Actuellement j'ai un dead time de 110nS et des resistances de gate de 10ohm.

    Les MOS qui grilles sont toujours du meme coté, par exemple toujours la Paire A ou la Paire B. c'est pour cette raison que je pensez plus a un probleme de dead time.

    merci d'avance pour tes conseils..

    ++

  21. #20
    biduleur34

    Re : Pilotage d'un servomoteur avec un HIP4080A

    Je suis enfin arriver a faire tourné mon moteur sans cramer mes mosfet, il ma suffi de metre des capa de decouplages, une sur petit condo de decouplage de 100nF 500V de l'alim du pont et une sur le +Rsense.

    j'ai aussi relier directement mon -Rsense au condo de decouplage.

    Bref j'ai bien degrossie mon soucis , c'est pas parfait mais dans mon PCB final je tiendrai compte de ces erreur et reviendrait vers vous.

    Maintenant il faut que je regle les Valeur de ma regulation PID.

    Merci et à bientot
    ++

  22. #21
    bobflux

    Re : Pilotage d'un servomoteur avec un HIP4080A

    Au moins, tu prends bien le coup de massue il faut apprendre de ses erreurs !...

    Bref dans tout circuit (numérique ou autre) qui commute rapidement des courants importants il faut avant tout considérer les boucles. Le courant suit toujours un circuit fermé pour revenir à son point de départ...

    Fais l'inventaire des boucles de ton circuit qui portent des courants forts et/ou à variation rapide. Pour commencer :

    - le courant du moteur (voir mon post précédent) qui passe par la capa d'alim +40V, 2 MOS (au choix du PWM), RSense, et retour
    - les courants de grille des MOS

    La quantité d'emmerdements que produit une boucle est proportionnel au produit de :

    - sa surface (grosso modo)
    - le dI/dT ou vitesse de variation du courant dedans

    Les 2 déterminent :

    - la quantité de pollution électromagnétique émise par la boucle
    - l'inductance de la boucle et donc les tensions parasites qui vont apparaître dessus en fonction des dI/dT que tu envoies dedans

    Comme ici on veut des dI/dT rapides pour réduire les pertes par commutation, il ne reste donc qu'à réduire la surface des boucles.

    Les capas de découplage céramique servent à shunter les courants en haute fréquence et donc à réduire la taille des boucles et leur inductance.

    -->Retour de Rsense directement au 0V sans passer par mon "plan de masse "

    Donc place la grosse capa (C4) et RSense du même côté du pont en H.

    Tu as quelle valeur pout RSense ? Et pourquoi les 2 résistances en série ?

    -->Capa de 100nF en paralele Drain source de chaque mosfet

    Nonnon, pas en parallèle sur les MOS : ça ne servirait à rien et puis la capa devrait être chargée et déchargée à chaque commutation, ce qui augmenterait les pertes.

    Le but de cette capa est d'être plus "rapide" que C4 qui a de par sa forme (gros électrolytique) une inductance série non négligeable.

    Quand les MOS commutent, la boucle principale voit son courant s'inverser très rapidement. Donc l'inductance de cette boucle (y compris l'inductance de C4) cause un pic de tension qui peut griller les MOS. Pour absorber ce pic, il faut mettre les capas de découplage soit en parallèle avec C4, mais au plus près des MOS, soit entre le +40V et le bas du pont (broche positive de RSense).

    Si tu comptes utiliser ton moteur comme frein, il faut aussi prévoir un moyen d'absorber l'énergie qu'il va produire...

    --> en stock j'ai que du mks2 100nF 100V polyester
    > et 10nF ceramique, je met un de chaque sur chaque mosfet et sur l'alim

    Pour un découplage efficace, ce qui fonctionne le mieux, c'est la capa céramique CMS (en taille 1206 si tu débutes en CMS, sinon 0805) placée au plus près. Ça tombe bien, c'est aussi le moins cher.

    > Les MOS qui grilles sont toujours du meme coté, par exemple toujours la
    > Paire A ou la Paire B. c'est pour cette raison que je pensez plus a un
    > probleme de dead time.

    En général quand un MOS grille (quelle que soit la raison) il peut se mettre en court-circuit, donc dès que le PWM active son copain, il explose avec...

    ---> Trouver des mosfet plus rapide.

    Donc tu travailles en 40V avec un courant max de 2.5A ?

    Un MOS de 30 mOhm va donc dissiper moins de 0.2W, plus les pertes de commutation. Donc tu peux même mettre des MOS doubles en SO-8 ; mais si tu n'as pas de problèmes de place, des MOS individuels en SO-8 (ou en D-PAK/D²PAK) chaufferont un peu moins.

    Quand au routage, en bas de ton PCB tu peux mettre les 2 lignes (V+ et RSense+), une sur chaque face, sous forme de "plan" (enfin une grosse piste de 5mm de large quoi) ce qui permet une connection directe aux MOS et un placement facile des capas...

  23. #22
    biduleur34

    Re : Pilotage d'un servomoteur avec un HIP4080A

    Merci encore de ces precieuses info, pour la tension d'alim, mon alim actuelle est trop haute , et depasse les 80V max du HIP4080A donc je limite a 40V mais en version finale j'aurai bien 80V.

    les moteur sont donné pour 2.6A.

    Pour info je prevoit de realisé 4 Carte identique, pour controlé les 4 Axes de la CNC que je suis en train de bricoler..
    En général quand un MOS grille (quelle que soit la raison) il peut se mettre en court-circuit, donc dès que le PWM active son copain, il explose avec...
    Je pense aussi car sur les quelques MOS que j'ai fumé les 1/4 etait en partie haute du pont seulement.

    j'aurai aussi besoin de conseil concernant la mise en place d'un eventuelle snuber aux borne du moteur, j'ai trouver dans mes tiroirs des reseaux RC marque RIFA ref:PMR210MB valeur 22n + 100ohm.

    qu'en penses tu ?

    merci
    Dernière modification par biduleur34 ; 25/04/2011 à 18h33.

  24. #23
    bobflux

    Re : Pilotage d'un servomoteur avec un HIP4080A

    OK, ça ne crame plus, excellent.

    Donc c'était bien un problème de pics de tension dus à un layout pas terrible. Tu feras mieux la prochaine fois ! Toute la difficulté du passage entre le proto et la V1 étant de corriger les bugs du proto, sans en introduire de nouveaux... n'oublie pas de poster ton layout en cours. Comme tu peux le voir ce genre de montage est extrêmement chatouilleux au niveau du layout.

    Je suis coincé à la maison avec un reste de rougeole donc profites-en faut que je m'occupe

    Pour ton driver :

    Voltage on AHS, BHS . . . -6.0V (Transient) to 80V (25°C to 125°C)
    Voltage on AHS, BHS . . . -6.0V (Transient) to 70V (-55°C to 125°C)
    Voltage on ALS, BLS . . . . . . . -2.0V (Transient) to +2.0V (Transient)

    80V est donc un "absolute maximum rating" mais valable uniquement dans une plage de température au-dessus de 25°C. "Absolute maximum rating" ça veut dire que le composant n'est pas garanti au-dessus de ces valeurs, certains exemplaires peuvent tolérer un petit dépassement, d'aures non. Il vaut mieux prendre une marge de sécurité, pour les tolérances et surtout les pics de tension.

    Plus ton layout et ton découplage sont bons, moins il y a de pics, et plus tu peux t'approcher des maximums, mais il vaut mieux prendre une marge de sécurité... Personnellement je ne dépasserais pas 75V (25°C to 125°C) ou 65V (-55°C to 125°C). Il vaut mieux un circuit robuste qu'essayer d'extraire la performance ultime en prenant des risques...

    Avec un layout très bon, tu peux diminuer les résistances de grille pour avoir une commutation plus rapide et diminuer les pertes.

    Si il est peu probable que tu l'utilises en-dessous de 0°C, en extrapolant un peu, 70V pourquoi pas.

    > les moteur sont donné pour 2.6A.

    Je suppose que c'est le courant nominal, mais quel est :

    - le courant de démarrage ?
    - le courant moteur bloqué ?

    Il faut examiner les specs du moteur. Ce serait dommage que quelque chose fume si le moteur bloque !

    > j'aurai aussi besoin de conseil concernant la mise en place d'un
    > eventuelle snuber aux borne du moteur,

    Là, c'est un peu empirique. Ça dépend de l'inductance du moteur, etc... L'idéal est d'avoir un oscillo et d'essayer diverses valeurs de résistances. Tu peux aussi placer des ferrites en sortie du pont (une sur chaque sortie) pour ralentir les flancs de commutation vus de l'extérieur, tout en gardant des MOS qui commutent vite pour diminuer les pertes.

    Tu n'as pas parlé des protections... Je vois un fusible.

    Donc pour protéger des MOS, le fusible ne sert à rien, les MOS pèteront avant. D'autant plus que le fusible est placé avant C4, et C4 contient largement assez d'énergie pour envoyer un MOS sur orbite.

    Tu as plusieurs types de cas particuliers et d'incidents :

    1) démarrage du moteur

    Au démarrage tu vas appliquer graduellement le courant avec ton PWM, donc normalement tu ne vas pas atteindre la valeur de courant de démarrage des specs du moteur qui est calculée pour une application de la tension nominale en direct sur un moteur à l'arrêt. Tu vas faire un démarrage "doux" ce qui évitera de secouer le matos.

    2) moteur bloqué

    Le courant augmente et devient égal à la tension d'alim divisé par la résistance interne du moteur. Ton système doit être dimensionné pour y résister (en cas de bloquage) et réagir, c'est-à-dire arrêter le moteur, et prévenir l'utilisateur que quelque chose ne va pas.

    Heureusement la plupart des MOS peuvent supporter des courants de pointe énormes pendant un temps assez long (quelques ms) ce qui est largement suffisant pour que n'importe quel système de protection puisse réagir. Vérifie tout de même dans les datasheet...

    Note que si tu dimensionnes ton fusible en fonction du courant nominal du moteur, il grillera, donc ce sera très très chiant de devoir changer constamment les fusibles à chaque fois que tu debug ton logiciel de CNC et qu'il coince le moteur au bout de la plage de déplacement...

    3) court circuit moteur

    Là, c'est si tu poliotes avec les fils. Ou qu'une rencontre malheureuse a lieu entre un câble et la fraise du CNC... ou la sonde de l'oscillo qui ripe...

    Dans ce cas le courant qui circule est égal à la tension dans la capa d'alim (donc 70V) divisé par la résistance interne (capa + MOS + RSense + fils) donc en pointe ça peut allégrément dépasser 500-1000A donc pouf.

    La vitesse de montée de ce courant dépend de l'inductance du circuit. Les ferrites d'antiparasitage que tu peux placer en sortie du pont ajoutent de l'inductance, donc limitent la vitesse de montée du courant. Attention, il faut les dimensionner pour que le circuit de protection réagisse avant qu'elles ne saturent...

    Donc puisque tu mesures le courant sur RSense, tu peux ajouter un comparateur rapide (par exemple un MAX9030-9031) avec un seuil fixé à l'aide d'un simple pont diviseur. Quand le courant mesuré dépasse le seuil, la sortie du comparateur active le RESET d'un flop (ou autre) qui désactive les drivers de MOS. Ensuite, c'est au uC de détecter le problème et de réactiver le circuit, éventuellement avec l'intervention de l'utilisateur. Il faut un dispositif à mémoire (donc un flop) qui une fois déclenché, garde le montage en sécurité, sinon il y aura oscillation.

    J'ai un pont comme ça. Le comparateur et le flop sont intégrés dans le uC, mais c'est la même idée. La protection réagit en moins de 0.5 µs et un court-circuit franc en sortie.ne pose pas de problèmes.

    Ce genre de protection ne peut pas être implémenté en soft. Mettons que tu aies des ferrites en sortie, l'inductance de ton circuit est, au pif, de 1 µH. Sur un court-circuit, e=-L di/dt donc en 1 µs, I passe de 0 à 70A. Pas de problème, le circuit de protection en hardware réagit. Si ta protection est trop lente (mettons qu'elle mette 10 µs) alors dans le même cas, le courant est 10x plus important, et pouf.

    4) court-circuit à la masse

    Même scénario mais la sortie du pont touche le chassis. Dans ce cas avec un RSense dans la masse, ce n'est pas détectable, et pouf. A toi de voir si tu veux le détecter ou pas (dans ton cas ce scénario paraît peu probable). Pour cela il faut mettre RSense en haut du pont et utiliser un ampli spécial. Le candidat idéal (AD8210) est relativement cher et limité à 65V...

    -------------

    A quoi sert R5 ?

    Je vois que tu as mis des LM358 pour mesurer le courant.

    Suivant la stratégie de commutation du pont :
    1- classique (le moteur voir +70V/-70V)
    2- plus élaboré (le moteur voir +70V/0V dans un sens et -70V/0V dans l'autre)

    La tension sur RSense est un signal rectangulaire, de fréquence 100 kHz, et alternatif centré sur 0 dans le cas 1, ou positif entre 0 et une certaine valeur dans le cas 2.

    Si RSense est une résistance CMS (genre 1206 ou 1210) type "current sense" (genre 50 mOhm) ou bien une dizaine de résistances 0805 de 0.47 ohm en parallèle, son inductance est très faible. Si il s'agit d'une résistance à trous (ou pire, bobinée) son inductance sera plus importante et la tension sur RSense aura des jolis pics.

    Les capas de découplage entre +70V et RES+, ainsi que C7, arrondissent un peu les angles et mangent les pics sur cette tension, ce qui est bon.

    Dans les 2 cas, le LM358 est vraiment beaucoup trop lent pour tirer quoi que ce soit de ce signal. Il va limiter en slew rate et en bande passante, la sortie ressemblera à un sinus dont tu ne pourras rien tirer.

    En comparateur, il n'est pas adapté non plus, d'autant plus que R25/C5 ralentissent pas mal le truc. D7 ne sert à rien puisque ton AOP n'a pas d'alim négative.

    Le LM358 est donné pour un slew rate ultra anémique de 0.3V/µs donc en oubliant R25/C5, et en supposant que IC2A a un seuil à 3V, ta protection va mettre plus de 15 µs à réagir. C'est un AOP, pas un comparateur ! Si tu veux un comparateur, prends un comparateur, au moins tu n'as pas de problèmes de slew rate.

    Là, IC2B est monté en ampli, puis tu as un filtre RC (R25/C5). Mais la tension sur C5 n'est pas proportionnelle au courant... elle est proportionnelle au courant multiplié par ton facteur de PWM (regarde comment le courant circule dans le pont et dans RSense en fonction de la commutation des MOS)... donc la valeur mesurée ne sert à rien.

    Si tu veux mesurer le courant précisément (par exemple pour calculer le couple moteur) tu vas avoir le choix entre deux solutions :

    A- Amplifier la tension sur RSense avec un AOP adapté (vraiment beaucoup plus rapide qu'un LM358) puis mettre un montage "diode sans seuil" pour faire un détecteur de pics, qui mesurera donc le maximum du courant sur une période du PWM, ce qui fait que le courant mesuré est réel, et pas multiplié par la valeur du PWM

    B- Ou bien amplifier la tension sur RSense avec un AOP adapté, et programmer ton uC pour qu'il échantillonne (avec l'ADC) le courant au bon moment, c'est-à-dire au point zéro de ton PWM, quand tu sais que les MOS conduisent, et dans quel sens.

    La solution B simplifie le circuit mais il faut un uC capable de l'implémenter (et à 100 kHz c'est chaud). Si le uC n'est pas sur la même carte que le pont, la transmission du signal analogique risque de poser des problèmes.

    Si tu t'en fous, en fait, de mesurer précisément le courant, alors vire tous ces LM358, et remplace ça par une protection avec un vrai comparateur rapide type MAX9030.

    ---

    A quoi servent tous ces optos et le récepteur RS485 ? Tu veux avoir les 2 options de connection ? Pourquoi des optos dans les 2 sens ?

  25. #24
    biduleur34

    Re : Pilotage d'un servomoteur avec un HIP4080A

    Merci de ce tsunami d'information,

    je suis moi meme en convalesence pur une petite hernie discale...

    Bref,

    evidement pour le prochain layout je ferai part de mes avancé, je vait peu etre passer a des drivers en CMS pouvant acepté 100V ce serai plus simple que de changé mon alim, mais les probleme de layout et de Rsense seront sensiblement les memes.

    Concernant la mesure de courant, en fait ce que je souhaite c'est juste une sortie logique qui me signalerai une surconsomation du courant au niveau du moteur, et effectivement peu etre qu'un simple comparateur suffirait, mais n petit filtrage serait tous de meme necessaire non ??

    En fait cette carte sera conecté a une carte Au format PCI, de chez MESA la 5I20 elle comporte 72 I/O que le soft EMC2 sous linux pilote pour gerer les Axes d'une CNC.c'est pour cette raison que je souhaite optocouplé tous les signaux entrant et sortant du PC.
    Cette carte fournis en sortie un Signal PWM, DIR, ENABLE, BRAKE, et en entré je lui renvoye les signaux du codeur + un eventuel signal de defaut, qui coupera selon la programation le pilotage de l'axe concerné.

    voilou, avant de modifier mon PCB il faut que je fasse le tour des drivers qui tienne jusqu'a 100V.
    merci

    ++

  26. #25
    bobflux

    Re : Pilotage d'un servomoteur avec un HIP4080A

    > Concernant la mesure de courant, en fait ce que je souhaite
    > c'est juste une sortie logique qui me signalerai une surconsomation
    > du courant au niveau du moteur

    OK, dans ce cas ce n'est pas la peine de la jouer subtil, un simple comparateur suffit.

    Je te conseillais le MAX9030 car il est peu cher, mais a tout de même d'excellentes caractéristiques (offset < 5 mV, hystérésis de 4 mV, tP 200 ns, sortie push pull, les entrées vont à 0V, etc). Attention c'est du SOT23 donc c'est petit, perso j'aime bien c'est pas difficile à souder à la main et ça prend pas de place. Si tu trouves mieux comme référence, ça m'intéresse pour un truc en cours.

    Comme tu as 2.5A :

    - option 1 : RSense = 0.1 ohm ; tu ça te fait une dissipation de 625 mW dedans, c'est un peu élevé mais avec par exemple 10 résistances CMS 0805 de 1 ohm en parallèle ça passe. En plus un côté des résistances est sur le plan de masse donc ça évacue la chaleur. A 2.5A tu as 0.25V dessus, donc les 10 mV d'offset+hystérésis représentent une précision de 4%.

    - option 2 : RSense = 0.03 ohm donc dissipation 0.2W, tu peux mettre une seule résistance de 0.03 ohm en CMS (qui coûte le même prix que 10 résistances de 1 ohm... donc c'est juste une question de place). A 2.5A tu as 75 mV dessus donc la précision est moins bonne mais en fait largement suffisante pour détecter un court circuit...

    Genre "moins de 3A c'est bon, plus de 5 c'est pas bon" une protection anti court circuit n'a pas besoin d'être précise... elle a juste besoin d'être robuste (et rapide).

    > mais un petit filtrage serait tous de meme necessaire non ??

    Une capa céramique en // sur RSense suffit. En fait comme l'impédance de RSense est faible, il y a pas de spike dessus. Par contre il faut mettre le comparateur juste à côté, pas au bout de longues traces qui vont capter du bruit et l'injecter dans les entrées.

    Tu peux prévoir la place de mettre un RC (genre 10 ohm 100nF) avant l'entrée du comparateur, après tu le soudes, ou tu le soudes pas...

    J'ai implémenté un driver de LED basé sur un convertisseur DC-DC buck hystérétique, où le courant dans l'inductance est maintenu entre 2 valeurs min et max en commutant les MOS avec un simple comparateur à hystérésis qui commande un driver de MOS. C'est un MAX9031 avec une RSense de 30 mOhm, ça fonctionne très bien, la fréquence s'ajuste toute seule en fonction de la tension d'entrée, de 20 à 250 kHz... je n'ai pas eu besoin de filtrage sur le RSense, mais le layout est très serré (le comparateur est à quelques millimètres de la résistance), pas de problèmes de parasites. Tu ne devrais pas en avoir non plus.

    > cette carte sera conecté a une carte Au format PCI

    OK donc les optocoupleurs sont un excellent investissement

    > en entré je lui renvoye les signaux du codeur + un eventuel signal de defaut

    Certes mais n'oublie pas que le temps de réaction d'un PC est aléatoire... une bonne vieille bascule D à 20cts, ça réagit vite et bien, et ça protège aussi contre les bugs ! Sinon tu peux aussi mettre une protection plus élaborée, par exemple un monostable qui se déclenche quand la sortie du comparateur passe à 1, et coupe les drivers pendant un petit instant (genre 0.1s).

    Faut éviter le scénario : courant trop élevé -> on coupe les MOS -> le courant revient à 0 -> on peut les remettre en marche immédiatement, etc. Si tu as juste un comparateur rapide ça peut osciller au MHz, et comme l'énergie dissipée à la commutation dans un court-circuit est beaucoup plus élevée qu'en fonctionnement normal (car courant plus élevé), pouf.

    D'où la protection à réinitialisation manuelle (bascule D) ou automatique avec délai (monostable).

  27. #26
    biduleur34

    Re : Pilotage d'un servomoteur avec un HIP4080A

    Je vait donc revoir mon schema et mon layout selon tes conseils.
    tu a l'air de bien aimé les composant CMS, leur soudure ne me fait pas peur c'est plutot leur aprovisionnement et stockage que je crain.

    Je vait retenir la solution qui consiste a employer un AOP rapide + bascule qui desactive le drivers, memorise et envoye le defaut vers le PC. Apres verification du defaut " blocage moteur " le soft revalidera l'enable du drivers a traver cette meme bascule.

    Pour minimisé le circuit je pense utilisé des nand pour la bascule et pour l'adaptation de mes optocoupleurs.

    ++

  28. #27
    bobflux

    Re : Pilotage d'un servomoteur avec un HIP4080A

    > tu a l'air de bien aimé les composant CMS

    Oui, et pour plusieurs raisons :

    - les composants modernes performants ne sortent plus qu'en CMS
    - les performances sont bien meilleures en haute fréquence
    - le plan de masse de l'autre côté du pcb n'est pas transformé en gruyère (ou si on a pas besoin de plan on peut en mettre des 2 côtés)
    - ça prend moins de place donc ça coûte moins cher en circuit imprimé, boîtier, etc (j'utilise OLIMEX en bulgarie, tu paies un PCB de 10x16 mais tu peux mettre autant de petits rectangles que tu veux dedans et ils te les découpent)
    - les passifs (capas, résistances) ne coûtent rien (par exemple les 100nF 50V X7R de découplage qu'on met partout, c'est 1 centime en quantité donc j'ai pris une bobine de 1000... 10 EUROS !!!), les résistances 1% thick film sont très peu chères, etc (par contre les résistances thin film de précision sont pas données)
    - ça se déssoude facilement sans massacrer le PCB (pour les passifs il faut avoir 2 fers à souder, un second fer de secours à 7€ c'est parfait) ou sinon un canon à air chaud

    > c'est plutot leur aprovisionnement et stockage que je crain.

    oui le problème c'est qu'il faut passer par farnell, digikey, etc...

    > Je vait retenir la solution qui consiste a employer un AOP rapide + bascule qui
    > desactive le drivers, memorise et envoye le defaut vers le PC. Apres verification
    > du defaut " blocage moteur " le soft revalidera l'enable du drivers a traver cette
    > meme bascule.

    AMHA c'est la bonne solution, mais utilise un comparateur plutôt qu'un AOP.

    > Pour minimisé le circuit je pense utilisé des nand pour la bascule et pour
    > l'adaptation de mes optocoupleurs.

    ouais

  29. #28
    bobflux

    Re : Pilotage d'un servomoteur avec un HIP4080A

    Ah oui si tu veux souder des CMS il te faut :

    - un stylo à flux (INDISPENSABLE) ou du flux en bouteille et un coton tige (prends du no-clean ou water soluble)
    - un fer à pointe pas trop grosse ni trop fine (le mien fait 1mm)
    - un deuxième fer de secours à 5€ pour déssouder
    - de la tresse à dessouder pour les patés
    - une soudure avec un flux no-clean ou water soluble qui ne laisse pas de scories, si t'es maso prends du sans plomb, sinon ça, hélas trop cher, une bobine de 500g t'en as pour des années...)
    - une loupe en plastoc quelconque
    - un truc pour tenir la carte (par exemple une planche avec des vis dedans qui vont dans les trous de fixation de ta carte)
    - une bonne pince à épiler (à voler à ta femme, ou chez carouf, ou ça)
    - des yeux
    - du nettoyant flux de soudure si t'as de la soudure qui fait des grosses scories, sinon pour le flux Ri et le stylo "no-clean" un produit 10x moins cher convient, du bête alcool iso, ici et une vieille brosse à dents

    Sinon ça se fait au four aussi. Mais pour les protos je préfère assembler partie par partie genre pour vérifier que le régulateur donne bien +5V et pas autre chose avant de mettre le reste...

    Pour vérifier les soudures, mets la carte sur le scanner et scan en 600dpi !

    Et surtout pour pas se faire chier perso je modifie les empreintes. Pas pour les gros composants genre SO-8 (là si ton logiciel le supporte il faut sélectionner l'empreinte "low density" avec les pads plus généreux) mais les petits genre SSOP au pas de 0.5mm, là j'ajoute 1mm à la longueur du pad et puis je décale le pad pour que ça dépasse au-delà du composant. Comme ça. Avec ce truc il y a bien la place de mettre le fer à souder, ça marche d'enfer. Avec le stylo à flux, un SSOP28 se soude en 5 secondes.

  30. #29
    biduleur34

    Re : Pilotage d'un servomoteur avec un HIP4080A

    Je suis en train de revoir ma carte, et je vais surrement remplacer le HIP4080A par deux drivers half bridge 100V des LM5102.

    je vait donc piloté directement mes deux demi pont par deux signaux pwm et dir.

    sur le hip4080A en fonctionnement normal les MOSFET du bas sont piloté alternativement en continue selon l'etat de DIR et les MOSFET du Haut hache la tension d'alim selon PWM.

    sagit t'il d'un fonctionnement fast decay , ou slow decay ??

    quel fonctionnement vous me conseillez de realisé avec des porte logique.Sachant que mes signaux dispo sont DIR qui donne le sens, PWM la vitesse et Enable pour la validation du pont.

    merci de vos conseils.

    ++
    Léo

  31. #30
    biduleur34

    Re : Pilotage d'un servomoteur avec un HIP4080A

    Voila apres quelques mois de mise en veille du projet je revient à la charge avec mes questions.

    J'ai donc remplacé mes HIP par des LM5102. le hachage ce fait avec les mosfet du bas, que pensez vous de ce shema.

    quel est la difference entre le hachage par le bas du pont ou le haut du pont ?

    Je suis en train de faire l'implantation du PCB, la majorité des composants sera en CMS.
    Images attachées Images attachées
    Dernière modification par biduleur34 ; 04/09/2011 à 09h23.

Page 1 sur 2 1 DernièreDernière

Discussions similaires

  1. course d'un servomoteur
    Par mariepour dans le forum Électronique
    Réponses: 5
    Dernier message: 04/01/2011, 16h37
  2. Aide pour la programmation d'un servomoteur avec 68hc11 controlboy
    Par invite430e7ac7 dans le forum Électronique
    Réponses: 0
    Dernier message: 15/04/2010, 15h38
  3. Pilotage relais avec 4V
    Par invitec0c5b520 dans le forum Électronique
    Réponses: 7
    Dernier message: 28/01/2010, 21h12
  4. commande d'un servomoteur (utilisation d'un temporisateur)
    Par extra93 dans le forum Électronique
    Réponses: 3
    Dernier message: 28/04/2008, 08h47
  5. pilotage d'un ecran lcd d'un vieil organisateur
    Par invite3a8921f5 dans le forum Électronique
    Réponses: 0
    Dernier message: 12/02/2007, 04h46
Découvrez nos comparatifs produits sur l'informatique et les technologies.