GNU/Linux >> Tutoriels Linux >  >> Linux

Linux – Port série Raspberrypi ?

J'ai un écran sur lequel je veux écrire. Ceci est possible via le port série. Lorsque j'utilise un convertisseur USB vers RS-232, cette chose fonctionne comme un charme. J'ai même essayé d'utiliser uniquement les fils RX, TX et GND du convertisseur série, et cela fonctionne toujours. Maintenant, je veux utiliser cet écran dans un petit boîtier couplé à un Raspberry Pi, donc je n'ai plus d'espace pour le gros convertisseur USB-RS-232.
J'ai essayé d'utiliser le port série interne du Framboise. Il est réglé sur 9600 bauds en utilisant $ sudo stty -F /dev/ttyAMA0 9600 . Mais lorsque je le connecte à l'écran, il n'affiche que des ordures et les commandes de contrôle normales (qui fonctionnaient avec le convertisseur RS-232) ne fonctionnent pas non plus.
Utilisation de $ sudo minicom -b 9600 -o -D /dev/ttyAMA0 et en bouclant les GPIO TX vers RX, il affiche les bons caractères dans le minicom console.
Bouclez maintenant le port série GPIO vers les broches RX et TX du convertisseur USB-RS-232 et connectez la terre et ouvrez les deux ports dans minicom avec baud réglé sur 9600, ne montre que parfois une sortie sur l'autre terminal, mais quand il montre une sortie, c'est aussi juste des ordures.

Réponse acceptée :

Je suis tout à fait convaincu que le problème est que le Pi n'a pas d'interface RS232, alors que l'écran en a.

Le Pi a une interface (LV-)UART, sa broche TX sort 0V pour un logique et 3.3V pour un 1 logique . C'est assez facile à mettre en œuvre, puisque 3.3V est déjà disponible sur le Pi. Mais cela ne fonctionne que pour les communications sur un seul circuit imprimé ou au sein d'un seul appareil.

Pour la communication entre appareils sur de plus longues distances, un système moins sujet aux signaux parasites comme le RS232 est utilisé. Alors que la structure logique de la forme d'onde (débit binaire, synchronisation, démarrage, arrêt, parité et bits de données) est la même que pour l'UART, les niveaux de tension sont de -15 V à -3 V pour un 1 et +15V…+3V pour un logique . Cela signifie qu'il n'y a pas seulement des tensions plus élevées (et négatives), leur sens est également inversé.

Donc, si l'écran attend des niveaux RS232 et obtient ces niveaux de 3,3 V du Pi, il ne reconnaît généralement pas les données, et si c'est le cas, ce ne sont souvent que des ordures.

Et bien sûr, si vous connectez RX et TX de la même interface, vous obtenez ce que vous attendez.

Mais :si la sortie RS232 TX n'est pas limitée en courant, cela pourrait même endommager votre Pi !

Il existe des cartes de conversion UART vers RS232, mais si vous aimez souder, les cartes ne contiennent qu'un MAX3232 (plus quatre condensateurs). Ce circuit intégré génère également les niveaux de tension supérieurs (et négatifs) à partir de la tension d'alimentation de 3,3 V du Pi.

Connexe :Linux – Pourquoi rediriger la sortie vers 2>&1 et 1>&2 ?

Le MAX232 est le plus courant (devinez pourquoi il s'appelle ainsi), mais il est destiné à un fonctionnement en 5 V et non en 3,3 V.

Enfin, comme l'UART et le RS232 utilisent la même structure logique, il n'est souvent pas distingué entre les deux, notamment par les logiciels (programmeurs). Ils sont souvent simplement appelés "interface série", bien qu'il existe d'autres interfaces comme I²C et SPI, qui sont un type d'interface série, mais jamais considérées comme "l'interface série".


Linux
  1. Vérifier l'utilisation du port sous Linux

  2. Port série virtuel pour Linux

  3. Comment puis-je surveiller les données sur un port série sous Linux ?

  4. Comment ouvrir le port série sous Linux sans changer de broche ?

  5. Tester efficacement si un port est ouvert sous Linux ?

Communication série sur Linux moderne

Comment faire une analyse de port sous Linux

Comment envoyer un ping à un numéro de port sous Linux

Ouvrir un port sous Linux

Port série Raspberry Pi

Épuisement des ports réseau Linux