www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik 400 Outputs


Autor: David (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habe eine Anwendung, wo ich über einen Mircocontroller gerne 400 IO's 
schalten würde.
Stell mir das so vor, das ich einen Hauptprint mit dem Controller habe, 
und auf jeder Seite, aneinanderhängend 25 Nebenprints mit jeweils 8 
Outputs...
Ich sollte diese innerhalb von etwa 400ms (So wenig wie möglich, aber 
kein killerkriterium wenns ein bisschen länger dauert) schalten können, 
zuverlässig!
Da davon schlussendlich einige produziert würden, sollte das ganze 
möglichst billig sein... und möglichst wenig bauteile beinhalten (der 
platz ist beschränkt...)

So So auf die Schnelle fallen mir die möglichkeiten: Schieberegister, 
i^2c Outputs, und Multiplexen ein...

Mit schieberegistern würde das zumindest auf dem Papier (was 
bekantlicherweise geduldig ist) tiptop funktionieren...
Doch wie siehts in der Praxis aus? Krieg ich das zuverlässig hin über so 
viele Prints (die prints liegen direkt aneinander...) oder spielt mir 
die Kapazität da einen Streich? wäre es möglich den Flanken regelmässig 
mit einem Komparator oder Schmitttrigger (müssten entsprechend schnell 
sein) ihre Steilheit zurückzugeben, oder bin ich da hauptsächlich auf 
Pull-ups angewiesen...? Wie würdet ihr diese lösung bezüglich der 
Störungsempfindlichkeit einstuffen?

Multiplexen möcht ich eigentlich aus verschiedenen gründen nicht (z.b. 
zu starr, wenn ich mal ein paar Outputs mehr brauche...)

Autor: Zossi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
50 mal 74HC595 sollten's tun. Am SPI mit beliebiger Clockrate 
durchgeschoben.

Z.

Autor: Stephan Henning (stephan-)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
alles nur ne Frage der Zeit, die man hat oder eben nicht.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Unter meiner Zwischendecke werkelt ein Mega8 mit 12 Mhz.
An dem hängen 8 Module mit je einem 595 als Schieberegister.
Zwischen den Modulen jeweils ca. 50cm Flachbandkabel.
Kein Widerstand, kein gar nichts. Am Flachbandkabel ist
zur Sicherheit jede 2. Leitung entweder GND oder Vcc.
An jedem Modul hängen jeweils Leds die per SoftPwm einzeln
gedimmt werden, also ein bischen schneller als 400ms.
Null problemo.

Autor: David (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
freut mich das zu höhren

vielen dank, dann werd ich mal nen versuch starten...

Autor: David (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hmmmmm wenn das so unkritisch angesehen wird....

für eine weiter anwendung würd ich 1000 Outputs brauche...

hab bis anhin gedach, dass ich die unterteile und mit verschiedenen 
controllern ansteuere...

hät ich ne chance 125 Print mit je 8 Outputs (74HC959) hintereinander zu 
schalten... wär optimal...

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du hast dann natürlich schon viele Clock Eingänge die vom
Prozessor aus versorgt werden wollen. Ich hab jetzt nicht
ins Datenblatt geschaut, wieviel Strom so ein Clock Eingang
haben möchte.
So wie ich das sehe ist das schlimmste was dir passieren
kann, dass du ab und zu mal zwischendurch die Clock
Signale 'auffrischen' musst. Über einen Schmittrigger
oder so führen. Einfach mal ausprobieren.

Rein vom programmieren her gibt es da keine Probleme. Und
da du pro Schieberegisterkette nicht mehr als 5 Pins brauchst,
könntest du am Prozessor an 2 8-Bit Ports immerhin 3 Schiebe-
registerketten anbringen.

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"Prozessor an 2 8-Bit Ports immerhin 3 Schiebe-
registerketten anbringen."
Du meinst, das bringt was in puncto performance? Glaub ich nicht. Habe 
jetzt keine Takte gezählt, aber ungefähr 15, eher was mehr.
-3 bytes schieben
-3 bits an den jeweiligen datenausgang transportieren
-clock-Impuls erzeugen
-Schleifenzähler decrementieren
-Schleife erneut durchlaufen (oder auch nicht)
Macht also für die 3 Bytes=24Bit 120 Prozessortakte.
SPI mit clk/4 braucht dafür 128 Takte, und dann gibts oft noch den 
double-speed-mode, jetzt verlierst du mit der Software-Schnittstelle 
deutlich.
Ausserdem kannst du während der SPI-Transfers noch was anderes machen...

Autor: Sonic (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich würde eine 32x16-Matrix aus sechs 74HCT574-Latches aufbauen. Das 
ergibt 512 Ausgänge. Die Latches sind Parallel am Datenbus und du 
brauchst nur 6 Steuersignale dafür. Von der Geschwindigkeit ganz zu 
schweigen, liegt im µs-Bereich.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Du meinst, das bringt was in puncto performance?

Performance sicher nicht.
Aber bei 125 Eingängen die an einem Ausgang nuckeln
überkommt mich ein seltsames Gefühl.

Noch mal durchgelesen: OK. War schlecht geschrieben.
Worauf ich hinauswollte: Wenn eine Schieberegisterkette
den Ausgangspin vom µC überlastet, könnte man immer
noch deren 3 machen.

Autor: Ne, oder? (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe hier ein gerät das aus 6 bis 9 Eingängen fast 4 Millionen 
Ausgänge decodiert, welche jeweils einen 16 oder 32 bit Wert annehmen 
können. Ich glaube sogar mit ca 17ms. Aber billig ist das Teil nicht, 
das ist schon ein dreistelliger euro Betrag. Leider werden natürlich 
auch an den µC einige Anforderungen gestellt, ob das mit einem ATmega8 
geht weiß ich nicht. Wenn du willst kann ich ja mal ein Bild hochladen.

Autor: JojoS (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich denke die kapazitive Last ist für den µC Port gefährlicher, wenn das 
soviele und lange Leitungen werden dann würde ich auch erst einen 
Treiber mit mehreren Ausgängen ansteuern und zumindest die Clock und 
Übernahmeleitungen in Gruppen aufteilen.

Autor: Jankey (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zitat:
ich denke die kapazitive Last ist für den µC Port gefährlicher, wenn das
soviele und lange Leitungen werden dann würde ich auch erst einen
Treiber mit mehreren Ausgängen ansteuern und zumindest die Clock und
Übernahmeleitungen in Gruppen aufteilen.

Antwort:
Ist es nicht, denn die Induktivität der Leitung ist beim Schaltpuls 
stärker als die Kapazität. ( ersatzschaltbild leitungen )

für einen uC Port kann NIEMALS eine Leitungslänge einen Pin killen.

Autor: Sonic (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab's doch oben geschrieben: so viele Ausgänge schreien nach einer 
Matrix, nicht nach jeder Menge Material! Ausserdem sollte man wärend dem 
Setzen der Ausgänge keine ungewollten Zustände riskieren, was bei 
Schieberegistern nun mal der Fall ist. Der gute alte Datenbus scheint 
aus der Mode zu sein, ist hierfür aber die ideale Lösung.

Autor: Ko??brocken (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Ausserdem sollte man wärend dem Setzen der Ausgänge keine ungewollten
> Zustände riskieren, was bei Schieberegistern nun mal der Fall ist.

Dafür hat der HC595 ja entsprechende Pins, die die Daten erst dann auf 
den Ausgang schalten, wenn alles durchgeschoben wurde.

Autor: Sonic (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Soll heißen: lieber 50 ICs verbauen, nur um ein paar IO-Pins zu sparen??
- Angenommen da sind 8-bit-Schieberegister wie der HC595 -

Autor: Sonic (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mal ganz davon abgesehen kannste mit 6 Schieberegistern auch eine Matrix 
aufbauen.

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
es geht aber nicht immer mit einer Matrix. STeht irgendwo, dass da nur 
LEDs geschaltet werden sollen - ist zwar anzunehmen, aber muss nicht 
sein.

Autor: Ko??brocken (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann mußt du ja multiplexen, ist ja eklig :)

Autor: Sonic (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist doch komplett wurscht was geschaltet wird, 16x32 ergibt 512 
Ausgänge, wie auch immer die ausgangsseitig verwirklicht sind. Können 
auch Solid-State-Relais sein oder was auch immer.

Autor: Sonic (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ups.. Überschneidung.
>Dann mußt du ja multiplexen, ist ja eklig

Nein. Nur die 6x8 Bit 'reinschieben und die Ausgänge freigeben.

Autor: Ko??brocken (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und wie willst du so jedes einzelne Bit individuell setzen? Geht das? 
Wär ja cool...

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eine Matrix musst du multiplexen, eine Schieberegisterschaltung
nicht. Wenn ich 1000 statische Ausgänge brauche, die ihren
Pegel ganz von alleine halten, nehm ich lieber ein Schieberegister
als eine Matrix.

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
für Sonic ist das alles das gleiche. Ist doch völlig egeal, was 
geschaltet wird..., nenene.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>>Dann mußt du ja multiplexen, ist ja eklig
>
>Nein. Nur die 6x8 Bit 'reinschieben und die Ausgänge freigeben.

Damit aktiviere ich dann einen Kreuzungspunkt in der Matrix.
Und was ist in der Zwischenzeit mit den restlichen 999?

Da brauchst du dann erst recht wieder an jedem Kreuzungspunkt
irgendeine Schaltung, die sich den Zustand merkt.

Autor: Sonic (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich glaube wir reden aneinander vorbei.
Ich baue eine Matrix aus 6 Schieberegistern auf. 2 Stück (16 bit) 
Spalten und 4 Stück (32 bit) Zeilen. Auf diese Weise kann ich sehr wohl 
jedes Bit einzeln setzen und löschen ohne einen Ausgang für längere Zeit 
zu ändern. Um die Ausgänge unterbrechungsfrei zu ändern braucht's dann 
schon (wie ich oben schrieb) Latches, deren Output-Enable gemeinsam 
geschaltet wird. Geht bei den Schieberegistern auch, glaub' ich.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sonic wrote:
> Ich glaube wir reden aneinander vorbei.
> Ich baue eine Matrix aus 6 Schieberegistern auf. 2 Stück (16 bit)
> Spalten und 4 Stück (32 bit) Zeilen. Auf diese Weise kann ich sehr wohl
> jedes Bit

Welches Bit den?
Ich will doch an den Kreuzungspunkt keinen Speicher setzen.
Da sitzen vielleicht Relais!

Wenn du eine Matrix hast, wählst du eine komplette Spalte
aus. Aus dieser Spalte wählst du mit den Zeilentreibern
eine bestimmte Zeile aus. Dort hast du dann Stromfluss.
Und was ist mit all den anderen Kreuzungspunkten in dieser
Spalte? Die haben dann logischerweise keinen Stromfluss.
Nicht schön, wenn alle anderen Relais in der Spalte abfallen,
nur weil ich eines davon umschalte.

Bei Leds ist das kein Problem. Da benutzt du die Trägheit
des Auges um ein kontinuierliches Leuchten hervorzubringen.
Aber bei anderen Dingen brauchst du in den Knotenpunkten
der Matrix erst recht wieder Speicherglieder, die sich den
Zustand merken.

Die wollen wir aber nicht, weil dann der ganze Vorteil der
wenigen Bauteile wieder weg ist.

Also läuft's wieder auf multiplexen hinaus. Heist aber
auch, dass du dadurch zwangsweise an jedem Kreuzungspunkt
eine PWM hast. Bei Leds ist das kein Beinbruch ...

Autor: Sonic (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Karl heinz Buchegger:
Mal' dir mal am Besten eine Matrix auf.
Wenn ich eine Spalte aktiviere kann ich mit der Zeile bestimmen, welches 
bit in dieser Spalte gesetzt werden soll. Da die Schieberegister ja 
sowieso Latches sind wird der Zustand bis zur nächsten Änderung 
gehalten. Multiplexen muss ich deshalb auch nichts. Ich setze ja nicht 
nur ein bit sondern die, die ich brauche.
Die umgekehrte Funktion wäre die Abfrage einer 4x4-Tastatur. Da kann ich 
auch mehrere Tasten drücken und den Zustand auswerten.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sonic wrote:
> @ Karl heinz Buchegger:
> Mal' dir mal am Besten eine Matrix auf.
> Wenn ich eine Spalte aktiviere kann ich mit der Zeile bestimmen, welches
> bit in dieser Spalte gesetzt werden soll. Da die Schieberegister ja
> sowieso Latches sind wird der Zustand bis zur nächsten Änderung
> gehalten. Multiplexen muss ich deshalb auch nichts. Ich setze ja nicht
> nur ein bit sondern die, die ich brauche.
> Die umgekehrte Funktion wäre die Abfrage einer 4x4-Tastatur. Da kann ich
> auch mehrere Tasten drücken und den Zustand auswerten.


Mach ich.
Hier ist sie


a   -----    1    2    3

b   -----    4    5    6

c   -----    7    8    9

             |    |    |
             |    |    |

             d    e    f

Wie müssen jetzt die Spaltentreiber d-e-f bzw. die
Zeilentreiber a-b-c  gesetzt sein, damit die Ausgänge
1 und 9, und nur die beiden, High Pegel führen?

Autor: Dieter Werner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ sonic

So geht es leider wirklich nicht denn bei einer Tastatur müssen schon 
Entkoppeldioden drin sein, sonst hast du Pseudosignale.

Drücke Tasten an Kreuzung Spalte B mit Reihe 5 und E mit 8.
Dabei entstehen auch (nicht gewollte) Verbindungen E mit 5 und B mit 8.

Bei einer Ausgabematrix besteht genau das selbe Problem.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Meinetwegen mach an die Kreuzungspunkte Leds rein.
Die Aufgabe ist nach wie vor dieselbe: Led 1 und Led 9
sollen leuchten, alle anderen sollen dunkel sein.

Autor: Sonic (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
OK, haste Recht!
Manchmal verrennt man sich. Habe das mit einer Relaismatrix verglichen, 
diese hat 16 'Schienen' auf die man 32 Ein- Ausgänge aufschalten kann.
Brett vor'm Kopf kommt vor, sorry! :-(

Autor: Sonic (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mann, hier geht's aber zur Sache!
Die Tastatur muss ich natürlich nacheinander abfragen, zuerst Zeilen, 
dann Spalten. Das läuft in einer Schaltung schon prima, funktioniert 
also.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Die Tastatur muss ich natürlich nacheinander abfragen,
> zuerst Zeilen, dann Spalten

Also: multiplexen

Wie gesagt: Wenn an die 1000 Ausgänge Leds dran kommen
ist eine gemultiplexte Matrix sicher eine Lösung. Ist
kein Problem, ich hab ein kommerzielles Led-Anzeigeboard
da, wie man es in Geschäften manchmal als Laufschrift
sieht. Funktioniert genau nach dem von dir vorgeschlagenem
Prinzip.
Wenn das aber keine Led sind ....

Autor: Sonic (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Na, dann geht's wohl doch nur mit Materialaufwand.
Wenn ich an die S7 bei uns im Betrieb denke.. Schränkeweise 
IO-Baugruppen für 5000 I/Os.

Autor: Barti (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe mal eine Schaltung mit 192 Leds aufgebaut, alle über HC595 
angesteuert. Problem: 8 LEDs an einem Register ziehen zuviel Strom. 
Zweites Problem: die Schaltung war auf einer Fläche von 2x1,2m verteilt. 
Nach dem dritten Register hatte ich Probleme mit der Kommunikation, es 
kam zu Bitfehlern, also hier schirmen oder gleich auf differentielle 
Kommunikation umsteigen, erhöht aber den Aufwand.
Das Clock-Signal des Controllers muß natürlich verstärkt werden, wegen 
der hohen kapazitiven Last.

Autor: Christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das erste Problem lässt sich sehr leicht lösen, indem man low current 
LEDs nimmt.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Nach dem dritten Register hatte ich Probleme mit der Kommunikation

Hmm. Die habe ich bei meinen 8 nicht.
Ich hab allerdings zwischen jeweils 2 Signaladern im
Flachbandkabel vorsorglich jeweils eine Masseleitung
oder Vcc gelegt.

Autor: Barti (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Karl Heinz:

Wie lang sind deine Kabel? Meine erstecken sich um die 12-15m. Habe sie 
schon verdrillt, aber naja...unsauberer Aufbau. Möchte den Aufbau 
nochmals neu machen, kleine AVRs nehmen und dann soll jeder mit einer 
gewissen Intelligenz ausgestattet werden und jede LED einzeln dimmbar 
machen. Ein Atmega8 übernimmt hier eine Masterrolle und steuert die 
kleinen AVRs an. Mal sehen. Evtl. gehen ich auf geschirmte Leitungen und 
setze auf RS485...

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Wie lang sind deine Kabel? Meine erstecken sich um die 12-15m.

OK. So lange sind sie nicht.
Von einem 595 zum nächsten sinds etwa 50cm. In Summe also
um die 4 Meter.

Anfangs hatte ich auch etwas Bauchweh wegen der Kabellängen.
Nach einem Probeaufbau hat sich das dann allerdings schnell
zerschlagen. Funktioniert astrein.

> soll jeder mit einer gewissen Intelligenz ausgestattet werden
> und jede LED einzeln dimmbar machen.

:-)
Hey. Da haben wir wohl dasselbe gebaut. Ich hab nur einen
zentralen Mega8 und das Schieberegister. Ich hab mir auch
überlegt Slave-CPU's einzusetzen, habs aber dann gelassen,
da mir die Kommunikation zu aufwändig war. Ich hab allerdings
nur 64 Leds dran und keine 192. Bei meinen 12Mhz am Mega8
wird das mit der SoftPWM schon ganz schön eng.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
So sieht ein derartiges Modul bei mir aus

Autor: crazy horse (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Und hier, je 40 LEDs, Platine ist 30cm lang, 12 Stk kamen 
hintereinander. Gesamtstrom war erheblich (knapp 10A), hinter der 
Platine lief ein 2,5mm²-Kabel, an jeder 2.Platine wurde zusätzlich 
gespeist. Die SR sind 74HCT4094. Angesteuert das Ganze von einem Mega8, 
Leitungstreiber 74HC4050.

Autor: David (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hey crazy horse
da will ich etwa das genau gleiche machen, hätte zwar keine LED aber das 
ist ja nicht der puntk...
würde es dir was ausmachen mir das Schema deiner Platine zu mailen? würd 
mir sicher sehr helfen...

Autor: crazy horse (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
warum nicht, da ist nichts besonderes dabei.

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> für einen uC Port kann NIEMALS eine Leitungslänge einen Pin killen.

Auch nicht bei Gewitter?

Autor: Err Bee (barti)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nicht nur Gewitter, bei hohen Schaltfrequenzen ist die kapazitive Last 
enorm! Das kann einem Kurzschluß ähneln.

@Karl Heinz Buchegger: Ich mache demnächst mal ein Foto von meiner 
Platine...ist etwas kleiner als deine.

Autor: fubu1000 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo,
der thread war zu öang nur meinen senf,
wenn du mit schieberegistern arbeitetest, ÜBERLÄUFE beachten !!!!
gruss

Autor: Dirk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Anstatt eines 74HC595 schlage ich den ST6C595. Das IC ist auch ein 8Bit 
Schieberegister bloss die Ausgangsstufe kann mehr Strom liefern. Eine 
16Bit Version gibt es auch.

Autor: Falk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Raphael B.

>Nicht nur Gewitter, bei hohen Schaltfrequenzen ist die kapazitive Last
>enorm! Das kann einem Kurzschluß ähneln.

Bitte nochmal das Kapitel Leitungstheorie durcharbeiten. Dann klappts 
auch mit hohen Schaltfrequenzen.

Die AVRs haben so ca. 10ns Anstiegszeit (teilweise sogar weniger). Das 
entspricht einer Laufzeit von ca. 2m Kabel. Wenn dahinter noch 100m 
Kabel sind, dann "sieht" das der Ausgang gar nicht. Er sieht im 
Schaltmoment nur die Impedanz des Kabels, bei Flachbandkabel ca. 100 Ohm 
zwischen zwei Leitungen. Bei 4m Kabellänge muss man auf jeden fall 
impedanzrichtig arbeiten, sprich die Leitungen müssen halbwegs 
konstanten Wellenwiderstand haben (100 Ohm kommt gut) und mit 100 Ohm 
abgeschlossen sein. Da bei 3,3V da schon ordentliche Ströme fliessen (33 
mA), sollte man entweder

1) Split Termination, sprich 200 Ohm gegen VCC und GND, macht effektiv 
100 Ohm, allerdings ist der Strom für den Treiber halbiert

2) AC-Termination, 100 Ohm über einen C gegen Masse, geht aber nur 
wirklich bei konstant laufenden Takten.

Das mit den 500/1000 IOs ist also alles halb so wild, wenn man ein paar 
wesentliche Dinge beachtet.

MFG
Falk

Autor: Falk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Barti

>Ich habe mal eine Schaltung mit 192 Leds aufgebaut, alle über HC595
>angesteuert. Problem: 8 LEDs an einem Register ziehen zuviel Strom.

Da kann man nen netten Trick anwenden

Beitrag "Ansteuerung von LEDs mittels Schieberegister"

>Autor: Peter Dannegger (peda)
>Datum: 30.11.2006 17:08
>Bei den 74HC595 gibts den Trick, 4 LEDs gegen GND und 4 LEDs gegen VCC
>zu schalten, dann ist die Belastung der VCC/GND-Pins halbiert.
>In der Software dann noch ein EXOR mit 0xF0 und gut is.

>Zweites Problem: die Schaltung war auf einer Fläche von 2x1,2m verteilt.
>Nach dem dritten Register hatte ich Probleme mit der Kommunikation, es
>kam zu Bitfehlern, also hier schirmen oder gleich auf differentielle
>Kommunikation umsteigen, erhöht aber den Aufwand.

Vielleicht erstmal einfach ne ordentliche Verkabelung + Beschaltung?

>Das Clock-Signal des Controllers muß natürlich verstärkt werden, wegen
>der hohen kapazitiven Last.

Nö, die AVRs haben schon ordentlich Dampf.

MFG
Falk

Autor: Dirk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Meinte statt ST6C595 diesen STPIC6C595TTR (8Bit) o. STPIC16C595 (16Bit)

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eine Kaskadierung dieser Shiftregister ist möglicherweise etwas 
sensibel, was das exakte Zeitverhalten von Takt und Daten angeht. 
Immerhin ändert sich der Kaskadeausgang mit der gleichen Taktflanke, 
aufgrund der das nächste Register den Eingang liest. Und da müssen 
setup/hold times eingehalten werden, was bei einer stark belasteten 
langen Taktleitung interessant werden könnte.

Das Shiftregister '4094 hat einen Kaskadeausgang, der einen halben Takt 
verschoben ist, so dass solche Probleme nicht auftreten können.

Autor: Falk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@crazy horse

>Und hier, je 40 LEDs, Platine ist 30cm lang, 12 Stk kamen

Und was ist das Ganze dann? Ne LED Anzeige für Text? Oder ne 
Flugfeldbefeuerung? ;-)

>gespeist. Die SR sind 74HCT4094. Angesteuert das Ganze von einem Mega8,
>Leitungstreiber 74HC4050.

???
4050 ist ein Level-Shifter. Der hat genauso viel (odersogar weniger) 
Treiberleistung wie ein AVR Ausgang. Oder hast du alle sechs Gatter 
parallel geschaltet?

MFG
Falk

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.