Variateur (Contrôleur) pour moteur Brushless

à PIC16F628
(auteur Silicium628)

NOTE IMPORTANTE: Je décris ci-dessous un montage qui me donne satisfaction, sachant que je ne suis plus vraiment débutant en électronique. Ce montage est alimenté par un accu Lithium Polymère. Ces Accus sont extraordinaires de capacité et de légèreté, mais sont réputés dangereux dans des mains peu expertes. Ils peuvent exploser ou prendre feu en cas de court-circuit ou de surcharge.

Donc je montre ici ce que je fais, mais je ne vous encourage pas à en faire autant, c'est vous qui voyez. 

Si vous n'avez pas de solides connaissances en électronique et en programmation des microcontroleurs, je vous conseille d'acheter un variateur tout fait, en en trouve à 50 euros (en 2005).

Ajout le 2 février 2007: on trouve actuellement des controleurs brushless à 20 euros.

Quant à moi:

  •  Je ne vends rien. Pour ceux qui me demandent "combien ça coûte ?" : voyez le prix des composants chez les fournisseurs
  • (tels que Selectronic ou Electronique Diffusion, ou autres... ils ont des sites très pratiques pour cela)
  • Il est hors de question que j'adapte mes réalisations à vos besoins personnels !
  • les montages que je publie sur mon site évoluent parfois (trop) lentement, c'est parce que je fais plusieurs choses à la fois et  je suis conscient que ma vie ne suffira pas à faire tout ce que je voudrais. Pour cette raison également je ne réponds pas toujours à vos Emails. Désolé.

Bon, pour ceux qui ne sont pas partis, je vous raconte la suite:

  • Montage évolutif puisque le PIC16F628 est un uP flash reprogrammable environ 1000fois !

 

Au début il y avait ça !

Le montage en cours de test sur plaque d'essai. A gauche, le micro-récepteur de radiocommande (poids 5g...)

On distingue les six transistors MOSFET qui commutent les enroulements du moteur, ainsi que le microcontrôleur qui génère les tensions de commande suivant un timing très précis. Il va sans dire que la version définitive sera réalisée avec des composants CMS ( SMD en Anglais, composants miniatures de montage en surface). 


 

 

Le moteur est un REX 220 FLYWARE

  • type LRK (9 pôles et 12 aimants)

  • conçu pour être alimenté par 2 à 3 éléments LIPO (Lithium-polymère) 

  • 1350 rpm/V

  • 220milli-ohm

  • masse 31g (!)

 

 

 

Il peut faire tourner  une hélice 9x5 à 

10000 Tr/mn !

 

 

Les moteurs brushless (sans balais ni charbons) développent un couple important de par leur principe de fonctionnement: le champ tournant créé par les tensions triphasées appliquées aux enroulements doit faire PLUSIEURS TOURS pour que le rotor (cage extérieure portant les aimants) fasse un seul tour (voir plus bas).

Cela fait l'effet d'une démultiplication (magnétique), sans réducteur mécanique d'aucune sorte, le résultat étant une vitesse de rotation plus faible et un couple plus important. ( La puissance étant égale au produit du couple par la vitesse angulaire, pour une puissance restituée donnée, la vitesse est inversement proportionnelle au couple et vice versa). Je vous explique cela en détail un peu plus bas...

 

DOCUMENTS TECHNIQUES (auteur Silicium628)

LE SCHEMA

Version 14: Pour ceux qui n'aiment pas les diodes Schottky et les gros électrochimiques, il y a une surprise !

Remarques:

  • Rôle des résistances (R11,12,13) de 10k reliant la gate des MOSFETS côté (-) à GND: Les Ports du PIC sont placés en haute impédance lors du reset. Sans ces résistances, lors du reset,  les MOSFETS coté (+) et (-) d'une même phase pourraient conduire simultanément provoquant un court circuit sur l'alimentation et leur destruction immédiate.
  • Rôle des résistances (R34,35,36) de 100 ohm: Le PIC ne supporte pas de débiter sur la charge capacitive que représente la gate des IRF7455 (3,5 nF + l'effet Miller, le double que pour les IRFZ44). En fait, sur charge capacitive, et sans ces résistances, le port concerné configuré en sortie se bloque à GND après une impulsion avortée à peine visible à l'oscillo.


LE SOFT

  • Tout d'abord voici l'organigramme (définissant la boucle principale seulement) La production et le découpage des signaux de sortie, ainsi que le décodage des signaux de la télécommande et l'interprétation des signaux BEMF se fait par tout un jeu d'interruptions matérielles et logicielles. Voir le .asm

Notes : 
-T_PPM représente la durée des impulsions PPM (Phase pulse modulation) de la radiocaommande.
-Les notations (N1, N2 etc...) utilisées sur cet organigramme se retrouvent dans le listing en assembleur.



LE CODE SOURCE et le soft assemblé pour programmer le PIC :

  • variat3_21.asm  : Source du soft pour le PIC16F628 avec un tas d'explications ! MODIFIABLE (par vous !)
  • variat3_21.hex  :  Fichier assemblé pour PIC16F628A (mais fonctionne aussi avec un PIC16F628) 

  • variat3_21.lst  :  Listing de désassemblge (pour vérifications des adresses en mémoire) :

 

 Le code source en cours d'écriture, débugage et simulation avec MPLAM

Certains calculs se font sur 24 bits

Voici enfin trois fichiers indispensables pour l'assemblage du soft avec MPLAB, à placer dans le même dossier que le point asm (de plus, il faut ajouter Delai.asm et 16f628a.lrk à la liste des fichiers du projet : dans MPLAB menu Project / add Files to Project... aux bons emplacements):
Le fenêtre du projet doit ressembler à celle-ci: (dans MPLAB, menu cocher windows/variat3.mcw pour afficher cette fenêtre)



Notes : 

  • le nº de  version du schéma et celui du soft sont indépendants, ils peuvent êtres différents.

  • Le .asm, c'est du texte, on peut l'ouvrir avec un traitement de texte. Il faut un ASSEMBLEUR (MPLAB par exemple)  pour en faire un .HEX utilisable par le programmateur (tel que ic-prog). En passant un peu partout sur mon site vous trouverez toutes les astuces concernant ces étapes.


COMMENT PROGRAMMER LE PIC ?

(gratuitement )


Circuit imprimé de la version de test:

 

J'ai tout fait passer sur un circuit simple face ! La version définitive sera en CMS. (Le schéma subira en conséquence des modifications, en particulier les transistors MOSFET seront des IRF7455 au lieu de IRL44)

 

Voici un prototype DE TEST en composants classiques.
Masse 30g. La version définitive sera en CMS devrait faire moins de 10g.

Note: Le schéma a beaucoup évolué depuis cette version, la rendant totalement obsolete.
En conséquence ne me demandez pas de vous fournir le typon du circuit imprimé.

COMMENT CA MARCHE ?

 

  • Le rotor est constitué d'une cloche à la périphérie de laquelle sont collés 12 aimants permanents très puissants.

  • Le stator, qui est fixe, se compose de 9 bobines ne comprenant chacune que quelques spires de fil émaillé. Ces bobines sont reliées en trois ensembles de trois  bobines en séries. Chacun de ces 3 ensembles a donc 2 fils d'alimentations. l'un de ces fils est relié à un point commun non accessible, reste trois fils qui constituent les 3 fils sortant du moteur (Montage en étoile, chaque branche de l'étoile constituée par 3 bobines en série). Heu.. j'ai été suffisamment clair là ? voir Fig1 ci-dessous.

  • A un instant donné seul deux de ces trois fils sont reliés par le variateur à l'accu d'alimentation.

  • On a vu plus haut qu'à  un instant donné seul deux des trois fils du moteur sont reliés par le variateur à l'accu d'alimentation. Cela se traduit sur la Fig2 ci-dessous par le fait que le courant entrant par une série de trois bobines produit trois pôles Sud, puis, via le point commun, ressortant par une des deux autres  séries de trois bobines, produit trois pôles Nord.

Fig1: Le stator fixe et son câblage

Fig2: Le timing des courants 
(les numéros sont arbitraires, seul l'ordre compte)

 

  • En sélectionnant judicieusement dans quel ordre on alimente les branches de l'étoile, on obtient le timing de la Fig2. Les flèches vertes indiquent les courants électriques qui passent pour chacune des six temps. 

  • A un instant donné un seul de ces six courants est présent.

Voici le timing des tensions de commandes alimentant les six transistors MOSFET de puissance:
  • La lettre "H" désigne le transistor reliant une phase au +7V (celui du Haut sur le schéma), et la lettre "L" désigne celui du bas sur le schéma, reliant la phase à la masse. Ces transistors, je le rappelle, sont montés en "pont en H" (voir le schéma, transistors IRLZ44)
  • Les chiffres en haut indiquent les six temps.
  • Lorsque le signal en vert est en haut (1 logique), le transistor concerné conduit, sinon il reste bloqué.
  • Ainsi on voit par exemple qu'au temps 4 le transistor H de la phase 1 conduit en même temps que celui L de la phase2.  Il passe alors un courant entrant par le fil de la phase 1 et sortant par le fil de la phase 2.
  • Il y a toujours exactement 2 transistors en conduction, jamais plus, et jamais 2 de la même phase bien sûr ! (sinon court-circuit direct entre le plus et le moins de l'accu, aie, aie, aie, comptez 60 A sur un accu LIPO)
  • Pour chacune de ces six phases, une des branches de l'étoile n'est pas reliée électriquement, et n'est parcourue par aucun courant.

  • Une force "contre-électromotrice", c'est à dire une tension induite est présente aux aux extrémités de cette branche "volante". Cette tension contre-électromotrice ( back EMF en anglais ou BEMF) est utilisée par le variateur pour ajuster le timing (asservissement de phase). Un circuit combinatoire analogique et trois comparateurs rapides permettent d'utiliser ces signaux de BEMF. Pour le schéma de ce réseau, et uniquement pour cela, je me suis inspiré d'une réalisation publiée en langue anglaise et surtout allemande (je ne comprend strictement pas un mot d'allemand ! ) et accessible par les liens au bas de cette page. Je remercie ici leur auteur pour le gain de temps que cela m'a permis. Tout le reste est de moi. ( les autres parties du schéma, le choix du microcontrôleur PIC16F628, le soft dans son intégralité, etc...). La note d'application AN857 de Microchip m'a toutefois été d'une grande utilité pour comprendre le principe de la commande des ces moteurs).

 


 

J'avais placé un capteur à effet Hall UGN 3503 externe POUR LES TESTS.
Il  "voyait passer"  les aimants du rotor. Sa position était ajustable.
FINI ! Plus de capteur externe !


Voici maintenant une animation faite à partir de photos de mon moteur, qui vous montre le timing du champ tournant et la réponse du moteur:

  • Entre chaque image le moteur tourne de 10 degrés. Il faut 36 images (dont je ne représente ci-dessous que les 4 premières) pour effectuer un tour mécanique complet.

  • Faut-il le rappeler ? : les pôles de même signe (Nord-Nord ou Sud- Sud) se repoussent, ceux de signe contraire (Nord- Sud) s'attirent. J'ai représenté les pôles Sud en rouge et les pôles Nord en bleu. Un des aimants est repéré par un "x" jaune afin de mieux visualiser la rotation.

 

 

On constate que:

  • l'espacement angulaire des bobines est de 360/9= 40 degrés

  • l'espacement angulaire entre les aimants est de 360/12= 30 degrés

  • à chaque pas, l'aimant suivant (orienté +30 deg) fait face à la bobine suivante (orientée +40 deg) donc le stator tourne de 40-30 = 10 degrés, soit 6 fois moins vite que le champ.

  • un tour moteur (360º mécanique) se décompose électroniquement en 36 phases électriques.

  • la période de récurrence des signaux électriques est de 6 temps. (il y a six états distincts de commutations, puis le cycle reprend à l'identique)

  • A l'issu de ces 6 phases temporelles, le programme retombe dans le même cycle.

  • Lorsque le champ magnétique engendré par les bobines du stator (qui est fixe, au centre du moteur) fait 1 tour(*) (360 degrés soit 36 phases électriques) le rotor (cloche) ne tourne que de 60 degrés: SIX FOIS MOINS VITE.

(*) notion ambiguë ici vu les lignes de forces au formes complexes et mouvantes du champ en question...

 

 C'est simple non ?

 

En fait pas tant que ça !

 Je vous ai en effet expliqué comment le moteur, lorsqu'on lui applique les bons signaux, veut bien se donner la peine de tourner. Oui mais ces signaux, il faut les produire ! Et ça ce n'est pas si simple. Analysons le problème: 

Il semblerait qu'il suffise de générer trois signaux rectangulaires déphasés de 120 degrés (2pi/3), un courant triphasé en quelque sorte, (plus exactement des tensions) et l'appliquer au moteur pour que celui-ci se mette à tourner. Hé bien ça ne marche pas ! Imaginez qu'on applique un tel courant triphasé ayant une certaine fréquence, par exemple 60Hz... le moteur au repos ne peux pas se mettre INSTANTANÉMENT à  tourner à une dizaine de tours à la seconde, comme ça clac ! On pourrait penser qu'il va se mettre à accélérer progressivement depuis zéro jusqu'à la bonne vitesse correspondant à la fréquence du courant... hé bien justement, les vitesses intermédiaires qu'il devrait prendre ne correspondent PAS à la fréquence du courant ! Et le moteur ne se mettra donc pas à tourner, il entrera en vibration, c'est tout ! (Les moteurs de machines à laver un peu anciennes savaient le faire, mais c'était des moteurs ASYNCHRONES à champ glissant, sans aimants permanents. Les Brushless dont je parle sont plutôt des moteurs SYNCHRONES )

Bon, me direz vous, si le moteur ne s'adapte pas à la fréquence du courant, adaptons la fréquence au moteur .  On lui applique d'abord une fréquence nulle... heu c'est quoi une fréquence nulle ? Bon d'accord, disons une fréquence très faible, genre 1 Hz qui le fera vibrer, puis on augmente la fréquence progressivement en laissant le temps au moteur d'accélérer pour suivre docilement cette fréquence. Ce n'est pas une mauvaise idée, il s'agit d'un moteur dit synchrone, ça marche, mais ça pose des problèmes... 

En simplifiant un peu, si on augmente le couple (on freine le moteur) une fois la vitesse désirée obtenue, il décrochera brusquement. La vitesse de rotation ne pouvant plus suivre la fréquence d'alimentation, le moteur arrêtera de tourner et se mettra à vibrer à la place, et pourrait même être détruit ! Il faudrait pour éviter le décrochage, soit augmenter l'intensité du courant d'alimentation, soit... diminuer la fréquence. Ce qui est très compliqué à réaliser. Détecter le couple ? comment ? On peut mesurer le courant. Pas simple... Et surtout: si le couple augmente très brusquement, même une fraction de seconde, le moteur décrochera quand même. Et un moteur synchrone décroché ne raccroche pas. Il faut alors détecter le fait qu'il ne tourne plus, et ré-appliquer une fréquence partant de zéro... Sans compter que si le moteur propulse une voiture... elle risque de se vendre très mal. 

Mais alors que faire ? le moteur ne s'adapte pas à la fréquence du courant, et il est difficile d'adapter le fréquence au régime du moteur et aux aléas de la tension d'alimentation, du couple etc...

 L'IDEE : Et si c'était le moteur qui indiquait au montage électronique ce qui lui convient comme signaux de commande, à tout moment ? V'la que c'est le moteur qui commande au courant maintenant ! 

Mais réfléchissons un peu à ce qui se passe dans un moteur à courant continu, à collecteur, balais et charbons. C'est la rotation du rotor qui par l'intermédiaire des secteurs (bagues) du collecteur tournant sous les charbons, DECOUPE le courant continu d'alimentation pour en faire, vu des bobines du rotor un courant alternatif exactement adapté à tout moment à la position du rotor dans le champ magnétique des aimants fixes. Et bien sûr, forcément toujours à la bonne fréquence ! Bon, nous on a un moteur brush-less, on ne va quand même pas y rajouter un collecteur et des balais ! Non mais certaines réalisations utilisent trois capteurs magnétiques extérieurs à la cage tournante, qui renseignent l'électronique sur la position du rotor et donc sur les tensions à appliquer. Et ces réalisation se trouvent par exemple sur certains lecteurs de CD... C'est mécaniquement compliqué, fragile (près des parties tournantes du moteur), encombrant,  cher...

C'est donc ici que nous retrouvons notre BEMF, la tension induite par les aimants en rotation dans les bobines fixes... et tout à fait exploitable. Le circuit analogique combinatoire (voir le schéma) produit en sortie des trois comparateurs (LM139) trois tensions rectangulaires déphasées de 2pi/3, synchrones non pas avec les tensions d'alimentation, mais avec la vitesse de rotation effective du moteur. Et le microprocesseur PIC16F628 fera commuter les six transistors MOSFET en cadence avec ces tensions au moyen des interruptions logicielles des bits 4 à 7 de son port B. (Il s'agit d'une des sources d'interruptions sur ce microcontrôleur). 

La variation de vitesse est obtenue par découpage des signaux de sortie, avec rapport cyclique fonction F(x) des signaux de la télécommande, et en proportion de la période de base du cycle (une "simple" règle de trois, avec division sur 24 bits quand même ). Voir le timing ci-dessous.

Enfin, lors de la phase de démarrage, la mise en service temporaire du Timer2 découpe le signal de sortie avec une fréquence relativement haute, afin de limiter le courant.

Voir le soft minutieusement commenté, je vous dévoile tout et... en français !

Fred.

 

 

Découpage des signaux de sortie afin de faire varier la vitesse:
  • T0-T2 = période de base générée par l'interruption portB4-7 (déclenchée par les signaux BEMF ) et comptée par le Timer1 du PIC. 
  • T0-T1=période de conduction.
  • En T1 le module de comparaison du PIC détecte que TMR1H,L = CCPR1H,L (consigne = f(T_PPM)) et provoque le blocage du signal de sortie.
  • de T1 à T2 les MOSFETS ne conduisent pas.

Quelques photos des signaux sur l'oscillo:

Signaux sur RA0 et RA2 du PIC : deux phases consécutives

Manche des gaz au mini.

Manche des gaz presque au maxi.

Signaux sur RA0 et RA1 du PIC : même phase, mais attaque MOSFETS coté (-) et coté (+)

Manche des gaz en position moyenne.

 

 

Le moteur sur le banc de test 

 

(Je fais aussi des essais avec une hélice 9x5, mais ce banc de test bricolé
avec un tambour de magnétoscope comme volant d'inertie 
monté sur roulements est beaucoup moins dangereux)


Pour les essais avec hélice, (moins d'inertie et plus de résistance )
 ce carénage évite les accidents.
(Mais non, ce n'est pas radioactif !)

 

3 Mai 2005:  
  • J'ai enfin trouvé la solution logicielle qui permet de se passer de capteur de position externe. 
  • Le régime du moteur est variable et il est obtenu par découpage des signaux de phases -> bon rendement.
  • SECURITE: pas de démarrage à la mise sous tension

CA FONCTIONNE ! 

Démarrage instantané, prise de vitesse foudroyante,  régime stable tout comme un moteur à courant continu à balais. PAS DE DECROCHAGE !!!!! La vitesse s'adapte tout simplement au couple. Et bien sûr, les avantages des moteurs brushless: pas de frottement ! et un MOSFET qui conduit, a une résistance plus faible que le contact d'un charbon frottant sur les bagues en cuivre.

Avec une alim de 8V, le moteur tourne à 10 000 tours/mn (à vide)

Le courant consommé est fonction du couple.

Ah, j'oubliais: la fonction BEC  n'est pas implémentée. Je pense le faire très prochainement, ça ne pose pas de problème. 

Il reste également à traiter la question de l'antiparasitage.

Je vais faire le circuit imprimé en CMS et le publierai dès que possible. A très bientôt ici même !

Améliorations restant à apporter:

  • la fonction BEC (arrêt si tension d'alim faible afin de garder de l'énergie pour alimenter le récepteur radio, et afin de ne pas détériorer les accus LiPO. Facile à faire.
  • antiparasitage (qq petits condos... et un circuit imprimé bien conçu)

7 Mai 2005:  

  • J'ai réécrit une bonne partie du soft afin de le rendre plus structuré et plus lisible.
  • Cette version (v10) du soft me satisfait assez, au point que je vais maintenant attaquer le circuit imprimé en CMS.

8 Mai 2005: 

  • J'ai ajouté (v12) un découpage des signaux de sortie en HF lors de la phase de démarrage (évite les sur-intensités lors de cette phase). Bon faut que je me calme sur le soft, passons au circuit imprimé !

9 Mai 2005:

  • Ca y est, le circuit imprimé en CMS avance: (il reste beaucoup de travail, je n'ai pas routé GND, Vcc, +8V et +16V ni les 3 phases en sortie! Pour GND j'avais prévu un plan de masse sur l'autre face... 
  • A moins que... puisque c'est de la CMS... je pourrais faire du double face en répartissant les composants sur les 2 faces. Le PIC et les MOSFETS sur une face, le réseau de résistances et le comparateur sur l'autre face. Oui, je pense que je vais faire ça. Les dimensions seront de l'ordre de 25mm x 50mm. Mais c'est un peu difficile à réaliser.

11 Mai 2005:

  • Le dessin du CI en double face avance:
  • Dans un premier débordement d'enthousiasme, j'avait configuré le routeur afin qu'il accepte le passage de pistes entre les pattes des CI en CMS ce qui revient à travailler au 1/100 pouce soit au 1/4mm. Mais je pense qu'une gravure si fine n'est pas réalisable par un amateur avec une simple imprimante laser pour réaliser le typon. Je vais toutefois essayer de trouver un imprimeur "en région"qui accepte de me faire un flashage depuis un fichier Postscript ou DXF.

16 Mai 2005:

  • Voici le routage provisoire du circuit imprimé:

C'est un double face mais avec tous les composants du même côté. On peut réduire les dimensions du board en plaçant des composants des deux côtés, mais... mon routeur, même configuré aux petits oignons, explose le nombre de vias! Je me suis pris la tête (et quelques aspirines) pendant une journée, pour enfin décider de placer tous les composants sur la même face. 

Côté éléments CMS

Côté éléments classiques

L'implantation des composants

Détails

Le typon double face est prêt ! (Le vrai est bien net, pas comme cette image JPG un peu floue...)

Reste maintenant à attendre que le soleil se montre... Pourquoi le soleil ? Parce que lorsque je veux obtenir des pistes bien fines aux bords bien nets j'expose le typon et le CI présensibilisé 1mn au rayons bien parallèles du soleil, et pas aux UV de l'insoleuse qui ne m'a jamais satisfait. 

D'ailleurs les termes 'insolation' et 'insoleuse' ne viennent-ils pas de 'soleil' ?

 

 

  • Bonne nouvelle: je viens de vérifier que mon variateur, sans aucune modification, fonctionne parfaitement bien avec un petit moteur brushless de Disque Dur. (il s'agit d'un moteur à 3 fils, ce qui est rare apparemment). Voici le moteur en question:

Ce petit moteur non seulement démarre, mais tourne très bien, même à vide. Le couple est important, et la variation de vitesse fonctionne également très bien.

Le courant absorbé reste inférieur à 1A.

Je vous donne ma petite liste d'astuces pour l'utilisation du Routeur ORCAD, elle vous aidera sans doute si vous débutez avec ce logiciel.

21 Mai 2005: 

  • Soudure des composants en cours

Vous remarquerez qu'on peut resserrer tout ça, quoi que.. La partie 'aérée'du bas va recevoir les quelques composants discrets sur l'autre face (quartz, condensateurs tantale.

Il me manque des 11k CMS pour terminer! je viens de les commander.

Il est tout à fait possible de faire passer une piste entre les pattes d'un composant CMS format 0805

Des pistes passant sous les petits transistors et reliant les MOSFETS à la masse sont à doubler exterieurement de fils de cuivre, sinon...

 

Ensuite il faut... le souder !

Merci déjà à tous ceux qui m'envoient, qui son soutien, qui une idée pour améliorer le timing, qui une petite routine de division trois fois plus compacte que la mienne.

28 Mai 2005: (schéma 14)

J'ai enfin reçu mes trois R de 11k CMS, et j'ai donc pu tester le le circuit. C'est la première fois donc que je fais tourner le montage avec des IRF7455 SMD à la place des IRFZ44. Et là surprise ! les appels de courant sur l'alim (pas sur l'accu) sont tels que le PIC reset et que le LM339 oscille(au démarrage, qui foire donc). La solution à été d'ajouter une diode et un condensateur de 3300uF en tête de l'alim 5V. Ce n'est pas très élégant et j'espère trouver (ou peut-être vous...) une autre solution plus légère.

J'ai dû aussi rajouter trois résistances de 100 ohm (R34,35,36) parce que le PIC ne supporte pas de débiter sur la charge capacitive que représente la gate des IRF7455 (3,5 nF + l'effet Miller, le double que pour les IRFZ44). En fait, dans ce cas, le port concerné configuré en sortie se bloque à GND après une impulsion avortée à peine visible à l'oscillo.

Comme quoi le simple remplacement d'une référence par une autre très proche peut tout remettre en cause. Comme quoi aussi des composants plus performant peuvent engendrer des problèmes nouveaux.

2 Juin 2005:
Pour (et pendant) la programmation du PIC in-situ, il faut couper les 2 pistes reliant RB6 et RB7 du PIC à respectivevent pin1 et pin2 du LM339. (Microchip préconise de rajouter des résistances en série...). Je n' ai pas testé avec les résistances, parce que mon programmateur est très limite...

13 Juin 2005:
Suite aux conseils judicieux de I.M.B, j' ai apporté un certain nombre d'améliorations au soft (maintenant version 15) : Il devient peu à peu modulaire et plus structuré. J'utilise d'avantage les puissantes directives d'assemblages mises à notre disposition.

Nous entrons maintenant dans le domaine des essais en vol (sur un avion modèle réduit) et de l'optimisation....

14 septembre 2005
Nouvelle version du soft
(maintenant version 19):

  • Détection du signal "manche gaz à zéro" AU SEIN de la procedure de démarrage (tout démarrage intempestif provoqué par un parasite est immédiatement inhibé)
  • Détection tension accu faible (sytème BEC) activé.
Mais il subsiste des ratés moteur plein pot.(voir la solution plus bas, le 25 septembre)

MAIS,
et surtout... cette version a  quitté le labo des vaches et A FAIT VOLER UN MOTOPLANEUR
  • Fuselage + moteur (celui de la photo) + ce variateur + accu LiPo 2S 850mAh + radio + servos =362g
  • Ailes = 225g
soit 587g en vol.

Mon rapport concernant le vol:
Vol de plaine par temps calme, lancé main.
Vitesse ascenssionnelle correcte, comparable à ce que j'obtenais avec un 400 réducté. Quelques soucis de trims gaz (au labo je pouvais arrêter le moteur manche + trim en bas, une fois sur le terrain l'arrêt moteur est devenu incertain ! je ne sais pas encore si cela vient de mon émetteur, en l'occurence un vieux Multiplex Europa Sprint FM, ou du vatiateur... Mais j'ai volé quand même sans problème)

La consommation se situant autour de 5A, ça donne une autonomie moteur de 10mn, ce qui garantit un vol de plaine d'au moins 20mn (et bien plus si il y a des pompes thermiques)


25 septembre 2005
(Après plusieurs vols satisfaisants effectués la veille: )

Légères modifications du soft
(maintenant version 20):
  • arrêt du découpage des signaux de sortie si manche des gaz "à fond" : Le moteur gagne des tours ! et ne cafouille plus à fond.
Légère modification du schéma:
  • ajout d'un C=100nF dans le circuit collecteur du transistor de détection de la tension accu faible. Supprime le "cafouillage" du moteur plein pot. (voir plus haut, le 14 septembre)

Maitenant, le REX 220 FLYWARE avec ce variateur et une hélice 9x5 a VRAIMENT la pêche.

Il faudra juste que j'ajoute une fonction FREIN et que je remplace l'hélice par un modéle repliable, ce qui permettra d'allonger notablement les temps de vol.

Et suite à toutes les améliorations de l'électronique, je suis bon pour refaire le circuit imprimé CMS !

A+
Silicium

 


 27 septembre 2005:

Après plusieurs vols toujours aussi satisfaisants effectués la veille, en voici les photos :

Vous pouvez cliquer sur ces vues pour les agrandir.

J'ai réussi à piloter d'une main en prenant les photos de l'autre !

L'objet blanc sous le planeur sur la cinquième photo est un avion de ligne qui passait par là, un peu plus haut toutefois.

Le planeur est un 2 axes auquel j'ai rajouté des ailerons. L'hélice touche le sol à l'atterrissage, mais elle est extrêmement flexible.

Vous remarquerez que j'ai ajouté un petit radiateur sur les 6 MOSFETS, toutefois il reste pratiquement froid.
Concernant le variateur, après maintenant une dizaine de vols, je n'ai pas constaté de brouillages de la radio en 41MHz - FM.
Je pense toutefois qu'il serait raisonnable de placer quelques de petites capas ici et là...

planeur01.jpg planeur02.jpg planeur03.jpg planeur04.jpg planeur05.jpg
planeur06.jpg planeur07.jpg planeur08.jpg planeur09.jpg planeur10.jpg
planeur11.jpg planeur12.jpg planeur13.jpg planeur14.jpg planeur15.jpg
planeur16.jpg planeur17.jpg planeur18.jpg planeur19.jpg planeur20.jpg
planeur21.jpg planeur22.jpg planeur23.jpg


 29 septembre 2005:


Légères modifications du soft (maintenant version 21:
  • Le FREIN est implémenté et fonctionne.
  • Quelques a-coups réguliers dans la vitesse du moteur à fond sont dus à la fonction BEC un peu trop sensible aux appels de courant (disparraissent totalement si je court-circuite la zener 5V6). Je dois donc revoir soit le circuit de détection de tension, soit le soft afin de supprimer ce (dernier?) inconvéniant.

J'ai remplacé l'hélice par un modèle repliable (9x5 Graupner) mais pour l'intant le vent m'empêche de faire des essais en vol.
Je pense pouvoir remplacer les diodes Schottky 1N5822 (40V 3A) par des 1N5819 (1A) bien plus petites.


7 octobre 2005

Pour ne rien vous cacher voici le récit d'un incident:

Après un vol sans problème et après rechargement de l'accu, le moteur semble tourner légèrement  moins vite et fait un drôle de bruit à plein régime. Une sorte de son plus grave que d'habitude. Ayant entre-temps vu voler un avion à moteur thermique, j'ai signalé au copain que le bruit de son moteur m'avait certainement "faussé l'oreille " ! Et j'ai lancé le planeur électrique qui a pris de l'altitude, mais a semblé un peu poussif.
Une fois rentré chez moi, je teste tout, et je trouve
à l'oscillo un signal  non verouillé à Vcc sur Phi3.
Cause: le transistor Q6 ( MOSFET -  IFR7455 côté(+) ) grillé : court-circuit franc entre GATE et SOURCE. (donc dans le circuit de commande)
Et maintenant que j'étudie le datasheet de la bête, je vois dans les 'absolute max ratings' un Vgs max de +/- 12 V (ce qui ne fait pas 24!)... Et sur mon schéma on constate que j'alimente la gate avec du +16V... (en fait un peu plus lorsque l'accu est bien chargé). Donc à mon avis il va falloir légèrement modifier le schéma... Snif, snif... hum, ça sent la diode ça, même peut-être la zéner...
Connaissant les performances des accus LiPO les jours de grande forme, dois-je m'attendre à voir mon planeur se transformer en étoile filante ?

9 octobre 2005

Je n'ai pas encore eu le temps de me pencher sérieusement sur ce problème de claquage Gate-Source, avec le secours de l'oscillo. Toutefois je vous livre mes premières reflexions:
Je m'étais dit que lorsque le transistor driver Q9 se bloque la tension sur la Gate de Q6 monte effectivement à +16V/masse, mais que la conduction dudit transistor Q6 (le MOSFFET) entrainait l'élévation du potentiel de sa source (à +8V), de sorte que la tension Vgs n'atteignait jamais des valeurs critiques. Mais je vais regarder cela de plus près, car le potentiel de la source suit celui de la gate AVEC RETARD... (temps de saturation de Q6). L'oscillo en mode différentiel entre G et S me confirmera la chose.

Il faut aussi que je vois de plus près ce qui se passe pendant la phase de freinage... et aussi pendant les périodes de découpage des signaux....

10 octobre 2005

Après examen à l'oscillo, il s'avère que la tension Vgs ne dépasse jamais les spécifications du datasheet... Je ne vois donc pas, pour l'instant, ce qui a pu griller l'espace G-S du MOSFET. Je me souvient toutefois avoir déconecté le variateur de l'accu, du moteur, et du récepteur, l'avoir montré au copain présent sur la piste, puis l'avoir remis en place juste avant de constater la panne. Donc il se peut qu'une décharge électrostatique sur la connexion phi3 soit la cause du claquage.

Voici une bonne nouvelle pour changer un peu: je viens de voir sur le nouveau catalogue 2005-2006 d'Electronique Diffusion l'apparition des MOSFET Si4463DY - SMD, canal P , 11A,  12 milli-Ohm
(prix = 1 euro, sur commande)! Voilà qui ouvre de nouvelles perspectives (les Américains les employaient depuis longtemps). Fini le circuit élévateur de tension pour alimenter des Gates ! on va gagner 2 grosses diodes Schottky,  2 gros condensateurs, 3 résistances, 3 transistors !!!!!!! Vous voyez bien qu'il ne fallait pas vous précipiter à réaliser le circuit imprimé !

D'autre part concernant le microcontroleur PIC utilisé, il en est un autre qui me fait des clins d'oeil... l' ATMEGA 8 d'ATMEL

31 Octobre 2005

L' ATMEGA 8 m'a paru tellement intéressent que je lui consacre une page sur ce site:

Je vous y donne toutes les informations permettant de les utiliser facilement et à moindres frais.

6 décembre 2005:
Je me suis familiarisé avec les ATMEGA en réalisant ce capacimètre, ainsi que ce Générateur Haute Fréquence. Ce fut également l'occasion pour moi de maitriser le logiciel EAGLE de saisie de schéma et de routage de circuits imprimés, que je vous recommande tout particulièrement: il est très puissant, assez facile à maitiser, très souple, et il existe une version freeware permettant de router des CI juste limités en taille à 100mm x 80mm ce qui permet déjà de faire pas mal de choses.

J'ai donc décidé de refaire mon variateur brushless avec un ATMEGA8 et des
MOSFET Si4463DY - SMD, canal P.
Je vous tiens bien évidemment au courant.


26 mai 2006:
Je pense que je connais suffisamment les ATMEGA pour me lacer dans la réalisation d'un variateur utilisant un ATMEGA8-16.
Je décris les étapes de nouveau montage sur cette page: VARIATEUR BRUSHLESS ATMEGA.


Silicium628.





LIENS

Voici quelques liens vers des sites et documents qui m'ont aidés à comprendre le principe des moteurs BRUSHLESS
Comme vous pouvez le constater, je ne suis pas le premier à travailler sur le sujet. Toutefois je n'ai trouvé pratiquement aucune publication en langue française. J'espère donc que l'anglais ne vous pose pas de problème...