Forum: Mikrocontroller und Digitale Elektronik Latch 74HC573


von Peter (Gast)


Lesenswert?

Hallo zusammen
ich versuche gerad das Datenblatt des Latch 74HC573 zu verstehen.
Mit ihm möchte ich eine Porterweiterung realisieren.
Ich möchte drei 74HC573 "laden" und die Daten dann gleichzeitig
am Ausgang bereitstellen.
Transparent Modus habe ich verstanden, aber mir ist nicht
klar, ob es möglich ist, das Register auch im hochohmigen Zustand, als
OE = H und LE = H zu laden.

von Ben _. (burning_silicon)


Lesenswert?

Die Latches machen nichts weiter als den Zustand der Datenleitungen 
durch ein Steuersignal zu übernehmen und dieses zwischenzuspeichern wenn 
das Steuersignal inaktiv wird. Wenn dieses Steuersignal immer aktiviert 
ist übernehmen sie auch die neuen Daten immer. Aus dem Ding wird dann 
quasi nichts anderes als ein Bustreiber.

Wenn die Ausgänge der Latches inaktiv sind kannst Du sie natürlich auch 
mit Daten beschicken.

von Peter (Gast)


Lesenswert?

Klasse vielen Dank für die schnelle Antwort

von Peter (Gast)


Lesenswert?

Darf eigentlich in den Ausgang dieses Latches ein (kleiner) Strom
fließen, oder zerstöre ich es dann??

von Dietrich L. (dietrichl)


Lesenswert?

Peter schrieb:
> Darf eigentlich in den Ausgang dieses Latches ein (kleiner) Strom
> fließen, oder zerstöre ich es dann??

Wenn Du dich an die im Datenblatt angegebenen Grenzen hältst, darfst Du 
das.

Gruß Dietrich

von Peter (Gast)


Lesenswert?

Ist das der input clamping current (+-20mA)???

von Dietrich L. (dietrichl)


Lesenswert?

Peter schrieb:
> Ist das der input clamping current (+-20mA)???

Wenn das so im Datenblatt steht, kann das schon so sein.
Aber beachte: Es gibt mehrere Hersteller diese Typs. Die müssen nicht 
alle gleich sein mit ihren Spezifikationen.

Beachte 2: Wenn das bei "absolute maximum ratings" steht, heißt das, 
dass das IC das überlebt (Zerstörgrenze). Ob er bei diesen Strom aber 
noch richtig arbeitet, ist damit nicht gesagt.

Gruß Dietrich

von Peter (Gast)


Lesenswert?

Ok vieln Dank

von Klaus2m5 (Gast)


Lesenswert?

Der "clamping current" ist der maximale Strom, den die Schutzdioden 
vertragen, wenn Du an einem der Aus- und Eingänge eine Spannung 
außerhalb der maximal zulässigen Spannungen -0.5V bis Vcc + 0.5V 
anlegst.

Innerhalb der erlaubten Spannungen:
  IO DC Output Source Sink Current Per Output Pin ± 35 mA
Die Summe aller Ouputs darf aber
  ICC or IGND DC VCC or Ground Current ± 70 mA
nicht überschreiten

von Peter (Gast)


Angehängte Dateien:

Lesenswert?

Ich habe mir das in etwa so vorgestellt, da ich eine Pegelwandler
mit dem Latch ansteuern möchte, und mir nicht sicher
was ob es so funktioniert.

von Klaus2m5 (Gast)


Lesenswert?

Du verbrennst den Strom aus R1 und R2 über Q0(sink). Ob das geht, kann 
man nur sagen, wenn die Widerstandwerte bekannt sind. Eine Schaltung mit 
2 Transistoren, um den Ausgang von Q0 phasengleich auf 7V hochzusetzen, 
wäre in jedem Fall besser.

von Dietrich L. (dietrichl)


Lesenswert?

Peter schrieb:
> Ich habe mir das in etwa so vorgestellt, da ich eine Pegelwandler
> mit dem Latch ansteuern möchte, und mir nicht sicher
> was ob es so funktioniert.

Im Prinzip geht die Schaltung. Aber wo siehst Du ein Problem: bei "high" 
fließt doch kein (nennenswerter) Strom, dann ist die Basis-Emitter-Diode 
gesperrt. Nur bei "low" muss der Ausgang Strom ziehen - aber das sollte 
er doch können ;-).
Einschränkungen siehe Klaus2m5.

Gruß Dietrich

von Peter (Gast)


Lesenswert?

Hallo, mein Problem bestand darin, dass bei Low ja ein Strom über
den Emitter in meinen Ausgang fließt und ich mir nicht sicher war,
ob das "erlaubt" ist, bzw wie groß der Strom sein darf.
Aber ich finde den Vorschlag von Klaus2m5 interessant. Den da kann ich
an der Basis des zweiten Transistors die Ausgänge Q anschließen und dann 
stellt sich das Problem mit einem Stromfluss in den Ausgang des Latches 
nicht.
Allerdings benötige ich dann 24 zusätzliche Transistoren, was ein wenig 
knifflig wird die auf der Platine unterzubekommen.

von Dietrich L. (dietrichl)


Lesenswert?

Peter schrieb:
> Hallo, mein Problem bestand darin, dass bei Low ja ein Strom über
> den Emitter in meinen Ausgang fließt und ich mir nicht sicher war,
> ob das "erlaubt" ist, bzw wie groß der Strom sein darf.

Ist natürlich erlaubt und steht im Datenblatt.
In meinem alten Datenbuch von National Semiconductor steht das unter 
"Maximum Low Level Output Voltage" (Vol=Voltage Output Low).
Da steht z.B. für Vcc=4,5V, Iout<=6,0mA: Vol<=0,33V im gesamten 
Temperaturbereich. Das sollte für die Dimensionierung von R1 doch 
ausreichen.

Gruß Dietrich

von Dietrich L. (dietrichl)


Lesenswert?

Übrigens: welche Daten brauchst Du denn am Ausgang? 
Low-/High-Spannungspegel, Strom, Geschwindigkeit?
Dann gibt es ggf. einfachere (integrierte) Lösungen.

Gruß Dietrich

von Peter (Gast)


Lesenswert?

Ich möchte mir einen LED-Globus bauen. Habe im 1. Lehrjahr im Betrieb 
einen mit weißen LEDs gebaut und fand es eine nette spielerei und nun 
möchte ich einen für mich zuhause.
Meinen möchte ich jedoch mit 80 rgb-Leds (10 achter Blöcke)realisieren. 
Später sollen die Bilder dann über Bluetooth übertragen und dargestellt 
werden.

Gedacht habe ich mir das so, dass ich 8 Pins von mC mit 3 74HC573 (je 
eins für jede Farbe) verbinde. Jeder Ausgang steuert also eine Farbe 
einer Led.
D.h. alle Latche auf Highimoedanz, erstes laden dann zweites laden und 
drittes laden. Wenn alle geladen sind, ausgänge freigeben. Diese 
High/Low-Pegel, schalten dann je einen Transistor, der dann die Led zum 
leuchten bring.

Ich möchte die Schaltung so planen, dass sie auch PWM fähig ist.

Wenn ich meinen Schaltpla vertig hab, lad ich ihn mal hoch, weil ich 
nicht weiß ob es so verständlich genung ist.

Somit sollte Pegelwandler als relativ schnell sein, insbesondere, da die 
Schaltung auch PWM fähig sein soll.

von Klaus 2. (klaus2m5)


Lesenswert?


von Thomas (Gast)


Lesenswert?

Peter schrieb:
> Ich möchte die Schaltung so planen, dass sie auch PWM fähig ist.

PWM auf einem LED-Globus wird, vorsichtig ausgedrueckt, sehr schwierig 
werden!

von Dietrich L. (dietrichl)


Lesenswert?

Peter schrieb:
> Meinen möchte ich jedoch mit 80 rgb-Leds (10 achter Blöcke)realisieren.

1. Wieso brauchst Du dafür 7V?
2. Bei Deiner Schaltung fließt der LED-Strom direkt in den Ausgang des 
HC573; je nachdem wieviel Strom Du treiben willst, ist der HC573 dafür 
eventuell zu schwach.
3. wenn Du wegen des Stromes einen Treiber brauchst, wäre eine 
Emitterschaltung besser; Du musst nur das Ansteuersignal invertieren.
4. Du kannst auch fertige (integrierte) Treiber verwenden, z.B. ULN2803.

Gruß Dietrich

von Peter (Gast)


Angehängte Dateien:

Lesenswert?

So hier mal meinen vorläufigen Schaltplan.

Die 10 PNP-Transistorn (hinten) steuern welcher 8er-Block gerade 
leuchtet. Dies geschieht über das durchtakten der Schieberegister.
Über die jeweils 8 PNP-Transistoren pro Farbe werden die einzelnen LEDs 
angsteuert (Transistoren werden mit den daten der Latche geschalten).
Der unterste Transistor (NPN) soll zur Feineinstellung der Helligkeit 
für jede Farbe dienen.

Ok 7V sind wohl ein wenig hochgegriffen :-), habe mich noch nicht über 
passende Festspannungsregler informiert. Aber laut Datenblatt hat die 
blaue und grüne LED Umax = 3,5V. Und wenn ich mich nicht verrechnet 
habe, komme ich so auf Umaxled + 3* Uce = 5,6V.
Das heißt doch, dass ich mit meinen 5V vom uC (bzw. Latch, 
Schieberegister) die PNP Transistoren nicht mehr vollständig sperren 
kann.

Der HC573 ist zu schwach, weil im worst case 8*20mA fließen :-(. Deshalb 
möchte ich den Spannungsumsetzer mit zwei Transistoren NPN und PNP 
realsieren.

An den ULN habe ich auch schon gedacht, aber den gibts soweit ich weiß 
nur als NPN-Variante und da ich an meinem "Dimm-Transistor" hänge, muss 
ich mir wohl mit einzelnen PNP aushelfen.

Ich hoffe man kann etwas auf dem Schaltplan erkennen.
Für Vorschläge bzw. Verbesserungen bin ich sehr Dankbar.

von Peter (Gast)


Lesenswert?

@Thomas
Ja genau so sollte es zumindest am Ende aussehne.

von Dietrich L. (dietrichl)


Lesenswert?

Peter schrieb:
> An den ULN habe ich auch schon gedacht, aber den gibts soweit ich weiß
> nur als NPN-Variante

Nein, es gibt auch die UDNxxxx. Die schalten "+".
Allerdings ist bei diesen Typen zu berücksichtigen, dass sie relativ 
hohe Sättigungsspannungen haben (Darlington). Wenn die 
Versorgungsspannung hoch genug ist, ist das natürlich kein Problem.

Gruß Dietrich

von Peter (Gast)


Lesenswert?

Stimmt vielen dank.
Aber die könnten in Bezug auf PWM ein langsammes Schaltverhalten haben
(Turn on 1us, Turn off 5us). Einzelne Transistoren sind doch schneller 
oder?
Und wie Thomas schrieb sollte ich glaub auf jede us achten.

von Wilhelm F. (Gast)


Lesenswert?

Peter schrieb:

> Ich habe mir das in etwa so vorgestellt, da ich eine Pegelwandler
> mit dem Latch ansteuern möchte, und mir nicht sicher
> was ob es so funktioniert.

Das ist OK. Ein bekannter Pegelwandler in Basisschaltung des 
Transistors. Sie hat nur Spannungsverstärkung, die Stromverstärkung ist 
geringfügig kleiner als 1.

von Thomas (Gast)


Lesenswert?

Hallo Peter,

> Und wie Thomas schrieb sollte ich glaub auf jede us achten.

so in etwa. Man kann sich die Sektorzeit recht einfach ausrechnen. Sagen 
wir mal du willst 80x200 pixel auf dem Globus, also 200 Sektoren, und 
eine Frequenz von vielleicht 10Hz. Dann dauert ein Sektor 500 
mikrosekunden.

In dieser Zeit musst/willst du PWM machen. Oder anders gesagt, du teilst 
einen Sektor in weitere Unterabschnitte. Rein rechnerisch kommt wohl auf 
fast 8bit pro Farbe, wenn ich jetzt an SPI mit 4 MHz denke.


Aber:

1. Aufgabe: Diese Daten musst du schnell genug schicken und auch 
vorhalten koennen ... musst du wissen.

2. Aufgabe: Die PWM musst du dir wohl selber schreiben. Ziel dabei waere 
es, die Farbstufen gleichmaessig ueber den 'Untersektor' zu verteilen. 
D.h. zum Beispiel sollte die niedrigste Farbstufe (nur 1x high) in der 
Mitte des Untersektor sein usw..

3. Aufgabe: Ob dieses langsame PWM, denn mehr als einen Zyklus wirst du 
wohl nicht schaffen, ueberhaupt vernuenftig aussieht bei einer bewegten 
LED!

Und selbst wenn: vom Gefuehl her wuerde ich sagen, mit einem normalen MC 
kaum zu schaffen. Und dann noch 'Luft' fuer Bluetooth ... puh.


Hey, ich will dir aber nicht den Spass verderben!

Viel Erfolg, Thomas

von Peter (Gast)


Lesenswert?

Haha ja wird wohl nicht einfach :) aber einen Versuch ist es Wert und 
wenns nicht klappt, hab ich wenigsten einen Globus mit 6 Farben.
Kannst du mir evtl. einen Tipp geben, welchen Mc du verwenden würdest??

ICh dachte ich versuchs mal mit einem ATmega644 (20MHz). Allerdings kann 
ich auch noch nicht abschätzen, ob der Speicherplatz reicht, denn für 
eine PWM kommt ja zusätzlich noch einiges an Daten hinzu.

PS. Vielen Dank für die Unterstützung hier, ist echt Top.


Peter

von Klaus 2. (klaus2m5)


Lesenswert?

Du solltest Dein Transistorgrab mal etwas aufräumen:

1. Die low side Transistoren können von den 573 direkt getrieben werden. 
Die Daten müssen dann vor dem Laden der 573 invertiert werden, aber 
immer noch besser als ein Transistorgrab...

2. Die high side Transistoren sollten pnp sein und ein npn Transistor 
als Treiber würde reichen. Dann kannst Du wahrscheinlich alles mit 5V 
versorgen. Eine Kollektorschaltung verliert 0,7V, eine Emitterschaltung 
deutlich weniger.

3. Vor dem ersten Aufbau würde ich alles erst mal nur mit jeweils einer 
Komponente testen, also ein 595, ein 573, ein Treiber auf jeder Seite, 
das schont auf jeden Fall den Geldbeutel. Damit siehst Du sofort, ob die 
angestrebte Helligkeit flimmerfrei erreicht wird.

Eine RGB-Matrix mit PWM auf einem ATMega644 ist in C oder Assembler 
machbar, aber anspruchsvoll. Bevor das funktioniert, solltest Du Dich 
erstmal mit kleineren Projekten an die Aufgabenstellung herantasten, 
also Teilaufgaben wie PWM, Matrix und Farbsteuerung erstmal getrennt 
programmieren.

Und nochmal meine Frage:
Klaus 2m5 schrieb:
> Du meinst so was hier?:
> http://www.mikrocontroller.net/articles/POV-Display

Wenn Du sowas machen willst, kann nicht schon die LED-Ansteuerung als 
Matrix erfolgen, denn dann bleibt wirklich zu wenig Leuchtzeit auf einer 
Position der LED übrig, quasi eine dreidimensionale Matrix: Spalte, 
Reihe und Rotationsposition. Dann noch PWM als 4. Dimension.

Ach und eine Bitte noch. Das nächste Mal bei einer Frage wie "wieviel 
Strom kann ein 74HC573 am Ausgang vertragen" bitte gleich alle 
Hintergrundinformationen liefern, wie z.B. "Ich will LEDs in einer 
Matrix ansteuern"

von Peter (Gast)


Lesenswert?

@Klaus
Du hast recht, was ich da mit den Transistoren angestellt habe ist Unfug 
und wurde schon geändert, vielen Dank für den Hinweis.
Zur Ansteuerung, ich muss die Leds doch mit einer Matrix ansteuern, denn 
meine Pinzahl am uC ist ja begrenzt, oder habe ich etwas falsch 
verstanden??

Gruß Peter

von Thomas (Gast)


Lesenswert?

Ich glaube, ich weiss was Klaus meint, denn das habe ich in deinem 
Schaltplan auch nicht verstanden.

Die Frage ist: Werden alle 80 LEDs (*3 Farben) in einem Sektor zur 
gleichen Zeit angesteuert oder willst du die auch noch 'durchtakten' -> 
erst die ersten acht usw.? Wenn ja, dann wird das mit PWM noch eine 
Stufe schwieriger (wenn nein, dann ist das immer noch schwierig).

von Peter (Gast)


Lesenswert?

Ok verstehe, ich möchte die 80 LEDs auch durchtakten, also 10 8er 
Blöcke. Dafür sind die 10 Transistoren am Schieberegister gedacht.
Würde am liebsten alle 80 gleichzeitig anschalten, aber dann hätte ich 
einen Strom von 80*3*20mA = 4,8 A und das scheint mir ein wenig viel zu 
sein.
Aber wenn das durchtakten der Sektoren eurer Meinung nach die PWM 
unmöglich macht, muss ich wohl in den sauren Apfel beißen.

von Klaus2m5 (Gast)


Lesenswert?

Peter schrieb:
> Zur Ansteuerung, ich muss die Leds doch mit einer Matrix ansteuern, denn
> meine Pinzahl am uC ist ja begrenzt, oder habe ich etwas falsch
> verstanden??

Grundsätzlich ja, aber wenn diese Matrix rotiert, gibt es ein paar 
Probleme.

1. Bei der Rotation entsteh ein Versatz. im Prinzip siehst Du
-   -   -   -
 -   -   -   -
  -   -   -   -
   -   -   -   -

2. Die Helligkeit nimmt mit der veringerten Aktivierungsdauer einer LED 
ab, wie bei PWM auch. Also nur 1/10 der eigentlichen Helligkeit. Das 
kann man begrenzt durch den maximalen Strom der LED bei Pulsbetrieb 
wieder ausgleichen, also mit 100mA für 1/10 der Zeit und die LED 
leuchtet, als ob sie mit 10mA betrieben würde.

3. Durch die Rotation befindet sich eine LED nur für begrenzte Zeit an 
einer Stelle des Globus. Wenn Du 80 LEDs vertikal hast, dann würde ich 
horizontal 160 Pixel ansetzen (die Hälfte sichtbar, also 80 x 80). Das 
heist, 1 Pixel leuchtet nur mit 1/160 der Helligkeit einer einzelnen 
LED, die ja schon durch die Matrix nur halb so stark leuchtet.

4. Damit es als zusammenhängendes Bild erkennbar ist, brauchst Du 
mindestens 15 Hz Bildwiederholrate, was 900 UpM entspricht. Pro Pixel 
müssen die Register 10 mal neu geladen und die Transistoren umgesteuert 
werden. Also 160 Pixel x 10 Spalten x 15 Hz = 24000 Hz oder 41,6 µs pro 
Pixel. Pro Umschaltung muss eine Pause von einigen µs eingehalten 
werden, damit die Transistoren aus der Sättigung kommen, also weiterer 
Helligkeitsverlust. Andernfalls kommt es zum Geisterleuchten 
benachbarter LEDs.

Die Synchronisation mit dem Rotor ist auch nicht gerade trivial. Die 
Veränderung der Rotation muss auf die Zykluszeit jedes Pixels 
umgerechnet werden, am Besten durch eine Software PLL.

Die 160 Pixel x 10 Bytes (a 8 LEDs) x 3 Farben sind übrigens für einen 8 
Bit µC schon eine beachtlliche Datenmenge von 4800 Bytes, die Du für den 
Refresh im RAM vorhalten musst. Und da ist noch keine 
Helligkeitsinformation (PWM) enthalten. Für ein übergangsloses 
Umschalten brauchst Du nochmal die gleiche Menge RAM.

Der µC muss also 4800 Bytes x 15 = 72000 Bytes/s auf die Register 
übertragen und gleichzeitig alle weiteren Aufgaben erledigen können.

von Thomas (Gast)


Lesenswert?

Richtig, das mit den 10 Achter-Bloecken hattest du erwaehnt, hatte es 
nur nicht so richtig verstanden.

Mhh, bin mir grad nicht sicher, ob das dann gut aussieht. Denn die LEDs 
in einem Sektor (einer Spalte) leuchten dann leicht versetzt. Evtl. 
faellt das aber nicht so sehr auf.

Zu PWM: Du muesstest dann in einem Achtel der Sektorzeit mindestens 
einen Zyklus schaffen. Nach obiger Rechnung hast du dazu dann weniger 
als 100 Mikrosekunden. Ich behaupte jetzt einfach mal, dass das nix 
wird. (Lass mich aber auch gern von was Anderem ueberzeugen)

Nochwas anders, da du die 4.8 A erwaehnst (OK, nur im Extremfall). Bei 
so einem Globus ist die Stromversorgung nicht zu unterschaetzen!

von Peter (Gast)


Lesenswert?

Ok das hört sich alles nciht gut an, muss zugeben, so ausführlich
habe ich da noch nicht durchdacht :-(.
Aber wo Probleme sind gibt es Lösungen, dauert bei mir nur manchmal 
etwas länger.
Wäre ein zweiter uC der nur die PWM macht, eine Lösung?

von Peter (Gast)


Lesenswert?

oder so ein LED-Treiber mit PWM (TLC5946), habe mich nur noch nicht ganz 
durchs Datenblatt gearbeitet???

von Klaus2m5 (Gast)


Lesenswert?

Vielleicht sollte der Globus nicht ganz so groß werden?

von Peter (Gast)


Lesenswert?

Ja zu dem Schluss bin ich auch gekommen :-). Habe mir gedacht, ich 
reduzier die Anzahl der LEDs auf die Hälfte (40). Tut zwar ein wenig 
weh, aber ich bin auf dem Gebiet (3. Lehrjahr) nun auch nicht soo fitt, 
dass ich mich
gleich mit solchen Problemen rumschlagen kann. Darum backe ich jetzt 
erst mal kleine Brötchen, sammel Erfahrung und wer weiß vielleicht wird 
ja irgendwann mal was aus nem größeren Globus.
Ich möchte mich nochmals für eure Hilfe bedanken.

von Peter (Gast)


Lesenswert?

Aber nur mal aus reiner Neugierde, wäre es prinzipiell möglich, zwei uC
so zu synchronisieren, dass einer die ersten 40 Leds ansteuert und der 
andere die zweiten 40???

von Dietrich L. (dietrichl)


Lesenswert?

Peter schrieb:
> Aber nur mal aus reiner Neugierde, wäre es prinzipiell möglich, zwei uC
> so zu synchronisieren, dass einer die ersten 40 Leds ansteuert und der
> andere die zweiten 40???

Prinzipiell möglich bestimmt, aber ob sinnvoll, ist eine andere Sache. 
Denn das Synchronisieren braucht ja auch Prozessorleistung (HW+SW).

Da wäre zuerst wohl ein größerer und schnellerer µC zu empfehlen.

Gruß Dietrich

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.