Conversion I2C d’un contrôleur brushless TowerPro 25A


La plupart des ESC commerciaux ne sont pas capables d’accepter un taux PWM de plus de 150 rafraichissement par seconde sur la base de trame PPM.
Cet article décrit la manière de convertir des contrôleurs TowerPro 25A de génération 3 afin de les rendre compatible avec un bus de commande I2C.
Grâce à cette modification, leur réactivité peut être grandement améliorée.


Introduction

Cet article est largement tiré d’un manuel en Anglais rédigé par Arthur P. fin 2007

http://www.rcgroups.com/forums/showthread.php?t=766589

Les plateformes multi rotor comme le mikrokopter nécessitent une taux de rafraichissement des ordres donnés aux moteur très élevé. La plupart des ESC commerciaux ne sont pas capables d’accepter un taux PWM de plus de 150 rafraichissement par seconde sur la base de trame PPM.

Les multi rotor deviennent assez stables si ce taux peut atteindre au moins 300/s. Ceci a amené quelques fabricants à concevoir des contrôleurs utilisant une interface 2 fils I2C comme signal de contrôle. Les meilleurs exemples sont les contrôleurs conçu par Holger, un des concepteurs du mikrokopter. Les versions actuelles peuvent supporter 10A en continu et 20A en pointe. Leur prix est raisonnable au regard de leur capacité bien qu’il soit parfois fastidieux d’assembler les composants SMD lorsqu’ils sont achetés en kit.

Jusqu’à présent, seulement YGE propose des ESC commerciaux possédant une interface I2C avec une intensité maximale de 30A (YGE30i). Ils peuvent être intégrés à une plate forme mikrokopter au prix d’une adaptation du software de la carte FlightCtrl (plage de contrôle YGE 0..120 et plage de contrôle du mikrokopter 0..255).

Une autre approche pour développer des contrôleurs à prix raisonnable et acceptant une entrée I2C a été envisagée par Quax (Bernard Konze) et quelques autres pionniers. Cette approche consiste à convertir des ESC du marché bas coût d’un mode de contrôle PWM à un mode de contrôle I2C.

Cet article décrit la manière de convertir des contrôleurs TowerPro 25A de génération 3.
(les premières générations peuvent être converties de la même manière, mais la disposition des composants est légèrement différente)

Matériel nécessaire

  • un contrôleur brushless TowerPro 25A disponible par exemple sur www.hobbycity.com. Actuellement, on ne trouve que des générations 3.

  • de petits ciseaux et un cutter

  • du très petit fil électrique monobrin et isolé (pas plus large qu’une patte de processeur)

  • de l’étain à souder d’électronicien

  • un fer à souder à pane très fine, pas plus de 30W

  • une éponge mouillée

  • des connecteurs femelles prise tulipe

  • de la glue

  • un voltmètre ohmmètre pour vérifier la continuité électrique des connexions

  • un programmateur de composant Atmel

  • les .hex correspondant aux code binaire à insérer dans chacun des contrôleurs

Les opérations de soudure

Commencer par enlever la gaine thermorétractable de chaque ESC: la découper soigneusement en prenant appui avec le cutter sur un bord du radiateur pour ne pas endommager de composant.

controleur1 controleur2 controleur3

Le microprocesseur Atmel à 64 broches doit être reprogrammé pour pouvoir communiquer avec un bus I2C matérialisé par 2 fil.

circuit1

Pour reprogrammer l’Atmel, il est nécessaire de câbler les 6 connecteurs ISP nécessaires à une programmation en mode In Circuit: MISO, MOSI, SCK, RST, 5V, GND.
Le détail des pins est décrit sur cette photo:

circuit2

L’interface I2C est caractérisée par 2 fils SDA et SCL.
D’origine, la broche de l’Atmel qui doit être utilisée par le fil SDA est déjà utilisée et il est nécessaire de la déconnecter et de la reconnecter à la pin ADC1.
C’est l’opération la plus délicate à réaliser.

La pin SDA de l’Atmel est en effet connectée à un réseau de 3 résistances, via une piste sur la face opposée du circuit imprimé, la jonction des 3 résistance en surface étant assurée par un trou rempli d’étain à travers le circuit imprimé.

circuit3

schema2

Dans son article initial, Arthur P utilisait une perceuse pour isoler cette piste en creusant superficiellement le circuit imprimé. Et en reconnectant ensuite le réseau de résistance avec un pont d’étain.

schema3

J’ai utilisé une autre méthode consistant à déconnecter directement la pin SDA de l’Atmel à l’aide d’une aiguille et d’un fer à souder, l’aiguille servant à faire levier sur la broche.

schema3 schema4

schema6 circuit4

Attention à ne pas trop relever la broche en faisant levier, sinon elle risque de casser (ça m’est arrivé sur un des contrôleurs qui devient du coup inutilisable)
L’ohmmètre permettra de s’assurer qu’il n’y a plus contact entre la piste initiale et la broche.

schema6

Il faut ensuite reconnecter le réseau de résistance à la pin ACD1 de l’Atmel.
On peut récupérer le contact au milieu des 2 résistances supérieures, ou à l’extremité de celle du bas comme indiqué sur cette photo:

circuit5

Le reste des fils peut être connecté de manière à pouvoir s’interfacer avec le programmateur par la suite.
Une barette 8 prises tulipe femelle sera d’abord collée à la glue sur côté de l’ESC rassemblant les 3 phases du moteur brushless

circuit6

De gauche à droite, on retrouvera le brochage suivant: SCK, RESET, MISO, 5V, MOSI, GND, SDA, SCL.
Les 6 premières serviront à reprogrammer l’Atmel, les 2 dernières seront l’interface de contrôle I2C
(ces 2 dernières qu’on reliera directement à la carte FlightCtrl d’un mikrokopter)

circuit7

Les opérations de reprogrammation

Une fois le câblage de l’ESC correctement effectuer, il ne reste plus qu’à reprogrammer l’Atmel.
J’ai acheté sur ebay un petit programmateur chinois de chipset pour une 10aine d’euros.
http://cgi.ebay.fr/ws/eBayISAPI.dll?ViewItem&item=350143488267
Il est livré avec un petit CD d’installation, un cable usb, un cable de transfert

prog1

La notice est mal traduite, mais son utilisation n’est pas compliquée.
On retrouve en particulier le schéma de câblage des différentes broches en fin de manuel.

prog2

Il faut d’abord installer le driver usb pour programmateur. (fourni sur CD)
Ensuite, câbler les broches du programmateur vers leur homologues côté ESC.

prog3

Ensuite configurer le logiciel fourni avec le programmateur (PROGISP):
– sélectionner USBASP, usb et Atmega8, les autres paramètres peuvent être laissés par défaut.

prog4

A chaque moteur, correspond un fichier HEX à injecter, de moteur 1 à moteur 4 pour le mikrokopter.
L’adresse I2C est codée en dur dans chacun des fichiers.
Il faut charger pour chaque ESC le .HEX correspondant avec le bouton load flash, puis appuyer sur le bouton Auto.
La séquence suivante doit se dérouler sans erreur :erase, load, check.
A noter que pour pouvoir être reprogrammés, les ESC doivent être alimentés (une lipo 3S fait très bien l’affaire)
Il arrive parfois qu’une séquence échoue, il suffit de recommencer une ou deux fois.
La notice de l’ESC est assez amusante à ce sujet, en gros on en a pour son argent 🙂
Mais la vérification en fin de processus garanti que le code a été transmis sans erreur, c’est le principal.

Les fichier .HEX sont issus de cette page, son auteur ayant la paternité de la modification décrite.
http://freenet-homepage.de/alex_konze/bko/low_cost/18a_regler.htm

mikrotower.zip

, , , , ,

  1. #1 by Georges Lautemann on 7 septembre 2009 - 15:14

    Bonjour.
    bravo pour votre site que je découvre.

    Je souhaite réaliser un pylone rétractable pour planeur, sujet que j´ai déjà bien étudié.
    Voici mon souhait : pouvoir arêter l´hélice en position verticale (!) en modifiant quelque peu le contrôleur.
    Plusieurs solutions envisageables mais je pense à une butée qui viendrait stopper l´hélice mais bien sûr après son arrêt, juste un petit montage additionnel qui ferait tourner son moteur B.L. très lentement….genre générateur triphasé…ce montage attaquerait les transistors de puissance de l´ESC pendant quelques secondes.

    Qu´en pensez-vous ?
    Merci pour votre réponse.

    Cordialement

  2. #2 by Alex on 7 septembre 2009 - 15:45

    Bonjour,

    Il me semble qu’en l’absence de détecteur d’angle, il est très difficile de faire tourner un brushless « sensorless » au pas. J’ai constaté qu’on pouvait activer du frein simplement en court-circuitant les 3 phases, ça pourrait être exploité une fois le moteur coupé pour décélérer à la demande l’hélice, le temps de positionner le calage, puis de relâcher le frein pour la mise en butée.

    J’ai aussi vu un montage astucieux consistant à freiner le moteur un peu comme un solex afin de gérer la mise en butée : http://lesgpr.free.fr/construire/prop.cache/pylon/pylone-ar3/pylone-ar3.htm

  3. #3 by Christian Hugues on 4 novembre 2009 - 19:28

    Bonjour Alex
    Bravo Pour la Conversion.
    J’aimerais bien modifier 4 contrôleurs brushless TowerPro 25A, pour monter sur un MK,mais je ne me sens pas de faire ça .
    Pouvez vous faire ce travail pour moi ( je ne suis pas presser ).
    Cordialement

  4. #4 by Alex on 5 novembre 2009 - 12:15

    Bonjour,

    Cet article fait référence à des contrôleur TowerPro 25A qui ne sont maintenant plus en vente… Il en existe de nouveaux tous aussi modifiables, mais le routage des pistes a évolué. Le sujet d’origine en Anglais sur rcgroups continue d’être à jour.
    Vu que c’était pour mon usage, je ne m’y suis pas replongé depuis. Sans compter que c’est une manip qui demande quand même pas mal de temps.
    Je sais qu’au moins deux particuliers en ont déjà fabriqué à la demande pour 20 ou 25 euros pièce, vu sur le forum mk-france.info

  5. #5 by houari.oron on 21 juin 2011 - 19:34

    comman preparer fprogII et la piece electronique et shema

(ne sera pas publié)