Forum: Mikrocontroller und Digitale Elektronik Dekoder (Mikrocontroller.)


von mrgast1 (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

ich hab hier mal die Aufgabe:
Angenähert an das bekannte 8051 Übungssystem sollen die 
Fertigungsunterlagen mit Eagle für folgende Übungsplatine erstellt 
werden: Mikrokontroller AT89S8253 Programm im internen FLASH Anpassung 
der integrierten seriellen Schnittstelle an RS232 Reset Taster und 
PowerOnReset 12 MHz Quarz Versorgung 5V (extern)
Für eine zusätzliche digitale Ein- und Ausgabemöglichkeit ist je ein 
8-Bit Flip-Flop vorzusehen (z.B. 74LS374). Die Ein- bzw. Ausgabe erfolgt 
über Zugriffe auf den externen Datenspeicher, wobei die Startadresse 
gleich 1024*7 ist. Die Porterweiterung darf auf den darauffolgenden 1024 
Adressen als „mirror“ erscheinen.

Also 1024*7 = 0001 1100 0000 0000. Wegen mirror reichen diese 000111 und 
davon muss ich einen Dekoder machen, d.h. wenn die Addr. 
000111(A15..A10) erscheint muss am Ausgang eine 1 erscheinen.

Mit DNF ergibts ich folgendes: -A15 UND -A14 UND -A13 UND A12 UND A11 
UND A10

Den Dekoder sieht man im Bild unter dem blauen, es ist zwar noch nicht 
mit dem bus verbunden, aber die logik wäre fertig.

Ich bin mir aber nciht sicher ob das so funktionieren könnte. Ich 
verwende 2 74573. Einmal für Input und Output.

Also C1 = ADS(output von dekoder) AND RD dann würde es stimmen, aber ich 
hab ja da -RD und -WR.

Kann mir da einer helfen wie ich das jetzt passend mache, oder habe ich 
den Bauteil 74573 falsch verstanden?

Datasheet: 
http://www.datasheetcatalog.org/datasheet/SGSThomsonMicroelectronics/mXruyrq.pdf

mfg

von Wusel D. (stefanfrings_de)


Lesenswert?

Du weisst schon, was ein Inverter ist (z.B. 7404), oder ?

Für das Input-Register: Bedenke, dass dessen Ausgänge nur dann aktiv 
syein dürfen, wenn der Prozessor aus dem Register liest. Zu allen 
anderen zeiten müssen die Ausgänge des Registers <b>disabled</b> sein.

von Electronics'nStuff (Gast)


Angehängte Dateien:

Lesenswert?

Ich weiss nicht, was du dir von dieser Schaltung erhoffst aber die wird 
überhaupt rein gar nichts machen?

Du hast alle Eingänge zusammengehängt und da liegt (so weit ich das 
beurteilen kann) kein Signal an?

von mrgast1 (Gast)


Lesenswert?

Ja das gehört eh alles links zum Bus hin. Die zusammengehängten Eingänge 
sind: A15 bis A13 und reset ist A12 bis A10.

Wenn ich nach RD und WR nen inverter setze, dann wird alles 
funktionieren?

Ich mein ja nur, weil ich dann ncoh ein Bauteil brauche und der Print, 
dann komplizierte wird.

von Peter D. (peda)


Lesenswert?

Wenn Du nur je ein Register benutzt, brauchst Du keinerlei Dekodierung.
Und mit 74HC574 auch keinen Inverter:

Lese-574:
/OE - /RD
CP - ALE

Schreib-574:
/OE - GND
CP - /WR

von spess53 (Gast)


Lesenswert?

Hi

>Ich mein ja nur, weil ich dann ncoh ein Bauteil brauche und der Print,
>dann komplizierte wird.

Wie wäre es mit einem 74xy138? Der ist für so etwas gemacht.

MfG Spess

von mrgast1 (Gast)


Angehängte Dateien:

Lesenswert?

Danke euch, ich muss aber leider dieses 8Bit-FF nehmen. Also ich hab 
jetzt alles durchdacht und fertiggestellt. Müsst so stimmen. Was sagt 
ihr?

Als Ausgang verwendet(unten):
-EN ist dauerhaft auf Low und wenn LE muss High sein, dass output 
funktioniert.

Von ADS(decoderausgang) bekommt man eine 1, wenn der Adressebereich da 
ist.
Also: ADS AND WR = LE(C1) = 1
WR muss natülrich auch 1 sein.

Als Eingang verwenden(oben):
Hier muss -E immer das sein was LE(C1) ist, laut dem Datenblatt, was ich 
oben verlinkt habe.

Also, normalerweise ist ADS=0, wenn Busverkehr nicht für 74573 ist.
Dann ist -EN=C1=1 weil ja NAND(0,x)=1. Das heißt output --> High 
Impedance(nicht auf Bus geschaltet), aber Input wird immer auf den 
Speicher geschrieben.

Und wenn ADS=1 und RD=1 ist, dann NAND(1,1)=0. Also ist -EN=C1=0. Und 
jetzt ist der output aktiviert und daten liegen auf Bus an, aber input 
ist währenddesse freezed.

Richtig?

Kann ich es noch ev. bissl vereinfachen von den Gattern her, sodass das 
routen einfach wird?

mfg

von Wusel D. (stefanfrings_de)


Lesenswert?

Du hast /RD und /Wr vertauscht.

Hast Du die Signal-Laufzeiten überprüft? Nicht, daass die verlangten 
Hold Zeiten unterschritten werden.

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
Noch kein Account? Hier anmelden.