Jag har slagit huvudet på bordet i flera dagar och försökt ta reda på det. För mitt liv verkar jag inte få min Raspberry Pi 3-serieport för att kommunicera med Xbee Series 2.

Jag kollade min /boot/cmdline.txt och det finns inga referenser till AMA0 i filen. Här är vad som är aktuellt där inne:

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

EDIT: PI 3 AMA0 inte. Den använder S0. Jag har tagit bort posten console=serial0,115200

Eftersom det här är Jessie-uppdateringen finns det ingen inittab. I vilken jag har läst att jag måste göra följande (som jag har gjort):

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

Efter att ha gjort allt detta öppnar jag cutecom , ställ in den till 9600 baudhastighet, läs / skriv, 8 bitars data, 1 bitstopp och ställ in enheten på / dev / ttyAMA0.

När jag trycker på connect och skriver:

+++ 

för att gå in i konfigurationsläget som jag får:

write returned 0 errno: 11 write : Resource temporarily unavailable 

Jag är inte säker på vad jag gör fel här … Jag vet att Xbee är funktionell eftersom jag kan konfigurera den med hjälp av XCTU-programvara via ett seriellt till USB-brytkort. Men på Pi ansluten via GPIO seriella stift får jag inget svar.

Några idéer?

Xbee är ansluten till en Spark Fun Xbee-reglerad utforskare


Jag har också problem med att göra detta med min Raspberry Pi 2 (Det är där Pi 3 kommer att kommunicera med). På Pi 2 har jag ”redigerat filen cmdline.txt och tagit bort referenser till AMA0:

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

Och jag har gått igenom de tidigare nämnda systemctl-kommandona på Pi2.

För närvarande när jag öppnar en session med cutecom (S0 för Rpi3 AMA0 för Rpi2) får jag ingen utdata. Jag skriver +++ på inmatningsraden, jag ser TX-lampan blinka på min Reglerade Explorer men jag får ingen utdata inuti cutecom eller något meddelande i terminalfönstret.

Kommentarer

  • Försök att ta bort den console=serial0,115200 -parametern från cmdline.txt. Även om det inte är ' en hänvisning till AMA0 är det uppenbarligen en hänvisning till en seriekonsol, som bara kan vara den på GPIO: er. Se till att du lämnar filen som en rad!
  • Word. Jag ' Jag försöker att komma tillbaka till dig.
  • Ditt förslag lyckades inte ' inte rätta till problemet, men jag tror att det kan vara ett steg i rätt riktning. Se hur i Milliways kommentar: han noterade att Pi3 inte längre använder AMA0 utan använder S0 vilket tydligen är vad konsolen = serial0,115200 hänvisar till.
  • Höger, så du vill använda ttyS0 w / Xbee istället också då.
  • Det fungerar fortfarande inte ' t för mig … När jag använd sudo minicom -b 9600 -D /dev/ttyS0 Jag får ' för att inte få något. Den visar minicoms välkomstmeddelande som visar alternativen och sådant, men ingen status längst ner på terminalen och jag kan ' inte skriva något. När jag använder cutecom med samma inställningar får jag inte heller ' (ingenting i konsolen säger att det är otillgängligt eller något).

Svar

Pi3 har bytt seriella portar. /dev/ttyAMA0 används nu för Bluetooth. serial0 hänvisar till den icke-Bluetooth-seriella porten som är på /dev/ttyS0 som standard.

Min erfarenhet om jag försöker använd serial0 är inte bra. Det fungerar, men opålitligt, även om jag bara har försökt att använda en seriell till USB-omvandlare till en dator och inte testat omfattande. Från vidare läsning använder miniUART ”core clock” som kan ändras med processorhastighetsändringar som kan förklara Jag har sett förslag för att fixa klockan med: –

core_freq=250 

EDIT Jag har sedan försökt detta och det verkar lösa problemen. Hittills kan jag ”t ser några nackdelar.

miniUART är också begränsad – den stöder bara 8 databitar och har ingen paritet samt en mindre buffert.

Om du inte använder Bluetooth är det möjligt att byta ut portarna i Device Tree. Det finns en pi3-miniuart-bt och pi3-disable-bt modul.

EDIT Jag har nu lyckats få seriell arbete till min tillfredsställelse på Pi 3 och har dokumenterat detta i Hur gör jag-gör- seriell-arbete-på-hallon-pi3

Kommentarer

  • Åh, jag förstår … Det är bra att veta. Jag antar att det är anledningen till att jag aldrig fick något svar från AMA0. Ska jag bara inaktivera serial0 då?
  • Och skulle jag göra det genom att ta bort referensen i cmdline.txt eller skulle jag också behöva köra liknande systemctl-kommandon?
  • @ Myg0t på Pi3 tydligen borde du använda serial0 som inte är BT UART. Jag har inte provat det själv.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *