Auteur Sujet: Micro centrale DCC  (Lu 687 fois)

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 2655
  • 100% Arduino et N
    • Voir le profil
Re : Micro centrale DCC
« Réponse #15 le: janvier 25, 2023, 02:33:22 pm »
Aucune idée pour le moment (je suis dans les plâtres et la peinture)

Tu dois pouvoir calculer les temps de transmission de l'I2C et des appels de librairie par rapport aux 10 boucles de lissage du programme DCC++ et la lecture d'une entrée analogique.
Cordialement,
Dominique

msport

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 1936
  • HO avec DCC++ en DIY Réseaux très éphémères
    • Voir le profil
Re : Micro centrale DCC
« Réponse #16 le: janvier 25, 2023, 03:50:08 pm »
Je pense que, comme cela a été un long débat pour les réseau locaux, le bus I2C avec sa gestion des collisions n'a pas de temps de transmission déterministe. Problème si il faut gérer un court-circuit alors que l'I2C est occupé ailleurs.
Cordialement

NitraThor

  • Newbie
  • *
  • Messages: 17
    • Voir le profil
    • Modélisme ferroviaire par NitraThor
Re : Micro centrale DCC
« Réponse #17 le: janvier 25, 2023, 05:09:00 pm »
Bonjour à tous,

Quelques commentaires pour alimenter la discution :

En ce qui concerne le choix du coup de poing d’urgence qui met à VCC (5V, donc en simulant un court-circuit ) les entrées A0 et A1, donc la sortie de l’ampli op, cela induit un temps de réponse non négligeable du fait du lissage de la mesure de courant.

Pourquoi n’avoir pas branché ce coup de poing sur une autre pin du Nano?
La différence principale entre l'utilisation d'un coup de poing et la détection d'un court-circuit est la temporalité. Dans le cas du coup de poing, le modéliste est (normalement) en avance de phase par rapport à l'arrivée de l'évènement fâcheux. Il va s'avancer le plus rapidement possible vers sa centrale pour arrêter la génération du signal. Ce temps nécessaire au déplacement est énorme si on se place à la vitesse du microcontrôleur. Aucune commune mesure avec la détection d'un court-circuit pour laquelle la réaction doit être la plus rapide possible.
Donc, à mon avis, il n'est pas utile de dédier une broche spécifique à cette alerte et de surcroit, effectuer une mesure supplémentaire dans la boucle de génération du signal DCC qui est déjà suffisamment chargée pour un Nano.

Si je posais le cadre c est pour une question simple d une application que j ai en tète: le auto sens de phase entre booster differents ou la gestion de boucle de retournement ( type LENZ LK200)
 qui repose sur le principe d une détection très rapide de court-circuit pour une inversion de phase
Pour ma part, je trouve hallucinant de la part des fabricants de vouloir utiliser un court-circuit pour effectuer un changement d'état. Là où j'ai vraiment du mal, c'est comment faire la distinction entre une véritable alternance d'alimentation et un court-circuit qui se produirait sur l’aiguillage !
Ma réflexion pour ce type de montage est déjà avancée : j'utiliserai deux cantons en début et en fin de boucle pour détecter une entrée. Lorsque la loco atteint le canton de sortie, l'aiguillage est modifié et le changement d'alimentation est réalisé par un relais bistable (consommation ponctuelle de courant). Le montage sera entièrement autonome. La loco suivante qui entrera dans la boucle, fera son demi-tour dans l'autre sens.
Ce genre de circuit doit déjà exister. Mais c'est le plaisir de le réaliser soi-même...

Je pense que, comme cela a été un long débat pour les réseau locaux, le bus I2C avec sa gestion des collisions n'a pas de temps de transmission déterministe. Problème si il faut gérer un court-circuit alors que l'I2C est occupé ailleurs.
Entièrement d'accord avec msport ! Ajouter un délai supplémentaire (trame I2C) pour transférer une information de consommation de courant ne me paraît pas aller dans le bon sens. En général, on essaye de réduire au maximum le délai de transmission de l'information.

Du coup, tous ces échanges ont alimentés ma réflexion concernant le temps de détection d'un court-circuit par le Nano dans le cadre de la micro centrale (on revient au sujet de ce fil).
J'ai fais plusieurs tests en modifiant les paramètres de mesure de courant et en affichant le timing du microcontrôleur.
J'obtiens cette suite au moment de la détection du court-circuit :
<horodatage> <valeur mesurée>
1721717 21.00
1721726 20.00
1721734 20.00
1721746 21.00
1721758 385.00
<p2>
1721773 222.00
1721781 192.00
1721791 166.00
1721804 143.00

Le seuil du paramètre CURRENT_SAMPLE_MAX est fixé à 300. Le court-circuit se produit entre 1721746 et 1721758, soit un délai maxi de 12 ms. On peut voir le retour de la commande d'arrêt (<p2>).
Pour arriver à ce délai avec un Nano voici les paramètres modifiés :
CURRENT_SAMPLE_SMOOTHING   1
CURRENT_SAMPLE_TIME        5

Avec ce paramétrage, le lissage n'est plus réalisé. Le circuit de mesure du courant à base d'ampli opérationnel permet donc de ne plus avoir à réaliser de lissage et ainsi optimiser le temps nécessaire à la détection d'un court-circuit.
Qu'en pensez-vous ?

NitraThor.
« Modifié: janvier 25, 2023, 05:55:19 pm par NitraThor »

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 2655
  • 100% Arduino et N
    • Voir le profil
Re : Re : Micro centrale DCC
« Réponse #18 le: janvier 25, 2023, 05:38:46 pm »
Avec ce paramétrage, le lissage n'est plus réalisé. Le circuit de mesure du courant à base d'ampli opérationnel permet donc de ne plus avoir à réaliser de lissage et ainsi optimiser le temps nécessaire à la détection d'un court-circuit.
Qu'en pensez-vous ?

NitraThor.

Je suis d'accord que le lissage de la mesure de courant pour la détection de court-circuit n'est pas nécessaire.
D'ailleurs dans ma centrale, je n'utilise pas le lissage de DCC++/pp et j'ai une détection de cc et une mesure de courant indépendante dans la loop de mon programme. J'utilise encore des Max471 qui marchent.
Cela me permet d'afficher le courant mesuré sur un LCD, avec tout un tas d'autres informations

Pour la mesure de courant nécessaire en mode programmation des CVs, il faut cette fois-ci passer par la mesure de courant de DCC++.
Dans mon cas j'utilise une centrale DCC spécifique pour cet usage, reliée à une vie de garage d'ou une locomotive détectée peut partir sur le reste du réseau. Vu le prix d'une centrale en DIY, autant ne pas se priver.

D'ailleurs je commence à en avoir une belle collection dans les cartons...:o
Cordialement,
Dominique

msport

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 1936
  • HO avec DCC++ en DIY Réseaux très éphémères
    • Voir le profil
Re : Micro centrale DCC
« Réponse #19 le: janvier 25, 2023, 06:46:44 pm »
Il ne faut pas oublier la connexion d’accessoires (et/ou décodeurs) alimentés par le DCC déjà actif. L'appel de courant initial des condensateurs peut être vu comme un court-circuit.
Cordialement

NitraThor

  • Newbie
  • *
  • Messages: 17
    • Voir le profil
    • Modélisme ferroviaire par NitraThor
Re : Micro centrale DCC
« Réponse #20 le: janvier 25, 2023, 06:54:21 pm »
Ce sera à ajuster en fonction de la configuration de chacun. La modification n'impacte que le logiciel.
Mais oui, une détection trop rapide de consommation de courant peut avoir pour conséquence une détection intempestive...
Il faudra trouver le juste milieu...

trimarco232

  • Full Member
  • ***
  • Messages: 184
    • Voir le profil
Re : Micro centrale DCC
« Réponse #21 le: janvier 26, 2023, 02:59:30 pm »
Bonjour,
peut-être il faut 2 paramètres pour le délai soft : un pour le démarrage, un autre pour le fonctionnement normal
(mais je n'aime pas pour ce projet, proposer des trucs qui en altèrent la philosophie)

trimarco232

  • Full Member
  • ***
  • Messages: 184
    • Voir le profil
Re : Re : Micro centrale DCC
« Réponse #22 le: janvier 26, 2023, 03:14:09 pm »
Bonjour(...) comment synchroniser les ponts en H qui sont alors en parallèle les uns avec les autres...?
Laurent
mp car hs

NitraThor

  • Newbie
  • *
  • Messages: 17
    • Voir le profil
    • Modélisme ferroviaire par NitraThor
Re : Micro centrale DCC
« Réponse #23 le: janvier 26, 2023, 03:17:48 pm »
Bonjour à tous,
Suite à la remarque de msport concernant le risque de détection intempestif d’un court-circuit, plusieurs tests ont été effectués avec la micro centrale.
A moins que la consommation soit très proche de la limite paramétrée, l’activation d’accessoires dans tous les sens, ne déclenche pas l’arrêt de la génération du signal DCC.
Tant qu’il reste une marge de 500mA, la suppression du lissage n’a pas d’impact, si ce n’est une prise en compte plus rapide du court-circuit.

Bien à vous,
NitraThor

laurentr

  • Full Member
  • ***
  • Messages: 219
    • Voir le profil
Re : Micro centrale DCC
« Réponse #24 le: janvier 30, 2023, 03:44:47 pm »
Bonjour

Une question de nouveau sur les modules IC2 de détection de tension/courant.

J ai cru comprendre que vous indiquez que le "analogread" sur les IO A0 et A1 serait plus "performant" ( rapide) avec en front un INA139 /INA169 ou un LM358 que le transfert des info sur le bus I2C via par exemple un INA219.

D où la question sous jacente, si c est si "lent en I2C" pourquoi a t on alors des modules de mesure sur cette techno ( INA 219) si c est si peu "performant"...

J essaye juste de comprendre ce qu'il est préférable d utiliser ( si on a pas assez de pin Analogread alors l I2C est un backup certes mais sinon...? ) Faut il systématiquement privilégier l approche "classique ( LM358, INA 1x9??)

Comment faire ce choix en connaissance de cause?


Laurent

NitraThor

  • Newbie
  • *
  • Messages: 17
    • Voir le profil
    • Modélisme ferroviaire par NitraThor
Re : Micro centrale DCC
« Réponse #25 le: janvier 30, 2023, 06:55:54 pm »
Bonsoir Laurent,

Plusieurs points pour te répondre :
1) Dans notre cas, la tension correspondant au courant consommé est déjà aux portes du microcontrôleur. Donc, si on utilise l'I2C pour l'envoyer ailleurs, ce sera forcément plus long...
2) L'I2C peut travailler à plusieurs vitesses (100Kbps, 400Kbps, 3,2Mbps...). A condition d'être au moins à 400Kbps, on peut commencer à concevoir d'utiliser le bus I2C pour transmettre une information de courant. Le protocole I2C nécessite plusieurs trames pour aboutir à un échange entre le maître qui demande le résultat et l'esclave qui calcul le courant consommé.
3) Par contre, si il s'agit d'être réactif comme c'est notre cas dans une centrale DCC, à mon humble avis (j'accepte la critique), il est hors de question de passer par l'I2C ne serait-ce qu'en raison de sa fragilité.

Si l'esclave rencontre le moindre problème et bloque le bus, plus aucune information ne peut passer. Avec un environnement aussi pollué électriquement qu'un réseau ferroviaire, je ne prendrai jamais l'option de passer par de l'I2C pour transmettre une information aussi importante !

Bien à vous,
NitraThor.
« Modifié: janvier 30, 2023, 08:33:27 pm par NitraThor »

laurentr

  • Full Member
  • ***
  • Messages: 219
    • Voir le profil
Re : Micro centrale DCC
« Réponse #26 le: janvier 30, 2023, 09:18:14 pm »
Bonsoir

Expliqué ainsi je comprends mieux les enjeux et choix qui en découlent.

Donc pour de l'information courante "non prioritaire" on peut dire OK c est suffisant via I2C, pour une info devant être "de premier ordre"  (type détection de cour circuit par exemple dont on va vouloir exploiter le plus rapidement possible une réaction rapide) ce n est pas le plus adapté pour x raisons.

Merci
Laurent