Arduino Forum

Forum 2005-2010 (read only) => International => Deutsch => Topic started by: bendoben on Dec 19, 2010, 05:47 pm

Title: 74HC573 8-Bit D-Latch Problem
Post by: bendoben on Dec 19, 2010, 05:47 pm
Guten Abend,
ich finde zur Zeit kein passende Erklärungen zur Ansteuerung eines 8 Bit Latch 74HC573 an ein Arduino mega.
Sofern jemand mir helfen könnte, würde ich mich sehr freuen.

Lg Ben
Title: Re: 74HC573 8-Bit D-Latch Problem
Post by: Korman on Dec 19, 2010, 06:20 pm
Wenn ich fragen darf, wo siehst du das Problem?

D0-D7 an beliebige digitale Ausgänge, wenn diese korrekt gesetzt sind LE  einmal auf HIGH dann wieder auf LO zum Durchschalten. Wenn du mit Tristate-Ausgängen spielen willst, bediene -OE auf einem anderen digitalen Ausgang. Effizienter geht es, wenn D0-D7 vom gleichen Arduino-Register bedient werden, aber das wäre schon eine Optimierung für später.

Was nun wirklich notwendig ist, hängt davon ab, was du mit dem Latch machen willst. Warum diesen IC?

Korman
Title: Re: 74HC573 8-Bit D-Latch Problem
Post by: bendoben on Dec 19, 2010, 06:36 pm
Vielen Dank Korman
Ich würde gerne einen 7x7x7 led Cube mit 7 Latches ansteuern ;)

Jedoch verstehe ich derzeit noch nicht ganz  was OE und LE machen?
Und was sind Tristate-Ausgänge?

Lg Ben
Title: Re: 74HC573 8-Bit D-Latch Problem
Post by: Megaionstorm on Dec 19, 2010, 08:26 pm
Datasheet 74HC573:
http://www.datasheetcatalog.org/datasheet/philips/74HC_HCT573_CNV_2.pdf

Funktionstabelle findet man auf Seite 4.

Da steht auch was ein Tristate-Ausgang ist. Einer der drei verschiedene Zustände haben kann. Tri = 3.

H = HIGH voltage level
L = LOW voltage level
Z = high impedance OFF-state
Title: Re: 74HC573 8-Bit D-Latch Problem
Post by: Korman on Dec 19, 2010, 08:27 pm
OE ist Output Enable und schaltet die Ausgänge in einen hochohmigen Zustand. Wenn du keine Busse baust, brauchst es üblicherweise nicht und OE mit Masse verbinden.

LE ist Latch Enable. Damit werden alle 8 pins auf einmal durchgeschalten. Das ist besonders dann interessant, wenn auf der Leitung noch andere Dinge passieren, die du nicht durchschalten willst weil sie für jemanden anderen gedacht sind. Damit kannst du dem jeweiligen Chip sagen, daß die Daten für ihn sind. Interessiert dich das auch nicht, LE immer auf 5V legen (transparent mode heißt das im Datenblatt).

Ich nehme an, daß in deinem Fall 8 Pins auf alle D0-D7 von allen 7 Latsches gehen und 7 Pins zum LE von jeden Latch.

Korman
Title: Re: 74HC573 8-Bit D-Latch Problem
Post by: bendoben on Dec 19, 2010, 10:55 pm
Also sofern ich nun mehrere Latch´s parallel an den Eingängen schalten würde, müsste ich nur den LE von jedem IC benutzen, um ihn ansprechen zu können?
Und ist es möglich am ersten 74HC573 den Ausgang Q1 und gleichzeitig am zweiten den Ausgang Q2 auszugeben? (müsste ja dank der LE Leitung funktionieren)

lg
Title: Re: 74HC573 8-Bit D-Latch Problem
Post by: Korman on Dec 19, 2010, 11:06 pm
Bitte eine Schaltung zeichnen, damit wir wissen was du genau meinst. Und bitte auch kurz beschreiben, was du dir davon erhoffst und was es machen soll. Sonst kommen so antworten wie: Ja es ist möglich, nur wozu?

Im Notfall reicht als Schaltung das Photo einer Handskizze, wenn du dafür keine Programme hast.

Korman
Title: Re: 74HC573 8-Bit D-Latch Problem
Post by: bendoben on Dec 21, 2010, 10:24 am
So hier das gewünschte Bild
(http://
http://a.uploadingit.com/view/CBSGUZ0RPZTAKIVF/MobilePhotoDecember21,2010041055AM.jpg)
http://a.uploadingit.com/view/CBSGUZ0RPZTAKIVF/MobilePhotoDecember21,2010041055AM.jpg
Zur Zeit ist leider mein Internet ausgefallen, daher nur ein handyupload
Und noch einmal die Frage:

Also sofern ich nun mehrere Latch´s parallel an den Eingängen schalten würde, müsste ich nur den LE von jedem IC benutzen, um ihn ansprechen zu können?
Und ist es möglich am ersten 74HC573 den Ausgang Q1 und gleichzeitig am zweiten den Ausgang Q2 auszugeben? (müsste ja dank der LE Leitung funktionieren)

lg
Title: Re: 74HC573 8-Bit D-Latch Problem
Post by: Korman on Dec 21, 2010, 11:28 am
Ganz genau so, nur daß du die LED verkehrt rum eingezeichnet hast. Die Daten gehen an alle IC und mit einem Latch-Enable HIGH-LOW sagst du dem jeweiligen IC, daß die Daten für ihn sind.

Nur um sicher zu gehen: Du verwendest die Ausgänge Analog1-8 nur als Digitalausgänge und weil sie gerade frei waren. Du solltest nicht hoffen, daß du dadurch die Leds dimmen könntest.

Ein kleines Detail, das dein Programm sehr vereinfachen wird: Nimm Ports Analog0-7 oder Analog8-15, nicht Analog1-8. In den ersten Fällen werden nämlich alle Leitungen von einem Register gesteuert (PORTF für Analog 0-7 oder PORTK für Analog 8-15). Damit kannst du alle Daten für ein Latch so rausschieben:
Code: [Select]
/*
rausdamit (latchport, daten)

Dieses Funktiönchen schreibt alle Daten in einen 74HC573,
der am ArduinoMega an den Ports Analog0-7 hängt.

latchport: die Leitung mit dem LE des richtigen Chips
daten: D0-D7 als Byte.
*/
inline void rausdamit(uint8_t latchport, uint8_t daten) {
  // Daten auf den Bus legen
  PORTF = daten;
  // Mit der LE-Leitung wedeln
  digitalWrite (latchport, HIGH);
  digitalWrite (latchport, LOW);
}

// Anwendungsbeispiel
void setup(){
  // Alle Datenpins auf Ausgang schalten.
  for (uint8_t pin = A0; pin <= A7; pin++) {
     pinMode (pin, OUTPUT);
  }
  // LatchEnable pin ebenfalls
  pinMode (A12, OUTPUT);
}

void loop (){
  rausdamit (A12, 0b10100011);
  delay(1000);
  rausdamit (A12, 0b01011100);
  delay(2000);
}
Der Code ist wie immer ungetestet.

Wenn du jetzt mehrere Latches hast, kannst du dir zwei Arrays machen, eines mit den Daten und eines mit den passenden Pinnummern der LatchEnable und deinen gesamten Würfel mit einer Schleife updaten. Du mußt dann nur mehr dazwischen die Daten im Datenarray anpassen. Das Programm wird dadurch nicht viel komplizierter als mein kleines Beispiel. Wenn du damit Probleme hast, einfach melden, dann kann ich mehr dazu schreiben.

Korman
Title: Re: 74HC573 8-Bit D-Latch Problem
Post by: bendoben on Dec 21, 2010, 01:01 pm
Okay ist es nun noch möglich das ganze im Multiplex zu steuern?
Title: Re: 74HC573 8-Bit D-Latch Problem
Post by: Korman on Dec 21, 2010, 01:05 pm
Was meinst du genau mit "das ganze im Multiplex steuern"? Das kann viel heissen. Bitte ein paar zusätzliche Details dazu.

Korman
Title: Re: 74HC573 8-Bit D-Latch Problem
Post by: bendoben on Dec 21, 2010, 01:39 pm
Also mein LED Cube hat 7 ebenen, wo jeweils die Anode + an den ebenen abgeschlossen hat.
Die anderen 7*7=49 Säulen hängen jeweils an der Kathode -
jedenfalls soll zB die LED in der Ebene 1/Säule 1 leuchten und die LED in Ebene 2/Säule 2 gleichzeitig leuchten. Jedenfalls geht dies nicht, da sofern Ebene 1/2 und Säule 1/2 aktiv ist, leuchten 4 anstatt 2 LED's.
Folge dessen wir müssen multiplexen ;)
Title: Re: 74HC573 8-Bit D-Latch Problem
Post by: Megaionstorm on Dec 21, 2010, 01:50 pm
Ich hätte jede der 7 Ebenen als eigenständige 7X7  Matrix gehandhabt und jede der 7 Ebenen über einen eigenen Leddriver gesteuert !
Über einen weiteren IC würde ich dann zwischen den Reihen aller Ebenen hin und her schalten, also alle 1. Reihen, dann alle 2. Reihen  etc.
Durch die verschiedenen Leddriver wird dennoch in den Reihen der einzelnen Ebenen etwas unterschiedliches dargestellt.