Hallo zusammen,
Ich habe ein Problem mit einem Raspberrypi ComputeModule 4. Laut dem
Datenblatt, Seite 8
https://datasheets.raspberrypi.org/cm4/cm4-datasheet.pdf
Können den GPIO's diverse alternative funktionen zugeweisen werden. Für
den Pi4, welcher auch den BCM2711 als Chip hat, wird hier beschrieben
wir man mehr als eine UART-Schnittstele aktivieren kann
https://www.raspberrypi.org/forums/viewtopic.php?t=244827
Das selbe möchte ich auf dem CM4 machen. Hierzu habe ich zuerst
ausgeführt, um zu sehen ob die Pins bereits belegt sind, das ergebnis
ist:
1 | pi@raspberrypi:~ $ raspi-gpio get 0-15
|
2 | GPIO 0: level=1 fsel=0 func=INPUT pull=UP
|
3 | GPIO 1: level=1 fsel=0 func=INPUT pull=UP
|
4 | GPIO 2: level=1 fsel=0 func=INPUT pull=UP
|
5 | GPIO 3: level=1 fsel=0 func=INPUT pull=UP
|
6 | GPIO 4: level=1 fsel=0 func=INPUT pull=UP
|
7 | GPIO 5: level=1 fsel=0 func=INPUT pull=UP
|
8 | GPIO 6: level=1 fsel=0 func=INPUT pull=UP
|
9 | GPIO 7: level=1 fsel=0 func=INPUT pull=UP
|
10 | GPIO 8: level=1 fsel=0 func=INPUT pull=UP
|
11 | GPIO 9: level=0 fsel=0 func=INPUT pull=DOWN
|
12 | GPIO 10: level=0 fsel=0 func=INPUT pull=DOWN
|
13 | GPIO 11: level=0 fsel=0 func=INPUT pull=DOWN
|
14 | GPIO 12: level=0 fsel=0 func=INPUT pull=DOWN
|
15 | GPIO 13: level=0 fsel=0 func=INPUT pull=DOWN
|
16 | GPIO 14: level=1 fsel=4 alt=0 func=TXD0 pull=NONE
|
17 | GPIO 15: level=1 fsel=4 alt=0 func=RXD0 pull=UP
|
Nun habe ich wie beschreiben das config.txt bearbeitet, der USB-Hub muss
auch aktiviert werden, da sonst die Tastatur etc. am Port nicht geht
1 | #Enable Uarts
|
2 | dtoverlay=uart0
|
3 | dtovleray=uart2
|
4 | dtovleray=uart3
|
5 | dtovleray=uart4
|
6 | dtovleray=uart5
|
7 |
|
8 | #Enable the USB Hub
|
9 | dtoverlay=dwc2,dr_mode=host
|
Danach habe ich den Pi neu gestartet, jedoch sind mit
keine neuen Pins mit alternativen Funktionen sichtbar, und uach
zeigt weiterhin nur Uart0 mit ttyAMA0 an
Zusätzlich gibt
an, es seien angeblich keine Overlays geladen, dies ist aber falsch, da
der USB-Hub, sowie Uart 0 funktionieren. Wird dtoverlay=uart0 oder der
Hub aus dem config.txt entfernt, so funktionieren diese auch nicht mehr,
und die dazugehörigen GPIO sind im "Normalen" Zustand.
Zusätzlich habe ich mittlerweilen diverse parameter wie z.b.
diable-bt
enable_uart=1
dtoverlay=uart3,ctsrts
Sowie nur einzelne UARTs versucht, leider alle ohne erfolg. Nur UART0
scheint zu funktionieren, der rest zeigt keine Funktion. Auch manuelles
Laden über das Terminal
scheinz war zu funktionierne (keine Fehlermeldung) und es wird auch ein
geladenes Overlay angezeigt, aber trotzdem sind die GPIO's nicht
angepasst, und auch keine weitere Schnittstelle zu sehen.
Schaut man sich den Beitrag aus dem Raspi-Forum an müsste es bei
funktionieren ja so aussehen:
1 | GPIO 7: level=1 fsel=0 func=INPUT pull=UP
|
2 | GPIO 8: level=1 fsel=3 alt=4 func=TXD4 pull=NONE
|
3 | GPIO 9: level=1 fsel=3 alt=4 func=RXD4 pull=UP
|
4 | GPIO 10: level=0 fsel=0 func=INPUT pull=DOWN
|
5 | GPIO 11: level=0 fsel=0 func=INPUT pull=DOWN
|
6 | GPIO 12: level=1 fsel=3 alt=4 func=TXD5 pull=NONE
|
7 | GPIO 13: level=1 fsel=3 alt=4 func=RXD5 pull=UP
|
8 | GPIO 14: level=0 fsel=4 alt=0 func=TXD0 pull=NONE
|
9 | GPIO 15: level=1 fsel=4 alt=0 func=RXD0 pull=UP
|
10 | pi@raspberrypi:~$ ls /dev/ttyAMA*
|
11 | /dev/ttyAMA0 /dev/ttyAMA1 /dev/ttyAMA2 /dev/ttyAMA3 /dev/ttyAMA4
|
Offensichtlich scheint etwas schief zu gehen, da ja UART0 und der Hub
gehen, vermute ich das beim Ausführen derweiteren dtoverlays irgendetwas
schiefgeht, und dann einfach abgebrochen wird.
Kann mir allenfalls jemand helfen woran es liegt, oder hat Tipps wie man
weiter debuggen kann? Gibt es irgendwie eine Möglichkeit anzuzeigen wenn
die dtoverlays geladen werden und ob es Funktioniert hat?