Banana Pi GPIO nutzen

M

Marc Haber

Guest
Hallo,

ich dachte mir die ganze Zeit, was ich mit einem Arduino machen kann,
kann ich mit dem Banana Pi, der sowieso seine Kreise dreht, auch
machen: Der hat ein Multitasking-OS und kann IPv6, das ist viel
schĂśner als mit dem Spar-Rechner ;-)

Aber, so richtig mit "GPIO" beschriftete Pins hat der gar nicht.

https://pi4j.com/1.2/pins/lemaker-bananapi.html zeigt die Belegung von
CON3, da gibt es SPI, verschiedene UARTs, PWM und CAN, aber nix, was
direkt ein GPIO wäre.

http://linux-sunxi.org/GPIO sagt, dass man die GPIO-Pins heutzutage
mit der libgpio und gpiod anspricht. Beide Pakete gibt es unter
Debian, und sie scheinen auch zu funktionieren:

|1 [3/4578]mh@lapis:~ $ sudo gpiodetect
|gpiochip0 [1c20800.pinctrl] (288 lines)
|gpiochip1 [cp210x] (4 lines)
|gpiochip2 [cp210x] (4 lines)
|gpiochip3 [ftdi-cbus] (4 lines)
|gpiochip4 [cp210x] (4 lines)
|[4/4579]mh@lapis:~ $ sudo gpiofind gpiochip0
|1 [5/4580]mh@lapis:~ $ sudo gpioinfo
|gpiochip0 - 288 lines:
| line 0: "ERXD3" unused input active-high
| line 1: "ERXD2" unused input active-high
| line 2: "ERXD1" unused input active-high
| line 3: "ERXD0" unused input active-high
| line 4: "ETXD3" unused input active-high
| line 5: "ETXD2" unused input active-high
| line 6: "ETXD1" unused input active-high
| line 7: "ETXD0" unused input active-high
| line 8: "ERXCK" unused input active-high
| line 9: "ERXERR" unused input active-high
| line 10: "ERXDV" unused input active-high
| line 11: "EMDC" unused input active-high
| line 12: "EMDIO" unused input active-high
| line 13: "ETXEN" unused input active-high
| line 14: "ETXCK" unused input active-high
| line 15: "ECRS" unused input active-high
| line 16: "ECOL" unused input active-high
| line 17: "ETXERR" unused input active-high
| line 18: unnamed unused input active-high
| line 19: unnamed unused input active-high
| line 20: unnamed unused input active-high
| line 21: unnamed unused input active-high
| line 22: unnamed unused input active-high
| line 23: unnamed unused input active-high
| line 24: unnamed unused input active-high
| line 25: unnamed unused input active-high
| line 26: unnamed unused input active-high
| line 27: unnamed unused input active-high
| line 28: unnamed unused input active-high
| line 29: unnamed unused input active-high
| line 30: unnamed unused input active-high
| line 31: unnamed unused input active-high
| line 32: "PMU-SCK" unused input active-high
| line 33: "PMU-SDA" unused input active-high
| line 34: unnamed unused input active-high
| line 35: unnamed unused input active-high
| line 36: unnamed unused input active-high
| line 37: unnamed unused input active-high
| line 38: unnamed unused input active-high
| line 39: unnamed unused input active-high
| line 40: unnamed unused input active-high
| line 41: "USB0-DRV" "usb0-vbus" output active-high [used]
| line 42: unnamed unused input active-high
| line 43: unnamed unused input active-high
| line 44: unnamed unused input active-high
| line 45: unnamed unused input active-high
| line 46: unnamed unused input active-high
| line 47: unnamed unused input active-high
| line 48: unnamed unused input active-high
| line 49: unnamed unused input active-high
| line 50: unnamed unused input active-high
| line 51: unnamed unused input active-high
| line 52: "SCL" unused input active-high
| line 53: "SDA" unused input active-high
| line 54: unnamed unused input active-high
| line 55: unnamed unused input active-high
| line 56: unnamed unused input active-high
| line 57: unnamed unused input active-high
| line 58: unnamed unused input active-high
| line 59: unnamed unused input active-high
| line 60: unnamed unused input active-high
| line 61: unnamed unused input active-high
| line 62: unnamed unused input active-high
| line 63: unnamed unused input active-high
| line 64: unnamed unused input active-high
| line 65: unnamed unused input active-high
| line 66: unnamed unused input active-high
| line 67: unnamed unused input active-high
| line 68: unnamed unused input active-high
| line 69: unnamed unused input active-high
| line 70: unnamed unused input active-high
| line 71: unnamed unused input active-high
| line 72: unnamed unused input active-high
| line 73: unnamed unused input active-high
| line 74: unnamed unused input active-high
| line 75: unnamed unused input active-high
| line 76: unnamed unused input active-high
| line 77: unnamed unused input active-high
| line 78: unnamed unused input active-high
| line 79: unnamed unused input active-high
| line 80: unnamed unused input active-high
| line 81: unnamed unused input active-high
| line 82: unnamed unused input active-high
| line 83: unnamed unused input active-high
| line 84: unnamed unused input active-high
| line 85: unnamed unused input active-high
| line 86: unnamed unused input active-high
| line 87: unnamed unused input active-high
| line 88: unnamed unused input active-high
| line 89: unnamed unused input active-high
| line 90: unnamed unused input active-high
| line 91: unnamed unused input active-high
| line 92: unnamed unused input active-high
| line 93: unnamed unused input active-high
| line 94: unnamed unused input active-high
| line 95: unnamed unused input active-high
| line 96: unnamed unused input active-high
| line 97: unnamed unused input active-high
| line 98: unnamed unused input active-high
| line 99: unnamed unused input active-high
| line 100: unnamed unused input active-high
| line 101: unnamed unused input active-high
| line 102: unnamed unused input active-high
| line 103: unnamed unused input active-high
| line 104: unnamed unused input active-high
| line 105: unnamed unused input active-high
| line 106: unnamed unused input active-high
| line 107: unnamed unused input active-high
| line 108: unnamed unused input active-high
| line 109: unnamed unused input active-high
| line 110: unnamed unused input active-high
| line 111: unnamed unused input active-high
| line 112: unnamed unused input active-high
| line 113: unnamed unused input active-high
| line 114: unnamed unused input active-high
| line 115: unnamed unused input active-high
| line 116: unnamed unused input active-high
| line 117: unnamed unused input active-high
| line 118: unnamed unused input active-high
| line 119: unnamed unused input active-high
| line 120: unnamed unused input active-high
| line 121: unnamed unused input active-high
| line 122: unnamed unused input active-high
| line 123: unnamed unused input active-high
| line 124: unnamed unused input active-high
| line 125: unnamed unused input active-high
| line 126: unnamed unused input active-high
| line 127: unnamed unused input active-high
| line 128: unnamed unused input active-high
| line 129: unnamed unused input active-high
| line 130: unnamed unused input active-high
| line 131: unnamed unused input active-high
| line 132: unnamed unused input active-high
| line 133: unnamed unused input active-high
| line 134: unnamed unused input active-high
| line 135: unnamed unused input active-high
| line 136: unnamed unused input active-high
| line 137: unnamed unused input active-high
| line 138: unnamed unused input active-high
| line 139: unnamed unused input active-high
| line 140: unnamed unused input active-high
| line 141: unnamed unused input active-high
| line 142: unnamed unused input active-high
| line 143: unnamed unused input active-high
| line 144: unnamed unused input active-high
| line 145: unnamed unused input active-high
| line 146: unnamed unused input active-high
| line 147: unnamed unused input active-high
| line 148: unnamed unused input active-high
| line 149: unnamed unused input active-high
| line 150: unnamed unused input active-high
| line 151: unnamed unused input active-high
| line 152: unnamed unused input active-high
| line 153: unnamed unused input active-high
| line 154: unnamed unused input active-high
| line 155: unnamed unused input active-high
| line 156: unnamed unused input active-high
| line 157: unnamed unused input active-high
| line 158: unnamed unused input active-high
| line 159: unnamed unused input active-high
| line 160: "SD0-D1" unused input active-high
| line 161: "SD0-D0" unused input active-high
| line 162: "SD0-CLK" unused input active-high
| line 163: "SD0-CMD" unused input active-high
| line 164: "SD0-D3" unused input active-high
| line 165: "SD0-D2" unused input active-high
| line 166: unnamed unused input active-high
| line 167: unnamed unused input active-high
| line 168: unnamed unused input active-high
| line 169: unnamed unused input active-high
| line 170: unnamed unused input active-high
| line 171: unnamed unused input active-high
| line 172: unnamed unused input active-high
| line 173: unnamed unused input active-high
| line 174: unnamed unused input active-high
| line 175: unnamed unused input active-high
| line 176: unnamed unused input active-high
| line 177: unnamed unused input active-high
| line 178: unnamed unused input active-high
| line 179: unnamed unused input active-high
| line 180: unnamed unused input active-high
| line 181: unnamed unused input active-high
| line 182: unnamed unused input active-high
| line 183: unnamed unused input active-high
| line 184: unnamed unused input active-high
| line 185: unnamed unused input active-high
| line 186: unnamed unused input active-high
| line 187: unnamed unused input active-high
| line 188: unnamed unused input active-high
| line 189: unnamed unused input active-high
| line 190: unnamed unused input active-high
| line 191: unnamed unused input active-high
| line 192: unnamed unused input active-high
| line 193: unnamed unused input active-high
| line 194: unnamed unused input active-high
| line 195: unnamed unused input active-high
| line 196: unnamed unused input active-high
| line 197: unnamed unused input active-high
| line 198: unnamed unused input active-high
| line 199: unnamed unused input active-high
| line 200: unnamed unused input active-high
| line 201: unnamed unused input active-high
| line 202: unnamed unused input active-high
| line 203: unnamed unused input active-high
| line 204: unnamed unused input active-high
| line 205: unnamed unused input active-high
| line 206: unnamed unused input active-high
| line 207: unnamed unused input active-high
| line 208: unnamed unused input active-high
| line 209: unnamed unused input active-high
| line 210: unnamed unused input active-high
| line 211: unnamed unused input active-high
| line 212: unnamed unused input active-high
| line 213: unnamed unused input active-high
| line 214: unnamed unused input active-high
| line 215: unnamed unused input active-high
| line 216: unnamed unused input active-high
| line 217: unnamed unused input active-high
| line 218: unnamed unused input active-high
| line 219: unnamed unused input active-high
| line 220: unnamed unused input active-high
| line 221: unnamed unused input active-high
| line 222: unnamed unused input active-high
| line 223: unnamed unused input active-high
| line 224: "TXD0" unused input active-high
| line 225: "RXD0" unused input active-high
| line 226: "IO-1" unused input active-high
| line 227: "PH3" "usb2-vbus" output active-high [used]
| line 228: "USB0-IDDET" "usb0_id_det" input active-high [used]
| line 229: "PH5" unused input active-high
| line 230: unnamed "usb1-vbus" output active-high [used]
| line 231: unnamed unused input active-high
| line 232: unnamed unused input active-high
| line 233: unnamed unused input active-high
| line 234: "SD0-DET" "cd" input active-low [used]
| line 235: unnamed unused input active-high
| line 236: unnamed unused input active-high
| line 237: unnamed unused input active-high
| line 238: unnamed unused input active-high
| line 239: unnamed unused input active-high
| line 240: unnamed unused input active-high
| line 241: unnamed unused input active-high
| line 242: unnamed unused input active-high
| line 243: unnamed unused input active-high
| line 244: "IO-4" unused input active-high
| line 245: "IO-5" unused input active-high
| line 246: unnamed unused input active-high
| line 247: "EMAC-PWR-EN" "gmac-3v3" output active-high [used]
| line 248: "LED1" "bananapi:green:usr" output active-high [used]
| line 249: unnamed unused input active-high
| line 250: unnamed unused input active-high
| line 251: unnamed unused input active-high
| line 252: unnamed unused input active-high
| line 253: unnamed unused input active-high
| line 254: unnamed unused input active-high
| line 255: unnamed unused input active-high
| line 256: unnamed unused input active-high
| line 257: unnamed unused input active-high
| line 258: unnamed unused input active-high
| line 259: "IO-GCLK" unused input active-high
| line 260: unnamed unused input active-high
| line 261: unnamed unused input active-high
| line 262: unnamed unused input active-high
| line 263: unnamed unused input active-high
| line 264: unnamed unused input active-high
| line 265: unnamed unused input active-high
| line 266: "SPI-CE0" unused input active-high
| line 267: "SPI-CLK" unused input active-high
| line 268: "SPI-MOSI" unused input active-high
| line 269: "SPI-MISO" unused input active-high
| line 270: "SPI-CE1" unused input active-high
| line 271: unnamed unused input active-high
| line 272: "IO-6" unused input active-high
| line 273: "IO-3" unused input active-high
| line 274: "IO-2" unused input active-high
| line 275: "IO-0" unused input active-high
| line 276: unnamed unused input active-high
| line 277: unnamed unused input active-high
| line 278: unnamed unused input active-high
| line 279: unnamed unused input active-high
| line 280: unnamed unused input active-high
| line 281: unnamed unused input active-high
| line 282: unnamed unused input active-high
| line 283: unnamed unused input active-high
| line 284: unnamed unused input active-high
| line 285: unnamed unused input active-high
| line 286: unnamed unused input active-high
| line 287: unnamed unused input active-high
|gpiochip1 - 4 lines:
| line 0: unnamed unused input active-high
| line 1: unnamed unused input active-high
| line 2: unnamed unused output active-high
| line 3: unnamed unused input active-high
|gpiochip2 - 4 lines:
| line 0: unnamed unused input active-high
| line 1: unnamed unused input active-high
| line 2: unnamed unused output active-high
| line 3: unnamed unused input active-high
|gpiochip3 - 4 lines:
| line 0: unnamed unused input active-high
| line 1: unnamed unused input active-high
| line 2: unnamed unused input active-high
| line 3: unnamed unused input active-high
|gpiochip4 - 4 lines:
| line 0: unnamed unused input active-high
| line 1: unnamed unused input active-high
| line 2: unnamed unused output active-high
| line 3: unnamed unused input active-high
|[6/4581]mh@lapis:~ $


Ich gehe mal davon aus, dass gpiochip0 der auf dem Board (im SOC?)
befindliche GPIO-Controller ist, die anderen gpiochips sehen mir von
den Namen her nach den Ăźber USB angebundenen seriellen Schnittstellen
(davon eine eine RS485 fĂźr Modbus, alle anderen normale serielle) aus.

Wie ähnlich sieht das zu einem Raspi aus? Kann ich hier 1:1 die
Raspberry-Pi-Doku verwenden oder gibt es signifikante Unterschiede zum
Banana Pi?

Ich brauche zwei Digitaleingänge, die ich von mir aus mit externem
Pullup-Widerstand versehen und dann mit einem Optokoppler gegen Masse
ziehen kann. Ich vermute, dass man fast jeden Pin aus seiner
dokumentierten Funktion rausnehmen und zum "normalen" GPIO machen
kann, aber wie?

Hat jemand schonmal die GPIO-Pins eines Banana Pi verwendet?

Leider stirbt die Plattform ja langsam aus :-(

Grüße
Marc
--
-------------------------------------- !! No courtesy copies, please !! -----
Marc Haber | " Questions are the | Mailadresse im Header
Mannheim, Germany | Beginning of Wisdom " |
Nordisch by Nature | Lt. Worf, TNG "Rightful Heir" | Fon: *49 621 72739834
 
On 22.02.20 14:27, Marc Haber wrote:
Hallo,

ich dachte mir die ganze Zeit, was ich mit einem Arduino machen kann,
kann ich mit dem Banana Pi, der sowieso seine Kreise dreht, auch
machen: Der hat ein Multitasking-OS und kann IPv6, das ist viel
schĂśner als mit dem Spar-Rechner ;-)

Aber, so richtig mit "GPIO" beschriftete Pins hat der gar nicht.

Die Pins sollten (*) kompatibel zu denen eines Raspberry Pi sein, die
kann man hier sehr schĂśn betrachten:
https://elinux.org/RPi_Low-level_peripherals#P1_Header

(NOTE: Du weißt, daß die Pins nur 3V3 vertragen?)

(*) Ich habe einen Bananapi Router an dessen GPIOs ich ein paar Teile
(u.a. Optokoppler um meine zwei NAS ein zu schalten und ein SSR um ein
Fax-Modem ein zu schalten) betreibe. Dort ist es auch kompatibel.

Josef
 
On 22.02.20 14:27, Marc Haber wrote:
ich dachte mir die ganze Zeit, was ich mit einem Arduino machen kann,
kann ich mit dem Banana Pi, der sowieso seine Kreise dreht, auch
machen: Der hat ein Multitasking-OS und kann IPv6, das ist viel
schĂśner als mit dem Spar-Rechner ;-)

Nicht.

Raspberry (und/oder Banana) und Arduino haben deutlich unterschiedliche
Anwendungsfälle. Und wenn es um GPIOs geht, dann ist der Arduino
definitiv schneller. Ist eben ein Mikrocontroller. Der Arduino hat auch
"echte" Interrupts und erlaubt Zeitmessungen bis runter in den
Nanosekundenbereich.

Man kann die GPIOs gut nutzen wenn man z.B. einen Raspberry in eine
Gehäuse baut und ins gleiche Gehäuse noch ein LCD verbauen will. Das
schließt man dann einfach am GPIO mit an und steuert es direkt im Linux
an. Bei allem was weiter geht hänge ich lieber einen Arduino an den USB
vom Raspberry.

Wie ähnlich sieht das zu einem Raspi aus? Kann ich hier 1:1 die
Raspberry-Pi-Doku verwenden oder gibt es signifikante Unterschiede zum
Banana Pi?

Es gibt Unterschiede. Im Zweifelsfall die Pinouts nebeneinander legen.
Raspberry hat z.B. keine Pins fĂźr CAN.

Hat jemand schonmal die GPIO-Pins eines Banana Pi verwendet?

Leider stirbt die Plattform ja langsam aus :-(

Ich halte das mittlerweile so, dass ich alles, was nicht "Raspberry"
heißt, direkt beim Händler liegen lasse. Mag ja sein das andere Boards
auf dem Papier bessere Daten haben. Bringt aber nichts wenn die
Community drum rum zu klein ist.

Gruß

Manuel
 
Manuel Reimer <manuel.nulldevice@nurfuerspam.de> wrote:
On 22.02.20 14:27, Marc Haber wrote:
ich dachte mir die ganze Zeit, was ich mit einem Arduino machen kann,
kann ich mit dem Banana Pi, der sowieso seine Kreise dreht, auch
machen: Der hat ein Multitasking-OS und kann IPv6, das ist viel
schĂśner als mit dem Spar-Rechner ;-)

Nicht.

Raspberry (und/oder Banana) und Arduino haben deutlich unterschiedliche
Anwendungsfälle. Und wenn es um GPIOs geht, dann ist der Arduino
definitiv schneller. Ist eben ein Mikrocontroller. Der Arduino hat auch
"echte" Interrupts und erlaubt Zeitmessungen bis runter in den
Nanosekundenbereich.

Brauch ich alles nicht, ich hätte es gerne simpel.

Hat jemand schonmal die GPIO-Pins eines Banana Pi verwendet?

Leider stirbt die Plattform ja langsam aus :-(

Ich halte das mittlerweile so, dass ich alles, was nicht "Raspberry"
heißt, direkt beim Händler liegen lasse. Mag ja sein das andere Boards
auf dem Papier bessere Daten haben. Bringt aber nichts wenn die
Community drum rum zu klein ist.

Der Banana Pi war 2015 super, wenn man ein kleines Serverchen haben
wollte: Richtiges SATA fßr eine richtige Platte, und anständig
angebundenes Ethernet, nicht so eine USB-Bastelei.

Gibt es in der Raspberry-Welt bis heute nicht, und ich bin zu faul,
mir noch eine Exoten-Architektur ans Bein zu binden fĂźr die ich meine
Pakete bauen muss.

Aber das geht alles an der Frage vorbei.

Grüße
Marc
--
-------------------------------------- !! No courtesy copies, please !! -----
Marc Haber | " Questions are the | Mailadresse im Header
Mannheim, Germany | Beginning of Wisdom " |
Nordisch by Nature | Lt. Worf, TNG "Rightful Heir" | Fon: *49 621 72739834
 
On 22.02.20 18:24, Marc Haber wrote:
Raspberry (und/oder Banana) und Arduino haben deutlich unterschiedliche
Anwendungsfälle. Und wenn es um GPIOs geht, dann ist der Arduino
definitiv schneller. Ist eben ein Mikrocontroller. Der Arduino hat auch
"echte" Interrupts und erlaubt Zeitmessungen bis runter in den
Nanosekundenbereich.

Brauch ich alles nicht, ich hätte es gerne simpel.

Dann wĂźrde ich dir WiringPi empfehlen. "pinMode", "digitalWrite", ...
ähnlich wie Arduino fßr den Raspberry.

Wurde wohl fĂźr den Banana geforkt:
http://wiki.lemaker.org/BananaPro/Pi:GPIO_library#How_to_use_WiringPi_on_the_Banana_Pro.2FPi

Der Banana Pi war 2015 super, wenn man ein kleines Serverchen haben
wollte: Richtiges SATA fßr eine richtige Platte, und anständig
angebundenes Ethernet, nicht so eine USB-Bastelei.

Gibt es in der Raspberry-Welt bis heute nicht, und ich bin zu faul,
mir noch eine Exoten-Architektur ans Bein zu binden fĂźr die ich meine
Pakete bauen muss.

Raspberry Pi 4. Vollwertiges Gigabit Ethernet das nicht mehr am USB
hängt und 2x vollwertige USB 3.0.

Zumindest ich bevorzuge USB 3.0 vor SATA, denn so kann man die Platte
sauber in ein handelsßbliches Gehäuse einbauen und einfach mit USB 3.0
anschließen.

Bei einem Bekannten hab ich den Pi 4 schon knapp nach MarkteinfĂźhrung
als 24/7 laufenden TV-Streaming-Server aufgebaut. Da hängen 6
vollwertige SAT-Tuner dran und fĂźr die Aufnahmen eine 4TB-Platte im
externen Gehäuse. Im Haus verteilt sind Raspberry 3 mit LibreElec als
Clients.

Gruß

Manuel
 
Marc Haber <mh+usenetspam1118@zugschl.us> wrote:
ich dachte mir die ganze Zeit, was ich mit einem Arduino machen kann,
kann ich mit dem Banana Pi, der sowieso seine Kreise dreht, auch
machen: Der hat ein Multitasking-OS und kann IPv6, das ist viel
schĂśner als mit dem Spar-Rechner ;-)

Aber, so richtig mit "GPIO" beschriftete Pins hat der gar nicht.

https://pi4j.com/1.2/pins/lemaker-bananapi.html zeigt die Belegung von
CON3, da gibt es SPI, verschiedene UARTs, PWM und CAN, aber nix, was
direkt ein GPIO wäre.

http://linux-sunxi.org/GPIO sagt, dass man die GPIO-Pins heutzutage
mit der libgpio und gpiod anspricht. Beide Pakete gibt es unter
Debian, und sie scheinen auch zu funktionieren:

Also, ich hab das jetzt zum Laufen gebracht und dokumentiere fĂźr die
Nachwelt (und freue mich auf Eure Kommentare).

Schritt 1: Wir bauen uns ein "known good" Referenzsystem um die
elektronischen Schaltungen zu validieren.
Schrank auf, Raspi raus, aktuelles Raspian installiert, Doku gelesen,
gpiozero installiert, sich insbesondere Ăźber "pinout" gefreut, dann
die beiden LED-Blink- und Schalter-Abfrage-Programme ausprobiert und
Funktion verifiziert.

Schritt 2: gpiozero auf dem Banana Pi installiert, nach Aufruf von
"pinout" festgestellt, dass das eine Raspberry-Pi-spezifische Software
zu sein scheint, mit dem LED-Blink-Programm verifiziert. Geflucht.
Kaffee getrunken.

Schritt 3: Raspbian mit gpiod ausprobiert, verstanden wie gpioset und
gpioget funktioniert. LED-Blink und Schalter-Abfrage-Programm als
Shellscript implementiert.

Schritt 4: Nach einer Dokumentation des Pinout des Banana Pi gesucht,
auf dem sich die Namen der Pins mit der Ausgabe von gpioinfo deckt.
Mit http://wiki.banana-pi.org/Banana_Pi_BPI-M1 gefunden.

Schritt 5: Entschieden, die "speziell" gelabelten Pins links liegen zu
lassen, GPIO0 bis GPIO6 reichen mir vĂśllig. In der Ausgabe von
gpioinfo heißen die "IO-0" bis "IO-6".

Schritt 6: LED-Blink-Programm (auf GPIO6):
|while true; do gpioset --mode=time --sec=1 gpiochip0 272=1; gpioset --mode=time --sec=1 gpiochip0 272=0; done
Meine Vermutung ist, dass gpioset nur so lange es läuft bereit ist,
eine definitive Aussage Ăźber den Zustand des pins zu treffen, daher
das Geraffel mit --mode und --sec.

Schritt 7: Schalter-Abfrage-Programm (wiederum GPIO6):
|while sleep 1; do gpioget gpiochip0 272; done
Pull-Up-Widerstand 47 kOhm, Schalter gegen Masse. Funktioniert.

So kann ich arbeiten. Wenn ich lustig bin mach ich eine udev-Regel die
den Zugriff auf /dev/gpiochip0 auch als nicht-root erlaubt, aber fĂźr
heute reicht mit das jetzt erstmal.

Grüße
Marc
--
-------------------------------------- !! No courtesy copies, please !! -----
Marc Haber | " Questions are the | Mailadresse im Header
Mannheim, Germany | Beginning of Wisdom " |
Nordisch by Nature | Lt. Worf, TNG "Rightful Heir" | Fon: *49 621 72739834
 
Manuel Reimer <manuel.nulldevice@nurfuerspam.de> wrote:
Raspberry Pi 4. Vollwertiges Gigabit Ethernet das nicht mehr am USB
hängt und 2x vollwertige USB 3.0.

Aber dafĂźr diverse KĂźhlprobleme, und IIRC immer noch nicht mit plain
Debian betreibbar. Und, nochmal IIRC, nicht binärkompatibel zum Banana
Pi, also eine neue Architektur die mit Paketen bespielt werden will.

Zumindest ich bevorzuge USB 3.0 vor SATA, denn so kann man die Platte
sauber in ein handelsßbliches Gehäuse einbauen und einfach mit USB 3.0
anschließen.

Ich habe das USB vom Raspi 4 noch nicht ausprobiert, aber am Desktop
funktioniert eSATA um einiges flauschiger als USB3, insbesondere ist
die Datenßbertragungslinie beim Bulk Write eine Hochebene, während sie
bei USB 3 eher ein Gebirge ist.

Grüße
Marc
--
-------------------------------------- !! No courtesy copies, please !! -----
Marc Haber | " Questions are the | Mailadresse im Header
Mannheim, Germany | Beginning of Wisdom " |
Nordisch by Nature | Lt. Worf, TNG "Rightful Heir" | Fon: *49 621 72739834
 
Axel Berger <Spam@Berger-Odenthal.De> wrote:
Marc Haber wrote:
insbesondere ist
die Datenßbertragungslinie beim Bulk Write eine Hochebene, während sie
bei USB 3 eher ein Gebirge ist.

Das wundert mich. Weil riesige Datenmengen -- Komplettbackup -- Ăźber LAN
(Kabel, nicht W) ewig dauern, kopiere ich an einem Rechner von einer
externen Platte an USB zu einer genauso angeschlossenen anderen. Das
läuft. Die geringere Geschwindikeit von Partitionen mit vielen kleinen
Dateien liegt nicht am Übertragungskanal.

Du kannst mir glauben dass ich in der Lage bin, Hardwareperformance zu
bewerten.

--
-------------------------------------- !! No courtesy copies, please !! -----
Marc Haber | " Questions are the | Mailadresse im Header
Mannheim, Germany | Beginning of Wisdom " |
Nordisch by Nature | Lt. Worf, TNG "Rightful Heir" | Fon: *49 621 72739834
 
Marc Haber wrote:
insbesondere ist
die Datenßbertragungslinie beim Bulk Write eine Hochebene, während sie
bei USB 3 eher ein Gebirge ist.

Das wundert mich. Weil riesige Datenmengen -- Komplettbackup -- über LAN
(Kabel, nicht W) ewig dauern, kopiere ich an einem Rechner von einer
externen Platte an USB zu einer genauso angeschlossenen anderen. Das
läuft. Die geringere Geschwindikeit von Partitionen mit vielen kleinen
Dateien liegt nicht am Übertragungskanal.


--
/Ż\ No | Dipl.-Ing. F. Axel Berger Tel: +49/ 221/ 7771 8067
\ / HTML | Roald-Amundsen-Straße 2a Fax: +49/ 221/ 7771 8069
 X in | D-50829 Köln-Ossendorf http://berger-odenthal.de
/ \ Mail | -- No unannounced, large, binary attachments, please! --
 
Hi Manuel,
Raspberry (und/oder Banana) und Arduino haben deutlich unterschiedliche
Anwendungsfälle. Und wenn es um GPIOs geht, dann ist der Arduino
definitiv schneller.

nicht zwingend.

Ist eben ein Mikrocontroller. Der Arduino hat auch
"echte" Interrupts und erlaubt Zeitmessungen bis runter in den
Nanosekundenbereich.

Welchen Arduino mit GHz Prozessor meinst Du jetzt genau?

Wenn Du UNO, Nano und Konsorten meinst, da ist mit 16 MHz kein ns
denkbar, hĂśchstens 100 ns. Da wĂźrde ich hĂśchstens sub-Âľs nennen.

Den entscheidenden Unterschied macht die harte Echtzeitfähigkeit

Ich halte das mittlerweile so, dass ich alles, was nicht "Raspberry"
heißt, direkt beim Händler liegen lasse. Mag ja sein das andere Boards
auf dem Papier bessere Daten haben. Bringt aber nichts wenn die
Community drum rum zu klein ist.

Ich hab mal gelesen, dass die OrangePi-Szene vor allem stolz darauf ist,
dass man immer noch die alten Teile beziehen kann, was fĂźr kommerzielle
Projekte, abseits des Kostenvorteils nicht unrelevant ist.

Marte
 
Hi Marc,
Der Banana Pi war 2015 super, wenn man ein kleines Serverchen haben
wollte: Richtiges SATA fßr eine richtige Platte, und anständig
angebundenes Ethernet, nicht so eine USB-Bastelei.

Gibt es in der Raspberry-Welt bis heute nicht,

Doch, das sei doch der entscheidende Unterschied beim RasPi4

Marte
 
Marte Schwarz <marte.schwarz@gmx.de> wrote:
Hi Marc,
Der Banana Pi war 2015 super, wenn man ein kleines Serverchen haben
wollte: Richtiges SATA fßr eine richtige Platte, und anständig
angebundenes Ethernet, nicht so eine USB-Bastelei.

Gibt es in der Raspberry-Welt bis heute nicht,

Doch, das sei doch der entscheidende Unterschied beim RasPi4

SATA?

Grüße
Marc
--
-------------------------------------- !! No courtesy copies, please !! -----
Marc Haber | " Questions are the | Mailadresse im Header
Mannheim, Germany | Beginning of Wisdom " |
Nordisch by Nature | Lt. Worf, TNG "Rightful Heir" | Fon: *49 621 72739834
 
Gerrit Heitsch <gerrit@laosinh.s.bawue.de> wrote:
On 2/24/20 8:19 AM, Marc Haber wrote:
Marte Schwarz <marte.schwarz@gmx.de> wrote:
Hi Marc,
Der Banana Pi war 2015 super, wenn man ein kleines Serverchen haben
wollte: Richtiges SATA fßr eine richtige Platte, und anständig
angebundenes Ethernet, nicht so eine USB-Bastelei.

Gibt es in der Raspberry-Welt bis heute nicht,

Doch, das sei doch der entscheidende Unterschied beim RasPi4

SATA?

USB3, zwei Ports, und sauber angebundenes Ethernet. Da wirst du dich
Ăźber Durchsatz nicht beschweren kĂśnnen.

Ich habe meinen AusfĂźhrungen an anderer Stelle in diesem Thread nichts
hinzuzufĂźgen.

Grüße
Marc
--
-------------------------------------- !! No courtesy copies, please !! -----
Marc Haber | " Questions are the | Mailadresse im Header
Mannheim, Germany | Beginning of Wisdom " |
Nordisch by Nature | Lt. Worf, TNG "Rightful Heir" | Fon: *49 621 72739834
 
On 2/24/20 8:19 AM, Marc Haber wrote:
Marte Schwarz <marte.schwarz@gmx.de> wrote:
Hi Marc,
Der Banana Pi war 2015 super, wenn man ein kleines Serverchen haben
wollte: Richtiges SATA fßr eine richtige Platte, und anständig
angebundenes Ethernet, nicht so eine USB-Bastelei.

Gibt es in der Raspberry-Welt bis heute nicht,

Doch, das sei doch der entscheidende Unterschied beim RasPi4

SATA?

USB3, zwei Ports, und sauber angebundenes Ethernet. Da wirst du dich
Ăźber Durchsatz nicht beschweren kĂśnnen.

Gerrit
 
Hi Marc,
Der Banana Pi war 2015 super, wenn man ein kleines Serverchen haben
wollte: Richtiges SATA fßr eine richtige Platte, und anständig

USB3, zwei Ports, und sauber angebundenes Ethernet. Da wirst du dich
Ăźber Durchsatz nicht beschweren kĂśnnen.

Ich habe meinen AusfĂźhrungen an anderer Stelle in diesem Thread nichts
hinzuzufĂźgen.

Ich wßrde das tatsächlich mal auf einen Versuch ankommen lassen, ob der
Banana Pi von 2015 wirklich auf seinem SATA mehr Datendurchsatz schafft,
als der RasPi4 Ăźber USB3.

Ansonsten ist und bleibt es so, dass die Teile stromsparende
Minimalmaschinchen sind und keine Rennschweine.

Marte
 
Am 24.02.2020 um 10:46 schrieb Marte Schwarz:
Hi Marc,
Der Banana Pi war 2015 super, wenn man ein kleines Serverchen haben
wollte: Richtiges SATA fßr eine richtige Platte, und anständig

USB3, zwei Ports, und sauber angebundenes Ethernet. Da wirst du dich
Ăźber Durchsatz nicht beschweren kĂśnnen.

Ich habe meinen AusfĂźhrungen an anderer Stelle in diesem Thread nichts
hinzuzufĂźgen.

Ich wßrde das tatsächlich mal auf einen Versuch ankommen lassen, ob der
Banana Pi von 2015 wirklich auf seinem SATA mehr Datendurchsatz schafft,
als der RasPi4 Ăźber USB3.

NĂś, tut er nicht.

Ich habs letztens mal gemessen, und war echt enttäuscht was da zustande kam.
Wenn die neue Platte fĂźr den Raspi da ist, kann ich mal die Messwerte
nachliefern.
 
On 2/24/20 10:46 AM, Marte Schwarz wrote:
Hi Marc,
Der Banana Pi war 2015 super, wenn man ein kleines Serverchen haben
wollte: Richtiges SATA fßr eine richtige Platte, und anständig

USB3, zwei Ports, und sauber angebundenes Ethernet. Da wirst du dich
Ăźber Durchsatz nicht beschweren kĂśnnen.

Ich habe meinen AusfĂźhrungen an anderer Stelle in diesem Thread nichts
hinzuzufĂźgen.

Ich wßrde das tatsächlich mal auf einen Versuch ankommen lassen, ob der
Banana Pi von 2015 wirklich auf seinem SATA mehr Datendurchsatz schafft,
als der RasPi4 Ăźber USB3.

Ansonsten ist und bleibt es so, dass die Teile stromsparende
Minimalmaschinchen sind und keine Rennschweine.

Ja, man kann nicht alles haben. Aber als Fileserver schafft der Pi4 wohl
55 MB/sec schreibend und kann das Gbit Ethernet beim Lesen annähernd
auslasten.

Wem das nicht reicht, der muss eben andere Hardware nehmen. Kostet dann
auch einen Tick mehr.

Wenn die USB3-Performance nicht passt, vielleicht das hier mal probieren:

https://www.raspberrypi.org/forums/viewtopic.php?t=245931

Gerrit
 
On 24.02.20 11:22, Gerrit Heitsch wrote:
Wenn die USB3-Performance nicht passt, vielleicht das hier mal probieren:

https://www.raspberrypi.org/forums/viewtopic.php?t=245931

Die Anleitung ist in der Tat sehr empfehlenswert.

Beim Bekannten bei dem ich den Server auf Raspi 4 Basis gebaut habe,
hatte ich nämlich genau das Problem.

Das geht bei einem Server (also 24/7) dann soweit bis der Kernel die
Platte irgendwann readonly mountet und dann war's das mit Schreiben.

Seit Einfßgen dieses "quirks" läuft die Platte sauber.

Ich bin froh statt SATA zwei USB 3.0 zu haben. SATA stirbt so langsam eh
weg (nurnoch fßr magnetische Datenträger) und USB 3.0 ist flexibler. Da
gehen auch LAN-Karten dran was am SATA nicht geht.

Gruß

Manuel
 
On 2020-02-23 04:05, Marc Haber wrote:
Marc Haber <mh+usenetspam1118@zugschl.us> wrote:
ich dachte mir die ganze Zeit, was ich mit einem Arduino machen kann,
kann ich mit dem Banana Pi, der sowieso seine Kreise dreht, auch
machen: Der hat ein Multitasking-OS und kann IPv6, das ist viel
schĂśner als mit dem Spar-Rechner ;-)

Aber, so richtig mit "GPIO" beschriftete Pins hat der gar nicht.

https://pi4j.com/1.2/pins/lemaker-bananapi.html zeigt die Belegung von
CON3, da gibt es SPI, verschiedene UARTs, PWM und CAN, aber nix, was
direkt ein GPIO wäre.

http://linux-sunxi.org/GPIO sagt, dass man die GPIO-Pins heutzutage
mit der libgpio und gpiod anspricht. Beide Pakete gibt es unter
Debian, und sie scheinen auch zu funktionieren:

Also, ich hab das jetzt zum Laufen gebracht und dokumentiere fĂźr die
Nachwelt (und freue mich auf Eure Kommentare).

Schritt 1: Wir bauen uns ein "known good" Referenzsystem um die
elektronischen Schaltungen zu validieren.
Schrank auf, Raspi raus, aktuelles Raspian installiert, Doku gelesen,
gpiozero installiert, sich insbesondere Ăźber "pinout" gefreut, dann
die beiden LED-Blink- und Schalter-Abfrage-Programme ausprobiert und
Funktion verifiziert.

Die Schranktuer nicht wieder zugemacht? Oh-oh ... :)


Schritt 2: gpiozero auf dem Banana Pi installiert, nach Aufruf von
"pinout" festgestellt, dass das eine Raspberry-Pi-spezifische Software
zu sein scheint, mit dem LED-Blink-Programm verifiziert. Geflucht.
Kaffee getrunken.

Kommt mir vom Pogoplug her bekannt vor, auch wenn ich da keinen Kaffee
getrunken habe.


Schritt 3: Raspbian mit gpiod ausprobiert, verstanden wie gpioset und
gpioget funktioniert. LED-Blink und Schalter-Abfrage-Programm als
Shellscript implementiert.

Schritt 4: Nach einer Dokumentation des Pinout des Banana Pi gesucht,
auf dem sich die Namen der Pins mit der Ausgabe von gpioinfo deckt.
Mit http://wiki.banana-pi.org/Banana_Pi_BPI-M1 gefunden.

Schritt 5: Entschieden, die "speziell" gelabelten Pins links liegen zu
lassen, GPIO0 bis GPIO6 reichen mir vĂśllig. In der Ausgabe von
gpioinfo heißen die "IO-0" bis "IO-6".

Schritt 6: LED-Blink-Programm (auf GPIO6):
|while true; do gpioset --mode=time --sec=1 gpiochip0 272=1; gpioset --mode=time --sec=1 gpiochip0 272=0; done
Meine Vermutung ist, dass gpioset nur so lange es läuft bereit ist,
eine definitive Aussage Ăźber den Zustand des pins zu treffen, daher
das Geraffel mit --mode und --sec.

Davon verstehe ich zuwenig, aber bei uC setzen wir solche Ports meist
auf Interrupt, sodass sofort angezeigt wird, wenn sich der Status eines
Ports geaendert hat.

[...]

--
Gruesse, Joerg

http://www.analogconsultants.com/
 
On 2020-02-24 02:22, Gerrit Heitsch wrote:
On 2/24/20 10:46 AM, Marte Schwarz wrote:
Hi Marc,
Der Banana Pi war 2015 super, wenn man ein kleines Serverchen haben
wollte: Richtiges SATA fßr eine richtige Platte, und anständig

USB3, zwei Ports, und sauber angebundenes Ethernet. Da wirst du dich
Ăźber Durchsatz nicht beschweren kĂśnnen.

Ich habe meinen AusfĂźhrungen an anderer Stelle in diesem Thread nichts
hinzuzufĂźgen.

Ich wßrde das tatsächlich mal auf einen Versuch ankommen lassen, ob
der Banana Pi von 2015 wirklich auf seinem SATA mehr Datendurchsatz
schafft, als der RasPi4 Ăźber USB3.

Ansonsten ist und bleibt es so, dass die Teile stromsparende
Minimalmaschinchen sind und keine Rennschweine.

Ja, man kann nicht alles haben. Aber als Fileserver schafft der Pi4 wohl
55 MB/sec schreibend und kann das Gbit Ethernet beim Lesen annähernd
auslasten.

Selbst mein alter Pogoplug Mobile kommt ueber die Strecke USB3.0 -> LAN
auf 0-40MB/sec und der ist aus dem Jahr 2011.

Das Dingen hat auch einen nichtbestueckten SATA Landeplatz auf der
Leiterplatte, der nochmal 20-30% mehr bringen soll. Aber wozu?


Wem das nicht reicht, der muss eben andere Hardware nehmen. Kostet dann
auch einen Tick mehr.

Ich frage mich immer, warum man noch mehr braucht. Selbst bei einer
Grossfamilie mit 5-6 Fernsehern koennte man das nicht an den Poller
bringen. Ich habe seit gut einem Jahr 75Mbit/sec Internet, der
langsamste angebotene Tarif. Es ist ja ganz toll, wenn irgendein Major
Update beinahe durchblitzt, aber notwendig ist das nicht.

[...]

--
Gruesse, Joerg

http://www.analogconsultants.com/
 

Welcome to EDABoard.com

Sponsor

Back
Top