Universeller Schieberegister-Controller

OP #7484071
Lesenswert?

Da wir regelmäßig unterschiedlichste Ausgangskonfigurationen auf applikationsspezifischen PCBs haben, habe ich mich an einen kleinen Controller mit ATMEGA328PB gemacht, welcher möglichst universell konfiguriert werden kann. Das Ergebnis in branchless findet ihr im Anhang :)

Mit channelassignment[channelcount] können dabei beliebige Ausgangskonfigurationen der Schieberegister gemapped werden. So ist z.B. Channel 0 dem 18. Schieberegisterausgang zugeordnet.

Habt ihr einen Tipp für eine Library, mit der ich die unterschiedlichen Kommandos per FTDI TTL-232R-5V empfangen und möglichst schlank interpretiert bekomme? So soll z.B. das Kommando setoutput(1) den 0. Channel setzen.

OP #7484114
Lesenswert?

Mal ab davon, dass ein Schaltplan für die Beantwortung der Fragen völlig irrelevant ist und es hier um Code geht, neben einem ISP-Header, einem 16MHz Quarz, einem UART-Header passend zum FTDI-Kabel und ein paar Header zum Anschließen gäbe es da exakt nichts zu sehen. Die Header zum Anschließen werden dann auf die applikationsspezifische PCB aufgesteckt, auf der z.B. 74HC595 oder ähnliche Schieberegister verbaut sind. Solange sie mit SRCK, RCK, SER und Q7S oder vergleichbar daherkommen, ist auch das völlig frei wählbar. Das Video zeigt einen Versuchsaufbau mit vier 595 auf einem Breadboard.

Diese lange Prosa zum Schaltplan und den Schieberegistern hätte man sich übrigens auch komplett sparen können, weil ersteres absolut trivial ist und zweiteres selbsterklärend in den ersten vier Zeilen steht. Durch Anpassung dieser vier Zeilen kriegt man den Code übrigens auch auf jedem anderen arduinokompatiblen Board zum Laufen, völlig ohne Schaltplan. Außerdem, ich wiederhole mich, geht es hier um Code.

OP #7484187
Lesenswert?

Um den ewig negativ-Bewertern ein bisschen auf die Sprünge zu helfen, so schaut z.B. die Minimalbeschaltung eines 328PBs aus: https://github.com/MCUdude/MiniCore#minimal-setup

Wie man da dann entsprechend der ersten 4 Zeilen ein paar Schieberegister anschließt, findet sich im Notfall ebenfalls im Internetz, z.B. hier: https://arnowelzel.de/schieberegister-74hc595

Ich freue mich weiterhin über zielführende Tipps zu einer entsprechenden lib. cmdArduino werde ich mir schonmal ansehen, auch wenn ich ebenfalls kein Fan von Malloc bin. Vielleicht kann sich ja sogar wer für eine ähnliche Anwendung den Code zu nutze machen - diesen zu Teilen, darum ging es mir hier primär. :)

#7484193
Lesenswert?

Die ganzen Minus-Bewertungen kassierst du (unter anderem) weil dies das "Projekte und Code"-Subforum ist. Es steht hier sogar explizit: "Hier könnt ihr Projekte, Schaltungen oder Codeschnipsel vorstellen. Projekte bitte nur mit Code oder Schaltplan posten (falls ihr nur Fotos vorstellen möchtet, bitte in "Zeigt her eure Kunstwerke"). Bitte hier keine Fragen posten."

Und den Sinn bzw. das Problem, welches dein "Projekt" zu lösen versucht ist auch noch ziemlich im Dunklen...

#7484208
Lesenswert?

Brüno schrieb:

Mal ab davon, dass ein Schaltplan für die Beantwortung der Fragen völlig irrelevant ist und es hier um Code geht

Nee. Mit der Bullshitbingo-Einführung, dem großartigen Gewalle, da kann es doch echt nicht um eine 08/15-simpelst-Anwendung nur zum Ansteuern banaler Schieberegister gehen. Das geht nicht zusammen, das passt nicht. Wer hoch fliegen will, muss auch liefern.

Einfacher kann mans übrigens haben, wenn man die MPSSE des FT232 nutzt, der nämlich kann SPI selbst machen. Dann klimpert man ein paar Zeilen Software auf dem PC zusamemn (die mit dem D2XX-Treiber kommuniziert) und der Drops ist gelutscht.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren