Auteur Sujet: BUS CAN 3 rails  (Lu 43228 fois)

eric-3r

  • Newbie
  • *
  • Messages: 9
    • Voir le profil
BUS CAN 3 rails
« le: novembre 01, 2016, 10:10:35 pm »
Suite à l’intérêt suscité par quelques membres et en réponse à Dominique sur le post présentation,
J’ai ouvert un nouveau sujet sur le « BUS CAN 3 rails ».
J’utilise le BUS CAN sur le réseau 3R du club CFC Centre. (Nouveau réseau 3 rails)
C’est un BUS communication renommé  fiables, il est souvent utilisé dans automobile.
Pour une fois la marque « Marklin » utilise un système standardisé !!  Railuino s'en est inspiré il y a déjà  5 ans. (Fin 2011) 
J’ai fait une présentation pour le club CFC à la fin 2015, les documents sont disponible sur le site du CFC à la rubrique Technique.  http://cfc.hebfree.org/
Le BUS CAN 3 rail du club est organisé par :
- 2 ordinateurs : Arduino + CAN BUS. (Module CAN au-dessus d’un Arduino UNO)
- 1 Mobile Station 2 Marklin.
- 1 Boitier de raccordement Marklin 60113
Cordialement
Eric
« Modifié: novembre 02, 2016, 08:42:42 pm par Dominique »

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 3039
  • 100% Arduino et N
    • Voir le profil
Re : BUS CAN 3 rails
« Réponse #1 le: novembre 02, 2016, 09:54:44 am »
Excellente initiative !
Avant de réaliser ma première centrale DCC. J'avais acheté une MS2 avec son alim et son boîtier, pour environ 60€. Elle devait servir à programmer uniquement et à comparer par rapport à mes réalisations.

J'avais remarqué que le boîtier se commande en protocole CAN. J'avais regardé RailUino tout naturellement mais n'avait pas été plus loin.

C'est bien de mettre ce sujet sur le tapis, maintenant qu'il existe des cartes CAN comme celle de Locoduino et d'autres : nous allons regarder comment adapter le logiciel à ces cartes.
Cordialement,
Dominique

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 3039
  • 100% Arduino et N
    • Voir le profil
Re : BUS CAN 3 rails
« Réponse #2 le: novembre 02, 2016, 06:16:45 pm »
Je fais référence en particulier à cette petite carte à moins de 2€ :

http://www.ebay.fr/ulk/itm/311520457612
Cordialement,
Dominique

eric-3r

  • Newbie
  • *
  • Messages: 9
    • Voir le profil
Re : BUS CAN 3 rails
« Réponse #3 le: novembre 02, 2016, 08:13:04 pm »
Bonsoir Dominique,
Oui c'est pas cher pour une carte CAN. :)
Les cartes utilisées pour Railuino sont produites par "Watterott electronic" et "MC Hobby" elles coûtent un peu plus de 15€ en Kit composants de surfaces montés.  ;)
Elles se montent directement sur l'Arduino. C'est les même composants que celle de Locoduino.
J'ai une documentation de Marklin en Allemand  :-[ pour le protocole BUS CAN si ça peu aider.

Dans le but d'évoluer vers une supervision donc de contrôler les trains, les signaux et les aiguillages, j'ai fait des essais avec un module CAN-USB à 18€ en chine utilisé en automobile et Itrain en version démo mais ça n'a rien donné, il manque certainement les données de protocole.
Le module fonctionne en réception de données avec son programme propriétaire, :( c'est déjà ça !!

Il y a une carte "CC-Schnitte 2.1" BUS CAN USB qui fonctionne avec la MS2 et Itrain, de "Das CAN digital Bahn Projekt" elle est vendue +/- 140€, c'est un peu cher quand on voit les prix des autres modules  :-\ 
Cordialement
Eric
« Modifié: novembre 02, 2016, 08:41:37 pm par Dominique »

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 3039
  • 100% Arduino et N
    • Voir le profil
Re : BUS CAN 3 rails
« Réponse #4 le: novembre 02, 2016, 08:40:09 pm »
Bonsoir Eric,

Je ne vois pas vraiment ce qui interdirait d'utiliser une carte CAN à 1,60€ plutôt qu'une carte à 15€ quand le chip qui gère le bus CAN est un MCP2515 dans les 2 cas.

Le seul obstacle est le quartz à 8MHz au lieu de 16, mais je dois regarder la bibliothèque qui semble l'avoir prévu, mais cela reste à vérifier.

Bien-sur cela pourrait faire perdre un peu de business à 1 ou 2 revendeurs de kits mais chacun est libre d'utiliser de l'open source ou pas.

Quand aux questions de la supervision, de la rétrosignalisation, des commandes d'aiguilles, de la signalisation et des itinéraires, Locoduino est le meilleur endroit, pour moi, pour choisir sa propre solution entre celles de Denis, Pierre et Jean-Luc, pour le gestionnaire et généraliser le bus CAN pour toutes les interconnexions.

Il y a pas mal d'articles sur les architectures possibles et quelques articles à venir sur un usage plus intensif du CAN "maitrisé par soi-même".

Tout cela nous promet des échanges très instructifs.

Amicalement
Dominique
Cordialement,
Dominique

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 3039
  • 100% Arduino et N
    • Voir le profil
Re : BUS CAN 3 rails
« Réponse #5 le: novembre 02, 2016, 10:22:17 pm »
J'ai même retrouvé le lien vers la bibliothèque permettant d'utiliser le MCP2515 à 8MHz donc, sans modifier la carte CAN "la moins cher du marché"

http://forum.locoduino.org/index.php?topic=2.msg1155#msg1155
Cordialement,
Dominique

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 3039
  • 100% Arduino et N
    • Voir le profil
Re : BUS CAN 3 rails
« Réponse #6 le: novembre 02, 2016, 11:10:28 pm »
Je viens de jeter un coup d'oeil dans les bibliothèques :

Il y a quand même un travail certain à faire pour utiliser cette bibliothèque à la place de celle de Railuino qui est très différente, plus ancienne  et bien moins documentée mais qui contient la plupart des commandes DCC nécessaires.

Inversement on devrait pouvoir essayer d'utiliser la bibliothèque de Railuino avec cette petite carte CAN en y reportant les constantes pour le 8MHz.

Une expérience intéressante en perpective !

Cordialement,
Dominique

eric-3r

  • Newbie
  • *
  • Messages: 9
    • Voir le profil
Re : BUS CAN 3 rails
« Réponse #7 le: novembre 03, 2016, 11:26:19 am »
Bonjour, et merci pour les infos  :)
Je vais de ce pas commander quelques petites cartes, je voudrais multiplier le nombre de postes de commande au club CFC à très peu de frais. ;)
Pour chaque poste supplémentaire, il faut: 1 Carte BUS CAN, 1 Arduino , et un PC avec le PGM Desktop Station. (PC même ancien)
Le nombres de membres augmente en 3 rails et le réseau peut faire rouler à vue (pas encore de supervision) +/- 7 trains + 3 locos de manœuvres.
Si ça ne va pas du coté soft (8MHZ), comme j'ai vu sur le forum, on peu changer le quartz à 16MHZ.
Cordialement
Eric
« Modifié: novembre 03, 2016, 12:01:13 pm par Dominique »

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 3039
  • 100% Arduino et N
    • Voir le profil
Re : BUS CAN 3 rails
« Réponse #8 le: novembre 03, 2016, 12:14:22 pm »
Changer le quartz est possible : je l'ai fait et la carte fonctionne comme la carte Locoduino.

Ajouter la possibilité d'initialisation avec le quartz à 8 MHz est probablement possible en récupérant les lignes de code dans la bibliothèque de la carte Locoduino que j'ai indiquée ci-dessus et en les intégrant dans le logiciel RailUino qui est carrément différent.

À côté de cela, j'aimerai comprendre un peu mieux la connexion des 4 LMD18200 :
-la séparation des zones
-la synchronisation des signaux
-est-ce que le boîtier Marklin est toujours utile ? D'ailleurs que fait-il de plus qu'un LMD18200 ?

Je pense qu'il y a des briques de RailUino qui sont réutilisables dans les projets DCC.

Merci d'avance
Cordialement,
Dominique

eric-3r

  • Newbie
  • *
  • Messages: 9
    • Voir le profil
Re : BUS CAN 3 rails
« Réponse #9 le: novembre 03, 2016, 07:10:09 pm »
Pour la séparation des zones ?
Le réseau 3R se compose 4 zone, : contour externe, contour interne, voies de triage et 1er étage. 
Tout les Boosters et le boitier sont séparé électriquement.
Juste les masses des rails sont connectées ensemble (Fil brun en 3 rails)   

La synchronisation des signaux ?
Les signaux sont synchronisé, entre l'entrée et la sortie des Booster.
Il y a 2 cas possible
La loco passe d'une zone connectée au boitier a un booster.   
La loco passe d'un booster à un autre.

Est-ce que le boîtier Marklin est toujours utile ? D'ailleurs que fait-il de plus qu'un LMD18200 ?
Dans le boitier Marklin, il y a une série de circuit pour décoder le signal du bus CAN, je n'ai pas le schéma. :-[
Au début la sortie du boitier était connectée aux rails mais 2,15A c'est trop peu.       
Les 4 boosters sont connecté en amplificateur de courant à la sortie du boitier.
Et le boitier est utile pour la reconnaissance MFX en mode By-pass.
J'espère avoir bien répondu a tes questions.

patrick

  • Newbie
  • *
  • Messages: 43
    • Voir le profil
Re : BUS CAN 3 rails
« Réponse #10 le: novembre 23, 2016, 07:38:25 pm »
Bonjour,

Je m'intéresse particulièrement au CanBus pour l'utiliser intensivement dans mon projet d'automate. En parcourant ce premier fil de discussion (je viens de m'inscrire) je vois qu'il y a un questionnement au sujet de la fréquence du crystal. (8MHz vs 16MHz...) Quel est-il exactement?

Au plaisir,
Patrick

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 3039
  • 100% Arduino et N
    • Voir le profil
Re : BUS CAN 3 rails
« Réponse #11 le: novembre 23, 2016, 07:44:04 pm »
Bonjour Patrick,

Etes-vous bien dans le modélisme ferroviaire ?

Si vous lisez les différents sujets relatifs au CAN et les articles, vous verrez qu'il existe des cartes CAN à base de MCP2515 à 16 Mhz ou 8 Mhz.

Les 2 fonctionnent mais nous n'avons pas encore testé l'inter-fonctionnement entre une carte à 16MHz et une carte à 8MHz. L'avez-vous testé ?
Cordialement,
Dominique

patrick

  • Newbie
  • *
  • Messages: 43
    • Voir le profil
Re : BUS CAN 3 rails
« Réponse #12 le: novembre 23, 2016, 08:03:33 pm »
Oui, je suis dans le modélisme ferroviaire ;-)

Et oui, j'ai déjà testé l'inter-communication entre plusieurs horloges, 8, 16 et 20MHz. Pour ma part, j'utilise du 20MHz dans mes montages.

Si je me souviens bien (mais je peux me tromper - je ne suis pas électronicien), j'ai fait le test entre 8Mhz et 20Mhz. La chose à faire est simplement d'ajuster les bitrates (débits) lors de l'initialisation des différentes cartes. Exemple:
- sur la carte 8MHz, initialiser le protocole avec la constante CAN_250KBPS
- sur la carte 20MHz, initialiser le protocole avec la constante CAN_100KBPS

En effet, cette fréquence est utilisée pour cadencer l'horloge de lecture des bits qui proviennent du flux/transciever (MCP2551). Il suffit normalement d'avoir la même valeur: ici, cela donne 8x250K = 20x100K.

En espérant que cela vous aidera.
Patrick


Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 3039
  • 100% Arduino et N
    • Voir le profil
Re : BUS CAN 3 rails
« Réponse #13 le: novembre 23, 2016, 08:08:30 pm »
Merci, très intéressant.

J'ai trouvé une bibliothèque qui supporte les 8 et 16 MHz, mais pas le 20MHz.

Votre astuce est très efficace. Cela mériterait que j'ajoute un paragraphe dans les articles sur le bus CAN.

Cordialement
Dominique
Cordialement,
Dominique

patrick

  • Newbie
  • *
  • Messages: 43
    • Voir le profil
Re : BUS CAN 3 rails
« Réponse #14 le: novembre 23, 2016, 08:32:19 pm »
Les specs du 2515 autorisent 4, 8, 16 et 20MHz.

Ensuite, je suis très surpris de l'assertion: "bibliothèque qui supporte les 8 et 16 MHz". Normalement, la seule condition pour que tous les modules sur un même bus puissent communiquer est d'avoir le même bitrate/débit et non la même fréquence d'horloge... Je ne pense pas qu'une librairie puisse être écrite pour telle ou telle fréquence...

La seule chose que je peux imaginer, c'est que les bitrates soient calculés pour une fréquence donnée au moment de l'écriture de la librairie! Mais ensuite, il suffit d'ajuster les ratios entre chaque module comme dans mon exemple précédent... Dans mes tests, je ne me souviens pas avoir dû modifier quoi que ce soit dans la librairie que j'utilise pour la faire fonctionner à différentes fréquences.

Mais bon, c'est ma compréhension de la chose... ;-)
Au plaisir,
Patrick