Hallo,
ich verwende in meiner Schaltung ein Latch, welches entweder komplett
den datenverkehr sperren soll oder transparent sein soll...
der transparente zustand ist mir klar: OE muss low sein und LE ist
high...
aber wie stell ich einen Zustand her, so dass erstens nicht durchgeht
(also OE disable = high) aber auch nichts im internen Latch gespeichert?
Oder hab ich einen Denkfehler... wenn was gespeichert werden würde,
würde dass dann beim nächsten transparenten zustand rausgeschickt
werden, ja oder? Wenn ja, genau das möchte ich verhindern...
www.standardics.nxp.com/products/lvc/pdf/74lvch32373a.pdf
Paul
Hallo,
naja, wenn es nichts speicehrn soll, reicht ja ein Bustreiber. (74245
usw. usw.
Wenn Du den 373 nimmst, eben LE auf H und nur mit OE die Ausgänge
tri-state schalten...
Gruß aus Berlin
Michael
also wenn was im latch während des transparenten zustands gespeichert
wird, ist das ok... nur wenn daten über den datenbus von anderen ICs
kommen, sollen die nicht in diesem Latch gespeichert werden können...
soll das latch überhaupt nicht interessieren...
Paul
Hallo,
wenn der 373 auf transparent steht, wird überhaupt nichts gespeichert.
Änderungen am Eingang erscheinen am Ausgang. Wenn /OE H ist, ist der
Ausgang hochohmig, es kommt also nichts raus. Der Zustand des Latch
hängt damit garnicht zusammen, den bestimmt nur LE.
Gruß aus Berlin
Michael
an dem Datenbus des µC hängt ein RAM und eben die Outputs...
im ersten schritt kommen daten über den datenbus in den µC (diese daten
sollen aber nicht an die Outputs gelangen - sind aber die gleichen
Leitungen)...
im zweiten Schritt werden diese Daten aus dem µC an die Outputs gesendet
(durch das Latch, welches dann transparent sein soll)...
einen extremfall gibt es... wenn keine neue Daten mehr im RAM sind,
werden auch keine an den controller übergeben somit erhalten die outputs
auch keine neue daten.. im latch sollen somit die letzten daten stets
festgehalten werden, die im transparenten zustand durchgehen (was ja
auch so funktionieren müsste)...
nur bin ich mir nicht sicher, ob die Bits die vom RAM kommen nicht auch
dann im Latch drinnenstehen..
Paul
- wenn der Inhalt vom Datenbus geschrieben wird (WR/=0)
- und wenn damit die Latches statt des RAMs gemeint sind (CS/-Latch=0)
- dann LE=1, sonst LE=0.
also wenn die Bits an das Latch gehen sollen LE=1 und OE=0
wenn die Bits vom RAM in den µC kommen (latch nicht angesprochen werden
soll) -> LE=0
wie schließt man eigentlich das LE-Signal an den µC an (muss ich da noch
einen Inverter zwischen LE Latch und CS vom µC einbauen?)
Paul
Ich habe da immer so gemacht (74HC573N) das ich den Wert ans Latch zum
Speichern übergeben habe und danach seine Ausgänge freischalte, danach
die Eingänge hochohmig und ich kann den Bus wieder für andere I/O Zwecke
verwenden. Es ist egal ob was drin gespeichert ist da du ja einfach den
Ausgang sperren kannst, beim nächsten mal gibtse halt erst frische Daten
rein und schaltest dann die Ausgänge frei.
und für das LE Signal benötigt man einen Hex-Inverter, damit man vom µC
aus der Latch per CS enablen kann, oder wie macht man das?
CS ist ja per default bei Low aktiv...
Torben
also so wie ich das verstehe muss man so ein Hex-Inverter verwenden wie
einen 74LVT04 von NXP
http://www.standardics.nxp.com/products/lvt/pdf/74lvt04.pdf
verwenden, damit man das CS-Signal vom µC an den LE-Input vom Latch
anschließen kann...
naja etwas oversized (meines erachtens), wenn man nur ein Bit umkippen
möchte,...
Paul
hallo Thomas wie macht man das?
wenn ich LE über einen Pullup-Widerstand mit VCC verbinde, so dass er
standardmäßig Low ist (LE) aber wie muss ich dann CE mit LE verbinden...
das mit dem Schalter der LE auf Low hält oder auf VCC zieht in
Verbindung mit CS hab ich leider noch nicht verstanden wie das
funktioniert
Torben
Wenn LE mit einem Pulldown-Widerstand an GND angeschlossen ist, dann
wird dieser standard-mäßig auf low gezogen.
-> wenn jetzt ein low enable Impuls vom CE kommt, wird ja der LE nicht
auf High gezogen, so dass es passt...
--> mit einem inverter oder einem transistor könnte es funktionieren..
aber nur mit pullup-down-widerstand doch nicht, oder?
Paul
>--> mit einem inverter oder einem transistor könnte es funktionieren..>aber nur mit pullup-down-widerstand doch nicht, oder?
geht nicht; wurde mir so auch hier im Forum erklärt... ein Widerstand
ist nur ein passives Element und kann dadurch nicht zwei Zustände
einnehmen.
Anne
Paul wrote:
> einen extremfall gibt es... wenn keine neue Daten mehr im RAM sind,> werden auch keine an den controller übergeben somit erhalten die outputs> auch keine neue daten.. im latch sollen somit die letzten daten stets> festgehalten werden, die im transparenten zustand durchgehen (was ja> auch so funktionieren müsste)...
Wenn keine neuen Daten im SRAM sind, warum sollte die CPU dann so blöd
sein, ihn auszulesen.
Denn nur die CPU kann wissen, ob die Daten neu sind oder nicht.
Der SRAM weiß es jedenfalls nicht, er dünkt sich immer randvoll mit
Daten, selbst direkt nach dem Einschalten.
Es sind immer Nullen und Einsen drin, einen 3.Zustand "leer" gibt es
nicht.
Peter
man kann einen Pin so konfigurieren das er entweder 5V liefert oder eben
gegen Masse durschaltet. Wenn man 5V auf LE gibt ist dieser Pin auf High
und wenn man den LE-Pin gegen Masse schaltet ist dieser garantiert Low.
Wozu also nen Pull up oder Pull down?
Pull-ups oder Pulldown nutze ich eigentlich nur für freie Pins damit ich
mir sicher bin das da High oder Low anliegt evtl. noch für die Basis
oder Gate Beschaltung von Transistoren. Dann wird aber auch ca. 10kOhm
benutzt damit der µC das auch sicher umschalten kann und nicht so stark
belastet wird. Ggf nutze ich das noch wenn irgenwo immer das gleiche
Anliegen muss dann brauch ich dafür nicht extra einen Pin verbraten.
Nochmals der genaue Ablauf.
1. OE auf High, dadurch sind die Latchausgänge deaktiviert (hochohmig)
es erscheint also nichts unerwünschtes am Ausgang.
2. LE auf High dadurch landen die Daten an den Eingängen zu den
Ausgängen, welche aber noch deaktiviert sind.
2. Daten an Latcheingänge legen
4. LE kurz auf Low ziehen und wieder loslassen, wenn man die Daten im
Latch gespeichert haben will. Ist ja der eigentliche Sinn.
5. OE auf Low ziehen und die Daten werden von den Ausgängen ausgegeben
6. OE auf High und die Ausgänge sind wieder hochohmig
Wenn man LE ständig auf High läßt werden die Daten an den Eingängen
direkt weitergegeben also ohne gespeichert zu werden. OE muss aber Low
sein damit mans am Ausgang auch sieht. Und wenn man was an den Eingängen
ändert sieht man das auch gleich an den Ausgängen, aber für diese
Funktionsweise bräuchte man auch kein Latch.
Habe dir mal eine Schaltugn angehängt wie ich es früher per Hand
getestet habe. RN1, R1 und R2 jeweils 10 kOhm. RN2 müsste um die 1 kOhm
als Strombegrenzung für die LEDs sein. Kann man mit nem
Widerstandsnetzwerk und einer LED-Reihe einigen Dipschalten sehr schön
auf dem Steckbrett aufbauen und testen bevor dus mit dem µC machen
willst. RN1 zieht das ganze leicht gegen Masse damit keine Störungen
eingefangen werden und die Latcheingange was empfangen.
http://people.freenet.de/Thomasoly/Latch.png