74HCT573 Latch am AVR

Gast #47477
Lesenswert?

Hallo
Ich versuche 4 D-Latches 74HCT573 an einem AT90LS4433 bei 5V und 4MHz
zu betreiben. Programmierung erfolgt in Assembler.
PC0..PC3 sind meine LE-Eingänge am jeweiligen Latch-Baustein, die ich
auf LOW ziehe um die Daten zu Puffern? Richtig? Muss Port C noch mehr
vorbereitet werden???
PortD sind die Daten.

Die OE_-Eingänge sind bei mir auf Masse gelegt. Ausgänge immer aktiv.

Wie gesagt manchmal scheinen Daten übernommen zu werden. Gerade habe
ich noch was gedreht (Einmal 0xaa an PortD) und jetzt liegen an Eingang
und Ausgang von einem Latch unterschiedliche Daten an, ist ja ein Zweck
von dem Ding. (Nur irgendwie nicht regelmässig.)

Das ganze scheint ein bisschen zu funktionieren. (Eher weniger...)

Ich weiss, ich weiss, ich weiss... Keine genaue Beschreibung des
Fehlers....

Vieleicht hat jemand so allgemeine Tipps, wie "Nach dem Hochlaufen
sind die Ports noch kalt und müssen erst 5000 Umdrehungen im Leerlauf
haben", oder so.

Danke
    Dirk
Angehängte Dateien:
Gast #47478
Lesenswert?

Hallo Dirk

die 74573er sind manchmal sehr launisch...
(auch gegen äußere Einflüsse)

bei mir half u.a pull-down-R bzw. pull-up-R an den
Ausgängen (der 573er), damit diese nicht mehr 'flattern'

Vielleicht hilfts.

Günter
Gast #47479
Lesenswert?

Vielleicht helfen Dir meine Routinen für den 573.
Funktionieren bei mir einwandfrei bei SRAM- und IDE-Zugriff und 8MHz
Takt (gibt noch keine Timing-Probleme in dem Bereich).
Das zu latchende Byte muss natürlich vor dem Aufruf der Schreibroutine
anliegen.

;----- BUS573_WRITE ------------------------------------------------
bus573_write:
  ; store byte
  sbi BUS573, BUS573_PIN_LE ; LE high
  cbi BUS573, BUS573_PIN_LE ; LE high-low transition. latch data
  ; stored data to output
  cbi BUS573, BUS573_PIN_OE ; -OE low (enable outputs)
ret

;----- BUS573_HIGHZ ------------------------------------------------
bus573_highz:
  cbi BUS573, BUS573_PIN_LE
  sbi BUS573, BUS573_PIN_OE
ret
Gast #47481
Lesenswert?

guckst du falsch...
der 573er ist zustandsgesteuert  74HC/HCT573; Octal D-type transparent
latch, flankengesteuert ist der 374/574.
Ob das Ding jetzt mit H- oder L-Pegel verriegelt wird, weiss ich auch
nicht aus dem Kopf, nachschauen.
Prinzipiell: Daten anlegen, enable ansteuern, enable freigeben.
Irgendwann hab ich mal was damit gemacht, man braucht weder pullups
oder pulldowns noch irgendwelche Wartezeiten, zumindest nicht beim AVR.

Parallele Erweiterungen habe ich allerdings schon lange nicht mehr
benutzt, seriell war immer schnell genug...
Gast #47483
Lesenswert?

Sehr seltsam... ich könnte schwören, mich diesbezüglich genau ans
Datenblatt gehalten zu haben.
Vielleicht habe ich das auch falsch interpretiert.

Dort steht "h (l) = HIGH (LOW) voltage level one set-up time prior to
the HIGH-to-LOW LE transition".
In der Funktionstabelle steht bei LE jeweils nur ein "L".

Klassisches Missverständnis meinerseits?
Schaden tut's auf jeden Fall nicht, wenn LE vorher nochmal auf "H"
gesetzt wird...
Gast #47484
Lesenswert?

Danke für die Tips.
Hatte ich schon auch so gesehen, dass die Daten mit der fallenden
Flanke übernommen werden.
Zusätzliche Pullupwiderstände täten mir weh.
Grundsätzlich ist meine Verbindung über Buchsenleisten und Steckkabel
elektrisch nicht ausgereift. (?) (erklärt aber lang nicht alle
Fehler???)
Ich werde das Ganze mal ein paar Tage in Ruhe untersuchen.
Pausen sind wie ich sehe grundsätzlich nicht nötig, bei 4MHz ist ein
Cycle 250ns, wenn ich eine Flanke generiere sollte die auch lang genug
am Ausgang anstehen

Etliche Dinge sind komisch. In meinem Programm von gestern Nacht,
Initialisiere ich eine Variable mit 0xfe und rotiere die in einem
Timer-Interrupt und schreibe sie in ein Latch. Am Ausgang kommen aber
jeweils 3 Bits mit 0 an und nicht 1.
Wackel-Kontakt bei LE und Data, aber irgendwie scheint auch der Timer
wackelig zu laufen.(???)

So, das wär's. Ich hoffe am nächsten Wochenende bin ich weiter und
kann irgendwann über den Bock lachen den ich geschossen habe.

servus
   Dirk
Gast #47485
Lesenswert?

Hallo,

ich teste das ganze zur Zeit auch aus, habe einen Philips 74HC573N hier
und steuere testweise die Eingänge erstmal mit einem 8fach DIP Schalter
an. Ich habe festgestellt das die Eingänge sehr empfindlich sind(wie
eine Antenne) sogar hier beim Tippen blinken sie wie eine
Aussteuerungsanzeige auf. Wenn ich aber von den Eingängen Wiederstände
gegen Masse lege dann sind die Ausgänge auch wirklich aus. Da reicht
sogar schon ein 600kOhm Wiederstand.

Ich vermute die integrierten Pull-Down sind zu klein dimensioniert,
also wenn da ein µC-Ausgang dranhängt der 5V/20mA treibt dann klappt es
vielleicht, wenn ich aber 5V draufgebe die wesentlich stärker belastbar
sind dann ist der Spannungsabfall nicht so hoch das ein Low-Pegel
zustande kommt. Mit einem µC konnte man ja auch einfach sinken lassen
also gegen Masse ziehen dann sind sie auch aus.

Hier mal ein Schaltplan meines Versuchsaufbaues(Steckbrett)
Angehängte Dateien:
Gast #47486
Lesenswert?

Hi alle,

ich benutze die 573 auch hin und wieder. Habe das immer so gesehen,
dass bei einem festen High-Signal das Latch transparent wie ein Buffer
wirkt (74xx245), somit jede Änderung am Eingang sofort auf den Ausgang
wirkt, und beim Übergang von High nach Low die Daten fest und
unveränderlich gelatched werden. Verbinde gerne den Output Enable mit
Latch, weil dann beim Low-Signal die gespeicherten daten gleich am
Ausgang erscheinen.

Gruß    R A L F
Gast #47487
Lesenswert?

Hallo,

also ich habe es jetzt fertig hier habe ich mal den Schaltplan
korrigiert.

Das ganze läuft wie folgt ab. Über S1 werden die einzelnen Bits
gesetzt. Danach gibt man über S2 High an Pin11(Latch enable) und kann
ihn gleich wieder löschen, die Daten liegen jetzt im Latch, Änderungen
an S1 wirken sich jetzt nicht mehr aus. Wenn S3 betätigt wird, wird
dadurch Pin1(Output enable) auf Masse gezogen und die im Latch
gespeicherten Daten gelangen an die Ausgänge. Wenn man S2 immer
gedrückt hält dann ist das Latch transparent also Änderungen an S1
wirken sich direkt auf die Äusgange aus wenn S3 gedrückt ist und der
Ausgang aktiv ist.

Ich habe das ganze nur auf einem Steckbrett ausprobiert, deswegen weiß
ich noch nicht wie die Wiederstände in der µC Schaltung dimensioniert
sein müssen. RN1=1,8kOhm R1=240kOhm und R2=680kOhm. Ich denke mal das
man RN1 in der µC beschaltung auf 10kOhm setzen solte um die Äusgange
nicht so stark zu belasten. Oder kann vielleicht jemand was zur
Dimensionierung beitragen?
Angehängte Dateien:
Gast #47491
Lesenswert?

Push-Pull = Der Ausgang gibt sowohl low als auch high in Pegel in
belastbarer Form ab. Der Atmel hat solche Ausgänge.
Die MCS-51 Reihe z.B. hat dies nicht, diese Ausgänge können nur
low-Pegel treiben, bei high ist der Zustand ziemlich undefiniert (bis
auf die internen Pull-Ups).

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren