OrdreVoies
Mise à jour 17/5/2006
Contrairement à la version précédente, il n'y a plus qu'un seul .HEX, le nombre de voies est détecté à la mise en route du montage par le programme.
Ce dispositif est destiné à modifier l'ordre des voies dans un signal PPM.
Le but est principalement de permettre l'écolage entre des radios dont l'ordre des voies diffère de l'une à l'autre et qui n'a pas la fonction d'affectation des voies aux manches. Cette fonction n'existe que sur les radios haut de game.
Ce montage ne fonctionne qu'avec un codage PPM.
Vous trouverez ailleurs (Voir par exemple http://home.nordnet.fr/~fthobois/theorieRC.htm ou http://users.belgacom.net/TX2TX/tx2tx/french/tx2txfr1.htm ou http://www.chez.com/silicium31/les_docs.htm ) des explications détaillés sur le codage PPM (Pulse Position modulation) de la liaison émetteur-récepteur. En résumé et en prenant l'exemple d'une transmission 7 voies , la radio transmet toutes les 20ms un signal consistant en un train de 8 impulsions d'environ 300µs. La durée séparant les fronts de la première et la seconde impulsion donne la position du servo voie 1, celle séparant la seconde impulsion et la troisième donne la position du servo 2 et ainsi de suite. Après transmission de la voie 7, il y a un temps mort permettant la synchronisation émetteur-récepteur.
Dans un but d'écolage, seules les 4 première voies sont nécessaires. Il n'est donc prévu de ne permettre ces permutations que sur les 4 premières voies.
Schéma :
Rien de rare, que du classique. La led permet la mise au point du programme ou de visualiser les trames reçues et envoyées par le biais de la synchro externe d'un scope. Elle sort un signal à la fréquenc de la trame reçue (normalement voisine de 50Hz). Elle s'éteint en début de trame de réception et s'allume en début de trame restituée.
Le programme est prévu pour 4 à 9 voies. Il y a au lancement du programme une lecture du signal d'entrée pour savoir combien de voies sont reçues. Ce nombre de voies est repris pour la restitution avec permutation sur les 4 premières voies. Si le switch 4/T est positionné ON, il n'y a que les 4 premières voies qui sont restituées.
Les switche 4/T sont lues à chaque trame, par contre, le nombre de voies reçues et la permutation demandée n'est lue qu'à l'initialisation. Pour prendre en compte une modification de l'ordre des voies, il faut éteindre et rallumer le montage.
L'acquisition se fait en utilisant un timer sur 16 bits via le CCP et les interruptions, la restitution utilise un timer 8 bits sans déclenchement d'interruption mais la résolution reste sur 16 bits grâce à la programmation.
Il y a synchronisation entre la trame d'entrée et la trame de sortie. Cette dernière commence avec la fin de la trame d'entrée et délivre un signal identique à la trame d'entrée précédente dans laquelle on a permuté les voies selon la configuration demandée. Il y a donc un retard non perceptible de 20ms au plus entre le signal fourni par la radio et celui modifié fourni par le montage.
Les non programmeurs peuvent sauter ces commentaires.
Pour les programmeurs
La
trame d'entrée est annalysée par IRQ via le CCP du 628. Le temps
de chaque voie est mémorisé en µs via le timer 1 (16 bits)
qui peut donc aller jusqu'à 65535 µs soit 65,536 ms. On ira jamais
au delà de 2200µs pour les voies et 10 à 15 ms pour la synchro.
Dès l'arrivée de la trame suivante, la sortie de la trame de sortie
est activée. La trame de sortie utilise un compteur 16 bits pour restituer
à l'identique la trame d'entrée après permutation des voies.
Quand le programme traite les IRQ entrants, la tempo de sortie en cours est
allongée du temps de traitement de l'IRQ.
Ce temps est faible, de l'ordre de 15 à 20 µs soit à peine
plus de 2% dans le pire des cas, mais peut être gènant.
Pour palier à ce problème, le signal n'est sorti qu'après
la dernière impulsion entrante.
La conséquence est que si la trame de sortie n'est pas terminée
quand arrive la nouvelle trame d'entrée, les dernières voies de
sorties sont un peu perturbées. Mais attention, cette "perturbation"
n'intervient qu'à partir de la voie 6 dans le pire des cas et elle ne
représente qu'une errreur de 2% au plus sur la position des voies perturbées,
qui sont en principe des voies annexes.
L'utilisation de l'IRQ pour arrêter la tempo de sortie plutôt que
le scan du bit d'IRQ n'a pas été retenu car c'est alors la mesure
de la tempo d'entrée qui aurait été perturbée. Rappelons
que le PIC est monotache mais qu'à la vitesse où il travaille,
ces "perturbations" resteront invisible dans 99% des cas et ne seront
mis en évidence que par la volonté d'aller les chercher. L'honnêteté
intellectuelle qui m'anime me conduit à vous donner toutes les données
du problème.
Enfin, rappellons aussi qu'il existe des 16F628 qui peuvent tourner à
20 MHz, il suffit d'utiliser une version 20 MHz, d'ajouter un quartz et deux
condensateurs. Le timer aura encore la capacité de cette vitesse et la
"perturbation" passera de 2% (dans le pire des cas) à 0,4%
sur les voies 6 et suivantes. Il faut aussi revoir dans le source le bit d'option
pour l'oscillateur et la valeur de test pour différencier les temps voies
des temps synchro. Mais là, je serais étonné que quelqu'un
aie besoin de ça.
Le programme fait l'acquisition de 7 ou 8 voies voies et peut ne ressortir que les 4 premières selon la position su switch 4/Tvoies. Cette possibilité ne présente en fait pas d'interret et sera sans doute supprimée si le besoin d'une entrée supplémentaire se faisait sentir.
Il est testé sur une MC12 pour 7 voies et une FX14 pour 8 voies. Il donne parfaitement satisfaction. Pour faire de "l'inter marque", mettre en conformité la polarité du signal de sortie avec le switch de configuration ad-hoc ainsi que son niveau de tension. Si l'emetteur a plus de 8 voies ou moins de 7 voies, modifier en conséquence le source en ajoutant ou supprimanr les IRQ en plus ou en moins. Voir dans le sourc les zones d'assemblage conditionnel sur 7 et 8 voies qui inququeront ce qu'il y a à faire.
Choix de l'odre des voies
Comme
vous le voyez sur le schéma, pour une entré en ordre 1234, la
sortie peut se faire dans n'importe quel ordre selon la position des switchs
de choix d'ordre.
Ce choix est obtenu en fournissant ua PIC un mot de 5 bits constitué
de RB7 - RB4 - RB2 - RB1 - RB0
Il suffit de positionner les 5 switchs de gauche du DIP SWITCH 8 (en regardant
le circuit imprimé switchs vers le bas) avec le mot correspondant à
l'ordre choisi et de faire un Reset du PIC.
Les 5 switchs permettent 32 configurations, seules les 24 premières
sont utilisées. Si vous donnez une configuration 25 à 32, le logiciel
le comprend comme une configuration 1, c'est à dire pas de permutations.
Afin de vous aider dans la configuration, je donne ci dessous les ordres de voies transmis en fonction de la position des switchs 1 à 5 des inverseurs DIL monté tels que sur le CI ci-dessus. Un switc ON est à 0, un OFF est à 1. Si tous les switchs sont ON, on a 00000, l'ordre n'est pas changé : 1234. Si le switch 5 est le seul à OFF, on a 00001, l'ordre devient 1243 et ainsi de suite selon le tableau :
Switchs
|
Ordre
|
Switchs
|
Ordre
|
Switchs
|
Ordre
|
00000
|
1234
|
01000
|
3124
|
10000
|
3412
|
00001
|
1243
|
01001
|
4123
|
10001
|
4312
|
00010
|
1324
|
01010
|
3142
|
10010
|
2341
|
00011
|
1423
|
01011
|
4132
|
10011
|
2431
|
00100
|
1342
|
01100
|
2314
|
10100
|
3241
|
00101
|
1432
|
01101
|
2413
|
10101
|
4231
|
00110
|
2134
|
01110
|
3214
|
10110
|
3421
|
00111
|
2143
|
01111
|
4213
|
10111
|
4321
|
La réalisation
Le montage en cours de test (avec les fils bleu-rose-gris-jaune vers l'analyseur logique) et les prises (ici Futaba/Graupner)
Téléchargements
Pour le
programme source, c'est ici.
Pour les fichiers .hex c'est ici.
Pour le fichier schéma c'est ici.
Pour le fichier circuit imprimé c'est ici.
Les fichiers schéma et circuit imprimé sont aux formats Abacom. Voir dans GlowSL comment les utiliser