Der PL011 UART ist unabhängig von einem internen Frequenzgenerator ("clock") der mit schneller / langsamer laufender GPU variiert. Im Raspberry Pi 3 wurde der PL011 UART standardmäßig für Bluetooth verwendet, da er somit stabiler ist und außerdem auch eine höhere Durchsatzrate erlaubt.
Wer Bluetooth UND den RaZberry verwenden möchte, für Bluetooth nur eine geringere Bandbreite braucht, der kann die beiden UARTs vertauschen.
Somit wird zugewiesen:
PL011 -> RaZberry
miniUART -> Bluetooth
Wichtiger Hinweis:
Bitte beachten Sie zusätzlich unsere Hinweise zur Konfiguration von FHEM im folgenden Artikel:
Vorgehensweise:
1. Bearbeiten Sie /boot/config.txt, fügen Sie folgende Zeile hinzu (entfernen Sie ggf. andere overlays die Bluetooth / den UART beeinflussen):
dtoverlay=pi3-miniuart-bt
enable_uart=1
core_freq=250
Damit vertauschen Sie die UARTs und fixieren gleichzeitig die Core Frequenz, damit der miniUART für Bluetooth stabiler läuft (Hinweis: das hat auf die Leistungsfähigkeit der GPU nachteilige Auswirkungen, z.B. für H265 Softwaredekodierung).
Hinweis: theoretisch ist es auch möglich statt core_freq=250 - force_turbo zur Stabilisierung des miniUARTs zu aktivieren, was jedoch die Lebensdauer des Raspberry Pi negativ beeinträchtigen könnte. Wir empfehlen daher ausdrücklich core_freq=250.
2. Bearbeiten Sie /lib/systemd/system/hciuart.service,
ersetzen Sie hier ttyAMA0 mit ttyS0 (das ist eine Null am Ende, kein "oh"), wie folgt:
[Unit]
Description=Configure Bluetooth Modems connected by UART
ConditionPathIsDirectory=/proc/device-tree/soc/gpio@7e200000/bt_pins
Before=bluetooth.service
After=dev-ttyS0.device
[Service]
Type=forking
ExecStart=/usr/bin/hciattach /dev/ttyS0 bcm43xx 921600 noflow -
[Install]
WantedBy=multi-user.target
Hinweis: es könnte sein, dass die Datenrate des miniUARTs von 921600 niedriger gesetzt werden muss, bspw. auf 115200 - bitte probieren Sie das in dieser Datei entsprechend anzupassen, falls Sie Probleme mit Bluetooth erleben.
3. Verzögern Sie den Start von FHEM um 10 Sekunden. Fügen Sie dazu in der ersten Zeile der Datei /etc/init.d/fhem die folgende Zeile neu ein:
sleep 10
Referenzen:
https://www.raspberrypi.org/forums/viewtopic.php?f=28&t=141195
http://www.fhemwiki.de/wiki/Raspberry_Pi_3:_GPIO-Port_Module_und_Bluetooth
0 Kommentare