Problème avec port série

Bonjour,

J’ai une situation un peu compliquée sur les bras et j’espère que vous pourrez me donner des pistes. Il s’agit d’un projet dont j’hérite en cours de route. Je suis développeur web (donc pas un débutant en informatique), mais je ne maîtrise pas bien l’environnement Raspberry ou les questions matérielles.

J’ai cinq Raspberry Pi 4 Model B/4GB. Ils sont tous identiques au niveau matériel, sauf un :

  • Le premier a une carte d’extension avec un seul port série. Ce port fonctionne correctement.
  • Les autres ont une autre carte d’extension (tous la même), avec deux ports série.

La carte avec deux ports est celle-ci : https://www.waveshare.com/wiki/2-CH_RS232_HAT

Pour des raisons pratiques (boîtiers trop petits), le premier connecteur (sur toutes ces cartes à deux ports) a été démonté. On le voit sur la photo suivante, sur la droite :

C’est donc le connecteur « channel 1 » qui a été démonté. Je ne sais pas si cette opération peut affecter le fonctionnement de l’autre port (channel 2).

Mon problème est que ce deuxième port ne semble pas fonctionner. Aucune donnée ne semble envoyée ou reçue.

La personne qui a testé ces Pi (avant que le connecteur série en trop soit démonté) m’affirme que cela fonctionnait. Mais il n’est plus sûr du port qu’il a utilisé pour ses tests (probablement celui qui a été démonté)…

Sur le premier Pi (celui qui fonctionne), j’ai pu faire le test suivant :

  • utiliser un câble série et un adaptateur série-USB pour relier le Pi à un ordinateur Windows
  • sur Windows, utiliser le programme « Simple Serial Terminal »
  • sur le PI, utiliser le programme « minicom » (que je lance avec la commande minicom -b 9600 -o -D /dev/ttyAMA0)
  • si j’ouvre la connexion dans le programme sous Windows et que je tape des lettres, je les vois apparaître dans la fenêtre minicom sur le Pi (et inversement)

Donc c’est un protocole de test basique mais qui me montre que les données sont bien transmises et reçues (sur ce Pi uniquement).
Sur les autres Pi (avec les deux ports série dont un connecteur démonté), cette même procédure ne donne aucun résultat. Rien ne s’affiche à l’autre bout (dans les deux sens).

Sur chacun des 5 Pi qui posent problème, j’ai testé la commande minicom ci-dessus avec les noms de ports suivants :

  • ttyAMA0
  • ttyAMA1
  • ttyS0
  • serial0
  • serial1

Notez aussi que la LED « PWR » est allumée (on le voit sur la photo), mais aucune des autres LED (RX01, TX01, RX02, TX02) ne s’allume à aucun moment (câble branché ou non, envoi de données ou non). Je ne sais pas si c’est normal.

Quelles peuvent être les causes du problème ? Et quelles pistes pour le résoudre ?

Merci d’avance pour votre aide. :slight_smile:

hello,

dans un des programme python fournit par waveshare ( https://github.com/waveshare/2-CH-RS232-HAT/blob/master/python/examples/test.py) il utilise /dev/ttySC0 et/dev/ttySC1 … (?)

1 « J'aime »

Bonjour,

Coté logicielsur les PI , passer la commande ps -aef | grep getty pour voir quels sont les ports série actifs.

A+

1 « J'aime »

Merci pour vos réponse !

@bof

dans un des programme python fournit par waveshare ( https://github.com/waveshare/2-CH-RS232-HAT/blob/master/python/examples/test.py) il utilise /dev/ttySC0 et/dev/ttySC1 … (?)

Merci pour la suggestion. J’ai donc fait mes tests avec ces deux noms de ports.

Contrairement à mes autres tests, le programme minicom ne se lance pas du tout avec ces deux noms. On attend une seconde et on revient au terminal normal. Il n’y a aucun message d’erreur ou autre.

Par la même occasion j’ai aussi testé les noms de ports ttyAMA2, 3 et 4, mais sans succès (mais minicom se lance bel et bien avec ces noms).

@jelopo

Coté logiciel sur les PI , passer la commande ps -aef | grep getty pour voir quels sont les ports série actifs.

Merci. J’ai tenté cette commande (depuis l’utilisateur pi) mais j’avoue que je suis incapable d’interpréter le résultat :

pi@pi04:~ $ ps -aef | grep getty
pi 11056 11027 0 12:36 pts/0 00:00:00 grep --color=auto getty

Est-ce bien la bonne commande ?

En faisant d’autres recherche sur le web, je trouve la commande dmesg qui m’affiche beaucoup de choses. Si je cherche « tty » dans le tas, je trouve les lignes suivantes :

[0.000000] Kernel command line: coherent_pool=1M 8250.nr_uarts=1 snd_bcm2835.enable_compat_alsa=0 snd_bcm2835.enable_hdmi=1 snd_bcm2835.enable_headphones=1 video=HDMI-A-1:1920x1080M@60 smsc95xx.macaddr=DC:A6:32:6B:0F:C6 vc_mem.mem_base=0x3ec00000 vc_mem.mem_size=0x40000000 console=tty1 root=PARTUUID=19beead7-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet splash plymouth.ignore-serial-consoles
[0.001106] printk: console [tty1] enabled
[1.169814] fe201000.serial: ttyAMA0 at MMIO 0xfe201000 (irq = 29, base_baud = 0) is a PL011 rev2
[1.170523] fe201400.serial: ttyAMA1 at MMIO 0xfe201400 (irq = 29, base_baud = 0) is a PL011 rev2
[1.171144] fe201600.serial: ttyAMA2 at MMIO 0xfe201600 (irq = 29, base_baud = 0) is a PL011 rev2
[1.171718] fe201800.serial: ttyAMA3 at MMIO 0xfe201800 (irq = 29, base_baud = 0) is a PL011 rev2
[1.172335] fe201a00.serial: ttyAMA4 at MMIO 0xfe201a00 (irq = 29, base_baud = 0) is a PL011 rev2

J’ai testé avec les noms de port ttyAMA2 à 4, avec le même résultat que pour ttyAMA0 (donc rien).