station DCC avec esp32 et deux lmd18200 : E21 les débuts d'un prototype

 ce projet est né de la fusion de 3 idées que j'avais depuis quelque temps :
- réaliser un pcb pour la centrale D17 d'Ulysse, en ajoutant une connectique assez complète et pratique pour les utilisateurs
- construire 3 stations à 2 voies analogiques pour le club
- disposer d'un prototype pour faire des tests en vue d'une station plus évoluée dans le futur

les dispositions principales d'un 1er pcb que j'avais dessiné pour la D17 ont été maintenues. Les 2 amplis lmd18200 étaient déjà présents, parce que j'avais de la place sur un cadre fixé aux dimensions 100x100mm, chères aux fabricants de pcb
j'ai toutefois décidé de migrer vers l'esp32 car :
- il me fallait plusieurs voies adc pour lire les potentiomètres rotatifs qui servent de manière traditionnelle pour l'analogique
- on n'a jamais assez de broches disponibles
- l'esp32 constitue l'avenir, c'est actuellement incontournable pour un prototype destiné à évoluer

l'inconvéniant, c'est que le formidable soft qu'a écrit Ulysse pour la partie wifi ne peut pas être traduit facilement pour l'esp32 ; on n'aura donc pas de wifi dans un 1er temps ...
aussi, je commence juste l'ecriture des softs de bas niveau pour le fonctionnement de la carte : pour l'instant, c'est toujours les 3 mêmes pakets dcc qui défilent en boucle, un bon début diront de bonnes gens, mais les tâches qu'il reste à accomplir sont nombreuses et costaudes pour certaines, dont la prochaine qui est la planification de l'envoi des pakets dcc entrés dans le système

le projet est pour l'instant une carrosserie vide, dans laquelle il faut rajouter la transmission, le moteur et le carburant ; cette description, quelque peu prématurée, est donc faite à titre de partage d'information

quelques images :
vue 3d kicad :

photo :



synoptique basique :



schéma 1ère partie :

schéma 2ème partie :

description :
en + des interfaces via la wifi, qui seront entièrement soft, E21 propose les raccordements suivants :
5 interfaces spi pour les modules : 
- 74hc595 (pour mosfets, relais, leds, etc.)
- tlc5947 (pour leds avec dimming, sans résistances)
- max7219 (pour leds en matrice)
- s88
- s88N (connectique rj45)
certains signaux comme clk et mosi sont mutualisés ; tous les signaux en sortie ont leur propre buffer, du type 74hct04, de manière à faire une interface entre le 3v3 de l'esp32 et le 5v utilisé sur les modules ; (donc tous ces modules, qui sont courants dans le monde arduino et en modélisme ferroviaire fonctionnent en 5v) ; attention, le 74hct04 inverse les signaux
tous les modules spi peuvent fonctionner (quasi) simultanément, on peut par exemple scinder ses modules s88 en 2 segments, puis raccorder un segment sur le s88N et l'autre sur le s88
la sélection du module à traiter (latch, rst, ps) se fait par un 74hct595, qui augmente le nombre de sorties et les porte à 5v
bien entendu, les connections sont optimisées pour ces modules courants du commerce, mais elles peuvent servir à toute utilisation à base de spi à 1 fil
avec quelques limitations, les s88 peuvent servir d'interface spi avec miso et mosi (communication dans les 2 sens)

4 connecteurs i2c pour les modules :
mcp23017 (3x)
pca9685

les modules spi et i2c sont disponibles sur connecteurs au pas de 2.54 (jst, à visser), ou sur connecteur à visser au pas de 3.5, avec une petite réduction du nombre de fils pour ces derniers

1 interface pour rs485 ou CAN ou tx/rx :
par défaut elle est câblée en rs485
pour le CAN ou le tx/rx, il faut dessouder le max3485, puis mettre côté soudures le sn65hvd230 pour le CAN, ou 2 resistances pour le tx/rx
le tx/rx est destiné à une interface PC via un module usb/série, ceci pour les logiciels qui utilisent les lignes de handshaking, pouvant poser des soucis au niveau de l'esp32
le tx/rx peut aussi être pris sur le connecteur rab, compte tenu de la remarquable souplesse d'utilisation des pins de l'esp32
la connectique nécessaire peut être prise sur jack 4p4c, ou par fils soudés directement sur le pcb

1 connecteur où j'ai mis les broches en rab :
2 io avec option adc
la pin de la inbuilt led
1 sortie du 74hct595 (5v)
le 3v3 et le 5v

3 socles pour leds rvb :
de type P9823 ou APA106 5mm
le 3ème socle peut être équipé d'un connecteur au pas de 1.5 (jst), afin d'ajouter des leds rvb  en dehors de la carte

2 socles pour les signaux dir et pwm :
peuvent être utilisés pour des boosters supplémentaires
pas de 2.5 (jst)
les signaux sont bufférisés et inversés

2 lmd18200 :
les configurations suivantes peuvent être envisagées :
- 2 sorties analogiques synchro ou indépendantes
- 2 sorties dcc synchro ou indépendantes
- 1 dcc et 1 analogique
chaque sortie a 2 leds témoin :
- l'une ou l'autre led : l'un ou l'autre sens de circulation en analogique
- les 2 leds :dcc
- aucune led : pas de signal en sortie

l'alimentation :
elle est reçue sur jack, ou sur bornes à visser ; les bornes à visser sont doublées, pour permettre un repiquage
la tension est typiquement comprise entre 18v et 15v ; une alimentation à découpage de 15 ou 18v 6A conviendra
il n'y a pas de protection : la protection générale est assurée par l'alimentation en amont, celle du dcc par les lmd18200, du 5v par le module convertisseur, du 3v3 par le module esp32  ; on veillera à ne pas tirer de puissance sur le 3v3

la réalisation :
il a fallu avoir recours à des composants smd pour 2 raisons :
- congestion des pistes sur le pcb : des composants through hole prennent beaucoup de place sur le cuivre et ce des 2 côtés
- obsolescence des ci 74hct : on ne trouve plus de 74hct595 en through hole ! à la rigueur, j'aurais pu en dénicher au fin fond de la chine, mais l'argument principal du through hole, c'est de mettre les composants sur support afin de les remplacer facilement, ce qui n'a plus de sens si le composant ne peut plus être sourcé ...
travailler avec des composants cms (de grande taille : ics au pas de 1.27, passifs en 0805), est contrairement à certaines idées reçues beaucoup + facile qu'avec des through hole ! il suffit d'être équipé d'une buse à air chaud (le prix d'1 wagon à 1 essieu) : plus besoin de plier ou de couper les pattes, ni de retourner le pcb (et faire tomber la moitié), ni de souder les broches individuellement
généralement, je fais faire un stencil pour chaque pcb, 1 stencil peut comporter les pads pour plusieurs pcb différents, pour E21 le stencil est découpé en 6 stencils E21 identiques (j'ai pensé aux autres) ; chaque stencil à un sous stencil destiné aux composants optionnels situés côté cuivre, ainsi qu'une forme pour les ics, dans l'optique d'une éventuelle nécessité de remplacement en cas se fausse manœuvre
l'utilisation d'un stencil est aisé : on le fixe sur le pcb, on étale la pâte à souder, retire le stencil, puis on chauffe les pads avec la buse, c'est fait

pour gagner du temps sur la réalisation et expérimenter le service smt de jlcpcb, j'ai fait fabriquer les pcb, y compris la fourniture et la pose des composants smd ; il a fallu être attentif à 2 choses
- les composants proposés ne sont pas tous disponibles pour le service smt, j'ai dû faire des changements de référence en dernière minute
- l'orientation des composants n'est pas la même pour kicad et pour jlcpcb, je trouve ces derniers bizarres ... une erreur de 90% est souvent très visible, une erreur de 180° = danger ; on peut vérifier la bonne implantation sur leur site, et rectifier si (car) nécessaire

les composants through hole sont à souder par l'utilisateur ; il y a toujours un risque que le footprint proposé par le logiciel de dessin ne correspond pas au composant sourcé, c'est pour cela que j'ai approvisionné ces composants pour faire les vérifications avant de commander les pcb ; pour autant, je me suis quand-même planté dans la taille des pads du jack d'alimentation, bien disposés mais trop petits ; il faut réusiner les broches du jack pour le faire rentrer ... en espérant qu'il n'y ait pas d'autre erreur (c'est assez gonflé de faire faire des pcb, de + avec composants, sans avoir préalablement validé un prototype, mais pour l'instant je m'en sors bien, pourvu que ça dure, d'autres ont eu moins de chance)
(édit 2022 : inversion LAT et CLK sue les connexions 74hc295 - pas grave)

la réalisation par jblpcb est de qualité bien suffisante pour un projet d'amateur : que demander de + pour 4€ les 10 plaques ? eh bien, que leur technicien trouve une bourde dans le dessin, et me fait un mail pour me proposer la correction, auquel j'ai immédiatement répondu par l'affirmative, en me confondant en excuses et en remerciement ; il est évident qu'en contrepartie, je m'engage moralement à recommander vivement les services de jlcpcb - c'est fait -















Commentaires

Posts les plus consultés de ce blog

station DCC avec esp32 et deux lmd18200 : E21 : le scheduler