Wie erzeugt man ein Speicher für Schieberegister?

  • Ich möchte auf 3 Schieberegister nacheinander immer wieder die gleichen Werte haben. Also ich könnte über ein GPIO Pin ja einfach die HIGH bzw LOW senden und mit einem anderen den Takt geben, aber gibt es einfache Bauteile, die sich auch verschiedene Werte dann merken könne, so das ich nicht immer wieder die gleichen Bits an den Register senden muss ?

  • Hallo.


    Ich möchte auf 3 Schieberegister nacheinander immer wieder die gleichen Werte haben. Also ich könnte über ein GPIO Pin ja einfach die HIGH bzw LOW senden und mit einem anderen den Takt geben, aber gibt es einfache Bauteile, die sich auch verschiedene Werte dann merken könne, so das ich nicht immer wieder die gleichen Bits an den Register senden muss ?


    Wenn das immer das gleiche Bitmuster ist, brauchst doch nur einmal komplett rausschieben.
    Mit dem G Eingang an den Schieberegistern Setzt Du dann die Ausgänge auf enable bzw. disable.
    Oder hab ich Dich da falsch verstanden.
    Noch eleganter ist es z.B mit der pigpio Library.
    Hier mit gpioWrite_Bits_0_31_set alle gewünschten Gpios mit einem Befehl setzen.
    Damit z.B. ne parallele Schnittstelle nachbilden, ohne lästiges Bit schieben.
    ...mal in Ruhe durchlesen...


    gruß root

    Edited once, last by root ().

  • Ich meinte das ich mehrere Bitmuster habe, die sich aber sehr oft wiederholen.
    Versuche gerade einen Schaltplan für ein LED Matrix-Steuerung zu planen, damit ich dann weiß was ich brauche.
    Da es RGB LEDs sind, bei denen ich erst mal aber nur An/Aus regeln will brauch ich bei einer 8x8 Matrix dann ja 3 8bit Register. Damit hab ich schon mal die Möglichkeit eine Zeile zu steuern. Einen Zähler um durch die Zeilen zu gehen, und eigentlich sollte es damit dann gehen.
    Dabei überleg ich halt das sich das "Bild" ja nicht so oft ändert, also versuch ich gerade rauszufinden, ob ich nicht einen Speicher irgendwie erschaffen kann, den ich dann vom RPi beschreibe, und das daraus die Bits für die Zeilen lesen, auf die Register schreiben usw. dann mit einem Taktgeber elektronisch löse.

  • Ich denke wenn du einen Atmega oder ähnlichen Controller verwendest bist du flexibler und könntest deine Funktion auch einfacher realisieren ;)

  • Hatte ich mir auch schon angeguckt, aber nicht ganz raus gefunden welche ich da dann brauche. Will eine 16x16 RGB LED Matrix aufbauen. Bisher dachte ich, das ich einfach 4 8x8 Matrix aufbaue und die halt mit Schieberegister und Zähler steuer.
    Hatte mir mal ein paar dieser Controller angeguckt, aber soweit ich das dann beurteilen kann bräuchte ich dann mehrere davon, wobei es vom Preis dann schnell explodiert. Kann mich da aber auch irren, so gut kenne ich mich noch nicht aus damit ;)

  • 16x16 LEDs je 4 Beinchen heißt also:


    256 LEDs insgesamt 1024 Beinchen, heißt also mit 4 MCP23017 oder MCP23S17 wäre die Sache möglich ;)
    1 MCP Blau
    1 MCP Rot
    1 MCP Grün
    1 MCP GND
    Je nachdem wie Hell du die LEDs haben möchtest bräuchtest du noch Teiberstufen...
    Wird ne größere Schaltung, viel Spaß ;)


    Du kannst dir überlegen die Geschichte direkt über den RPi zu steuern, oder noch einen Atmega dazwischenzuschalten, je nachdem was du dann mit der Matrix machen willst ;)

  • Will darauf einfach nur ein paar Muster anzeigen. Also nichts animiertes.
    Muss auch keine sonderliche Farbtiefe haben. Eigentlich reicht Farbe an/aus vollkommen aus.
    Habe ein paar Versuche mit einfachen Schieberegistern schon gemacht, leider flackert es da ab und zu mal wenn ich das ganze Bit-Banging vom RPi aus mache. selbst mit C geschrieben.
    Daher überleg ich halt wie es möglich gemacht werden kann, das die Anzeige einen eigenen Tackt von einem Quarz z.B. hat.
    Aber dafür muss ich die Bits der Zeilen ja irgendwo in einen Speicher rein schreiben können, aus dem dann jeweils beim Multiplexing immer die Zeile gelesen wird für die Anzeige.


    Habe schon 64bit Shift Register angeschaut, in denen könnte man evtl. die Daten speicher, da die ja auch seriellen Ausgang haben. Aber leider scheinen die auch alle für Ein- und Ausgang den gleichen Tackt zu haben, also kann ich nicht in einem anderen Tackt beschreiben.

  • Hallo.
    Hake mich da auch noch mal ein.


    Hast Dich schonmal damit beschäftigt ? FPGal.
    Die gibt es auch in E²Versionen, also lösch-und wieder beschreibbar.
    D.h. du legst ein beliebiges Bitmuster an, "brennst" es und gut.
    Zur Ausgabe adressierst nur das Muster und fertig.
    Selbst die Art der Adressierung kannst selbst festlegen.
    Ist gewöhnungsbedürftig, aber effektiv.
    Nicht verwechseln mit nem E²Prom oder so, das ist was anderes.
    Bitbreite,Muster, Adressierung und Funktion liegen hier beim Anwender alleine.


    gruß root

    Edited once, last by root ().

  • Habe ich mir schon angeschaut. Aber meistens sind die auch ein wenig teurer als ein paar einfache Schieberegister.
    Ich weiß auch nicht ob die wirklich passen würden. Denn soweit ich das sehe, muss man die Muster dort vorher erst mal einspeichern. Ich möchte das aber recht dynamisch gestallten, so das ich relativ einfach die angezeigten Muster wechseln kann. Zudem auch eine beliebige Anzahl an unterschiedlichen Mustern möglich sein sollen.


    Kennt jemand eine gute Anleitung um ein Atmega von einem RPi aus anzusprechen ?