Parlons du CAN
J'avais testé le bus Can de l"ESP32 en me servant de la carte LaBox qui contient son intterface : un simple circuit SN65HVD230 de Texas que l'in trouve sur des petites cartes CJMCU-230 entre 5 et 6 €.
Le programme de test est joint ci-dessous : "Can-test-Jan-21"
Et la discussion initiale ici :
https://forum.locoduino.org/index.php?topic=1140.msg12284#msg12284Comme ciible de test j'avais utilisé une carte satellite V1 programmée avec son logiciel d'origine que l'on trouve sur le Git Locoduino, dans le dossier Locoduinodrome :
https://github.com/Locoduino/LocoduinodromeLe fil noir sert à exciter les entrées des détecteurs ponctuels.
Ensuite j'ai réalisé un programme de test en combinant la version LaBox-078 et un jeu de test consistant à envoyer des commandes de signaux toutes les 2 secondes et à recevoir les messages Can venant du satellite, à savoir : la détection de présence et les 2 détections ponctuelles.
Ce programme est bien évidemment donné ci-dessous : "LaBox-078-TEST_CAN_SATELLITE"
Avec son ID_SAT = 5, ce satellite reçoit sur ID 25 et émet sur ID 15.
Ce programme permet de faire fonctionner simultanément des trains à partir des Withrottle, EngineDriver, Z21 et la petite télécommande radio de msport qui est décrite dans l'article ici : (demain).
Il envoit aussi une suite de commande pour deux signaux : un sémaphore (3 leds); un carré avec rappel de ralentissement (5 leds) et un servo d'aiguillage :
Les 3 octets des messages Can envoyés toutes les 2 secondes sont :
byte jeuTestsSignaux[7][3] = {
0x20, 0x20, 0x00, //VL1 + VL2
0x02, 0x20, 0x00, //A1 + VL2
0x08, 0x80, 0x82, //S1 + RR2 + Devie
0x02, 0x20, 0x00, //A1 + VL2
0x20, 0x02, 0x00, //A1 + A2
0x02, 0x40, 0x01, //A1 + RRc2
0x08, 0x08, 0x80 //S1 + C2 + devie
};
LaBox est reliée à un port USB pour afficher les messages dans le moniteur de l'IDE.
Le satellite est relié à un autre port USB et j'utilise un émulateur de terminal pour visualiser ce qui en sort.
Jusque là, vous me suivez ?
Bon, les résultats :
J'ai 4 cartes LaBox équipées et 5 cartes CJMCU-230 qui, je le rappelle, ne contiennent que l'ampli de ligne en 3,3V : SN65HVD230.
Mes 4 cartes Labox fonctionnent avec ce test mais avec UNE SEULE des cartes CJMCU-230 !
Avec les 4 autres cartes le bus CAN ne transmet rien (le satellite ne reçoit rien) et le fonctionnement de LaBox est perturbé (possibilité de connecter un Throttle Wifi, mais impossible de sélectionner une adresse DCC donc pas de commandes DCC)
Ca ne va pas plus loin que :
4 From Throttle : NiPhoneDB
4 From Throttle : HUBDE241D3-07EA-4A60-BD6B-EE19
4 From Throttle : MT+S18<;>S18
4 From Throttle : MT-S18<;>r
4 From Throttle : MT+S18<;>S18
4 From Throttle : MT-S18<;>r
4 From Throttle : MT+S18<;>S18
au lieu de :
4 From Throttle : NiPhoneDB
Throttle 4 NiPhoneDB
4 -> *10
4 From Throttle : HUBDE241D3-07EA-4A60-BD6B-EE19
Throttle 4 HUBDE241D3-07EA-4A60-BD6B-EE19
4 From Throttle : *+
Throttle 4 *+
envoi 0 0x20 0x20 0x0
recu de 21 : 0x0
envoi 1 0x2 0x20 0x0
recu de 21 : 0x0
4 From Throttle : MT+S18<;>S18
Throttle 4 MT+S18<;>S18
4 -> MT+S18<;>
4 -> MTAS18<;>F00
4 -> MTAS18<;>F01
4 -> MTAS18<;>F02
4 -> MTAS18<;>F03
4 -> MTAS18<;>F04
4 -> MTAS18<;>F05
4 -> MTAS18<;>F06
4 -> MTAS18<;>F07
4 -> MTAS18<;>F08
4 -> MTAS18<;>F09
4 -> MTAS18<;>F010
4 -> MTAS18<;>F011
4 -> MTAS18<;>F012
4 -> MTAS18<;>F013
4 -> MTAS18<;>F014
4 -> MTAS18<;>F015
4 -> MTAS18<;>F016
4 From Throttle : *
4 -> MTAS18<;>F017
4 -> MTAS18<;>F018
4 -> MTAS18<;>F019
4 -> MTAS18<;>F020
4 -> MTAS18<;>F021
4 -> MTAS18<;>F022
4 -> MTAS18<;>F023
4 -> MTAS18<;>F024
4 -> MTAS18<;>F025
4 -> MTAS18<;>F026
4 -> MTAS18<;>F027
4 -> MTAS18<;>F028
4 -> MT+S18<;>V0
4 -> MT+S18<;>R1
4 -> MT+S18<;>s1
Locomotives ------------------
0 : Loco reg:1 id:18 max:128 +/-speed:0 functions:
Throttle 4 *
4 -> *10
envoi 2 0x8 0x80 0x82
recu de 21 : 0x0
envoi 3 0x2 0x20 0x0
recu de 21 : 0x0
4 From Throttle : *
Throttle 4 *
4 -> *10
envoi 4 0x20 0x2 0x0
recu de 21 : 0x0
envoi 5 0x2 0x40 0x1
recu de 21 : 0x0
4 From Throttle : *
Throttle 4 *
4 -> *10
envoi 0 0x20 0x20 0x0
recu de 21 : 0x0
envoi 1 0x2 0x20 0x0
recu de 21 : 0x0
où l'on voit la connexion de Withrottle et les messages émis et reçus
Diagnostic :
Ce sont les cartes CJMCU-230 qui posent problème : une seule fait que l'ensemble fonctionne bien et les 4 autres perturbent l'ESP32.
J'aimerai savoir si, parmi ceux qui ont monté LaBox, vous avez pu tester la connexion Can. Attention, pour ne pas mettre le circuit à l'envers, le SN65HVD230 doit se trouver du coté de la carte LaBox.
Je ne m'attends pas à beaucoup de réponses mais vous avez tout ce qu'il faut maintenant pour le faire et je vous en remercie d'avance.
Je vais donc commander d'autres CJMCU-230 auprès d'autres fournisseurs.
Autre anomalie :
J'ai constaté qu'à la mise en route du couple LaBox + Satellite (avec la bonne carte CJMCU-230) , les messages Can envoyés ne sont pas ceux du jeu de test, par exemple, vu coté satellite :
Rid: 25 0x0 0x20 0x0 nor
Rid: 25 0x0 0x2 0x0 nor
Rid: 25 0x0 0x20 0x0 nor
Rid: 25 0x0 0x2 0x0 nor
Rid: 25 0x0 0x20 0x0 nor
Rid: 25 0x0 0x2 0x0 nor
Mais dès qu'un Throttle est correctement connecté, le test Can redevient normal. Cela vient peut-être du logiciel LaBox.
Mais le lendemain, tout fonctionne bien : je ne sais pas ce qu'il s'est passé : espoir !