Digitaler Eingang - welcher GPIO Pin?

Rund um die Hardware des Revolution Pi
Post Reply
Rumpelstilzchen
Posts: 2
Joined: 29 Aug 2024, 09:17

Digitaler Eingang - welcher GPIO Pin?

Post by Rumpelstilzchen »

Hallo Forum,

an einen RevPi Compact ist ein Taster an den digitalen Eingang 0 angeschlossen.

Wie unter https://revolutionpi.com/de/tutorials/e ... ol-compact beschrieben
ist piControl deaktivert und das Auslesen liefert 0 oder 1 je nachdem, ob der Taster gedrückt ist oder nicht:

Code: Select all

$ cd /sys/class/gpio
$ cat gpiochip488/label
max31913
$ echo 488 > export
$ cat gpio488/value
0
$ cat gpio488/value
1
Soweit sogut.

An welche GPIO Pins sind die 8 digitalen Eingänge angeschlossen?
Ich möchte den Tasterzustand mit den gpiozero oder lgpio Bibliotheken auslesen.

Rumpelstilzchen
u.biakoup
KUNBUS
Posts: 201
Joined: 14 Apr 2022, 13:04

Re: Digitaler Eingang - welcher GPIO Pin?

Post by u.biakoup »

Hallo,
Die digitalen Eingänge deines RevPi Compact sind über den MAX31913 GPIO-Chip angesprochen. Der Chip beginnt bei GPIO 488, und die folgenden Eingänge werden in aufeinanderfolgenden GPIO-Pins fortgesetzt:

Digital Input 0: GPIO 488
Digital Input 1: GPIO 489
Digital Input 2: GPIO 490
Digital Input 3: GPIO 491
Digital Input 4: GPIO 492
Digital Input 5: GPIO 493
Digital Input 6: GPIO 494
Digital Input 7: GPIO 495

im Beispiel im Link wurde erklärt, wie der digitale Eingang 5 zugreifbar ist. In dem Beispiel möchtest du auf den digitalen Eingang 5 zugreifen. Da der Chip gpiochip496 bei GPIO 496 beginnt, musst du die Nummer des gewünschten Eingangs (in diesem Fall 5) zu der Basisnummer des Chips addieren:

Basisnummer des Chips: 496
Eingang 5: 496 + 5 = 501
Daher würdest du den GPIO 501 exportieren, um auf den digitalen Eingang 5 zuzugreifen.

Warum gpiochip496?

Die Nummer 496 für den Chip ist spezifisch für das System, auf dem das Beispiel basiert. Wenn du den Chip auf deinem System identifizieren möchtest, solltest du in der Regel den folgenden Befehl verwenden:

Code: Select all

cd /sys/class/gpio
cat gpiochip*/label
Damit kannst du die genaue Bezeichnung (z. B. max31913) finden und sehen, welche Basis-GPIO-Nummer für diesen Chip verwendet wird.

Best Regards

Ulrich Kouatang Biakoup | field application engineer
Rumpelstilzchen
Posts: 2
Joined: 29 Aug 2024, 09:17

Re: Digitaler Eingang - welcher GPIO Pin?

Post by Rumpelstilzchen »

Hallo Ulrich Biakoup,

danke für den Hinweis, daß der RevPi Compact mehrere GPIO-Chips enthält.
Beim Auslesen der Tasterinformation mit lgpio - siehe http://abyz.me.uk/lg/lgpio.html - muß deshalb zunächst der richtig GPIO-Chip lokalisiert werden:

Code: Select all

   int h = lgGpiochipOpen(4); /* Handle holen */
   lgChipInfo_t cInfo;
   int status = lgGpioGetChipInfo(h, &cInfo);
   if (status == LG_OKAY) {
      printf("lines=%d name=%s label=%s\n", cInfo.lines, cInfo.name, cInfo.label);
   }
gibt aus

Code: Select all

lines=8 name=gpiochip4 label=max31913
Somit ist der 4te Chip auszulesen

Code: Select all

   /* Einlesen von Pin 1 */
   lgGpioClaimInput(h, lFlags, 1);
   int v = 0;
   while (!interrupt_received) {
     v = lgGpioRead(h, 1);
     printf("GPIO %d Zustand %d\n", 1, v);
     lguSleep(1); /* sleep for 1 second */
   }
und tatsächlich, wenn der Taster an den digitalen Eingang 1 angeschlossen ist, dann wird der Zustand korrekt angezeigt.

Problem gelöst.
Last edited by Rumpelstilzchen on 29 Aug 2024, 17:40, edited 2 times in total.
u.biakoup
KUNBUS
Posts: 201
Joined: 14 Apr 2022, 13:04

Re: Digitaler Eingang - welcher GPIO Pin?

Post by u.biakoup »

Hallo Rumpelstilzchen,

Es freut mich dass es funktioniert hat.

Viele Grüße.
Post Reply