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.
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.
Darf eigentlich in den Ausgang dieses Latches ein (kleiner) Strom fließen, oder zerstöre ich es dann??
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
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
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
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.
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.
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
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.
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
Übrigens: welche Daten brauchst Du denn am Ausgang? Low-/High-Spannungspegel, Strom, Geschwindigkeit? Dann gibt es ggf. einfachere (integrierte) Lösungen. Gruß Dietrich
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.
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!
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
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.
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
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.
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.
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
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
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"
@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
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).
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.
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.
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!
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?
oder so ein LED-Treiber mit PWM (TLC5946), habe mich nur noch nicht ganz durchs Datenblatt gearbeitet???
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.
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???
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.