Moja konsola szeregowa Pi3 produkuje śmieci i nie reaguje na klawiaturę.
Ta odpowiedź jest nadal poprawna i wyjaśnia bardziej szczegółowo charakter zmian, ale większość użytkowników obecnego Raspbian powinna po prostu uruchomić
sudo raspi-config
Wybierz,Interfacing Options / Serial
a następnie określić, czy chcesz mieć konsolę szeregową (prawdopodobnie nie), a następnie, czy chcesz włączyć sprzęt portu szeregowego (prawdopodobnie tak). Następnie użyj/dev/serial0
w dowolnym kodzie, który uzyskuje dostęp do portu szeregowego.
BCM2837 na Raspberry Pi3, Pi3B +, Pi3A +, PiZeroW ma 2 UART (podobnie jak jego poprzednicy), jednak w celu obsługi funkcji Bluetooth w pełni funkcjonalny PL011 UART został przeniesiony z pinów nagłówka do układu Bluetooth, a mini UART udostępniony na piny nagłówka 8 i 10.
(SOC na Pi4 ma dodatkowe UART, ale te same 2 UART co BCM2837 są używane do domyślnego portu szeregowego na pinach 8 i 10 oraz Bluetooth.)
Ma to szereg konsekwencji dla użytkowników interfejsu szeregowego.
/dev/ttyAMA0
Poprzednio używany do dostępu UART teraz łączy się z Bluetooth.
MiniUART jest teraz dostępny na /dev/ttyS0
.
W najnowszej wersji oprogramowania systemu operacyjnego jest /dev/serial0
który wybiera odpowiedniego urządzenia, dzięki czemu można zastąpić /dev/ttyAMA0
z /dev/serial0
i korzystać z tego samego oprogramowania na PI3 i wcześniejszych modeli.
Niestety istnieje wiele innych konsekwencji:
The mini UART is a secondary low throughput UART
intended to be used as a console.
The mini Uart has the following features:
• 7 or 8 bit operation.
• 1 start and 1 stop bit.
• No parities.
• Break generation.
• 8 symbols deep FIFOs for receive and transmit.
• SW controlled RTS, SW readable CTS.
• Auto flow control with programmable FIFO level.
• 16550 like registers.
• Baudrate derived from system clock.
Nie ma obsługi parzystości i przepustowość jest ograniczona, ale ta ostatnia nie powinna wpływać na większość zastosowań.
Istnieje jedna funkcja zabójcy „Baudrate pochodna od zegara systemowego”, która sprawia, że miniUART jest bezużyteczny, ponieważ zegar ten może zmieniać się dynamicznie, np. Gdy system przejdzie w tryb obniżonej mocy lub w tryb niskiej mocy.
Modyfikowanie /boot/config.txt
usuwa tę zależność, dodając na końcu następujący wiersz: -
core_freq=250
To rozwiązuje problem i wydaje się, że ma niewielki wpływ. SPI clock frequency
I ARM Timer
są również zależne od zegara systemowego.
Z jakiegoś dziwnego powodu domyślnym ustawieniem Pi3 przy użyciu najnowszego jądra 4.4.9 jest WYŁĄCZ UART. Aby ją włączyć należy zmienić
enable_uart=1
w/boot/config.txt
. (To także rozwiązujecore_freq
problem, więc nie jest to już konieczne).
Wreszcie, jeśli nie korzystasz z Bluetooth (lub masz mało wymagające zastosowania), możesz zamienić porty z powrotem w drzewie urządzeń. Istnieje moduł pi3-miniuart-bt
i pi3-disable-bt
, które są opisane w /boot/overlays/README
.
9600
. Więc to powinno działać, jeśli ustawię,core_freq=250
a następnie skonfiguruję prędkość transmisji w skrypcie ma python? Byłoby również świetnie, gdybyś mógł spojrzeć na: raspberrypi.stackexchange.com/questions/47379/… Dziękuję!w końcu to działa dla mojego pi3 (os: debian jessie)
proszę dokładnie wykonać te 6 kroków .
Krok 1 - Zainstaluj Raspbian Jessie na karcie SD i uruchom Pi po podłączeniu do sieci Zaloguj się przez terminal lub komputer i powłokę Skonfiguruj system za pomocą:
Rozwiń system plików i włącz serial na stronie zaawansowanej, zakończ i uruchom ponownie.
Krok 2 - nie będzie to konieczne, jeśli masz nową wersję jessie Zaktualizuj system za pomocą:
Krok 3 - Ustawienia drzewa urządzeń, jak poniżej:
Dodaj drzewo urządzeń do /boot/config.txt, aby wyłączyć bluetooth Raspberry Pi 3.
Dodaj na końcu pliku
* jeśli chcesz zmienić port blutooth na port miniuart (zły)
* jeśli chcesz wyłączyć blutooth (dobre)
Wyjdź z edytora, zapisując zmiany.
Krok 4 - uruchom ponownie pi
krok 5 -
a) Aby wyłączyć konsolę szeregową, edytuj plik za pomocą
usuń słowo faza „
console=serial0,115200
” lub „console=ttyAMA0,115200
”Wyjdź i zapisz zmiany
b) Aby włączyć konsolę szeregową, edytuj plik za pomocą
Zmień plik na następujący:
Wyjdź i zapisz zmiany
Krok 6 - uruchom ponownie pi
----------------- to wszystko, baw się dobrze ---------------------------- ---
źródło
Odpowiedź Naseera jest poprawna, ale nieco skomplikowana, jeśli tylko sflashowałeś najnowszego rasbasa. Wszystko, co musiałem zrobić, to po prostu dodać następujący wiersz do pliku config.txt (np. Z systemu Windows, w którym podłączasz kartę SD na partycji fat32):
Następnie podłącz go, a pi bezpośrednio wydrukuje rzeczy na pinach konsoli.
źródło