Nach ner halben Stunde gurgeln dachte, fragst mal in die Runde, Vlt. Kennt jemand ne Lib.
Also ich würde gerne GPIOs als Byte zusammenfassen und darüber byteweise Ein-/Ausgaben machen.
Kennt einer ne passende Lib? Gerne auch C.
Danke
Reraspi
Nach ner halben Stunde gurgeln dachte, fragst mal in die Runde, Vlt. Kennt jemand ne Lib.
Also ich würde gerne GPIOs als Byte zusammenfassen und darüber byteweise Ein-/Ausgaben machen.
Kennt einer ne passende Lib? Gerne auch C.
Danke
Reraspi
GPIOs als Byte zusammenfassen? Schau mal ob du hier fündig wirst!
kann nicht klappen weil mehr GPIO als 8-bit
aber du kannst dir doch deine Wunschbits vom GPIO selber in ein Byte schieben ! oder mehr in 2 Byte
Danke für die Antwort.
Das Problem ist, ich will 8 GPIOs nehmen. Welche ist eigentlich egal. Stellen wir uns vor, da soll ein Drucker mit ner alten Parallelschnittstelle dran.
Der Punkt ist, der Drucker soll die Bits synchron als Byte bekommen. Die Steuersoftware im raspi kann sie gern seriell in ein Register schieben.
Natürlich könnte ich von außen ein Schieberegister dranfummeln, aber ich habe gehofft, dass der Raspi, das bei der Menge an IOPorts irgendwie auch selber kann.
So wie beim Arduino. Eigentlich nur IO Befehle um bitweises IO machen zu können. Seh ich mir aber die AVR Befehle an, kann ich mit dem Teil problemlos auch bytewises IO machen.
Reraspi
Salve reraspi,
...
Also ich würde gerne GPIOs als Byte zusammenfassen und darüber byteweise Ein-/Ausgaben machen.
...
hmm ... also wenn ich das richtig verstehe, dann willst Du quasi eine parallele Schnittstelle basteln.
Das ist allerdings jetzt nicht ganz so einfach ...
Klar, mit einer beliebigen Lib ( pigpio, bcm2835, wiringPi, ... ) kannst Du einzelne I/Os setzen ... acht Stück und bingo - ein Byte ...
Aber: Du kannst die Pins nicht gleichzeitig setzen ... sondern immer nur einen nach dem anderen. Klar - das geht rasend schnell - trotzdem ist es nicht zeitgleich.
Deswegen haben z.B. Druckerschnittstellen noch eine Strobe-Leitung. Die gibt an, wann an allen Pins das richtige Signal anliegt. Erst dann wird das Byte abgeholt.
Alternative: ein Schieberegister ... da schiebst Du Bit für Bit rein und zum Schluss feuerst Du das Ganze als Byte ab ... geht imho genau fast so schnell. Und funktioniert ebenfalls über einen Strobe.
Wenn Du etwas genauer erzählst, was Du vor hast, findet sich auch eine für Dich funktionierende Lösung.
cheerio,
-ds-
Aber: Du kannst die Pins nicht gleichzeitig setzen ... sondern immer nur einen nach dem anderen. Klar - das geht rasend schnell - trotzdem ist es nicht zeitgleich..
Ja genau, hatte gehofft, dass der Baustein das ansich schon kann. Und wie es aussieht, gibt es da zumindest Befehle um bankweise zu lesen und zu schreiben. Das sind da aber jeweils 32bit. Hab mich allerdings noch nicht so genau eingelesen.
Ich will tatsächlich sowas wie einen Parallelport selber implementieren. Mehr so als Fingerübung, weil ich denke, dass das eigentlich gehen müsste. Klar, mit nem Expander wär ich schneller am Ziel. Aber wär auch irgendwie pervers. Da hab ich nen B+ vor mir liegen, der nochmal ne ganze Reihe zusätzlicher IOs hat und dann verwende ich 2 davon, häng einen Expander dran um nochmal 8 IOs zu bekommen
Reraspi
Ok, ...
was mir eben noch einfiel: für acht Bit könntest Du auch diesen IIC-Adapter für LCDs missbrauchen ...
ich meine so ein Teil -> hier <- ...
Tja, nun liegt's an Dir ...
cu,
-ds-
oder du nimmst ein stinknormales 8-bit latch
setzt bit by bit und wenn fertig mit einem neunten GPIO übernimmst du alle 8-Datenbits zeitgleich
oder du nimmst ein stinknormales 8-bit latch
setzt bit by bit und wenn fertig mit einem neunten GPIO übernimmst du alle 8-Datenbits zeitgleich
Ja, das sollte gehen, zumal ne Pegelanpassung ja ohnehin gemacht werden muss.
Quäl mich grad durch die BROADCOM BCM2835 Doku. Sieht echt so aus, als wenn die Ports nur einzeln oder als komplette bank(32bit) gesetzt werden können.
reraspi
Also, falls es jemanden interessiert.
bit banging in 32bit parallel mode lässt sich tatsächlich machen. Schreiben und lesen.
Hier hats mal einer gemacht: 32bit lesen und schreiben
Hab aber bisher noch kein Lib gefunden, wo das mal mit eingearbeitet ist. Und zum selbermachen fehlt mir im Moment die Zeit;-(
reraspi
Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!