Auteur Sujet: arduino Mega DCC++ / L9110S  (Lu 554 fois)

Jack67

  • Newbie
  • *
  • Messages: 9
    • Voir le profil
arduino Mega DCC++ / L9110S
« le: juillet 25, 2020, 10:03:19 pm »
Je me suis lancé dans le montage de la centrale telle que décrite sur :
https://www.locoduino.org/spip.php?article253     Hardware: ok en version USB

Saisissez : <1> dans la barre de saisie du moniteur puis validez avec la touche return :
Les caractères <p1> devraient s’ajouter à la ligne dans le moniteur de l’IDE, mais surtout, les deux LED’s sur la carte moteur doivent s’allumer.
Cela indique qu’il y a du courant en sortie de la carte sur la voie principale et sur la voie de programmation. BRAVO !

problème: les deux LED témoin d'alimentation des rails flasches brièvement et pas de courant sur les rails, message moniteur:
<iDCC++ BASE STATION FOR ARDUINO MEGA / L9110S Dual Motor Driver: V-1.2.1+ / Jul 25 2020 18:28:32><N0: SERIAL><p1><p2>

programme téléchargé: DCC++ BASE STATION COPYRIGHT (c) 2013-2016 Gregg E. Berman
avec les instructions pour la carte L9110S

sur le forum j'ai trouvé des trucs pour la recherche du problème, mais rien à faire... cela ne marche toujours pas!!
suppression du MAX471, des LED témoin, ... j'ai du jus à l'entrée du L9110S
please Help...

msport

  • Hero Member
  • *****
  • Messages: 941
  • HO avec DCC++ en DIY Réseaux très éphémères
    • Voir le profil
Re : arduino Mega DCC++ / L9110S
« Réponse #1 le: juillet 26, 2020, 03:14:17 pm »
Bonjour,

DCCpp retourne < p2 > quand un court-circuit est détecté sur la voie principale ...

Si on a le même résultat alors que le MAX471 est déconnecté, il faut regarder ce qui arrive sur l'entrée de détection du court-circuit (broche A0), donc vérifier le câblage.

Cordialement

Jack67

  • Newbie
  • *
  • Messages: 9
    • Voir le profil
Re : arduino Mega DCC++ / L9110S
« Réponse #2 le: juillet 26, 2020, 08:30:38 pm »
Merci pour votre commentaire.
la déconnection complète du MAX471, également broche A0.
le sketch rechargé, (sans modifs)
cablage revérifié:
PWM1 - 3
DIR1 - 12
PWM2 - 11
DIR2 - 2
5v aux bornes L9110S
aucunes LED sur les sorties...
le moniteur affiche toujours: <iDCC++ BASE STATION FOR ARDUINO MEGA / L9110S Dual Motor Driver: V-1.2.1+ / Jul 26 2020 20:20:29><N0: SERIAL><p1><p2>
l'alimentation 18v est bien présente sur L9110S,
et je retrouve 18v aussi entre respectivement le "power" et toutes les sorties "Motor1 et 2" ...  et cela je ne sais pas si c'est ok!!
je pense qu'il va falloir que je me mette à l'éléctronique plus sérieusement.

msport

  • Hero Member
  • *****
  • Messages: 941
  • HO avec DCC++ en DIY Réseaux très éphémères
    • Voir le profil
Re : arduino Mega DCC++ / L9110S
« Réponse #3 le: juillet 26, 2020, 10:01:49 pm »
C'est curieux que vous ayez <p2> même avec le MAX471 enlevé, A0 déconnecté.

L'arduino détecte un court-circuit qu'il ne mesure pas. Ce serait donc un parasite à la mise sous tension qui le déclenche.
A tester, en enlevant le câble USB, ça s'allume ?
La résistance sur les LED est correcte ?

Vous avez un fil noir qui va du OUT- du step down au GND du connecteur 2X18 du MEGA, vous pourriez le rallonger et le mettre au GND à coté du 5V.

A partir de là il faudra tester le MEGA in situ : en débranchant tout ce qui y arrive : toujours < p2 > ?

Je ne pense pas que ce soit du coté de la carte L9110S car j'ai du mal à imaginer qu'elle puisse renvoyer quelque chose vers le MEGA.
Cordialement

Jack67

  • Newbie
  • *
  • Messages: 9
    • Voir le profil
Re : arduino Mega DCC++ / L9110S
« Réponse #4 le: juillet 27, 2020, 09:55:07 pm »
bonsoir msport,
encore merci de me lire et de me donner des indices, vraiment sympa!
je viens de charger le programme sur une autre carte Mega 2560 (Elegoo R3),
et sans faire un seul branchement de composants, surprise:
le moniteur affiche <iDCC++ BASE STATION FOR ARDUINO MEGA / L9110S Dual Motor Driver: V-1.2.1+ / Jul 27 2020 21:36:31><N0: SERIAL><p1><p2>
c'est vraiment curieux!!!
rien sur les entrées/sorties et le message persiste.
voilà mes investigations, je suppose qu'il y a un problème avec le sketch... mais demain est un autre jours...
à bientôt, Jacky

msport

  • Hero Member
  • *****
  • Messages: 941
  • HO avec DCC++ en DIY Réseaux très éphémères
    • Voir le profil
Re : arduino Mega DCC++ / L9110S
« Réponse #5 le: juillet 28, 2020, 10:00:54 am »
Intéressant, avez vous modifié ... les onglets nécessaires :
    DCCpp_Uno.h qui contient les choix de configuration matériels principaux : le type d’Arduino (Uno ou Mega
...
Également la carte cible dans l'IDE.
Cordialement

Jack67

  • Newbie
  • *
  • Messages: 9
    • Voir le profil
Re : arduino Mega DCC++ / L9110S
« Réponse #6 le: juillet 28, 2020, 10:07:08 pm »
encore une tentative ce soir...
tout repris à zéro!
modif du sketch tel le super article253. et voici ce qui me saute au nez:


volatile RegisterList mainRegs(MAX_MAIN_REGISTERS);    // create list of registers for MAX_MAIN_REGISTER Main Track Packets
volatile RegisterList progRegs(2);                     // create a shorter list of only two registers for Program Track Packets

CurrentMonitor mainMonitor(CURRENT_MONITOR_PIN_MAIN,"<p2>");  // create monitor for current on Main Track
CurrentMonitor progMonitor(CURRENT_MONITOR_PIN_PROG,"<p3>");  // create monitor for current on Program Track

est-ce pas là le problème? le <p2>

au passage, cela ne fonctionne toujours pas...j'suis dans une cave fraîche, donc cela ne peut être la chaleur!!
bonne soirée

msport

  • Hero Member
  • *****
  • Messages: 941
  • HO avec DCC++ en DIY Réseaux très éphémères
    • Voir le profil
Re : arduino Mega DCC++ / L9110S
« Réponse #7 le: juillet 29, 2020, 09:59:40 am »
malheureusement, je n'ai pas réalisé ce montage et n'ai pas exploré très loin les possibilités de DCCpp.
Il faut patienter qu'un des auteurs passe par là.
En attendant, pour valider le matériel, chargez la version originale de Gregg Berman DCCpp_Uno configurée pour un MEGA.
L'affectation des pins est identique :
MEGA   Main   P W M   3
        DIR   12
        MAX471   A0
MEGA   Prog   P W M   11
        DIR   2
        MAX471   A1
Cordialement

marc_geo

  • Newbie
  • *
  • Messages: 18
    • Voir le profil
Re : arduino Mega DCC++ / L9110S
« Réponse #8 le: juillet 29, 2020, 12:28:23 pm »
Bonjour,

Je vois que je ne suis pas le seul à avoir ce problème. Sachant que j'utilise un autre matériel, lmd18200 + max471.
Je constate exactement le même résultat que chez vous avec au démarrage un <p1> suivi de <p2>. Au départ j'incriminais le mauvais fonctionnement des max471 peut-être défectueux. Mais je suis de moins en moins persuadé que cela provient de là, je ne serai convaincu que lorsque je recevrai les nouveaux.
Comme expliqué dans mon post https://forum.locoduino.org/index.php?topic=1035.msg10986#new, ce souci apparait dans toutes les config que j'ai pu tester avec ou sans max471 (par exemple en alimentant directement le lmd18200 à 12v) principalement avec la bibliothèque car le sketch original de Greg semble moins sensible.

Je pense que le souci, sans être encore sûr à 100%, vient du contrôle de surcharge dans le fichier CurrentMonitor.h (CurrentMonitor.cpp qui s'en suit) qui est utilisé dans la fonction loop(). C'est ce qui vérifie tout naturellement les surcharges de court-circuit.

Si vous faites un sketch utilisant les fonctions d'allumage, powerOn();, et d'arrêt, powerOff();, normalement vous devriez avoir votre matériel s'allumer et s'éteindre correctement. Le souci provient lorsqu'on lance le loop() puisque cela fait appel au contrôle via CurrentMonitor. Y aurait-il un pic de courant à l'allumage ? J'essaie d'investiguer ...
J'ai modifié le fichier CurrentMonitor.h à la ligne 40, void begin(int pin, int inSignalPin, const char *msg, float inSampleMax = [b]300[/b]);, en passant la valeur à 400 et depuis le souci a disparu. J'ai pris la valeur de 400 aléatoirement mais je n'ai pas eu le temps encore de tester des valeurs plus petites entre 300 et 400 pour définir où se situe le seuil.
Ce test a été effectué avec le lmd18200 alimenté directement. Encore une fois, dans la même configuration et le sketch original, je n'avais pas de souci.

Prochain test: refaire le montage avec le max471(mais j'attends les nouveaux !)
Je vous tiens informé.

Belle journée  :)

Marc

Edit: je viens de passer un peu de temps à tester les max471 que je possède, il sont effectivement défectueux ( je pourrai juste récupérer les borniers et connecteurs ....). A voir avec les nouveaux quand je les recevrai




« Modifié: juillet 29, 2020, 03:48:04 pm par marc_geo »

Jack67

  • Newbie
  • *
  • Messages: 9
    • Voir le profil
Re : arduino Mega DCC++ / L9110S
« Réponse #9 le: août 01, 2020, 12:58:46 pm »
bonjour marc et les autres!! quelle drogue cette électronique...

j'ai testé DCCpp_S88, et j'ai les sorties qui s'activent pour alimenter réseau.
les modifs: aucun MAX471 et valeur void begin(int pin, const char *msg, float inSampleMax = 1100);

je mesure DC 18v à l'entrée du L9110S
AC 22,5V sur chaque sortie! est-ce normal?
j'avais connecté JMRI et en posant ma Märklin BR94 mfx sur voie de prog, super content de voir la loc allumée ses feux!
première procédure de reconnaissance du décodeur et la maintenant la loc ne répond plus!!
c'est même pas possible de la faire reconnaitre via la MS2 avec booster märklin en mfx.

autre test en rejouant DCCpp_uno original, modifs:
pas de MAX471 (il doit être défectueux)
#define  CURRENT_SAMPLE_SMOOTHING   0.01
#define  CURRENT_SAMPLE_MAX         800
et la, les LED sortie présente avec également du AC 22,5V
et au bout de quelques secondes le moniteur affiche à nouveau <P2>

voilà les investigations du jour...
encore j'ai la patience de voir cela fonctionner... mais là c'est que le DCC, ensuite pour gèrer un nouveau réseau il y aura des servos, du S88, et...

marc_geo

  • Newbie
  • *
  • Messages: 18
    • Voir le profil
Re : arduino Mega DCC++ / L9110S
« Réponse #10 le: août 03, 2020, 12:40:19 pm »
Hello Jack67 et les autres  ;) ,

Je viens de recevoir les deux nouveaux max471 et le résultat est ....
pareil qu'avec les deux autres ...... pas d'amélioration .....
Je constate exactement les mêmes résultats dans diverses configuration de logiciel ou de connection.
Je n'ai pas encore testé les max de manière séparée, mais je vais arrêter les frais de commande de max471. Sachant que la production du composant est terminée, s'il y en a 1/10 qui fonctionne, cela devient compliqué !
Pour l'instant je vais garder le lmd18200 connecté à mon ancien booster (ord3 de Peter Gilling), cela fonctionne bien.

Malheureusement je ne peux pas t'aider pour la carte  L9110S. Je ne la connais pas. Mais comme nous avons les mêmes résultats avec des différents hardware, je pense que le souci vient des max 471 ....
Je vais encore tenter d'autres config et chercher un autre diviseur, il y a des pistes, et je posterai le résultat.

Belle journée.

Marc

msport

  • Hero Member
  • *****
  • Messages: 941
  • HO avec DCC++ en DIY Réseaux très éphémères
    • Voir le profil
Re : arduino Mega DCC++ / L9110S
« Réponse #11 le: août 03, 2020, 03:49:12 pm »
Bonjour,
la première vérification d'un MAX471 est de vérifier qu'on a ~ 35 milliohms entre RS+ et RS- ... (presque le c/c au multimètre)
Cordialement

msport

  • Hero Member
  • *****
  • Messages: 941
  • HO avec DCC++ en DIY Réseaux très éphémères
    • Voir le profil
Re : Re : arduino Mega DCC++ / L9110S
« Réponse #12 le: août 03, 2020, 03:58:21 pm »

je mesure DC 18v à l'entrée du L9110S
AC 22,5V sur chaque sortie! est-ce normal?

Oui normal, un multimètre en alternatif mesure une valeur moyenne redressée et applique un coefficient.
Cordialement

Jack67

  • Newbie
  • *
  • Messages: 9
    • Voir le profil
Re : arduino Mega DCC++ / L9110S
« Réponse #13 le: août 03, 2020, 09:46:45 pm »
bonsoir Msport, Marc,...
merci pour votre expérience.
Le Max471 me fais découvrir de ces trucs...
J'ai rechargé la bibliothèque DCCpp_S88

cablé le Max471 avec DC 18V à l'entrée,
sortie Max471 aux bornes entrée du L9110S, et la tension n'est plus que de DC 15V à cet endroit!
dans ce test pas d'activation des LED, donc pas de courant sur les rails.

la je donne l'ordre <1> et les LED sont allumées,
sortie Max471 aux bornes entrée du L9110S, et la tension n'est plus que de DC 4,8V à cet endroit!
et la tension dispo pour les rails chute à AC 6,8V sur chaque sortie!!!

et je continue, je retire les deux fils qui donnent l'info à l'arduino (A0, GND)
et la tension dispo pour les rails remonte à AC 8V sur chaque sortie!!!

trop bizarre tout ceci.

en modifiant le sketch avec la valeur  void begin(int pin, const char *msg, float inSampleMax = 1000);
j'obtiens ceci:
INTERFACE:  SERIAL
DCCppS88 ready
<p1>
<p0>
Power OFF ! Surcharge en courant détectée *****
Courant lu : 1023.00
<p2>

voilà pour ce soir.
et si on se prenais un apéro ensemble pour voir qui arrivera à faire fonctionner cette centrale??

cordialement, Jacky 


msport

  • Hero Member
  • *****
  • Messages: 941
  • HO avec DCC++ en DIY Réseaux très éphémères
    • Voir le profil
Re : arduino Mega DCC++ / L9110S
« Réponse #14 le: août 03, 2020, 11:31:44 pm »
Comme dit, et conformément à sa fiche technique, la résistance entre RS+ et RS- du MAX471 est dérisoire.

Toute chute de tension notable entre  RS+ et RS- indique un MAX471 défectueux (c'est probablement un autre composant = erreur de marquage) ou détérioré ...

De même si sur le chip 2 et 3 ne sont pas reliés ou 6 et 7 de même ne sont pas reliés (composants pas encore soudés) le chip est probablement inutilisable.

Par contre en cas de problème sans MAX471 ou avec A0 déconnecté, il faut revoir le sketch ou le câblage ou le MEGA si il a subi des manipulations hasardeuses.

Si DCCpp_Uno configuré standard MEGA fonctionne, c'est la configuration de DCCpp qui est à vérifier ...

Si A0 voit un courant alors qu'il n'y aucun fil dessus, c'est que cette entrée est grillée. (ou au mieux une anomalie de câblage)
Cordialement