http://mikrokopter.de/images/deu.gif Seite in deutsch

/!\ Certains paragraphes ne sont pas traduits. Il s'agit de considérations très techniques que je ne traduirai que sur demande express.(sksbir)

Erreur pendant le flashage

"Device missing or unknown device (-24)" du PonyProg

Le cavalier est placé ?

Pour que PonyProg fonctionne avec le Sercon, il faut placer le cavalier sur le SerCon. Après quoi il est possible de lire la mémoire,de l'écrire, ou de flasher un nouveau firmware.

Le pilote E/S est installé ?

PonyProg installe un pilote spécifique.Si on n'a pas les droits d'administration pendant l'installation, alors le pilote peut être absent. --> Réinstaller Ponyprog pour provoquer l'installation du pilote.

Le connecteur est bien branché ?

C'est un câble droit qui assure la connexion entre le contrôleur BL et le SerCon.A la pin 1 du Sercon (ISP1) correspond la Pin1 du contrôleur. On peut avoir des faux contacts suivant la façon dont on a connecté le câble au controleur ( Prise EC10,connecteur, soudé directement ),même si tout à l'air OK en utilisant un adaptateur EC10 : poncez ou étamez finement les contacts.

Le câble est VRAIMENT ok ?

Il peut toujours arriver qu'il y ait un soucis sur le câble 10 broches, parce que le connecteur n'est pas enfoncé correctement, un des fils n'a pas de contact, une rupture,etc... Il est préférable de revérifier la continuité.

SerCon opérationnel ?

Comme les cartes pré-équipées CMS sont livrées avec le bootloader, il est rare d'avoir à utiliser le programme ISP. Il est possible que l'interface série ( RS232 ) du Sercon fonctionne, mais pas l'interface ISP. Si le périphérique n'est pas reconnu, il faut mesurer les diodes Z. Il peut arriver qu'une soudure ait sauté à cause des fils de connexion relativement gros. ( Il s'agit d'une expérience vécue ).

Valeurs cohérentes dans le fichier INI ?

On peut régler ces soucis en installant quelques paramètres dans le fichier INI du Ponyprog: ATMegaPageWriteDelay=100 AVRByteWriteDelay=50 AVREraseDelay=100

vérification de R26 ?

Si ni le Koptertool ni le Ponyprog ne reconnaissent le BL-CTRL, et que toutes les connexions vers le contrôleur ont été testée ( connexion directe ), alors le soucis peut provenir d'une R26 défectueuse.Cette dernière est cablée entre le connecteur et le processeur. Le controleur n'est pas reconnu si la liaison MOSI->R26->STEUER_A+ ne travaille pas correctement.

Impossible de flasher le bootloader avec AVR Studio

Dans la version 4.16 ( et éventuellement dans les versions précédentes ) , il y a un bug qui emêche de flasher un bootloader depuis un fichier hexadécimal. ( le programme indique quand même que tout se passe bien ). Ce bug a été retiré à partir du Service pack 1 pour la version 4.1.6

Code d'erreur des FirmWare ≥ 0.35

Holger a installé une phase d'auto-check dans les firmware à partir de la version V0.35. Plusieurs points sont vérifiés au démarrage. Si il y a un défaut quelque part, alors la LED rouge clignote X fois après le démarrage.

  • Clignote 1 fois : Phase A
  • Clignote 2 fois : Phase B
  • Clignote 3 fois : Phase C
  • Clignote 4 fois : Shunt ( ToDo : vérifier cette information )

A partir de la version V0.41:

  • Clignote 10 fois : Surintensité au démarrage des moteurs. ( Sans doute un court-circuit)

Tout est OK quand la LED rouge ne clignote pas.

Par ailleurs, les moteurs "chantent" après le selftest de la mise sous tension. Pendant le "chant", les hélices peuvent légèrement bouger sans avoir de force. Le son qu'on entend apres le démarrage se produit quand le contrôleur fini de se tester. En cas d'erreur, des codes d'erreur sont émis en fonction du MosFet défectueux. Pour voir les codes,il faut que le contrôleur soit relié à un Sercon.

Liste des codes d'erreur:

Code d'erreur

séquence LED Rouge

Explications

1

Court-circuit Phase A (vers B ) -> Contrôleur non prêt

2

Court-circuit Phase B (vers A ) -> Contrôleur non prêt

3

Court-circuit Phase C (vers B ) -> Contrôleur non prêt

4

Mosfet NA- Ne se coupe pas toujours

5

Mosfet NB- Ne se coupe pas toujours

6

Mosfet NC- Ne se coupe pas toujours

7

Court-circuit Phase C (vers A) -> Contrôleur non prêt

A

1

NA+ ne s'allume pas

B

2

NB+ ne s'allume pas

C

3

NC+ ne s'allume pas

a

4

NA- ne s'allume pas

b

5

NB- ne s'allume pas

c

6

NC- ne s'allume pas

Affichage du Firmware : "456."

Il s'agit d'un problème de mesure du courant au niveau du shunt.1eres causes possibles : C8 ou R11 ne sont pas correctement soudées,ou défectueux. A réencoller,même si tout a l'air bien fixé. Conseil: Les alarmes du type "456.",ainsi que quelques autres peuvent également se produire lorsque qu'il y a des soudures froides sur la tension de référence.Il faut donc vérifier R32 et C11

Affichage du Firmware : "1237"

Toutes les phases sont en court-circuit. Il pourrait s'agir ici d'un moteur défectueux. Déssouder le moteur de son contrôleur,et mesurer entre la carcasse et la phase. Les endroits vernis ne fonctionnent pas. On devrait mesurer une résistance importante, voire très importante. Dans le cas contraire, le moteur est défectueux, avec un court-circuit à la masse. (Le problème est fréquent sur les moteurs Roxxy )

Affichage du Firmware : "A" ou "B" ou "C" ou "a" ou "b" ou "c"

Un des MosFets ne fonctionne pas.Cela peut provenir du Mosfet lui-même ou à des éléments voisins qui sont vitaux pour son bon fonctionnement ( par exemple : Le retour de phase - détection de commutation - ne fonctionne pas ). Le Mosfet est il bien soudé,non seulement sur ces 2 pattes, mais également sur son "dos" (Gate)? Ne pas oublier de souder ici.On peut aussi chauffer le circuit imprimé à l'air chaud,pré-étamer les emplacements,et déposer les FET.Les résistances R23 R24 , ainsi que les transistors T1,T2 et T3 sont correctement soudés ? Ce genre de transistor est assez robuste,mais arrive aussi à casser.On devrait mesurer 0.7V entre la base et l'émetteur à l'aide d'un multimètre configuré en mode "Test de diode" ( c'est la chute de tension à travers la Diode B-E ). On peut faire le test directement sur le circuit imprimé sans avoir à déssouder les transistors. <!> Attention à la polarité des pointes de mesures pendant le test sous peine de ne rien mesurer du tout: Mettre le rouge à la base du transistor!

Voici le schéma de câblage d'un BC817 version SMD.

http://gallery.mikrokopter.de/main.php/v/uploads/BC817.gif.html

Si on n'a pas de quoi les mesurer, alors le mieux consiste simplement à en remettre des neufs.

Soit les erreurs ci-dessous:

A, Il faut contrôler NA+, T1, R2, R3, R7, R18, R20, C4. Pin13, Pin23 Pin10 du Atmega8

B, Il faut contrôler NB+, T2, R5, R6, R12, R4, R21, C2. Pin14, Pin24 Pin10 du Atmega8

C, Il faut contrôler NC+, T3. R8, R9, R13, R22, R1, C1. Pin15, Pin25 Pin10 du Atmega8

a, Il faut contrôler NA-, R17, R16, R7, R18, R20, C4. Pin1, Pin23, Pin10 du Atmega8

b, Il faut contrôler NB-, R19, R23, R12, R4, R21, C2 Pin2, Pin24, Pin10 du Atmega8

c, Il faut contrôler NC-, R24, R25, R13, R1, R22, C1 Pin9, Pin25, Pin10 du Atmega8

( Les composants peuvent être défectueux, mals soudés, ou court-circuités par un excès de soudure )

Affichage du Firmware : 1,2,3,4,5,6 ou 7

1, Rechercher des court-circuits sur les éléments suivants :moteur, connectique du moteur, circuit imprimé et câblage vers le moteur (R7,R18,C4)

2, Rechercher des court-circuits sur les éléments suivants :moteur, connectique du moteur, circuit imprimé et câblage vers le moteur (R12,R4,C2)

3, Rechercher des court-circuits sur les éléments suivants :moteur, connectique du moteur, circuit imprimé et câblage vers le moteur (R13,R1,C1)

4, vérifier R16, R7, R18 (Il est aussi possible dans ce cas que le FET "d'en face" soit hors service. Si l'erreur persiste après avoir mesuré,ressoudé,et même échangé NA-,alors il faut changer NA+.)

5, vérifier R23, R12, R4

6, vérifier R24, R13, R1

7, Rechercher des court-circuits sur les éléments suivants :moteur, connectique du moteur, circuit imprimé et câblage vers le moteur (R13,R1,C1)

( Les composants peuvent être défectueux, mal soudés, ou court-circuités par un excès de soudure )

Un contrôleur s'identifie comme " @ü " oder " $ü " dans le terminal du Mktool

Il y a sans doute encore le bootloader v0.1 dans le contrôleur --> upgrader vers V.2

  • Nouveau Bootloader(citation de Holger,Lien)

  • Il y a un nouveau bootloader (Version V0.2).L'oscillateur RC interne est mieux calibré.Avec le V0.1, l'oscillateur interne était inexact et provoquait des baisse du débit en Baud.

Il est donc conseillé d'installer le bootloader v0.2 afin d'obtenir des codes d'erreurs qui ne soient pas falsifiés par des problèmes de taux de transfert ou de synchronisation.

Problèmes hardware

Descriptions et solutions

Erreur de reconnaissance de position de rotor

Si le moteur ne démarre pas et ne fait que soubresauter,cela peut provenir de la reconnaissance de position. Commencer par vérifier toutes les résistances ainsi que les condensateurs (C1,C2,C4) en contact avec le circuit principal de courant. Si aucune erreur concernant les Mosfets n'est détectée, on peut alors changer la variable TEST_MANUELL dans le fichier source main.h en mettant par exemple 120, et tester si le moteur fonctionne ainsi.
Attention à ne pas laisser tourner longtemps afin d'éviter une surcharge des Fets. Si le moteur tourne,c'est qu'on a sans doute un problème de reconnaissance de position du rotor. Mesurer entre les phases et le point milieu ( patte 10 sur l'Atmel ) sans oublier les condensateurs. On devrait trouver la même valeur entre chaque phase et la masse. Mesurer aussi le contact entre les phases et le microcontroleur ( mesurer la connectique des moteurs, et les pattes 23 24 et 25 des Atmel. )

Hélices arrachées de façon répétées sur un même moteur

Sous certaines circonstances, il peut arriver que le MK puisse voler malgré un FETs défecteux sur un contrôleur. Les conséquences peuvent être les suivantes:

  • Hélices arrachées de façon répétées sur un même bras ( même si seulement vol stationnaire )
  • Virage difficiles dans une direction donnée.
  • Régulation d'altitude très aléatoire ( l'observation est sujette à subjectivité )

Pour trouver le Fet défectueux, il faut mesurer les 3 connexions moteur avec un oscilloscope à 2 entrées minimum, avec le moteur en rotation lente. On peut alors remarquer que la régulation est divisée en 6 phases,et que chaque FET est commuté à des moments différents. Il suffit de comparer les entrées de chaque Fet, et si le délai de commutation est "remarquable" ( NTDLR: d'un caractère différent des autres ), alors on a trouvé le Fet défectueux.

BL-Ctrl_Fehlerbeseitigung/motorausgang_fet_ok_oszi.png

Voici un contrôleur en état (En haut: Entrée NC-, en bas: Sortie C).

BL-Ctrl_Fehlerbeseitigung/motorausgang_fet_defekt_oszi.png

Voici un contrôleur défectueux (En haut: Entrée NC-, en bas: Sortie C). On voit assez bien le signal que le Fet NC- doit mettre à la masse sans y parvenir tout à fait.

Voir: BL-Ctrl_Phasen

Problèmes électriques lors du positionnement des contrôleurs

La mise en œuvre d'un contrôleur nécessite un câblage aussi court que possible,aussi bien coté moteur que coté accu. Un long câblage vers les moteurs génère un puissant champ de perturbation; un long câblage vers l'accu provoque une baisse de la tension,avec des pics et des creux lors des demandes de courants par impulsion. Il faut donc tenir compte de la disposition des contrôleurs.

Disposition centrale

C'est la meilleure solution pour résoudre les problèmes de pics d'impulsion sur l'alimentation, et la plus mauvaise pour le câblage vers les moteurs. Remède: Tresser les 3 câbles moteurs. De cette façon, les perturbations s'annulent mutuellement(de façon partielle).

Disposition à proximité des moteurs

La connexion vers les moteurs peut être réalisée au plus court, ce qui minimise le rayonnement des perturbations.On peut rencontrer des soucis avec le câblage depuis l'accu,lors des fortes sollicitations en courant. Remède:Si possible, limiter la longueur à 15cm. Raccorder un condensateur de protection en parallèle à mi-longueur, c'est techniquement facile à réaliser:

  • couper les câbles + et - à mi-longueur, dénuder, faire glisser un bout de gaine thermorétractable.
  • Souder les câbles avec un condensateur électrolytique de 470µ/16V (en faisant attention à la polarité)
  • ramener le bout de gaine thermo pour isoler la soudure.Eventuellement, gainer tout le montage sous gaine thermo.

Les condensateurs doivent absolument être Low-ESR ! En cas de soucis persistants sur les bus, il est même approprié d'échanger les condensateurs des contrôleurs par une version Ultra-Low-ESR. Ces condensateurs sont plus gros, ce qui ne devrait pourtant pas gêner.

l'ESR, c'est quoi?

BL-Ctrl_Fehlerbeseitigung/esr.jpg
ESR = Equivalent Series Resistance. La résistance de perte se répartit sur plusieurs composants (voir schéma ci-dessus),ce qui montre la complexité de la résistance de perte d'un condensateur. Si des pics importants et rapides doivent être absorbés, la charge/décharge n'arrive pas à se faire assez vite à cause de la résistance de perte R[ESL].C'est un peu comme si le condensateur n'était carrément pas là au moment de l'impulsion. Les condensateurs Low-ESR et encore mieux Ultra-Low-ESR ont une bien meilleure capacité absorption des impulsions.

Perte de tension au niveau de l'étage push-pull du Controleur BL

Merci à Stefan pour les supers texte et simulation !

Etudes des chemins du courant

La lipo délivre une tension de 11,1V et possède une résistance interne d'environ 30mOhm.Le cablâge est estimé à environ 20mOhm. Les FETs ont une résistance de 2-10mOhm. Un des 3 bobinages du moteur possède une résistance de environ 500mOhm.
Résistance globale : 560mOm, ce qui conduit à avoir un courant max théorique de 19,8A. [NTDLR: raisonnement complexe pour aboutir à la conclusion...] Ein FET mit 11,6mOhm würde bei diesem Stromfluss eine Verlustleistung von 4,5W abführen müssen. Bei minimalen Kupferpad wird für den FDD6637 ein thermischer Widerstand (Chip zu Umgebung) von 96K/W angegeben, der FET würde in diesem Zustand eine theoretische Temperatur von 462 °C erreichen.
Da ein FET in einer Motordrehung nur zu 1/6 der Zeit eingeschaltet ist, verringert sich der Strom zu durchschnittlich 3,3A. Bei diesem Stromfluss ergibt sich eine Verlustleistung von 126mW, was einer Temperatur von 37 °C entspricht. Die berechnete Temperatur gilt jedoch nur, wenn der FET isoliert auf der Platine sitzt. Da sich jedoch alle FETs sehr dicht beinander befinden, ist mit einer wesentlich größeren Temperatur zu rechnen. Der Stromshunt auf der Platine ist als Meander ausgelegt und besitzt eine Breite von etwa 0,8mm. Mit dem Programm AMPTRACK wurde die maximale Belastbarkeit der Kupferbahnen nach MIL-Standards ausgerechnet. Bei 35µm Kupferdicke ergibt sich hier eine maximale Belastbarkeit von 2,57A.

Résultat: Un état critique de fonctionnement consiste à avoir un moteur bloqué. Dans ce cas, il n'y a pas de génération d'une tension en retour, le moteur se comporte comme une résistance ohmique. Dans ce cas, les PMOS sont chargés car les NMOS n'ont pas de tension de retour à raccorder à la masse. Le shunt est sous-dimensionné par rapport au courant max. possible.

Etudes des pertes sur commutation

BL-Ctrl_Fehlerbeseitigung/nmos_rise.JPG
NMOS: 2,5µs

BL-Ctrl_Fehlerbeseitigung/pmos_rise.JPG
PMOS: 3,5µs


La cassure dans l'évolution de la tension provient de la capacité notablement supérieure du Pmos ( 119nC à comparer au 34nC du Nmos ). Tant que la porte n'est pas complètement chargée, le courant est limité par la résistance de pullup de 680Ohm.C'est seulement après "l'élimination" de la porte que la tension continue d'augmenter jusqu'à atteindre la tension maximale.


L'étage de sortie a été conçu à partir du logiciel SwitcherCAD III de la société Linear.Les résistance ont été calculées afin d'obtenir les mêmes temps de montées. En partant d'une vitesse de rotation de 5000 tr/min., les champs de rotation sont de 83Hz,donc d'une période de 12ms. Pendant cette période,le Nmos et le Pmos s'ouvrent alternativement pendant 1/6 du temps, c'est à dire 2ms.La perte de tension est obtenue en multipliant la tension mesurée du drain à la source d'un Fet avec le courant qui le traverse.

BL-Ctrl_Fehlerbeseitigung/sim_ohne.JPG
Simulation de la commutation.

BL-Ctrl_Fehlerbeseitigung/sim_pmos_rise.JPG
Simulation du temps de montée Pmos.

BL-Ctrl_Fehlerbeseitigung/sim_nmos_rise.JPG
Simulation du temps de montée Nmos.

BL-Ctrl_Fehlerbeseitigung/pmos_verlust.JPG
Perte de tension sur le PMOS au point milieu : 2,7W


Dans cette simulation, le Nmos...

Der NMOS führt in dieser Simulation keine Leistung, da keine Gegenspannung vorhanden ist, die gegen Masse gelegt werden kann. Die Leistungsspitzen im Graphen sind die Schaltverluste. Eine Spitze besitzt eine Energie von 2,6µJ, die gesamte Einschaltzeit (2ms) eine Gesamtenergie von 30mJ, was 30.000µJ entspricht. Bezogen auf eine Periode von 12ms ergibt sich eine Verlustleistung beim Schalten von 0,43mW bei einer Gesamtverlustleistung von 2,5W.
Fazit: Die Schaltverluste sind gegenüber der Verlustleistung im An-Zustand zu vernachlässigen. Eine Erhöhung der Anstiegsgeschwindigkeit bringt somit keine Vorteile.

Etude du problème des "deux Fets ouverts"

Si les deux tensions de pilotages sont allumées suite à une erreur, alors les 2 Fets de l'étage final commutent simultanément, et la tension d'alimentation est ainsi directement raccordée à la masse. Des courants très importants vont alors circuler, puisque la résistance interne du moteur n'est plus dans le circuit. La résistance n'est alors plus que de 60mOhm, ce qui veut dire qu'un courant de 185A circule si la tension est de 11,1V. Avec une résistance interne des Fets de 12mOhm,alors la dissipation est théoriquement de 410W. On doit arriver à ne plus pouvoir commuter les 2 Fets simultanément en installant un circuit de protection qui agira en cas d'erreur de pilotage.
BL-Ctrl_Fehlerbeseitigung/sim_mit.JPG

Protection de la commutation avec des diodes Schottky (BAT54) entre les 2 étages.

Si le PMOS se ferme ( Porte / masse ), alors la porte Nmos est ramenée à la masse,ce qui bloque le Nmos. Le Pmos et le Nmos vont rester ouverts simultanément pendant un très court moment parce que le Pmos possède une capacité interne plus importante que le Nmos ( différence inhérente à la technologie de fabrication ). Cet instant est toutefois évalué en nanosecondes,et la puissance à dissiper pendant ce temps n'est plus que de 500mW.

BL-Ctrl_Fehlerbeseitigung/fehler_mit.JPG
Les 2 FETs sont ouverts,avec protection de commutation
BL-Ctrl_Fehlerbeseitigung/fehler_ohne.JPG
Le même circuit sans la protection de commutation.


Le défaut peut provenir d'une part du programme du microcontroleur. Par exemple si l'optimisation du code conduit à modifier la séquence d'ouverture et de fermeture d'une sortie, ce qui conduit a commuter les 2 sorties pendant un court moment. Si une interruption survient à ce moment, le "court moment" va s'éterniser... Il se peut aussi qu'une mauvaise soudure se révèle pendant le vol,par exemple à cause des vibrations.Si la résistance de pull-up du Pmos devient élevée,les temps de commutation augmentent considérablement,et le Pmos reste ouvert longtemps après l'extinction du signal.

Protection du bus I2C

Le processeur Atmel a des spécifications précises en ce qui concerne les signaux entrants, afin que le processeur ne soit pas endommagé. Le signal doit avoir une tension max de 5,7V( tension de fonctionnement + 0,7V), et une tension mini de -0,7V sur la masse des processeurs
Ce détail est critique : Le potentiel de la masse se décale sur tous les montages où du courant est consommé en grande quantité,parce que le cicuit de masse a sa propre résistance. Un cable de 1,5mm² de 15cm de long en cuivre a une résistance d'environ 2 Milliohm.Voici ce que ça donne si un courant de 10A le traverse:
BL-Ctrl_Fehlerbeseitigung/esb.JPG
L'effet n'est pas perceptible en temps normal, car le cablage a une résistance interne très faible.

Le signal en entrée sera décalé sur la masse sur le plot négatif du controleur brushless car 10A sont consommés à cet endroit. -20mV ne sont pas un problème puisque le controleur supporte -700mV
C'est une toute autre histoire si la résistance interne augmente,par exemple à cause d'une fêlure d'un câble,un faux contact,ou une mauvaise soudure.On ne parle que de la masse, le cablage coté du pôle positif n'entre pas en jeu. Si la résistance du circuit de masse monte à 70mOhm,alors on obtient cette réponse en tension sur le cable I2C:
BL-Ctrl_Fehlerbeseitigung/i2c.JPG
Des pics encore plus négatifs,même plus petits vont inévitablement perturber l'Atmel,et sans protection hardware des Fets, on peut avoir une perturbation de l'étage final si les phases commutent simultanément. Dans les cas extrêmes, tous les processeurs reliés à plan de masse peuvent être endommagés par une commutation erronée de la tension de service sur le câble I2C, et le risque de perturber l'étage final non protégé est identique. (voir plus haut)

On peut limiter les tensions sur les circuits vers le haut et vers le bas en installant des "verrous" contre le plan de masse et contre la tension d'alimentation. Une diode Schottky à commutation rapide va également filtrer les pics et sera opérationnelle dès qu'une différence de tension de 0,3V sera appliquée à ses bornes.
Solution:
BL-Ctrl_Fehlerbeseitigung/schutz.JPG

Câblage de protection au moyen de 2 diodes Schottky

La résistance amont sert de limiteur de courant, afin de ne pas surcharger le controleur de la FlightCtrl. Si le plan de masse est rompu, alors la nouvelle masse des moteur est fixée par la tension tirée des controleurs, ce qui amène à une surcharge de sécurité.