Forum: Mikrocontroller und Digitale Elektronik Stromverbrauch einer Schieberegisterkette


von TorbenK (Gast)


Lesenswert?

Geplant ist eine Schieberegisterkette, bestehend aus:

14 Stück TPIC6B595
und
4 Stück 74HCT165,

also
32 digitale Eingänge
und
112 digitale Ausgänge.

Das "Drumrum" soll bei diser Frage hier keine Rolle spielen. Nur soviel: 
Die Ausgänge sind LEDs, die eine separate Spannungsversorgung haben. Die 
ICs laufen mit 5V, während der TPIC6B595 die LEDs gegen +12V schaltet.

Den Strom der LEDs kann ich selbst ausrechnen. Interessiert mich hier 
erstmal nicht. Mir geht es nur darum, was die Schieberegisterkette in 
etwa braucht. CMOS braucht "nichts", schon klar, allerdings ist die 
Kette ja in Bewegung, sagen wir mal Rotationsgeschwindigkeit von 30 mal 
pro Sekunde.

Die Schieberegisterkette (Daisy chain) soll von einem ATmega angetrieben 
werden, ganz simpeles 4-Leiter-Konzept: CLOCK, DATA-IN, DATA-OUT (und 
LOAD).

Ich hoffe, ich habe es verständlich beschrieben. Wenn nicht, einfach 
nachfragen.

Zur Frage:
Der ATmega läuft mit 5V, und diese 5V will ich für die Kette abzwacken. 
Mit welchem Stromverbrauch muss ich bei den 18 ICs in etwa rechnen (wie 
gesagt, OHNE den Verbrauch der LEDs)?

von A. B. (Gast)


Lesenswert?

Irgendwie lustig. Da wird ein Link zum Datenblatt platziert, dieses aber 
offenbar nicht mal gelesen: Figure 2. Supply Current vs Frequency.
Ist das nicht deutlich genug??? Die Kultur des (sorgfältigen) Lesens 
(statt "Querlesens") scheint vom Aussterben bedroht.

von Wolfgang (Gast)


Lesenswert?

TorbenK schrieb:
> CMOS braucht "nichts", schon klar, allerdings ist die
> Kette ja in Bewegung, sagen wir mal Rotationsgeschwindigkeit von 30 mal
> pro Sekunde.

Da irrst du. Bei CMOS müssen mit jedem Schaltvorgang Kapazitäten 
umgeladen werden. Die Stromaufnahme von CMOS ist daher, neben 
irgendwelchen Leckströmen, proportional zur Taktfrequenz.

von Ralf L. (ladesystemtech)


Lesenswert?

TorbenK schrieb:
> 14 Stück TPIC6B595
> und
> 4 Stück 74HCT165

Beide IC's haben einen Eigenstromverbrauch zwischen 300 und 350 µA pro 
Stück. Also im ungünstigsten Fall 350 µA x 18 = 6,3 mA. Bei hohen 
Frequenzen würde er etwas ansteigen. Aber 30 Hz ist nicht viel.

Kalkulieren würde ich mit 10 mA.

von Gerald B. (gerald_b)


Lesenswert?

Je höher die Taktfequenz der Kette ist, um so mehr Strom zieht sie bei 
den Schaltvorgängen. Das kann bei 10 MHz sogar schon mehr sein, als bei 
"Steinzeit" TTL! Rechne aber mit vergleichbaren Impulsströmen im ns 
Bereich. Also jedem IC unmittelbar über Ub einen 100nF KerKo und ca für 
4-5 IC's dann noch einen Elko von ca. 47µF.
Bau das Ganze auf einer Leiterplatte, oder zu mindest auf Lochraster auf 
und verkabele KÜRZESTMÖGLICH! Bedenke, das 3 cm von IC zu IC schon 60 cm 
Buslänge bei 20 IC bedeuten!
Das ist schon recht grenzwertig. Spendiere den Busleitungen ruhig einen 
Leitungstreiber. Rein statisch ist ein Fan in von 20 Pillepalle, aber 
dynamisch kann es sein, das da die Flanken verschliffen werden und der 
Logikteil sich "wunderlich" verhält. Einfach ein Gatter hinter den µC 
Ausgang und gut ist. Entweder 2 Nand's oder 2 Negatoren in Reihe, oder 
ein Gatter und im µC dann einfach die 2. Invertierung in Software.

von H.Joachim S. (crazyhorse)


Lesenswert?

Ralf L. schrieb:
> Aber 30 Hz ist nicht viel.

Es sind aber nicht nur 30Hz, sondern 30Hz * Bitanzahl, also etwa 4kHz.
Immer noch sehr niedrig, aber durchaus messbar im Stromverbrauch.

von TorbenK (Gast)


Lesenswert?

Danke fürs schnelle Antworten. Das Forum ist wirklich klasse, und die 
Leute sehr hilfsbereit.

A. B. schrieb:
> Irgendwie lustig. Da wird ein Link zum Datenblatt platziert, dieses aber
> offenbar nicht mal gelesen: Figure 2. Supply Current vs Frequency.
> Ist das nicht deutlich genug??? Die Kultur des (sorgfältigen) Lesens
> (statt "Querlesens") scheint vom Aussterben bedroht.

2x über Kopf .
1. habe ich kein Datenblatt verlinkt (das macht Mikrocontroller.net 
vermutlich selbst) und das 2. ist, dass du mir trotzdem geholfen hat :) 
Ich wollte nicht schon wieder fragen, WO ich WAS im Datenblatt finde. 
Danke, wieder was gelernt.

Ralf L. schrieb:
> Aber 30 Hz ist nicht viel.
30 Hz ist der Takt der Kette. Der Schiebetakt (CLK-Frequenz) dürfte viel 
schneller sein. Aber die CLK-Frequenz unterliegt wiederum den 30Hz, und 
das macht dann den Bock auch nicht fett, oder?

> Kalkulieren würde ich mit 10 mA.
Das wäre ok.

Gerald B. schrieb:
> Bau das Ganze auf einer Leiterplatte, oder zu mindest auf Lochraster auf
> und verkabele KÜRZESTMÖGLICH! Bedenke, das 3 cm von IC zu IC schon 60 cm
> Buslänge bei 20 IC bedeuten!
Zwischen µC und dem ersten Schieberegister liegen ca 2 meter geschirmte 
Steuerleitung. Ich erwarte da eigentlich keine Probleme. Falls doch, 
kann ich den Takt (CLK) immer noch softseitig runtersetzen.

von HildeK (Gast)


Lesenswert?

TorbenK schrieb:
> Ich erwarte da eigentlich keine Probleme. Falls doch,
> kann ich den Takt (CLK) immer noch softseitig runtersetzen.

Durch Reduzieren der Taktfrequenz gewinnst du nichts. Dann müsstest du 
schon per SW die Flankensteilheit der Signale reduzieren können. 2m sind 
für HC-Technologie schon sehr viel!

von H.Joachim S. (crazyhorse)


Lesenswert?

TorbenK schrieb:
> Zwischen µC und dem ersten Schieberegister liegen ca 2 meter geschirmte
> Steuerleitung. Ich erwarte da eigentlich keine Probleme.
Naja, mal schauen..., das ist schon ne lange Leitung.
>Falls doch, kann ich den Takt (CLK) immer noch softseitig runtersetzen.
Das hilft gar nichts. Es kommt darauf an, was an den Eingängen ankommt 
und ob das noch im erforderlichen Rahmen liegt (Anstiegs-/Abfallzeiten). 
Es gibt Flankenverschleifungen und Überschwinger, dazu Übersprechen und 
Masseversatz

Je nachdem, was es werden soll:
-einfach ausprobieren
-genauer betrachten
-anderes Übertragungskonzept wählen

von TorbenK (Gast)


Lesenswert?

HildeK schrieb:
> 2m sind für HC-Technologie schon sehr viel!
Ich verstehe. Hilft es, am entferntesten Punkt der Kette Widerstände 
gegen GND zu schalten, und dann eben mit etwas mehr Strom zu schieben? 
Das müsste doch die Lage entschärfen.

Oder via LS-TTL schieben.

Gerald hat das mit dem Leitungstreiber geschrieben.

Gerald B. schrieb:
> Spendiere den Busleitungen ruhig einen Leitungstreiber.

von Christian S. (roehrenvorheizer)


Lesenswert?

"erwarte da keine Probleme..."


Hallo,

sehr optimistisch, da eine 2m lange Leitung dran zu hängen. Das wird nur 
mit richtiger Anpassung funktionieren. Was ist mit dem rückwärts 
kommenden Datenstrom. Gibts da Übersprechen in der Leitung?

http://elektroniktutor.de/elektrophysik/leitung.html

https://moodle.ruhr-uni-bochum.de/m/mod/wiki/viewversion.php?pageid=1289&versionid=7655&lang=ar


https://www.elektronik-kompendium.de/sites/grd/0301036.htm


Beitrag "Shared Clock-Leitung: Wellenwiderstand, Anpassung etc."

mit freundlichem Gruß
Agent 0007

: Bearbeitet durch User
von Gerald B. (gerald_b)


Lesenswert?

2 Meter halte ich für sehr ambitioniert.
Kannst du nicht den µC zu den Schieberegistern verfrachten und die 
restliche Peripherie entsprechend länger machen?
I2C mit 2 Metern Länge (abgesetztes Display) habe ich schon gemacht, das 
hat funktioniert. Aber unter den bereits erörterten Umständen wird's 
schwierig.
Wenn es nicht funktioniert, dann kannst du auch probieren, die 
Bussignale an Anfang und Ende jeweils mit einem SN75176 zu verwursten, 
so das die lange Strecke mit einem differenziellen Signal überbrückt 
wird. Eigentlich werden die 75176 für RS485 genommen, aber man kann 
damit auch ganz gut Punkt zu Punkt Verbindungen ohne µC realisieren. Ich 
habe mal testweise auf einem Breadboard 2 Stck hart verdrahtet 
zusammengesteckt, als Leitungstreiber funktioniert das ganz prima. Damit 
wären selbst Leitungslängen von 100m kein Problem :-)))

von TorbenK (Gast)


Lesenswert?

mhh. Zu den Widerständen in der Leitung habt ihr nichts geschrieben.

Leitungstreiber für 2m Kabel? Ist das denn euer ernst? Mir käme eher 
noch die Idee - weil ich ja eh 74HCT verwenden will, das erste 
Schieberegister nach dem Kabel nicht mit HCT, sondern in LS-TTL zu 
realisieren. Aber ich werde es ausprobieren. Eins weiß ich: Wenn es auf 
Anhieb funbktioniert, ändere ich gar nichts ;)

von Christian S. (roehrenvorheizer)


Lesenswert?

"Eins weiß ich: Wenn es auf Anhieb funbktioniert, ändere ich gar nichts 
;)"

Diese Einstellung ist sehr schlau und zielführend, denn in diesem Fall 
kannst Du alle Ratschlage der vereinten Fachwelt getrost ignorieren und 
Dich wundern, warum sie alle so komisch mit dem erhobenen Zeigefinger 
warnen. Insbesondere die von mir angeführten Links brauchst Du weder 
lesen, noch verstehen oder mit Hilfe von zusätzlicher Literatur Dir zu 
erschließen. Somit ersparst Du Dir viel Blindleistung, welche in der 
Elektrotechnik immer schon unerwünscht war. Die Weiterführung dieser 
Taktik wäre, besser erst gar nicht zu fragen, denn das erspart allen 
Beteiligten die Ausführung unnötiger synnaptischer Aktivität.

Wenn dem aber nicht so sein sollte, ist guter Rat plötzlich teuer und es 
liegt an Dir, die gut gemeinten Hinweise in die Realität umzusetzen, 
wenn das Projekt unbedingt funktionieren soll.

Über die Leitung ist bisher nur deren Leitungscharakter bekannt.

Mit freundlichem Gruß

von H.Joachim S. (crazyhorse)


Lesenswert?

Nichts ist so wertvoll für den Lerneffekt wie eigenes Erleben :-).
Symmetrische Übertragung brauchst du natürlich nicht.
74HC/HCT kann man etwa bis 50cm (elektrisch kurze Leitung) mit nicht 
angepasster Leitung (eine einfache Drahtverbindung ist eine nicht 
angepasste Leitung) betreiben. Bei 74LS waren es ca. 150cm, kommt schon 
fast hin.
Beschäftige dich mal mit Leitungsimpedanz, Anpassung und Reflexionen. 
Das muss erst mal nicht besonders tief gehen. Ein Grundverständnis, was 
da prinzipiell auf Sender- und Empfängerseite passiert reicht.
Sehr interessante Effekte ergeben sich auch, wenn FlipFlop-Ausgänge 
(dein Rückkanal) längere Leitungen treiben sollen.

von Gerd E. (robberknight)


Lesenswert?

TorbenK schrieb:
> Aber ich werde es ausprobieren. Eins weiß ich: Wenn es auf
> Anhieb funbktioniert, ändere ich gar nichts ;)

Wenn Du an der Grenze zwischen "Funktionieren" und Fehlerhaft bist, kann 
es passieren, daß kleine Änderungen der äußeren Umstände (Temperatur, 
Luftfeuchtigkeit, kleine Spannungsschwankungen, Alterung der 
Bauteile,...) dann irgendwann plötzlich dafür sorgen daß es nicht mehr 
funktioniert.

Schau Dir daher, auch wenn es funktioniert, zumindest mal die Signale am 
Ende der 2m Kabel auf dem Oszi an.

von A. B. (Gast)


Lesenswert?

Dass die Verlinkung automatisch erfolgte, war mit in der Tat entgangen, 
Asche auf mein Haupt :-(
Trotzdem bleibt die erste Informationsquelle immer das Datenblatt, und 
das ist in diesem Fall in ein paar Sekunden gefunden und fix gelesen.

In der Tat dürften 2m schon ein arges Problem sein. Auch was den 
Stromverbrauch angeht: Wenn das Taktsignal nicht "sauber" an den 
Schieberegistern ankommt (verschliffene Flanken) steigt deren 
Stromaufnahme u. U. beträchtlich, da im Bereich der Schaltschwelle dann 
ein größerer Querstrom durch die komplementären Transistoren fließt.

Außerdem: Wenn das Taktsignal bei den einzelnen Schieberegistern nicht 
synchron ankommt (bzw. durch langsame Flanken und leicht differierende 
Schaltschwellen nicht synchron detektiert wird), dürfte die Kette nicht 
mehr korrekt funktionieren. Das könnte man mit einem Zweiphasen-Takt 
(für den Schiebe-Takt, eine an 1., 3., 5., ... und die andere an 2., 4., 
6., ... Register) umgehen. Aber die 2m bis zum ersten Register bleiben 
...

von TorbenK (Gast)


Lesenswert?

A. B. schrieb:
> Das könnte man mit einem Zweiphasen-Takt
> (für den Schiebe-Takt, eine an 1., 3., 5., ... und die andere an 2., 4.,
> 6., ... Register) umgehen.

Wie ist das zu verstehen? Versetzt?
also SO

CLOCK   ┌─┐ ┌─┐
      └─┘ └─┘ └─ ---

DATA  -%---%---% ---

% = Zeitpunkt der Pegeländerung

Wenn ja, das habe ich sowieso vor. Das Schieben der paar Register ist ja 
nicht zeitkritisch.

Christian S. schrieb:
> Wenn dem aber nicht so sein sollte, ist guter Rat plötzlich teuer und es
> liegt an Dir,

Ja ja ... ich nin ja schon dabei. Platz zu schaffen auf der fast 
fertigen Masterplatine für einen Leitungstreiber. Gebt mir doch mal 
Zeit, die Tipps zu verarbeiten. Aber für den Leitungstreiber mache ich 
ein eigenes Thema auf. Hier war STROMBEDARF vangesagt. Das wird dann zu 
unübersichtlich.

von A. B. (Gast)


Lesenswert?

TorbenK schrieb:

> Wie ist das zu verstehen? Versetzt?
> also SO
>
> CLOCK   ┌─┐ ┌─┐
>       └─┘ └─┘ └─ ---

Das verstehe ich nicht. Was ich meinte ist, zwei verschiedene 
Taktsignale (oder auch invertiert/nichtinvertiert). Bei dem 
Schieberegister ist als setup und hold time je mindestens 20ns verlangt 
bzw. "empfohlen". Da die Schieberegister kaskadiert werden: Der serielle 
Datenausgang wird an den Dateneingang des nächsten gelegt. Wenn alle die 
positive Taktflanke gleichzeitig erhalten, sorgt die Durchlaufzeit vom 
CLK zum seriellen Ausgang dafür, dass die hold time (wohl) eingehalten 
wird. Der serielle Ausgang ändert ja seinen Zustand "als Reaktion" auf 
die Flanke des Taktes.

Wenn zwei aufeinanderfolgende Schieberegister jedoch die Taktflanken mit 
gewisssen zeitlichen Versatz mitbekommen, wird u. U. setup oder hold 
time nicht eingehalten. Dann ist nicht mehr klar, ob das folgende den 
alten Zustand (vor der Taktflanke) oder den neuen (nach der Taktflanke) 
übernimmt. (Im Extremfall (wenn auch sehr selten) bleibt das folgende in 
einem undefiniertem Zustand hängen und kippt irgendwann eher zufällig in 
einen der beiden Zustände ("Metastability"). Das wäre in dieser 
Anwendung sicher harmlos.) Dummerweise kann das mit Temperatur, 
Versorgung etc. schwanken ...

Wenn diese "Gleichzeitigkeit" nicht garantiert werden kann, muss man die 
Taktflanken von einer Stufe zur nächsten ein bisschen verzögern. Oder 
die Schieberegister triggern abwechselnd auf positive bzw. negative 
Flanke bzw. man versorgt sie halt abwechselnd mit phasenverschobenen 
Takten.

>
> DATA  -%---%---% ---

Es geht dabei NICHT um die Beziehung von Takt und erstem seriellen 
Dateneingang der Kaskade! Das ist ein ähnliches Problem, klar, aber das 
betrifft ja nur das erste Schieberegister und ist ja leicht zu umgehen, 
indem man die CLK und DATA Pins nacheinander und nicht "gleichzeitig" 
aktualisiert.

> % = Zeitpunkt der Pegeländerung
>
> Wenn ja, das habe ich sowieso vor. Das Schieben der paar Register ist ja
> nicht zeitkritisch.

von Stefan F. (Gast)


Lesenswert?

> Schau Dir daher, auch wenn es funktioniert, zumindest mal die
> Signale am Ende der 2m Kabel auf dem Oszi an.

Nicht nur dort, sondern auch in der Mitte und am anderen Ende. Vom Ende 
reflektierte Signale kann man an diesem Ende nämlich nicht sehen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.