[RESOLU] Signal commun sur GPIO de deux RPI2

Le connecteur GPIO du Raspberry Pi, comment l'utiliser sur les Mode A, B et B+

Modérateur : Francois

L Prot
Messages : 8
Enregistré le : mer. 26 juil. 2017 08:18

[RESOLU] Signal commun sur GPIO de deux RPI2

Message par L Prot » mer. 26 juil. 2017 08:26

Bonjour,
J'ai deux RPI2. Sur le premier, j'utilise les ports GPIO 19 et 23 en les connectant de manière classique au 3,3V (port 1) via une résistance 10kohms et un interrupteur qui bascule chacun sur la masse (port 25) lorsque le signal extérieur intervient.
Je voudrais que le même interrupteur bascule les ports GPIO 19 et 23 du second RPI. Ce qui revient à utiliser le 3,3V et la masse du premier RPI pour piloter les ports du second RPI.
Est-ce que cela peut poser un problèmes ? Est-il prudent de relier les masses des deux (ports 25) entre elles ?
Merci d'avance.
L. Prot
Modifié en dernier par L Prot le jeu. 27 juil. 2017 21:38, modifié 1 fois.

guillaume9344
Raspinaute
Messages : 629
Enregistré le : mar. 6 janv. 2015 19:44
Localisation : finistere

Re: Signal commun sur GPIO de deux RPI2

Message par guillaume9344 » mer. 26 juil. 2017 18:53

bonjour, pour ce genre d’interconnexions , je vous conseil d'utiliser des optocoupleurs :
https://shop.pimoroni.com/products/spar ... r-breakout
@+
rpi b+ ,osmc, motioneyes
rpi 2 raspbian , server minecraft 24h/24 , utilisation gpio
orange pi pc debian ,utilisation gpio, motion cam

spourre
Raspinaute
Messages : 735
Enregistré le : lun. 22 déc. 2014 16:50
Localisation : 67380 LINGOLSHEIM

Re: Signal commun sur GPIO de deux RPI2

Message par spourre » mer. 26 juil. 2017 18:58

Bonjour,

1) Oui, il faut que les 2 systèmes disposent d'une référence de potentiel commune; il faut donc relier les masses.
Sans être obligatoire, il serait bien que les 2 Raspis soient alimentés par la même alim 5V (donc une costaud, selon les extensions et les périphériques).

2) En théorie, il n'y a pas de risque puisque les ports GPIO supportent 3.3 V en entrée.
Seulement, le diable se niche dans les détails:

-) Au boot (et rien ne prouve que les 2 Raspberries soient synchronisés), l'état des GPIO n'est pas défini.
Le port 19 du Raspi A, peut être à O V (niveau logique bas) alors que le même port (donc reliés ensemble) du Raspi B peut être à 3.3 V (niveau logique haut).
Une autre possibilité tout aussi malheureuse est un port au niveau haut (donc 3.3 V) et, en même temps, un appui sur le Bouton Poussoir.
Dans les 2 cas, le port au niveau haut est mis directement à la masse et il n'aimera pas (le courant que peut délivrer sans risque un port GPIO est limité).
Au mieux, il y a risque de fatigue voire de destruction du port GPIO en court-circuit.
Au pire, c'est tout le GPIO, donc le Raspi, qui saute.

Même si cette situation vous semble peu probable, loi de Murphy aidant, ELLE SE PRODUIRA.
Pour vous protéger (et le GPIO), vous pouvez mettre en série dans chacun des 4 GPIOs concernés, une résistance (environ 1 k Ohm) ou une diode petits signaux.

Sylvain

destroyedlolo
Raspinaute
Messages : 1585
Enregistré le : dim. 10 mai 2015 18:44
Localisation : Dans la campagne à côté d'Annecy
Contact :

Re: Signal commun sur GPIO de deux RPI2

Message par destroyedlolo » mer. 26 juil. 2017 19:12

Salut,

Je rajouterais à ce qui a été dit que la résistance de 10k est inutile car les GPIOs peuvent être configuré pour avoir une résistance de pullup.

A+
  • BananaPI : Gentoo, disque SATA de 2 To
  • Domotique : 1-wire, TéléInfo, Tablette passée sous Gentoo, ESP8266
  • Multimedia par DNLA
  • Et pleins d'idées ... et bien sûr, pas assez de temps.
Un descriptif de ma domotique 100% fait maison.

spourre
Raspinaute
Messages : 735
Enregistré le : lun. 22 déc. 2014 16:50
Localisation : 67380 LINGOLSHEIM

Re: Signal commun sur GPIO de deux RPI2

Message par spourre » mer. 26 juil. 2017 19:23

destroyedlolo a écrit :Salut,

Je rajouterais à ce qui a été dit que la résistance de 10k est inutile car les GPIOs peuvent être configuré pour avoir une résistance de pullup.

A+
Certes sauf qu'au boot, avant l'initialisation du matériel, tout est possible :mrgreen:

Sylvain

L Prot
Messages : 8
Enregistré le : mer. 26 juil. 2017 08:18

Re: Signal commun sur GPIO de deux RPI2

Message par L Prot » mer. 26 juil. 2017 20:13

Merci pour vos réponses.

Il est donc possible et souhaitable de relier les masses des deux RPi entre elles.

[quote="spourre"]
-) Au boot (et rien ne prouve que les 2 Raspberries soient synchronisés), l'état des GPIO n'est pas défini.
Le port 19 du Raspi A, peut être à O V (niveau logique bas) alors que le même port (donc reliés ensemble) du Raspi B peut être à 3.3 V (niveau logique haut).
Une autre possibilité tout aussi malheureuse est un port au niveau haut (donc 3.3 V) et, en même temps, un appui sur le Bouton Poussoir.
Dans les 2 cas, le port au niveau haut est mis directement à la masse et il n'aimera pas (le courant que peut délivrer sans risque un port GPIO est limité).
Au mieux, il y a risque de fatigue voire de destruction du port GPIO en court-circuit.
Au pire, c'est tout le GPIO, donc le Raspi, qui saute.

Même si cette situation vous semble peu probable, loi de Murphy aidant, ELLE SE PRODUIRA.
Pour vous protéger (et le GPIO), vous pouvez mettre en série dans chacun des 4 GPIOs concernés, une résistance (environ 1 k Ohm) ou une diode petits signaux.
[/quote]

Là je suis un peu surpris car je croyais que le montage (relié au +3,3V ou à la masse) forçait le niveau logique du port et ceci dès le boot, puisque le montage est alimenté en même temps que le RPi. Sinon, comme je l'ai déjà dit au début, il y a déjà une résistance de 10k (comme prescrit sur les schémas de ce site) entre le 3,3V délivré par le port 1 et les autres ports. Seuls les ports 19 et 23 se trouvent reliés à la masse quand le poussoir est enfoncé. Par contre, si je comprends bien, c'est entre ces ports et la masse que Sylvain propose une résistance de 1K ? Ceci dit le problème devrait se produire aussi avec un seul RPi alors ...

destroyedlolo
Raspinaute
Messages : 1585
Enregistré le : dim. 10 mai 2015 18:44
Localisation : Dans la campagne à côté d'Annecy
Contact :

Re: Signal commun sur GPIO de deux RPI2

Message par destroyedlolo » mer. 26 juil. 2017 21:55

spourre a écrit :Certes sauf qu'au boot, avant l'initialisation du matériel, tout est possible :mrgreen:
Ben, en théorie non :)
Je ne sais pas pour la framboise (n'en ayant pas), mais sur mes bananes, le démarrage est comme suit :
  1. au démarrage du proc, les GPIOs sont forcés en haute impédance. Il me semble que c'est le cas sur tous les CPU avec lesquels j'ai été amené à jouer justement pour éviter de tout faire fumer comme dans les cas que tu décris
  2. ensuite il initialise les ports en fonction de son fichier FEX (kernel < 4) ou depuis le device tree (DTB) depuis le 4
  3. enfin, il boote sur le kernel qui peut lui-aussi changer les GPIOs en fonction des périphs découvert et/ou des config ...
Bref, il faudrait voir ce que font les Broadcom mais ca doit être documenté pour la 1er phase.

Ceci dit, je plussois pour la résistance : mieux vaut prévenir que guérir :)
  • BananaPI : Gentoo, disque SATA de 2 To
  • Domotique : 1-wire, TéléInfo, Tablette passée sous Gentoo, ESP8266
  • Multimedia par DNLA
  • Et pleins d'idées ... et bien sûr, pas assez de temps.
Un descriptif de ma domotique 100% fait maison.

spourre
Raspinaute
Messages : 735
Enregistré le : lun. 22 déc. 2014 16:50
Localisation : 67380 LINGOLSHEIM

Re: Signal commun sur GPIO de deux RPI2

Message par spourre » jeu. 27 juil. 2017 00:01

L Prot a écrit : ....
Il est donc possible et souhaitable de relier les masses des deux RPi entre elles.
...
Par contre, si je comprends bien, c'est entre ces ports et la masse que Sylvain propose une résistance de 1K ? Ceci dit le problème devrait se produire aussi avec un seul RPi alors ...
1) Oui pour les masses car il faut bien que les circuits partagent une référence commune pour définir les niveaux logiques.
La seule exception, si on souhaite une isolation galvanique totale (pour des raisons de sécurité physique des personnes par exemple), est d'utiliser un optocoupleur (comme le précise Guillaume) mis c'est un peu disproportionné dans votre cas.

2) Sans rentrer dans des querelles d'experts, et pour faire simple, on va admettre qu'il peut se présenter (rarement), une situation dangereuse pour le port GPIO. On le protège en mettantn comme indiqué dans mon post précédent, une résistance (ou une diode) en série, c'est à dire insérée entre la pin du GPIO et le contact du Bouton poussoir. Actuellement, il doit y avoir un fil, c'est ce fil qu'il faut couper pour mettre la résuistance. Gardez votre résistance de 10 kOhm pour le tirge au + Vcc.

Nota: Même si des broches +5, +3.3 et masse sont présentes dans le connecteur d'interface du Raspberry, c'est un abus de langage que de parler de port GPIO pour ces broches. Leur état ne peut pas être changé par le processeur (SOC).

Sylvain

L Prot
Messages : 8
Enregistré le : mer. 26 juil. 2017 08:18

Re: Signal commun sur GPIO de deux RPI2

Message par L Prot » jeu. 27 juil. 2017 09:09

C'est clair.
Merci à tous.
LP

spourre
Raspinaute
Messages : 735
Enregistré le : lun. 22 déc. 2014 16:50
Localisation : 67380 LINGOLSHEIM

Re: Signal commun sur GPIO de deux RPI2

Message par spourre » jeu. 27 juil. 2017 13:17

L Prot a écrit :C'est clair.
Merci à tous.
LP
Tant mieux; Sinon, n'hésitez pas à revenir.
Si la réponse vous convient, vous pouvez éditer votre premier message et mettre le post à "résolu".
Cela peut faire gagner du temps à certains lecteurs.
Merci et à bientôt.

Sylvain

Répondre

Retourner vers « Le GPIO »