Przez wiele dni waliłem głową w stół, próbując to rozgryźć. Przez całe życie nie potrafię uzyskać mój port szeregowy Raspberry Pi 3, aby komunikował się z Xbee Series 2.
Sprawdziłem /boot/cmdline.txt
i nie ma w pliku odniesień do AMA0. Oto co jest tam aktualne:
dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=/dev/mmcblkOp2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait
EDYCJA: PI 3 nie obsługuje AMA0. Używa S0. Usunąłem wpis console=serial0,115200
Ponieważ jest to aktualizacja Jessie, nie ma inittab. W którym przeczytałem, że muszę wykonać następujące czynności (które już zrobiłem):
sudo systemctl stop [email protected] sudo systemctl disable [email protected] sudo systemctl mask [email protected]
Po wykonaniu tego wszystkiego otwieram cutecom ustaw na 9600 bodów, odczyt / zapis, 8-bitowe dane, 1-bitowy stop i ustaw urządzenie na / dev / ttyAMA0.
Kiedy kliknę Connect i wpiszę:
+++
aby przejść do trybu konfiguracji, który otrzymuję:
write returned 0 errno: 11 write : Resource temporarily unavailable
Nie jestem pewien, co robię źle tutaj … Wiem, że Xbee działa, ponieważ jestem w stanie skonfigurować go za pomocą oprogramowania XCTU poprzez tablicę rozdzielczą z portu szeregowego na USB. Ale na Pi podłączonym przez piny szeregowe GPIO nie otrzymuję odpowiedzi.
Jakieś pomysły?
Xbee jest podłączony do Spark Fun Xbee Regulated Explorer
Mam również problemy z zrobieniem tego z moim Raspberry Pi 2 (To jest miejsce, w którym Pi 3 będzie się komunikować). Na Pi 2 „wyedytowałem plik cmdline.txt i usunąłem odniesienia do AMA0:
dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblkOp2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait
Sprawdziłem wcześniej wspomniane polecenia systemctl na Pi2.
Obecnie, kiedy otwieram sesję przy użyciu cutecom (S0 dla Rpi3 AMA0 dla Rpi2), nie widzę żadnych wyników. Wpisuję +++
w linii wejściowej, widzę migającą kontrolkę TX na moim Eksploratorze Regulowanym, ale nie widzę żadnego wyjścia wewnątrz cutecom ani żadnego komunikatu w oknie terminala.
Komentarze
Odpowiedź
Pi3 ma zamienione porty szeregowe. /dev/ttyAMA0
jest teraz używany przez Bluetooth. serial0
odnosi się do portu szeregowego innego niż Bluetooth, który jest domyślnie włączony /dev/ttyS0
.
Moje doświadczenie, jeśli próbuję użyj serial0
nie jest dobre. Działa, ale niezawodnie, chociaż próbowałem tylko używać konwertera szeregowego na USB do komputera i nie testowałem go szczegółowo. Od dalszego czytania miniUART używa „zegara rdzenia”, który może się zmieniać wraz ze zmianami szybkości procesora, co może wyjaśnić problemy. Widziałem sugestie, aby naprawić zegar za pomocą: –
core_freq=250
EDYCJA. Próbowałem tego od tamtego czasu i wydaje się, że rozwiązuje to problemy. Jak dotąd mogę „nie widzę żadnych wad.
miniUART
jest również ograniczony – obsługuje tylko 8 bitów danych i nie ma parzystości, a także mniejszy bufor.
Jeśli nie używasz Bluetootha, możesz zamienić porty z powrotem w drzewie urządzeń. Istnieją pi3-miniuart-bt
i pi3-disable-bt
.
EDYCJA Udało mi się teraz uzyskać satysfakcjonującą pracę szeregową na Pi 3 i udokumentowałem to w How-do-i-make- serial-work-on-the-raspberry-pi3
Komentarze
- Aha, rozumiem … To dobrze wiedzieć. Wyobrażam sobie, że to jest powód, dla którego nigdy nie otrzymałem żadnej odpowiedzi z AMA0. Czy powinienem wtedy po prostu wyłączyć serial0?
- I zrobiłbym to po prostu usuwając odniesienie w cmdline.txt, czy też musiałbym również uruchamiać podobne polecenia systemctl?
- @ Myg0t na Pi3 najwyraźniej POWINIENEŚ używać serial0, który jest UART innym niż BT. Sam tego nie próbowałem.
console=serial0,115200
zcmdline.txt
. Chociaż nie jest to ' odniesienie doAMA0
, jest to dość oczywiste odniesienie do konsoli szeregowej, która może być tylko tą na GPIO. Upewnij się, że zostawiłeś ten plik w jednym wierszu!ttyS0
z Xbee również wtedy.sudo minicom -b 9600 -D /dev/ttyS0
Nie ' nic nie dostaję. Pokazuje wiadomość powitalną minicom z opcjami itp., Ale nie ma statusu na dole terminala i nie mogę ' nic wpisywać. Kiedy używam cutecom z tymi samymi ustawieniami, nie ' nie otrzymuję żadnych danych wyjściowych (nic w konsoli nie mówi, że jest niedostępny, ani nic).