Comment puis-je régler la vitesse UART?

12

Comment définir le débit en bauds de l'UART

Question bonus: Quels sont les débits en bauds disponibles sur le RPi?

Edit : Depuis la lecture de la réponse de Steve, j'ai constaté qu'il y avait deux UART disponibles.

Le mini-UART peut fonctionner jusqu'à 32Mbaud, mais a un petit tampon et aurait donc besoin de beaucoup de CPU pour suivre.

Il y a aussi un UART plus complet avec des tampons plus gros, je n'ai pas encore trouvé la vitesse minimale / maximale pour cela.

John La Rooy
la source
Voulez-vous définir le débit en bauds au moment de l'exécution, pour interfacer avec un autre appareil ou au démarrage, afin de pouvoir vous connecter au Pi via son port série?
Malvineous
@Malvineous, le temps de démarrage est correct, mais le runtime est également utile. Je souhaite parler à d'autres appareils.
John La Rooy

Réponses:

9

Selon le Guide de démarrage rapide de Farnell , le débit en bauds par défaut est: 115200 . Une discussion assez détaillée des paramètres et capacités UART peut être trouvée dans cet article de blog Plus sur les ports série Raspberry Pi . Des détails d'implémentation plus spécifiques / défis de travailler avec le port série peuvent être trouvés dans le billet de blog Mise en place de mon Raspberry Pi pour la communication série UART haut débit .

Vous ne mentionnez pas la distribution que vous exécutez, mais en supposant que vous exécutez Debian, vous pouvez définir le débit en bauds en procédant comme suit:

Notez que le Raspberry Pi utilise l'UART pour les messages de la console (y compris les messages de démarrage) et Getty afin que vous puissiez vous connecter via série. Pour utiliser ce port série pour votre propre usage, vous devrez désactiver ces services.

Pour modifier le débit en bauds de la console, modifiez /boot/cmdline.txt en relaçant 115200 avec le débit en bauds souhaité (notez qu'il s'agit d'une seule ligne).

dwc_otg.lpm_enable = 0 console = ttyAMA0,115200 kgdboc = ttyAMA0,115200 console = tty1 root = / dev / mmcblk0p2 rootfstype = ext4 rootwait

puis éditez / etc / inittab pour changer le débit en bauds du getty (vous devriez trouver une ligne comme la suivante avec le débit en bauds de 115200, changez-la en votre débit en bauds désiré)

2: 23: réapparition: / sbin / getty -L ttyAMA0 115200 vt100

et, n'oubliez pas de surveiller vos tensions de broches pour éviter d'endommager votre Pi.

Références supplémentaires:

http://www.andremiller.net/content/raspberry-pi-and-arduino-via-gpio-uart

Steve Robillard
la source
3

Ce fil a une solution pour un débit en bauds arbitraire (non standard): /programming/12646324/how-to-set-a-custom-baud-rate-on-linux/21960358

Faire des manipulations POSIX d'abord, puis cela pour définir la vitesse personnalisée, fonctionne très bien sur l'UART intégré du Raspberry Pi pour obtenir un débit de 250k bauds. Ainsi, en plus des taux standard POSIX, vous pouvez avoir à peu près n'importe quel facteur entier de 16M, jusqu'à au moins 1M ( http://fw.hardijzer.nl/?p=138 pour les trucs à très haute vitesse)

RichardAshAudacity
la source