Merci pour vos réponses déjà
lolosimule a écrit:et aussi ne pas saturer de données inutile sur le bus USB ( qui ne change pas)!
c'est un beau projet . . .
Je me demandais d'ailleurs si un microcontrôleur avec usb intégré permettrait de gagner en vitesse de manière conséquente par rapport à la liaison série.
A320 hérétique a écrit:Donc mux/demux sur les panels, cables en nappe vers une électronique concentratrice (plus éventuel mini traitement) et liaison usb ou ethernet vers le pc,
D'où mon idée d'un bus I2C commun à tout les panels pour envoyer les évenements vers la carte mère, mais à ce moment là la carte mère n'a pas a faire grand chose à part recopier les données du bus sur l'usb...
fab a écrit:Même réflexion que Michel : Très peu d'impacte sur les capacités de nos machines actuelles.
Pas mal de monde travaille en port série RS232 sur Arduino et là on peu dire que ce n'est pas optimisé (utilisation de convertisseur USB/Série RS232)
Une connexion réseau peut réserver des prises de tête lors des paramétrages.
L'usb me semble une bonne solution. Le vrai protocol USB pas de port com virtuel, mais à ce moment là il faudrait l'avoir d'inclu de le microcontoleur pour ne tirer les bénéfices.
fab a écrit:Ce qu'il faut favoriser c'est un câblage facile, attention au multiplexage qui, serte, fait gagner des IO sur un microcontrôleur mais rend le câblage délicat. L'utilisation de registres à décalages est une bonne solution.
Le multiplexage par registre à décalage me parait bien mais le temps de traitement des entrées m'interroge. Quelle fréquence d'horloge pour quelle nombre d'entrée sur les registres ? Puisque pour chaque I/O il faut un coup d'horologe pour le décalage , je ne sais pas combien de de coups pour la lecture digital de l'état, puis l'enregistrement dans une variable, et enfin la transmission. Sachant que un appui bouton prends 30ms au minimum environ, que j'ai calculé en liaison série 9600baud/s le temps de transmission de l'état d'une variable prends 10ms avec le protocol sioc par exemple, avec les focntions de base sur arduino la lecture se fera en 2ms (lent mais je ne sais pas quel temps cela prends en manipulant directement les ports). Dans ce cas si on compte une transmission suite à une detection puis le scan à nouveau de tout les bits des registres à décalages en série on a 10ms puis on a 20ms pour scanner avant un possible nouvel appui. Ce qui fait 10 bit seulement dans les registres à décalages... 10 entrées ce n'est pas terrible. Même si l'on réduit ce temps par 10 en manipulant diretement les ports cela donne 100 I/O max si il n'y a que un changement de variable par cycle. Et c'est sans compter sur la lecture des transmissions en réception aussi.
Donc je pense que je vais m'orienter vers un microcontrôleur type ESP32. Ils ne coutent pas très chers (autant qu'un arduino uno). 240Mhz d'horloge et surtout 2 coeurs à cette fréquence ce qui permet de dédier un aux transmissions et l'autre au balayage des I/O.
Je pense créer une carte d'interfaçage unique avec 3 esp32,(ou 2 qui regroupent les 2 première fonctions j'hésite encore) un pour les entrées (256 devraient aller), un pour les sorties (256 aussi) plus une carte d'extension pour les 7 segments, et le dernier pour les entrées "rapides" pour des encodeurs qui doivent utiliser 2 broches avec interruptions notamment (ce qui donne la possibilité d'avoir 13 encodeurs).
Je me demande si pour les registres à décalage il y a une différence de vitesse de lecture entre en avoir 8 en série sur un GPIO par exemple ou alors 2 sur 4 GPIO différents ?
Donc au final 3 connections USB (mais virtualisation série quand même malheureusement) jusqu'à un logiciel. Ce logiciel sera en charge de n'envoyer que les événements correspondant à chaque esp32 et fait la passerelle avec le simulateur , simConnect ou autre pour X-plane, FFA320.
Pour finir j'ai fait pas mal d'approximation pessimiste dans mes calculs précédents mais les entrées sont un domaine plutôt critique et puisque aujourd'ui on a mieux que des arduinos pour le même prix autant changer. Ce qui m'embête c'est le manque de liaison usb directe même sur les esp32. J'ai cherché rapidement mais pas trouvé de multi-coeurs à ce niveau de prix avec usb, si vous en connaissez je voudrais bien savoir.
Maxime