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

  • Spróbuj usunąć parametr console=serial0,115200 z cmdline.txt. Chociaż nie jest to ' odniesienie do AMA0, 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!
  • Word. ' spróbuję i odpowiem.
  • Twoja sugestia nie ' nie rozwiązała problemu, ale uważam, że może to być krok we właściwym kierunku. Widząc jak w komentarzu Milliways: zauważył, że Pi3 nie używa już AMA0, ale używa S0, do którego najwyraźniej odnosi się console = serial0,115200.
  • Dobrze, więc chcesz użyć ttyS0 z Xbee również wtedy.
  • Nadal nie ' nie działa dla mnie … Kiedy ja użyj 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).

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.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *