Bonjour.
J'aimerais savoir s'il est possible de connecter plusieurs MAX485 en parallèle, en slave pas de souci mais en master ???
Mon but est de placer plusieurs master en parallèle vers une connexion DMX unique.
Merci.
Version imprimable
Bonjour.
J'aimerais savoir s'il est possible de connecter plusieurs MAX485 en parallèle, en slave pas de souci mais en master ???
Mon but est de placer plusieurs master en parallèle vers une connexion DMX unique.
Merci.
Mettre plusieurs MAX485 sur un Arduino, ou mettre plusieurs Arduino et MAX485 sur le même bus RS485?
Je penche sur la deuxième façon de comprendre ta question.
Oui c'est possible et c'est prévu par les concepteurs du MAX485. Il faut faire de l'arbitrage de transmission.
L'arbitration c'est d'avoir l'état 0 (l'état récessif) qui n'est imposé par aucun MAX car c'est l'état au repos du bus et uniquement l'état 1 (l'état dominant) peut être appliqué par un MAX sur le bus. En cas d'envoi simultané de deux maîtres, le premier qui met un état récessif mais qui lit un état dominant sait qu'il n'est pas le seul à parler à ce moment et doit alors se taire pour laisser l'autre maître terminer la conversation.
Dans les grandes lignes :
- Il faut que la paire de conducteur qui sert au RS485 soit polarisées avec des résistances pour être à l'état récessif au repos (et non à tension égale).
- Il faut brancher les trois entrées du MAX pattes 2, 3 et 4 DI, DE et /RE ensemble. -> Je te laisse chercher pourquoi
- Il faut implémenter l'arbitration de la communication dans le code. En AVR, cela se programme en ayant une interruption, activable uniquement lors de l'émission et activée par le retour de la pin 1 du MAX (RO). Le code de cette interruption doit arrêter immédiatement la transmission, lancer un trimer et réessayé plus tard.
On peut ensuite aller plus loin en ayant une surveillance du bus de la part de tous les maîtres, et chacun implémente un délai pseudo-aléatoire après chaque activité sur le bus avant d'émettre.
Cela définit la priorité des messages, le délai le plus court sera prioritaire, à délai égale la valeur la plus élevée sera prioritaire (l'envoi d'un 0xFF ne peut pas être interrompu).
Je ne sais pas si une bibliothèque Arduino intègre cela.
Bonne recherche
Delias
Merci pour cette réponse, je vais me pencher plus à propos sur celle-ci et faire en sorte de comprendre le fonctionnement avant de faire n'importe quoi.
Je débute en prog C# et ce n'est pas toujours simple.
Encore Merci.
OK, merci pour l'info, je n'ai pas encore fait de choix précis ( en tant que débutant ).
OK je vais donc faire ce choix merci du conseil.