Wie kann ich die UART-Geschwindigkeit einstellen?

12

Wie soll man die Baudrate des UART einstellen?

Bonusfrage: Welche Baudraten sind auf dem RPi verfügbar?

Edit : Seit ich Steve's Antwort gelesen habe, habe ich festgestellt, dass zwei UARTs verfügbar sind.

Der Mini-UART kann bis zu 32 MBaud verarbeiten, hat jedoch einen kleinen Puffer und benötigt daher viel CPU, um mitzuhalten.

Es gibt auch einen voll ausgestatteten UART mit größeren Puffern. Ich habe noch nicht die minimale / maximale Geschwindigkeit dafür gefunden.

John La Rooy
quelle
Möchten Sie die Baudrate zur Laufzeit, zur Verbindung mit einem anderen Gerät oder zum Startzeitpunkt einstellen, damit Sie sich über dessen seriellen Anschluss beim Pi anmelden können?
Malvineous
@Malvineous, die Startzeit ist in Ordnung, aber auch die Laufzeit ist nützlich. Ich möchte mit anderen Geräten sprechen.
John La Rooy

Antworten:

9

Nach Farnell Kurzanleitung , ist das Standard - Baudrate: 115200 . Eine ausführliche Beschreibung der UART-Einstellungen und -Funktionen finden Sie in diesem Blog-Beitrag. Weitere Informationen zu seriellen Raspberry Pi-Anschlüssen . Weitere Einzelheiten zur Implementierung und zu den Herausforderungen bei der Arbeit mit der seriellen Schnittstelle finden Sie im Blog-Beitrag Einrichten des Raspberry Pi für die serielle Hochgeschwindigkeits-UART-Kommunikation .

Sie erwähnen nicht, welche Distribution Sie ausführen, aber wenn Sie Debian ausführen, können Sie die Baudrate folgendermaßen einstellen:

Beachten Sie, dass der Raspberry Pi den UART für Konsolenmeldungen (einschließlich Startmeldungen) und getty verwendet, damit Sie sich über die serielle Schnittstelle anmelden können. Um diese serielle Schnittstelle für Ihre eigenen Zwecke zu verwenden, müssen Sie diese Dienste deaktivieren.

Um die Konsolen-Baudrate zu ändern, bearbeiten Sie die Datei /boot/cmdline.txt und stellen Sie die gewünschte Baudrate für den 115200 ein (beachten Sie, dass dies nur eine Zeile ist).

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

Bearbeiten Sie dann / etc / inittab , um die Baudrate des getty zu ändern.

2: 23: respawn: / sbin / getty -L ttyAMA0 115200 vt100

und denken Sie daran, Ihre Pin-Spannungen zu beobachten, um Schäden an Ihrem Pi zu vermeiden.

Zusätzliche Referenzen:

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

Steve Robillard
quelle
3

Dieser Thread hat eine Lösung für eine beliebige (nicht standardmäßige) Baudrate: /programming/12646324/how-to-set-a-custom-baudrate-on-linux/21960358

Wenn Sie zuerst POSIX-Manipulationen ausführen und dann die benutzerdefinierte Geschwindigkeit einstellen, funktioniert der integrierte UART des Raspberry Pi einwandfrei, um eine Baudrate von 250 KB zu erhalten. Zusätzlich zu den POSIX-Standardraten können Sie so ziemlich jeden ganzzahligen Faktor von 16 Millionen haben, bis zu mindestens 1 Million ( http://fw.hardijzer.nl/?p=138 für sehr schnelles Zeug).

RichardAshAudacity
quelle