Auteur Sujet: Décodeur de locomotive multifonctions  (Lu 33137 fois)

trimarco232

  • Sr. Member
  • ****
  • Messages: 345
    • Voir le profil
Re : Décodeur de locomotive multifonctions
« Réponse #15 le: novembre 29, 2023, 11:53:46 pm »
très bien
je viens juste de regarder ton schéma :
- pour l'entrée DCC , on se contentera d'une 100K 0402 (comme "tout le monde")
Edit : ben non , il faut pouvoir mesurer la tension des 2 rails pour l'ABC : il faut donc 2 ponts diviseurs sur chaque rail , reliés à 2 entrées ADC , sonc 4x 0402 en tout ; un des 2 ponts sera aussi relié (en interne ?) à l'entrée ICP d'un des 2 TIMERB
- je ne suis pas convaincu du circuit générateur railcom : si une tension DCC intempestive arrive sur le transistor en-bas à droite , alors qu'il est commandé , il fume (sa dernière cigarette) ; je pense qu'il faut un transistor en + pour le protéger , en occurrence celui en bas à gauche , qui sert de diode : on met une vraie diode à la place , et on le récupère pour protéger celui de droite
Edit : en fait , pour que la tension en DCC_L (~15v) puisse être dangereuse , il faut que que celle en DCC_R soit à ~0v (il faut que ça se reboucle) , or dans ce cas , le transistor de droite n'est plus commandé , il est donc protégé : on peut faire confiance à l'auteur de ce shéma
- pareil pour les dual mosfet , il faudra les protéger par des dual-npn
- il existe le MPM3506A , qui ne fait que 600mA , ça suffit , et qui ne coûterait que 2€50 ; il faudrait encore s'assurer de son comportement lors des arrêts de la tension d'entrée , vis-à-vis de craintes de lebelge2 (qui s'y connaît) ; j'ai regardé la doc , elle touffue , donc je n'ai pas pu avoir de certitude de ce point de vue ; toutefois , si ça fonctionne , ce serait en effet un bon plan malgré le prix , car ça nous enlève une épine du pied avec de + une empreinte minimale
« Modifié: novembre 30, 2023, 01:17:24 pm par trimarco232 »

laurentr

  • Hero Member
  • *****
  • Messages: 648
    • Voir le profil
Re : Décodeur de locomotive multifonctions
« Réponse #16 le: novembre 30, 2023, 07:33:47 am »
Hello

Pour donner une idée de ce que cela peut "déjà" donner petite vue d illustration de travail

On perçoit l apport compact du MPM3510A
Les dual NMOS sont des DMN67D8LDW-7.
Les 4 diodes du pont sont à 1.5A : CCS15S40,L3F
CPU ATTINY1616 ou 3216 selon besoins
Les sorties TX RX dispo sur pad
SDA et SCL pour l I2C sont sur les broches du connecteur 21MTC

Pour l entrée DCC j'utilise la INPUT PULLUP qui me semble adaptée à notre usage donc un composant de moins a implanter :)

Quelques retouches possibles bien sure selon les discussions.

Dimensions: 16mmx30mm

Laurent





laurentr

  • Hero Member
  • *****
  • Messages: 648
    • Voir le profil
Re : Décodeur de locomotive multifonctions
« Réponse #17 le: novembre 30, 2023, 07:43:23 am »
Les MPM3510A et MPM3506 sont interchangeables sans autre forme de modification.
On peut dont tabler dessus

Pour memo cette famille équipe les NANO EVEVRY, elle est assez robuste, compacte, peu épaisse donc plutôt bien aplatée.
Le seul "défaut" de la version sur NANO EVERY est la tension limitée au max 21V qui n est plus de mise sur la série MPM35XY qui monte a 36V.

J avais d autres candidats mais pas éligibles ici en terme de compacité ou de nombre de composants à placer autours.
« Modifié: novembre 30, 2023, 01:21:52 pm par laurentr »

trimarco232

  • Sr. Member
  • ****
  • Messages: 345
    • Voir le profil
Re : Décodeur de locomotive multifonctions
« Réponse #18 le: novembre 30, 2023, 01:32:29 pm »
- j'ai édité mon post précédent : voir pour les 4x 0402 en entrées , au besoin regarder comment a procédé lebelge2
 -le pont en H me paraît énorme comparé au reste : ne peut-on pas tabler sur un modèle + compact (genre DRVmachin) , qui pourraient aussi servir pour commander 2 sorties AUX , on serait paré au niveau des protections


laurentr

  • Hero Member
  • *****
  • Messages: 648
    • Voir le profil
Re : Décodeur de locomotive multifonctions
« Réponse #19 le: novembre 30, 2023, 03:24:03 pm »
Hello

J ai vu et je vais voir comment porter le truc sur le projet.
Je préférais ma solution avec le NMOS car dans ce cas on est moins dépendant des tensions de la voie au delà de celle de bascule du NMOS. Pour ce qui est de la gestion de l'ABC on a alors en effet besoin de deux IO supplémentaires qui sont sous numéraires sur notre CPU 1616...

le BOD level va aussi devoir être abaissé sur la plage BODLEVEL0  pour 1,8V [1,7V; 2V] pour que toutes les tensions au dessus de 2,1V en gros soient considérées comme des 1 et 0 en dessous.
Dans le montage avec le NMOS on peut rester sur un BODLEVEL7 avec 4,3V. ([4,1V; 4,5V]

J ai aussi donc une adaptation à faire pour l'ABC. ( qui permettra aussi de détecter le sens de circulation en analogique je pense)

Pour le pont en H c est un peu une fausse impression bien que cela soit le plus imposant composant du montage. IL est encore acceptable en terme d épaisseur surtout.
L ayant déjà utilisé je le trouve "parfait pour le job" et donc tenir 1.5 A ne lui posera pas de problème si on doit monter jusque la.(même en pic)
Je n'utilise pas la fonction de mesure/limitation de courant dessus

Pour le diviseur que tu proposes avec les 4 x 100K je me pose la question de savoir s il ne faut pas qu'il soit asymétrique pour couvrir sur les PIN_IN DCC_R et PIN DCC_L une plage de tension au delà de 10/12V (V/2 <= 5,5V )(et donc du double idéalement) et garantir le niveau de tension mini d entrée pour valider la bascule d'état, et protéger le CPU. On peut aussi ajouter une diode entre l'entrée CPU et le +5V.

Reprenons un peu les mappings d'usages des 20 I/O pour éviter tout oubli. On ciblera ensuite plus finement les attributions précises ( s il faut en revoir certaines)

1 I/O pour le traitement du signal DCC ( sur évent +  interupt de la lib AIKO PRAS) ( sur le TIMER B0)
1 I/O pour détecter le cutout RC ( l'autre pole DCC?) ( sur le TIMER B1)
2 I/O pour la détection ABC ( voir la mesure du level en entrée pour l analogique)
2 I/0 PWM pour piloter le pont en H ( pilotées par le TIMER A mod split en 8bits)
1 I/O pour l UDPI
1 I/O pour le +5V
1 I/O pour le GND
2 I/O pour le "serial" TX/RX
2 I/O pour l I2C SDA SCL
7 I/O pour le pilotage des sorties amplifiées ( dommage une de plus nous aurait offert 8 sorties amplifiées mais il reste au pire RX...)

Millis()/micros() tournera sur le TIMER D. (sur cette série)

Le passage sur le 1617/3217 force les choses vers le haut à défaut ca sera 6  sorties pilotables ( Rouges et blancs indépendants de chaque cote et 2 éclairage de cabines par exemple).

Et la il y en a un qui va lever la main et dire et pour les servos et le DF Player on fait comment?
Plusieurs  options: extension I2C ou passage sur un CPU plus fourni en I/O.

Why not?

Laurent



 

laurentr

  • Hero Member
  • *****
  • Messages: 648
    • Voir le profil
Re : Décodeur de locomotive multifonctions
« Réponse #20 le: novembre 30, 2023, 04:54:55 pm »
Marc, Le Belge

Jettez un œil ici vous trouverez je pense des "inspirations"

cote code:
https://github.com/ytsurui/dcc-decoder2-firmware

cote hard:
https://github.com/ytsurui/dcc-decoder2-pcbdata

Je pense que la gestion ABC optimisée. Cote traitement du  DCC on ne s appuit pas la sur la lid AIKO mais rests interessante. On en benfcicie pas de ses apports.
Donc le chemin est "au milieu de tout cela"...

Ltr

laurentr

  • Hero Member
  • *****
  • Messages: 648
    • Voir le profil
Re : Décodeur de locomotive multifonctions
« Réponse #21 le: décembre 01, 2023, 07:24:49 pm »
Bonsoir

J ai un peu avancé sur un possible design. (toujours en 16x30 avec connecteur 21MTC)
J ai modifié les diodes du pont. On passe des CCS15S40 (1.5A) à des RB060MM-30TR ou RB060MM-40TRou RB060MM-40TR (2A) au prix d'un encombrement légèrement plus volumineux et d une dispo plus étendue
La circuiterie pour l'ABC est intégrée ( le nombre de composants augmente un peu et les entrées DCC sont à présent derrière des ponts diviseurs pourvus d une diode vers le +5V. Idem sur la mesure BEMF.

J ai aussi profite de cette "révision" pour passer sur un MEGATINY X7 (1617 ou 3217 par exemple) à 24 broches afin de conserver 8 I/O pour le pilotage des sorties.
2 I/O sont "encore" dispo et pourrait constituer au besoin une 5 eme paire de sorties amplifiées pourquoi pas dédiées( ou pas)  à des servos? pu d autres usages (capteur à effet Hall?)

trimarco232

  • Sr. Member
  • ****
  • Messages: 345
    • Voir le profil
Re : Décodeur de locomotive multifonctions
« Réponse #22 le: décembre 01, 2023, 11:25:48 pm »
Hello

J ai vu et je vais voir comment porter le truc sur le projet.
Je préférais ma solution avec le NMOS car dans ce cas on est moins dépendant des tensions de la voie au delà de celle de bascule du NMOS. Pour ce qui est de la gestion de l'ABC on a alors en effet besoin de deux IO supplémentaires qui sont sous numéraires sur notre CPU 1616...
alors il faudra les protéger par des npn

le BOD level va aussi devoir être abaissé sur la plage BODLEVEL0  pour 1,8V [1,7V; 2V] pour que toutes les tensions au dessus de 2,1V en gros soient considérées comme des 1 et 0 en dessous.
Dans le montage avec le NMOS on peut rester sur un BODLEVEL7 avec 4,3V. ([4,1V; 4,5V]
le BOD level (Brown Out , pas Block Occupency) ne joue que sur le reset

J ai aussi donc une adaptation à faire pour l'ABC. ( qui permettra aussi de détecter le sens de circulation en analogique je pense)

Pour le pont en H c est un peu une fausse impression bien que cela soit le plus imposant composant du montage. IL est encore acceptable en terme d épaisseur surtout.
L ayant déjà utilisé je le trouve "parfait pour le job" et donc tenir 1.5 A ne lui posera pas de problème si on doit monter jusque la.(même en pic)
Je n'utilise pas la fonction de mesure/limitation de courant dessus
je regarde si je trouve quelque chose

Pour le diviseur que tu proposes avec les 4 x 100K je me pose la question de savoir s il ne faut pas qu'il soit asymétrique pour couvrir sur les PIN_IN DCC_R et PIN DCC_L une plage de tension au delà de 10/12V (V/2 <= 5,5V )(et donc du double idéalement) et garantir le niveau de tension mini d entrée pour valider la bascule d'état, et protéger le CPU. On peut aussi ajouter une diode entre l'entrée CPU et le +5V.
(j'ai pas écrit 4x100K) ces entrées serviront aussi à la capture : après la capture et les opération qui s'en suivent , on bascule la broche en analogique et on mesure l'ABC ; sur l'autre entrée  il faudra une interruption en milieu de bit DCC pour mesurer l'autre alternance

Reprenons un peu les mappings d'usages des 20 I/O pour éviter tout oubli. On ciblera ensuite plus finement les attributions précises ( s il faut en revoir certaines)

1 I/O pour le traitement du signal DCC ( sur évent +  interupt de la lib AIKO PRAS) ( sur le TIMER B0) pas besoin
1 I/O pour détecter le cutout RC ( l'autre pole DCC?) ( sur le TIMER B1)pas besoin
2 I/O pour la détection ABC ( voir la mesure du level en entrée pour l analogique)
2 I/0 PWM pour piloter le pont en H ( pilotées par le TIMER A mod split en 8bits)
1 I/O pour l UDPI
1 I/O pour le +5V
1 I/O pour le GND
2 I/O pour le "serial" TX/RXrx pas besoin
2 I/O pour l I2C SDA SCL
7 I/O pour le pilotage des sorties amplifiées ( dommage une de plus nous aurait offert 8 sorties amplifiées mais il reste au pire RX...)
1 I/O  le Tx pour le railcom

Millis()/micros() tournera sur le TIMER D. (sur cette série)

Le passage sur le 1617/3217 force les choses vers le haut à défaut ca sera 6  sorties pilotables ( Rouges et blancs indépendants de chaque cote et 2 éclairage de cabines par exemple).

Et la il y en a un qui va lever la main et dire et pour les servos et le DF Player on fait comment?
tx software serial
Plusieurs  options: extension I2C ou passage sur un CPU plus fourni en I/O.

Why not?

Laurent

trimarco232

  • Sr. Member
  • ****
  • Messages: 345
    • Voir le profil
Re : Décodeur de locomotive multifonctions
« Réponse #23 le: décembre 01, 2023, 11:45:30 pm »
il faudrait qu'on ouvre un nouveau topic : la présentation de lebelge2 est terminée et fonctionne , on est hors sujet depuis un moment

laurentr

  • Hero Member
  • *****
  • Messages: 648
    • Voir le profil
Re : Décodeur de locomotive multifonctions
« Réponse #24 le: décembre 02, 2023, 11:20:00 am »
Hello


@Trimarco232
Sur le version d origine avec le NMOS pour la "transcription du signal DCC vers le CPU " c est une zener qui vient protéger le gate du NMOS.
Cela te semble insuffisant?

Les NMOS choisis ont une plage -30V/+30V donc si le gate est bien en 5V/0V et le VIN dans  la plage DCC <30V je ne vois pas le besoin de protéger (plus) le NMOS en sus.

Néanmoins je pense que tu as en tete ce type de montage en protection?

laurentr

  • Hero Member
  • *****
  • Messages: 648
    • Voir le profil
Re : Décodeur de locomotive multifonctions
« Réponse #25 le: décembre 03, 2023, 11:47:37 am »
Bonjour

Oui belle erreur sur le BOD... je devais avoir la tête ailleurs!

Bon cela dit... j ai un peu repris mon travail et poursuivi l axe de travail...

Je suis passe sur un CPU 32 broches ( cela laisse le plus grand choix entre ATMEGA 1608/3208/4808, AVR16/32/64DA32-DB32-DD32-EA32 et AVR128DA32-DB32.)
Question "dispo" et prix on couvre au plus large. )
J ai remis mon entrée via NMOS, mis la "circuiterie" pour l' ABC et le RAILCOM.
8 sorties amplifiées dispo sur F0f F0r AUX1 AUX2 AUX3 AUX4 AUX5 AUX6.
Mesure possible du BEMF.
I2C/TWI dispo sur les broches ad hoc selon la norme.( pour SUSI)
Pads TX/RX
Pad programmation (UDPI/+5V/GND)
Connecteur 21MTC classique avec possibilité de montage en direct ou en mode retourné (faibles épaisseurs)

Quelques vues. Tout y est :) c est serré mais ca rentre! PCB 4 couches 8/10mm.
J ai entouré en couleur les blocs fonctionnels principaux ce qui permet de voir leur localisation.
« Modifié: décembre 03, 2023, 11:53:38 am par laurentr »

laurentr

  • Hero Member
  • *****
  • Messages: 648
    • Voir le profil
Re : Décodeur de locomotive multifonctions
« Réponse #26 le: décembre 03, 2023, 12:29:33 pm »
J ai profite aussi de cette révision pour rationaliser un peu plus les distributions/placements. Ce travail me permettra ensuite de passer vers une version PLUX22 avec à priori moins de difficultés.

De ce fait j ai aussi ajouté la possibilité de fournir du +5V externe ( via POWERPACK) sur la broche +5V du connecteur 21MTC.
Une diode ajoutée empêche d'injecter vers le DC-DC BUCK alors que tous les consommateurs dispose de la distribution du "+5V universel"
L idée est aussi d utiliser possiblement la broche 11 à défaut d un PAD pour y souder un fil afin d'envoyer le +5V du DC-DC directement vers le IN du "POWERPACK". On dispose ainsi d'une entrée dédiée pour celui ci sans "casser" le brochage normalisé du 21MTC.  LE POWERPACK peut alors renvoyer sur le +V si il délivre cette tension.
PAD ou broche 11....? a voir sinon au plus simple rien de plus et le POWERPACK sera charge via le +5V du connecteur et enverra la tension BOOSTEE sur le VIN ( et sa broche)
Une régulation permettra de charger notre/nos super capa et un DC-DC BOOST se chargera de rehausser celle ci.
Notre CPU sera alors "bien pourvu" en "énergie" et pourra travailler de même que le H BRIDGE.
Le boost aura la possibilité d envoyer soit la totalité de sa tension de substitution sur le VIN (pour la traction et l alim générale du circuit donc repassage par le DC-DC BUCK ) et/ou il pourra aussi adresser une tension de 5V spécifique sur la broche +5V. ( cas de sorties multiples sur le BOOST ou de plusieurs DC-DC-BOOST pour des tensions différentes)

Qui a dit LUXUEUX?  8)

Laurent ( Sous la neige du NOOOOORD)  ;D


laurentr

  • Hero Member
  • *****
  • Messages: 648
    • Voir le profil
Re : Décodeur de locomotive multifonctions
« Réponse #27 le: décembre 04, 2023, 04:00:37 am »
Bonjour

Apres quelques recherches voici ce que j ai pu trouver pour SUSI:

https://dccwiki.com/SUSI

La norme SUSI (à jour 11/2023)
https://normen.railcommunity.de/RCN-600.pdf

LIBRARIE  NATIVE ( a interfacer avec la LIB NMRADCC) (ou à adapter sur une autre LIB):
https://www.arduino.cc/reference/en/libraries/rcn600/

On y trouve aussi les explications utiles sur le versions avec des nivaux de tensions différents ( 3V3 et 5V)

Le constat c est que ce n est pas du I2C/TWI pure mais un "hersât/clone"

Mais par chance son auteru a aussi produit une autre librairie qui s interface avec "WIRE" ( la lib qui gere l I2C/TWI)

https://www.arduinolibraries.info/libraries/wire-susi


La libraire est bien commentée (en italien) on va donc pouvoir envisager son "intégration".

Je n ai pas su identifier en revanche si au niveau HARDWARE il faut conserver le hard avec les résistances de 470r sur les lignes ou si on est en "WIRE pure" et donc si
 on s en passe? Mystère entier jusque la. Mon interprétation serait de rester en pure "WIRE" sans les résistances de 470r. Le hic  c est alors de devoir choisir le mode d'implémentation. ( car on casse la compatibilité avec le HARD standard qui équipe le matériel courant. En cas d interface "propriétaire" la question ne se pose pas trop.
Le hard du décodeur est à présent adapté aux deux cas de figure. Il suffira de remplacer par des résistance 0r celle de 470r en cas de "WIRE" pure". Les résistances de PULLUP  sur SDA et SCL restent et seule leur valeur peut avoir à évoluer.

La ou je vois quelques limites c est sur la taille de l'EEPROM qui est "réduite à 256 Bytes" sur les récents AVR DD /MEGATINY  ce qui va être "étroit" pour caser tout le monde. Seuls les AVR DA, DB et EA ont 512 Bytes (plus confortable) . Le 328P en avait en revanche 1024...


Laurent








laurentr

  • Hero Member
  • *****
  • Messages: 648
    • Voir le profil
Re : Décodeur de locomotive multifonctions
« Réponse #28 le: décembre 04, 2023, 10:59:21 am »
Hello

Le petit frère du 21MTC est tracé.

Le PLUX22 prend 1mm de plus en longueur et passe à 31mm (on pourrait gagner quelques dixièmes) Pour les distinguer visuellement plus aisément hormis via le connecteur le PCB est passé en couleur rouge.

J y ai ajouté 2 PADS: +5V et GND qui permettront une liaison vers le POWERPACK. Pourrait s y glisser aussi un pad VIN (fil bleu classique  mais déjà sur les broches 6 et 9 contrairement au +5V absent sur les connecteurs PLUX.

Question densité on est au max je pense car il reste peu d espace libres pour placer des via puis naviguer entre les couches mais il resterait possible au prix d un petit effort supplémentaire de re placer un dual NMOS et gagner 2 sorties amplifiées supplémentaires ( plot 22 pour  AUX7 et dur le plot 1) ou laisser le plot 1 en liaison directe avec le CPU ( éventuelle entrée directe non amplifiée) à voir.

Laurent

laurentr

  • Hero Member
  • *****
  • Messages: 648
    • Voir le profil
Re : Décodeur de locomotive multifonctions
« Réponse #29 le: décembre 04, 2023, 01:32:13 pm »
Hello

Pour comprendre le "INSIDE" une vue de la conception.

Ltr