Jeg har slått hodet på bordet i flere dager for å finne ut av dette. Jeg kan ikke se det ut for meg få min Raspberry Pi 3 serielle port til å kommunisere med Xbee Series 2.
Jeg sjekket /boot/cmdline.txt
og det er ingen referanser til AMA0 i filen. Her er hva er gjeldende der 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 gjør ikke AMA0. Den bruker S0. Jeg har fjernet oppføringen console=serial0,115200
Siden dette er Jessie-oppdateringen, er det ingen inittab. Der jeg har lest at jeg trenger å gjøre følgende (som jeg har gjort):
sudo systemctl stop [email protected] sudo systemctl disable [email protected] sudo systemctl mask [email protected]
Etter å ha gjort alt dette, åpner jeg opp cutecom , sett den til 9600 baudrate, les / skriv, 8 bit data, 1 bit stopp, og sett enheten til / dev / ttyAMA0.
Når jeg treffer connect og skriver:
+++
for å gå inn i konfigurasjonsmodusen jeg får:
write returned 0 errno: 11 write : Resource temporarily unavailable
Jeg er ikke sikker på hva jeg gjør feil her … Jeg vet at Xbee er funksjonell fordi jeg kan konfigurere den ved hjelp av XCTU-programvare via et seriell-til-USB breakout-kort. Men på Pi-en som er koblet til via GPIO-serielle pinner, får jeg ikke noe svar.
Noen ideer?
Xbee er koblet til en Spark Fun Xbee Regulated Explorer
Jeg har også problemer med å gjøre dette med Raspberry Pi 2 (Det er der Pi 3 skal kommunisere til). På Pi 2 har jeg redigert cmdline.txt-filen og fjernet referanser til AMA0:
dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblkOp2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait
Og jeg har løpt gjennom de tidligere nevnte systemctl-kommandoene på Pi2.
For øyeblikket når jeg åpner en økt med cutecom (S0 for Rpi3 AMA0 for Rpi2), får jeg ingen utdata. Jeg skriver +++
inn på inngangslinjen, jeg ser TX-lyset blinke på min regulerte Explorer, men jeg får ingen utdata i cutecom, og heller ingen melding i terminalvinduet.
Kommentarer
Svar
Pi3 har byttet serielle porter. /dev/ttyAMA0
brukes nå til Bluetooth. serial0
refererer til den ikke-Bluetooth serielle porten som er på /dev/ttyS0
som standard.
Min erfaring hvis jeg prøver å bruk serial0
er ikke bra. Det fungerer, men upålitelig, selv om jeg bare har prøvd å bruke en seriell til USB-omformer til en PC, og ikke har testet mye. Fra videre lesing bruker miniUART «kjerneklokken» som kan endres med prosessorhastighetsendringer som kan forklare problemer. Jeg har sett forslag til å fikse klokken med: –
core_freq=250
EDIT Jeg har siden prøvd dette, og det ser ut til å løse problemene. Så langt kan jeg «t ser noen ulemper.
miniUART
er også begrenset – den støtter bare 8 databiter og har ingen paritet i tillegg til en mindre buffer.
Hvis du ikke bruker Bluetooth, er det mulig å bytte portene tilbake i Device Tree. Det er en pi3-miniuart-bt
og pi3-disable-bt
modul.
EDIT Jeg har nå klart å få seriell arbeid til min tilfredshet på Pi 3 og har dokumentert dette i Hvordan gjør jeg-gjør- seriell-arbeid-på-bringebær-pi3
Kommentarer
- Åh, jeg ser … Det er bra å vite. Jeg antar at det er grunnen til at jeg aldri fikk svar ut av AMA0. Skal jeg bare deaktivere serial0 da?
- Og ville jeg bare gjort det ved å slette referansen i cmdline.txt, eller vil jeg også trenge å kjøre lignende systemctl-kommandoer?
- @ Myg0t på Pi3 tilsynelatende BØR du bruke serial0 som ikke er BT UART. Jeg har ikke prøvd dette selv.
console=serial0,115200
-parameteren fracmdline.txt
. Selv om det ikke er ' en henvisning tilAMA0
, er det ganske åpenbart en referanse til en seriekonsoll, som bare kan være den på GPIO. Sørg for at du lar den filen være som en linje!ttyS0
med Xbee i stedet også da.sudo minicom -b 9600 -D /dev/ttyS0
Jeg får ikke ' noe. Det viser minicom velkomstmeldingen som viser Alternativer og slikt, men ingen status nederst på terminalen, og jeg kan ' ikke skrive noe. Når jeg bruker cutecom med de samme innstillingene, får jeg ikke ' heller ingen utdata (ingenting i konsollen sier at det er utilgjengelig eller noe).