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
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
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
@Dirk: Wie man im Code-Beispiel von Jens schon sieht, ist nicht der PEGEL sondern die FLANKE für die Datenübernahme beim 573 wichtig. Guckst Du Datenblatt, da steht das drin.
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...
Arrghh - ich nehme alles zurück und behaupte das Gegenteil. Sorry, da hab ich mich vertan, ich meinte den 574er...
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...
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
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)
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
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?
Wenn Du die Schaltung an einen Controller mit push-pull Ausgängen anschließt, kann RN1 entfallen.
Hallo, bitte mal Push-Pull für einen Anfänger erklären. Hat ein AVR sowas? Dieses Bauteil einzusparen ist eigentlich nicht so wichtig da es ja doch sehr klein baut.
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).
Hallo, ok danke habe mich mit den einzelnen Pinmöglichkeiten noch nicht so stark auseinander gesetzt. Wiederstand R2 konnte ich entfernen wird ganricht gebraucht.
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.