[gelöst] Cubietruck und gpio

Debian auf Notebooks und speziellen Geräten wie eingebetteten Systemen, Routern, Set-Top-Boxen, ...
Antworten
Benutzeravatar
smutbert
Beiträge: 8404
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

[gelöst] Cubietruck und gpio

Beitrag von smutbert » 28.04.2025 13:05:35

Hallo allerseits,

verwendet hier eigentlich noch jemand den Cubietruck, vielleicht sogar auch dessen gpio-Pins?

Vor Jahren habe ich etwas mit python und der WiringPi-Portierung auf dem Cubietruck gemacht, aber das war python 2.7, ich sehe mich außerstande das auf ein aktuelles python zu portieren, einige ungelöste Probleme gab es obendrein und was ich so mitbekommen habe rät inzwischen ohnehin jeder von WiringPi ab.
armbian hat sich in der der Zwischenzeit auch sehr verändert.

Jetzt würde ich also gerne etwas anderes, z.B. Debiangpiod bzw. Debianpython3-libgpiod verwenden, finde aber keinen Einstieg. Das cubieboard-Forum gibt es schon lange nicht mehr, viele Links zu Dokumentation, die man noch in Foren findet, führen ins Nirgendwo und das Kommandozeilentool von gpiod ist mir ein einzelnes Rätsel.
Während ich früher unter WiringPi eine schöne Übersicht der GPIOs erhalten habe (siehe auch Wiki-Artikel), gibt es jetzt nur mehr eine für mich vollkommen nichtssagende Liste an „lines“, ohne irgendeinen für mich erkennbaren Hinweis welche line zu welchem Pin des SoC oder der gpio-Leiste führt:

Code: Alles auswählen

[...]
line 274:   unnamed    unused    input   active-high
line 275:   unnamed    unused    input   active-high
line 276:   unnamed    unused    input   active-high
[...]
(ich kann doch nicht für jeden Pin knapp 300 lines durchprobieren)

Im armbian-Forum habe ich einen alten Thread mit ähnlicher Fragestellung gefunden, aber ohne hilfreiche Antwort. Vielleicht weiß im Debianforum ja jemand etwas?
Zuletzt geändert von smutbert am 05.05.2025 16:35:48, insgesamt 1-mal geändert.

Benutzeravatar
Meillo
Moderator
Beiträge: 9367
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Cubietruck und gpio

Beitrag von Meillo » 28.04.2025 13:09:36

Die Stichworte passen zu meinem Thread vom Dezember: viewtopic.php?t=190895 Aber ich habe das Problem dann ohne GPIO geloest und kann dir diesbezueglich leider nicht weiterhelfen. Trotzdem schoen zu lesen, dass andere auch einen Cubietruck nutzen. ;-)
Use ed once in a while!

Benutzeravatar
smutbert
Beiträge: 8404
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: Cubietruck und gpio

Beitrag von smutbert » 28.04.2025 13:26:41

In deinem Thread hätte ich eh gern geantwortet, weil es thematisch mit dem Abspielen von Musik sehr gut zu meinem Projekt gepasst hätte, aber WiringPi war schon veraltet und andere Lösung hatte und habe ich keine.

Meine vorübergehende Lösung war eine chroot-Umgebung mit python2.7 und WiringPi, aber nachdem vor ein paar Wochen, nach knapp 10 Jahren Betrieb die verbaute SSD aufgegeben hat, bin ich nun auf der Suche nach einer besseren Lösung.


Einen teilweisen Ansatzpunkt habe ich sogar, aber mit dem komme ich bis jetzt nicht weiter:
Es gibt einige lines, bei denen etwas anderes steht, konkret z.B. die, an denen die auf der Platine verbauten LEDs hängen:

Code: Alles auswählen

line 231:   unnamed "cubietruck:green:usr"  output   active-high [used]
[...]
line 235:   unnamed "cubietruck:white:usr"  output   active-high [used]
[...]
line 244:   unnamed "cubietruck:orange:usr" output   active-high [used]
line 245:   unnamed "cubietruck:blue:usr"   output   active-high [used]
wenn ich irgendwo noch finden würde, an welchen SoC-Pins die LEDs hängen, würde sich vielleicht irgendein Muster erkennen lassen, weil die LEDs auch in der gpio-Übersicht von WiringPi auftauchen, aber ich finde nicht einmal das.

Benutzeravatar
smutbert
Beiträge: 8404
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: Cubietruck und gpio

Beitrag von smutbert » 05.05.2025 16:35:15

Weil ich nicht weitergekommen bin, habe ich Chatgpt gefragt und eine sehr interessante Antwort erhalten, hier nur der entscheidende Ausschnitt
ChatGPT hat geschrieben: Leider steht da eben oft nichts über den tatsächlichen PIN auf dem Board.

Mapping: Welcher GPIO ist welcher Pin?

Bei Allwinner-SoCs (wie im Cubietruck) erfolgt die Zuordnung nach folgendem Schema:

Formel:
GPIO-Nummer = (Bank-Buchstabe - 'A') × 32 + Pin-Nummer

Beispiel: PB3
  • B = 1 (weil A = 0, B = 1, C = 2, …)
  • Pin 3
  • GPIO-Nummer = 1 × 32 + 3 = 35
Das bedeutet: Wenn du PB3 steuern willst, musst du line 35 in gpiochip0 ansprechen.
Die Pins haben tatsächlich Namen, die auch in meinem Wiki-Artikel, den ich im Eröffungsbeitrag verlinkt habe, in der Ausgabe von »gpio readall« stehen.
ChatGPTs Erklärung ist mir zuerst nur kurios vorgekommen, aber es funktioniert tatsächlich, zumindest die beiden Pins, die ich getestet habe: Zufällig habe ich nämlich ausgerechnet an PB3 und PB2 LEDs hängen, die ich nun mit line 34 und 35, also

Code: Alles auswählen

# gpioset gpiochip0 34=0
# gpioset gpiochip0 34=1
# gpioset gpiochip0 35=0
# gpioset gpiochip0 35=1
aus- und einschalten kann. (Es fällt mir gerade schwer von ChatGPT nicht beeindruckt zu sein.)

Antworten