Ho “battuto la testa sul tavolo per giorni cercando di capirlo. Per la vita di me non posso sembrare ottenere la mia porta seriale Raspberry Pi 3 per comunicare con Xbee Series 2.

Ho controllato il mio /boot/cmdline.txt e non ci sono riferimenti ad AMA0 nel file. Ecco cosa cè di corrente lì dentro:

dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=/dev/mmcblkOp2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait 

EDIT: PI 3 non AMA0. Utilizza S0. Ho rimosso la voce console=serial0,115200

Poiché questo è laggiornamento di Jessie, non cè inittab. In cui ho letto che devo fare quanto segue (cosa che ho fatto):

sudo systemctl stop [email protected] sudo systemctl disable [email protected] sudo systemctl mask [email protected] 

Dopo aver fatto tutto questo, apro cutecom , impostalo su 9600 baud rate, lettura / scrittura, dati a 8 bit, 1 bit stop e imposta il dispositivo su / dev / ttyAMA0.

Quando premo connect e digito:

+++ 

per accedere alla modalità di configurazione ottengo:

write returned 0 errno: 11 write : Resource temporarily unavailable 

Non sono sicuro di quello che sto facendo sbagliato qui … So che lXbee è funzionale perché sono in grado di configurarlo utilizzando il software XCTU tramite una breakout board seriale-USB. Ma sul Pi collegato tramite i pin seriali GPIO non ottengo risposta.

Qualche idea?

Xbee è collegato a uno Spark Fun Xbee Regulated Explorer


Ho anche problemi a farlo con il mio Raspberry Pi 2 (Che è dove il Pi 3 comunicherà). Sul Pi 2, ho modificato il file cmdline.txt e rimosso i riferimenti a AMA0:

dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblkOp2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait 

E ho eseguito i comandi systemctl menzionati in precedenza su Pi2.

Attualmente quando apro una sessione usando cutecom (S0 per Rpi3 AMA0 per Rpi2) non ottengo alcun output. Digito +++ nella riga di input, vedo la spia TX lampeggiare sul mio Explorer regolamentato ma non ottengo alcun output allinterno di cutecom, né alcun messaggio nella finestra del terminale.

Commenti

  • Prova a rimuovere il parametro console=serial0,115200 da cmdline.txt. Sebbene non sia ' un riferimento a AMA0, è abbastanza ovviamente un riferimento a una console seriale, che potrebbe essere solo quella sul GPIO. Assicurati di lasciare quel file su una sola riga!
  • Word. ' ci proverò e ti ricontatterò.
  • Il tuo suggerimento non ' ha risolto il problema, ma credo che possa essere un passo nella giusta direzione. Visto come nel commento di Milliways: ha notato che il Pi3 non usa più AMA0, ma usa S0 che apparentemente è ciò a cui si riferisce console = serial0,115200.
  • Giusto, quindi vuoi usare ttyS0 con Xbee invece anche allora.
  • Non ' funziona ancora per me … Quando ho utilizza sudo minicom -b 9600 -D /dev/ttyS0 Non ' per ottenere nulla. Mostra il messaggio di benvenuto di minicom che mostra le Opzioni e simili, ma nessuno stato nella parte inferiore del terminale e posso ' digitare qualsiasi cosa. Quando uso cutecom con le stesse impostazioni, non ' ne ricevo alcun output (niente nella console che dice che non è disponibile o altro).

Risposta

Il Pi3 ha scambiato le porte seriali. /dev/ttyAMA0 è ora utilizzato per Bluetooth. serial0 si riferisce alla porta seriale non Bluetooth che si trova su /dev/ttyS0 per impostazione predefinita.

La mia esperienza se ci provo utilizzare serial0 non va bene. Funziona, ma in modo inaffidabile, anche se ho solo provato a utilizzare un convertitore da seriale a USB su un PC e non lho testato ampiamente. Da ulteriori letture il miniUART utilizza il “core clock” che può cambiare con i cambiamenti di velocità del problemi. Ho visto suggerimenti per aggiustare lorologio con: –

core_freq=250 

EDIT Da allora ho provato questo e sembra risolvere i problemi. Finora posso “Non vedo alcun aspetto negativo.

Anche miniUART è limitato: supporta solo 8 bit di dati e non ha parità così come un buffer più piccolo.

Se non si utilizza il Bluetooth, è possibile scambiare nuovamente le porte nella struttura dei dispositivi. Sono presenti pi3-miniuart-bt e pi3-disable-bt modulo.

MODIFICA Ora sono riuscito a far funzionare la seriale in modo soddisfacente su Pi 3 e lho documentato in How-do-i-make- serial-work-on-the-raspberry-pi3

Commenti

  • Oh, capisco … Va bene sapere. Immagino che questo sia il motivo per cui non ho mai ricevuto alcuna risposta da AMA0. Dovrei semplicemente disabilitare serial0 allora?
  • E lo farei semplicemente eliminando il riferimento in cmdline.txt o dovrei anche eseguire comandi systemctl simili?
  • @ Myg0t sul Pi3 apparentemente DOVRESTI usare serial0 che è lUART non BT. Non lho provato da solo.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *