Voir les contributions

Cette section vous permet de consulter les contributions (messages, sujets et fichiers joints) d'un utilisateur. Vous ne pourrez voir que les contributions des zones auxquelles vous avez accès.


Messages - laurentr

Pages: [1] 2 3 ... 39
1
Vos projets / Re : RailCom: Générateur de CutOut
« le: Aujourd'hui à 05:17:13 pm »
Bonjour

J ai une question qui va aider la recherche d éventuels autres pont H.

D après OPEN DCC il faut insérer un "SECURITY GAP" de 4us  sur le L6203 entre son activation/désactivation ( broche ENABLE) et la commande de mise en "CC" ( via IN 1 et IN2)
Ceci est (fortement) recommandé notamment dans le cas de la présence de plusieurs boosters.

Comment gérer cela au niveau du L298 ( que je ne connais pas) ou d'autres ponts H qui ne reposent pas sur la présence de broche ENABLE? ( et donc intégrer cela au dispositif en cours de mise au point pour LABOX)

Ltr

2
Vos projets / Re : RailCom: Générateur de CutOut avec booster
« le: Aujourd'hui à 04:50:51 pm »
Les mêmes "config" sous AVR Dx.

Ici un AVR DB (un peu plus doté que le l AVR DD qui tient plus lui de l'ATMEGA4808 question ressources hardware)

3
Vos projets / Re : RailCom: Générateur de CutOut avec booster
« le: Aujourd'hui à 04:35:48 pm »
Bonjour

Nous avons collectivement discuté des apports de RAILCOM.
Les récents projets exposés par Christophe et Marcel notamment avec l'identificateur RAILCOM ou les satellites autonomes de Christophe nous apporte une plus value importante à l'utilisation de cette technologie.

Toutefois LA BOX Locoduino comme d'autres centrales n'est nativement pas capable de générer "correctement" le "cutout" railcom.

De quoi est il question: c est la fenêtre de temps durant laquelle la transmission des informations du décodeur vers la centrale est permise par interruption des émissions de trames DCC de la centrale vers les consommateurs (décodeurs de locos...)

Aussi plusieurs solutions ont été évoquées.
Parmi celles ci figure l'utilisation de BOOSTER DCC offrant la capacité de générer le CUTOUT.

Pour cela il y a comme toujours les solutions commerciales et celles auxquelles nous sommes attachées en DIY (esprit Locoduino!)

Dans les solutions en DIY citons celles les plus connues que sont:
A//le BOOSTER CDE de PACO CANADA (technologie PIC)
https://usuaris.tinet.cat/fmco/railcom_en.html#booster

B//le BOOSTER OPEN DCC ( ATTINY2313):
https://www.opendcc.de/french/Amplification/booster2_f.shtml

Les sites présentant ces réalisations décrivent les mécanismes et préconisent aussi des "optimums" (gap de sécurité par exemple en cas de boosters multiples)

Ayant moi même réalisé des montages du BOOSTER de PACO je voulais aussi m'approprié une solution plus contemporaine à base d'AVR/ATTINY inspirée aussi de la réalisation d'OPEN DCC que je juge plus complète.

Pour cela il fallait comprendre les mécanismes, chercher & trouver des réponses, optimiser le tout.

Plusieurs pistes étaient possibles.

J'ai retenu l'option de réduire le nombre total de composants à implanter et de bénéficier du même coup des apports des CPU de type AVR récents.
Ceux ci sont particulièrement bien adaptés à l'usage visé.

Inspiré de la partie HARD du BOOSTER OPEN DCC je suis finalement arrivé sur l'utilisation des AVR 32 broches de type AVR4808 ( AVRx série 0, celle du NANOEVERY) , AVR Dx ( DA DB DD,...) ( AVRx série 1) qui offrent sans fioriture ce dont nous avons besoins:
1//des TIMERS de type B
2//des CCL "GLUE LOGIC" configurables (assimilable à des portes logiques "sur mesure")
3//la possibilité de liaisonner les éléments via "EVENT"
4//un comparateur (pour la gestion de seuil en cas de cout circuit)

Ces CPU étant compatibles avec ces données en entrée la seconde étape a été de chercher le MAPINGS des différents I/O à placer pour correspondre à la couverture des besoins.

Plusieurs essais ont été requis pour arriver à une solution transposable sur plusieurs CPU: ATMEGA4808, AVDxxDA32, AVRxxDB32, AVRxxDD32
Leurs fonctionnements internes étant très similaires seul diffèrent quelques éléments "cosmétiques" de paramétrages.

Les librairies MEGACOREX ( AVR4808) et DXCORE ( AVR Dx) sont mises à contribution et facilitent la mise en œuvre du code.

L'utilisation de ATMEL START m'a beaucoup aidé pour visualiser les interactions entre les éléments et trouver une combinaison avec l'ensemble des besoins et contraintes à couvrir.

Des lors il restait à vérifier la couverture et dessiner ensuite.
Le code étant dans un second temps l'étape complémentaire à assurer.

Il est encore possible d'utiliser certaines ressources non encore utilisées sur ces CPU.
Parmi les piste possibles en réflexion:
i//gestion de la tension de sortie DCC sur les plots J/K via ajustement du niveau de PWM en entrée.(configuration par CV) via la broche PF4
i//gestion de seuils de déclanchement de protection différenciés (sélection mécanique par DIP SWITCH)

Voila les bases posées.
Ltr


4
Vos projets / RailCom: Générateur de CutOut avec booster
« le: Aujourd'hui à 01:52:35 pm »
Bonjour

Quelques compléments également sur la proposition que j'ai dessinée:
C'est bien un BOOSTER à part entière. Compatible avec les entrées CDE. (j'ignore juste le "level" de ces signaux (5V?,16V?)
Il reçoit en entrée un signal DCC "pure" sans CUTOUT qu'il va ou non générer (configuration via CV)

On peut aussi par CV lui préciser le nombre de bits de préambule. à utiliser.

Ce montage reprend plusieurs recommandations importantes:
1//Opto isolation entre l'entrée et l'étage d'amplification/sortie

2//Il dispose d une liaison inter BOOSTER qui est une "masse commune". ( un "0" commun pour aligner les mesures des tensions sur une même base: on compte les étages à partir du même référentiel "0" comme avec l'altitude avec le niveau de la mer) ce qui permet de mettre plusieurs boosters sur un même réseau si nécessaire.( en parallèle sur des sections indépendantes: coupure des 2 rails entres sections)

3//Il intègre aussi les recommandations de "security gap" qu'indique le site OPEN DCC dans le pilotage du pont H:
https://www.opendcc.de/info/railcom/railcom_f.shtml

Ceci sécurise notamment en cas de passage d'un booster vers un autre ce que pour le moment n'est pas repris (encore) dans le montage de lebelge2 ni LABOX.

J ai pris par principe que le pole C porte la "phase" du signal et traite la sortie J du booster via le IN1 du pont, respectivement le plot D traite le signal K via le IN2 du pont du L6203.
Il serait très simple de permuter logiciellement le cas par les tables de vérités de CCL LUT du CPU qui sont utilisés ici.

Par ailleurs les entrées provenant des signaux C et D passent par une unité CCL LUT sur une porte XOR ce qui filtre le porteur avant injection vers le TIMER B et les autres CCL LUT
Ainsi tous les consommateurs des signaux C & D appliqueront le même traitement vers les mêmes sorties.

Ma recommandation est de n'utiliser (pour la traction à minima) que des boosters identiques et de laisser la sortie de la centrale sans usage ou aux seuls accessoires si elle est suffisante pour l'ensemble du réseau.

On peut sur une version "labox remaniée" mettre les sorties qui alimentent le pont H à destination des "inputs" des boosters externes (plots CDE) sinon je ne vois pas comment celle ci gèrera le cas de multiple boosters ( sauf à en interdire en usage?)

Le hardware reprend notamment:
A//le filtre sur la sortie du pont (BOOSTER OPEN DCC)
B//Entrées CDE
C//indicateurs (leds) visuels des états des principaux I/O
D//une réserve locale d'énergie (condensateurs en entrée du montage)
E//un convertisseur DC-DC local (max 600mA)

Des pistes de compléments:
// i) régulateur de tension de sortie (via PWM sur un MOS en entrée de montage)
// ii) sélection ( via dip switchs) de seuils multiples pour déclanchement de la protection (ici calée au max = 4A)
// iii)une interface CAN nécessite d'utiliser des CPUs à 48 broches type AVR DB ou ATMEGA4809  pour libérer un port SPI (ici le SPI0 alors sur le port E - PE0 à PE3) afin d ajouter un transceiver CAN, possible donc mais pas immédiat.

Ltr




5
Vos projets / Re : RailCom: Générateur de CutOut avec booster
« le: Aujourd'hui à 04:21:36 am »
Bonjour

J'arrive un peu après la bataille... désolé

Toutefois je vous présente le "petit dernier".

BOOSTER RAILCOM(Able) avec toute la circuiterie qui va autours! Elle est ici très réduite du fit des apports des composants natifs du CPU. (Events, CCL, AC, Timer B, ...)

Le cœur est un CPU à 32 broches AVR type ATmega 4808 (celui du Nanoevery) ou un AVR Dx ( idéalement les DB et DD).

(On peut avec certains TINY de la série 2 arriver à quelque chose de très similaire, sinon il faut re ajouter des composants externes)

Le hard  reprend les signaux DCC d une centrale n'émettant pas de CUTOUT sur sa sortie signal. Entrée sur les plots C D E normalisés.
La conversion de puissance est confiée à un L6203
La protection est fixé à 4A
Alim DC DC locale pour alimenter le montage depuis l'entrée puissance.
De nombreuses leds sont ici présentes pour faciliter le décodage/troubleshooting des I/O.

J'ai passé un peu de temps à sélectionner les répartitions des pins au mieux de capacités/restrictions des CPU 32 broches.
L idée était d utiliser le plus possible tous leurs composants internes pour piloter l'ensemble du montage.

Fortement inspiré des montages BOOSTER CDE de PACO et du DCC BOSTER d'OPEN DCC est ici une évolution vers un CPU plus contemporain.

Que du classique...

Cote code je pars de la librairie d'AIKO PRAS ( AP DCC LIBRARY) qui doit être complétée pour ce montage.
Comme elle permet lors de l'assemblage d'identifier le bit 1 de fin de trame on sait alors partir de ce point pour générer le cutout et piloter les différents I/O.

A noter que le composant COMPARATEUR AC0 est utilisé pour la protection et que son déclanchement coupera le fonctionnement du montage ( AC0 OUT est mixé dans les CCL LUT dont es tables de vérités sont adaptées)

Ltr

6
Bonjour

Le bouclier assurant les détections est arrivé.  ;D
Ici en panneau 3x3 il faut encore l'équiper de ses composants "traversants" dont les "COILS" et le passage du fil dans l'anneau.
L'empreinte pour les COILS est adaptée pour différents modèles.
Illustrés ici sur les photos le cas de ZMCT103C de 1000 tours.

Quelques essais restent donc encore à mener pour les valider.

Pour memo ils sont basés sur le montage "PAISELY" proposé par NOXPOR (Eric) qui a été ici adapté au contexte "satellites" en approche modulaire.
Le NE555 remplace le NE556 puisque seule une "entrée" est utilisée.
Un opto assure la conversion de tension (5V ou 3V3) de l'état de sortie pour aller vers le CPU.
Des indicateurs lumineux (ROUGE = OCCUPE) ( VERT = libre) complètent le dispositif en affichant l'état sur la zone de détection.

En complément il est possible d'inverser l'état de sortie haut ou bas qui traversera l'optocoupleur pour indiquer au CPU l'état d'occupation.

Ltr


7
Vos projets / Re : Décodeur Accessoires Arduino
« le: avril 08, 2024, 10:16:26 pm »
Bonsoir

Il faut se pencher sur quelques réponses pour mieux cibler:
mode de d'alimentation des MEGA et des leds, de la couche LOCONET, ...

Un  schéma peut aider à mieux visualiser.

Ltr

8
Bonjour

En effet se passer de "AnaloguRead() comme nous en avons discuté va éviter des temps de traitement relativement "longs" qui plus est sur les AVR "historiques"

Sur les AVR plus récents ( AVR Dx et MEGATINY) il y a 2 éléments à considérer:
1 l analoguRead est beaucoup plus rapide que sur les anciens AVR.

Les mesures faites par Spence KONDE en témoignent:
https://github.com/SpenceKonde/DxCore/blob/master/megaavr/extras/Ref_Analog.md voir la section mTC/DxC) bool analogSampleDuration(duration)

En grosso ici lecture unique sur 12us ( comme sur les anciens AVR) et temps de traitement (10us) amènent à 22us ( 4 fois plus rapide que sur AVR anciens)

2/ Ces nouveaux AVR on vu 3 versions successives d'ADC et ne se commandent pas de la même façon (ce que masque cependant le analoguRead() classique)

Et pour utiliser directement les registres il faudra selon le CPU retenu tout se "palucher" à la main...

J'ai déjà écrit une partie mais elle n'est pas déclinable à toutes les broches ( il faudrait la retravailler) mais comme l analoguRead est (à priori) "assez rapide" c'est peut être  pousser un peu loin sans réel besoin... A voir par quelques tests.

A noter que sur les nouveaux AVR l'échantillonnage étant réglable (par configuration) peut sortir directement une valeur dont il restera à diviser par le nombre d'échantillons demandés. (le fameux >>4 utilisé par Christophe dans le code ci dessus pour la moyenne de 4 lectures successives)

Lorsque j aurai reçu le matos nécessaire je ferai quelques tests et vous communiquerai les résultats.

Ltr



9
Bonjour

Petit interlude pour connaitre le mapping de sensibilité(s) que vous arrivez à déceler depuis le primaire? ( et du range de valeurs en sorties).

Quid en fait du seul correspondant en "bruit" et donc d une valeur en deca la mesure de détection est à "nettoyer"?

Ltr

10
Bonjour

Le hard du bouclier d'inversion/protection est validé.
L'alimentation du montage depuis le DCC régule bien via le convertisseur DC DC.
Les commutations tournent comme une horloge. (déclanchement mécanique via bouton)

Il reste à valider les seuils des bascules, voir des temporisations de façon dynamique.

Si pour le HO je suis pourvu, les tests pour le N me sont impossibles car pas équipé pour.
Un volontaire qui dispose de l'infra pour cela? @Dominique peut être?

La suite dans la foulée...

Ltr


11
Bonsoir

Mes tests ont commencé...  et avec un code encore perfectible! ( un oubli de #conditionnel sur le Serial.begin pour le "debug" a eu tôt fait d'activer la pin TX en permanence faussant mes résultats! et le lançant sur des recherches bien loin de l'origine de cette erreur grossière!!

Tout semble rentrer dans l'ordre à présent.

La bonne nouvelle quand même c est que le hard semble faire ce qu'on attend de lui :) ( tests à poursuivre)

A suivre donc...



Ltr

12
Boucliers RAILCOM reçus. (traitant de la mesure donc hors CPU))

On va pouvoir tester!

Cote CPU avec cette approche par port série ( UART) en lien avec un bouclier, l'AVR DB en version 48 broches offre 5 UART et 6 en version 64 broches.

C est le plus "véloce" à offrir ces éléments. le MEGA2660 n'en propose que 4.

Par chance le bus SPI étant dissocie des broches UART on peut imaginer une passerelle CAN avec ce qui donnerait pour une carte jusqu'à 6 zones monitorées. (concept théorique à éprouver)

D autres approches restent possible mais je ne les conceptualise pas encore...


Laurent

13
Bonjour

Petit update sur les calculs des valeurs que j ai reprise dans le tableau suivant en appliquant les formules données.

Tout à droite on voit les hypothèses appliquées au montage d'ETIENNE66 avec les valeurs de R 2.7Mo C 470nF C = 1000 TUNRS et 1 en roulement autours.

Si on fait varier la tension VDCC  on peut dépasser
Idem si on a plus de 1 essieux de 10K en shunt on diminue la résistance d entrée ( mise en parallèle de résistances) ce qui influe aussi sur les valeurs du montage

On voit de fait que la ZENER ne vas pas être superflue pour écrêter tout ce qui dépasse. (elle va même avoir du boulot!)

Si je ne me trompe pas la puissance que doit absorber la zener va être du (delta entre Vin et Vzener) * I en sortie de R.

A priori pas un monstre à prévoir mais pas trop petit non plus.

En rouge les lignes ou les seuils V ou steps sont dépassés. SI la zener écrête on reste sur Vzener en VMax in cote CPU IN et donc au max des pas du convertisseur ADC ( 1023 si 10 bits, 4095 si 12bits,...)

Ou alors j ai mal fait mes calculs...?

De ce que j en déduit il faut:

ajuster les composants selon le nombre de tours du COIL
Déterminer le VDCC ( la norme pouvant aller jusqu à 24V....) nous serons peut être plus raisonnables en nous bornant à l intervalle [16V;18V]
Dimensionner les valeurs selon les seuils attendus et paramètres ayant court.

En montage SMD et fabrication industrialisée il est indispensable de connaitre les valeurs des composants. En revanche en montage traversant, chacun pourra avec ses inputs ajuster les valeurs à monter.

En SMD il serait toutefois possible de combiner avec des sélecteurs mais dans le volume imparti on passerait sur du double couche ( c est bcp plus cher à produire) et il n en est pas moins de devoir retenir quels valeurs imputer aux composants...

Donc reste confirmer ces hypothèses de calculs...

Ltr

 

14
Bonjour

Le bouclier N°1 dans sa version "light" (limitée à 4A en protection mais assurant ici la fonction d inversion et de réarmement externe) est arrivé et doit encore recevoir quelques composants pour être ensuite testé.

L'intérêt de cette version et de pouvoir être 100/100 autonome pour la gestion d'une boucle/triangle/plaque de retournement.

Le WE s'annonce chargé en tests d'autant que la connectique commence à arriver...

Ltr

15
Bonjour

J'ai (encore) retravaillé une implémentation du bouclier N°2.

J'avais précédemment réussi à lui confier la détection de court circuit avec inversion de la distribution des pôles DCC par optoMOSFET soit par l'intermédiaire d'une mesure par COIL soit par mesure via ACS712 5A. (au choix à l'implantation)
Cette inversion était alors temporisée en cas de pic (type court circuit) pour éviter de multiples "FLIP FLOP" avant qu'un dispositif de coupure n'intervienne à un autre niveau (bouclier N°1 ou dispositif externe)
Ce montage pourrait assuré cette coupure mais n'aurait pas disposé de mécanisme externe de ré armement. ( 1 broche supplémentaire d'interface serait requise ce qui aurait fait revoir la conception des modules de type N°2 et de leur brochage... un très gros travail dont je me passe volontiers :) !)

Toutefois je restais persuadé de pouvoir encore "améliorer la chose" car je disposais sur ce bouclier d'une broche d'interface confirmant une détection.

Comme de nombreux composants pour confirmer une présence étaient déjà présents, ils ne demandaient qu'à être exploités avec plus d'efficience,  il fallait chercher et trouver...

Il manquait alors au montage d'origine une interface avec cette sortie et la "pseudo opto isolation" permettant la bascule des niveaux de tension de façon optimale lorsqu'elle est nécessaire. ( pour PIN de CPU 3V3 ou 5V)

Un peu de travail pour y parvenir et tout caser dans les 16cm² à disposition sans bouger les broches de connexion, ajouter des composants, adapter la sérigraphie...

Tout y est à présent!  8)

Il y a même une petite astuce pour inactiver/ponter la partie d'inversion si elle n est pas nécessaire!

Le temps de revérifier ( encore et encore après une tempo propre à prendre le recul suffisant) ) et de confirmer les hypothèses ( quelques valeurs de composants dont il faut confirmer les valeurs précises) et il pourra partir aussi en production/fabrication...


Ltr

Pages: [1] 2 3 ... 39