LOCODUINO

Parlons Arduino => Vos projets => Discussion démarrée par: savignyexpress le novembre 02, 2017, 01:00:56 pm

Titre: Interface SPI
Posté par: savignyexpress le novembre 02, 2017, 01:00:56 pm
Bonjour à tous,

L'architecture du système de contrôle de mon nouveau projet de réseau N n'est pas encore complètement fixée. Bien que s'agissant d'un petit réseau, il y a déjà pas mal d'entrées-sorties à prévoir. J'ai évalué plusieurs solutions:

Centralisation et extension d'entrées-sorties

Répartition des fonctions en plusieurs microcontrôleurs

La dernière solution me paraît intéressante car une seule carte est à concevoir, de plus elle reviendra moins chère à faire fabriquer à l'unité puisqu'il y en aura 2.

Pour la communication, l'interface SPI me semble plus facile à mettre en oeuvre que l'I2C et bien adaptée pour une distance entre les cartes de 20-30 cm. Je pense mettre un connecteur ICSP qui permettra la programmation du microcontrôleur ou la connexion avec l'autre carte. Je serai ainsi certain de ne rien perturber en programmant le microcontrôleur.

La carte gérant la gare visible aura un rôle de maître au sens SPI tandis que la carte de la gare cachée sera esclave.

Avez-vous de l'expérience avec l'interface SPI et qu'en pensez-vous ?

Meilleures salutations.
Titre: Re : Interface SPI
Posté par: Dominique le novembre 13, 2017, 09:59:58 am
Bonjour Marc-Henri,

Le sujet est très intéressant car il nous concerne tous.

Personnellement je n’ai d’expérience du SPI que pour la communication avec des périphériques SPI (cartes SD, CAN, écrans LCD,..).
Mais si tu veux utiliser le SPI pour des échanges entre deux cartes Arduino, tu devras développer tout le protocole en logiciel dans l’Arduino.

Pourquoi ne pas utiliser le bus CAN justement qui ne nécessite que 2 composants (MCP2515/2551 par exemple) car le protocole est embarqué dans ces circuits et est particulièrement éprouvé et simple vu de l’Arduino ?

Bien amicalement
Dominique
Titre: Re : Interface SPI
Posté par: savignyexpress le novembre 13, 2017, 02:41:28 pm
Bonjour Dominique,

Pour mon application qui ne comporte que 2 cartes à Atmega distantes que d'au maximum 30 cm, le SPI devrait suffire.

En ce qui concerne le protocole, le besoin est d'envoyer 5-6 ordres distincts ainsi que récupérer l'état de la carte esclave qui tient aisément sur un byte. Le protocole devrait être assez simple, tout en gardant à l'esprit que, en SPI, l'envoi et la réception sont simultanés. L'esclave devra cependant travailler par interruptions, pas forcément nécessaire pour le maître.

Toutefois je vais aussi me documenter davantage sur la mise en oeuvre du CAN bus dont vous parlez tous avec conviction, en commençant par les pages Locoduino. Je ne suis pas sous Arduino, mais directement en avr-gcc / avr-lib. Je dois certainement trouver des librairies CAN pour cet environnement.

Bon début de semaine et meilleures salutations.
Marc-Henri