Simubaron Amélioration Master |
Amélioration de la MasterCardLa MasterCard d'OpenCockpit souffre d'un gros défaut, malgré ses nombreux avantages : certaines entrées ne sont pas lues correctement en cas de redémarrage de SIOC (ou de FS), particulièrement quand ces entrées ne sont pas directement liées à un offset de FS, mais plutôt à une programmation interne (prise de park, inter radios, etc.). Pierre01 a trouvé une solution simple, qui assure que SIOC va correctement relire toutes les entrées, afin d'assurer, si le programme le prévoit, la cohérence entre les inters physiques et leur fonction logicielle. Vous pouvez lire son tuto ci-dessous ou le télécharger ici en PDF. 1 – Le problèmeEliminer ou du moins minimiser le problème qui survient lors d’un « reload » de SIOC lorsque FS est lancé. Ce problème se matérialise par une « non lecture » de certaines entrées, principalement lorsqu’elles ne sont pas associées à des offsets (Modules radios par Ex.). Il s’en suit un mauvais redémarrage de ces modules (état des modules non-conforme à FS), par Ex. : si les radios sont ON avant le « reload », elles vont rester OFF après, obligeant à faire un power Off, power On de ces modules pour redevenir conforme à FS et au matériel. Ce problème à fait l’objet de divers posts sur différents forums. A ce jour (Janvier 2010), les gens d’Opencockpits (bien sûr au courant du problème) n’ont pas donné de solution. Il est possible que ce problème puisse se résoudre par une reprogrammation du PIC de la carte USB, mais seul Opencockpits peut envisager de le faire. Donc, pour l'instant, il n’y a que la « bidouille » pour contourner ce problème. 2 – Solutions envisagéesIl a été remarqué par plusieurs utilisateurs qu’il suffit de faire bouger une entrée de chaque groupe pour « obliger » SIOC à relire toutes les entrées de ce groupe ; d’où une première idée :
Ces deux solutions ne sont pas très réalistes et la seconde « consomme » 8 entrées par carte Master, sans compter le câblage… inacceptable. La seconde solution à néanmoins attiré mon attention … 3 – Solution retenueEn étudiant le schéma électronique de la carte Master, j’ai vu que les communs de chaque groupe d’entrées n’était pas la masse de l’alimentation, mais étaient « fabriqués » par les sorties du circuit intégré U10, un 74HC541. C’est un Octal buffer/line driver; 3-state. Les 2 entrées « Output Enable », pin 1 et 19 sont forcées à l’état bas (zéro volt) et valident les sorties en permanence. Ces 8 sorties correspondent aux communs des 8 groupes d’entrées de la Master. Sachant que ces communs sont au niveau logique bas (zéro volt), je me suis dit que si je changeais cet état, toutes les entrées de la Master serait vues comme des entrées à l’état « 1 ». En effet, les 72 diodes sur chaque entrées sont reliées au + 5v à travers une résistance sur les anodes. Donc, si je mets les communs en 3-state (non connecté, ni à la masse, ni au + 5v), les entrées seront « tirées » au +5v. Donc j’aurai au moins une entrée qui changera d’état par rapport à son niveau réel. Il serait en effet étonnant que toutes les entrées d’un même groupe soient au niveau haut. Si néanmoins, c’était le cas et que ma modification ne marche pas dans ce cas, il suffit d’inverser une entrée de ce groupe avec l’une d’un autre groupe qui soit plus sûrement à zéro mais c’est peu probable. C’est cette solution que j’ai retenue et que je décris dans les pages suivantes. 4 – Schéma de la partie à modifierLe schéma de la carte master est téléchargeable ici : http://www.opencockpits.com/modules.php?name=Content2&pa=showpage&pid=30 Ci-dessous, le circuit U10 dont il va falloir modifier le câblage de la pin 1. Les 4 modifications à faire :
Remarques :
5 – La partie pratique- Master card coté composants, repérage du CI dont il faut modifier le câblage : U10 - 74HC541(cliquez sur les images pour les agrandir).
- Repérage côté pistes.
- Couper la piste pour isoler la pin 1.
- Contrôler que la liaison est bien coupée.
- Souder une résistance entre 1 et 10Kohms sur les pins 1 et 19 (1/8 w serait suffisant).
- La pin 19 est en face, mais un pas (une position) plus bas.
- Faire la liaison avec la sortie OUT voulue (sur le connecteur DB9, pin 3 pour moi).
- Ca peut même marcher sans la résistance ! 6 – Le code à rajouter dans SIOC :Peu de modifications à faire :
Ce qui donne les lignes en gras sont à rajouter, avec des numéros de variable libres pour vous. En rouge, le n° de la sortie utilisée (pour nous) : 49 pour Master 1, 113 pour Master 2 etc … : Var 0000, name init, Value 0 // initialisation
{
&out_init_mc_1 = TOGGLE 1 // ré-initialisation M1 après reload
&out_init_mc_2 = TOGGLE 1 // ré-initialisation M2 après reload
// autres routines d'initialisation... } Var 001, name out_init_mc_1, Link IOCARD_OUT, Output 49 // out re-initialise Master 1
Var 002, name out_init_mc_2, Link IOCARD_OUT, Output 113 // out re-initialise Master 2
C’est tout, bons vols à tous !
|