Come posso impostare la velocità UART?


12

Come si dovrebbe impostare la velocità di trasmissione dell'UART

Domanda bonus: quali baud rate sono disponibili sull'RPi?

Modifica : da quando ho letto la risposta di Steve, ho scoperto che ci sono due UART disponibili.

Il mini-UART può funzionare fino a 32 MBaud, ma ha un piccolo buffer e quindi avrebbe bisogno di molta CPU per tenere il passo.

C'è anche un UART più completo con buffer più grandi, non ho ancora trovato la velocità minima / massima per esso.


Vuoi impostare la velocità di trasmissione in fase di esecuzione, per interfacciarsi con un altro dispositivo o in fase di avvio, in modo da poter accedere al Pi tramite la sua porta seriale?
Malvineous,

@Malvineous, Il tempo di avvio è ok, ma anche il runtime è utile. Sono interessato a parlare con altri dispositivi.
John La Rooy,

Risposte:


9

Secondo la Guida rapida di Farnell , la velocità di trasmissione predefinita è: 115200 . Una discussione abbastanza dettagliata delle impostazioni e delle funzionalità di UART è disponibile in questo post sul blog Altro sulle porte seriali di Raspberry Pi . Ulteriori dettagli specifici sull'implementazione / sfide per lavorare con la porta seriale sono disponibili nel post sul blog Come configurare il mio Raspberry Pi per la comunicazione seriale UART ad alta velocità .

Non menzioni la distribuzione che stai eseguendo, ma supponendo che tu stia eseguendo Debian puoi impostare il baud rate nel modo seguente:

Nota che Raspberry Pi utilizza UART per i messaggi della console (inclusi i messaggi di avvio) e getty in modo da poter accedere tramite seriale. Per utilizzare questa porta seriale per i propri usi è necessario disabilitare questi servizi.

Per cambiare il baudrate della console, modifica /boot/cmdline.txt ricollegando 115200 con il baud rate desiderato (nota che questa è tutta una riga).

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

quindi modifica / etc / inittab per cambiare il baudrate del getty (dovresti trovare una linea come la seguente con il baudrate di 115200, cambialo nel tuo baud rate desiderato)

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

e, ricorda di guardare le tensioni dei pin per evitare danni a te Pi.

Riferimenti aggiuntivi:

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


3

Questo thread ha una soluzione per un baud rate arbitrario (non standard): /programming/12646324/how-to-set-a-custom-baud-rate-on-linux/21960358

Effettuare prima le manipolazioni POSIX, quindi questa per impostare la velocità personalizzata, funziona perfettamente sull'UART incorporato del Raspberry Pi per ottenere una velocità di trasmissione di 250k. Quindi, oltre alle tariffe standard POSIX, puoi avere praticamente qualsiasi fattore intero di 16M, fino ad almeno 1M ( http://fw.hardijzer.nl/?p=138 per roba ad altissima velocità)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.