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
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.
console=serial0,115200
-parametern fråncmdline.txt
. Även om det inte är ' en hänvisning tillAMA0
ä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!ttyS0
w / Xbee istället också då.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).