Forum: Mikrocontroller und Digitale Elektronik Speichermapping Erklärung


von Peter1286 (Gast)


Angehängte Dateien:

Lesenswert?

Hi,

kann mir das jemand kurz erklären wie die Vorgehensweise hierzu ist?
Das Speichermapping für die ersten beiden 74138 hab ich mir noch 
erarbeiten können, ab dann habe ich allerdings überhaupt keine Ahnung.

Vielen Dank schonmal.
Gruß Peter

von Karl H. (kbuchegg)


Lesenswert?

Drösle das ganze von hinten auf.
Welche Bedingungen müssen erfüllt sein, damit ADR0 auf Low geht? Welche 
anderen Leitungen sind für die Bestimmung des Wertes von ADR0 vollkommen 
irrelevant?

Und das machst du mit allen anderen ADR Leitungen ganz genau gleich.

von Peter1286 (Gast)


Lesenswert?

Was glaube ich am einfachsten wäre, wenn jemand mal kurz den 74138 
erklären könnte, mit A0-A15 und D0-D7, ABC, G1, G2A, G2B und ADR, das 
würde mir wahrscheinlich am besten weiterhelfen. Habe leider nichts dazu 
gefunden.

Danke schonmal.

von Peter1286 (Gast)


Lesenswert?

Vielen Dank Karl Heiz, da fängt es schon an, ich weiss nicht warum die y 
beim ersten und zweiten 74138 je 1kB groß sind und beim dritten laut 
Lösung nur einem Byte entsprechen.

von Karl H. (kbuchegg)


Lesenswert?

Peter1286 schrieb:
> Was glaube ich am einfachsten wäre, wenn jemand mal kurz den 74138
> erklären könnte

im verlinkten PDF ist doch eine Wertetabelle für den 138?
Was brauchst du denn noch?

Was sieht man in der Tabelle?
G1 ist der 'positive' Enable. Solange diese Leitung auf Low ist, macht 
der 138 gar nichts und seine Ausgänge sind alle High.
G2A und G2B sind die 'negativen' Enable. Solange diese Eingänge auf High 
ist, macht der 138 gar nichts und alle seine Ausgänge sind High.
Der 138 arbeitet nur dann und übersetzt die 3 Eingänge auf ein Low an 
einem seiner Ausgänge, wenn sowohl G1 auf High ist also auch G2A und G2B 
auf Low sind. Ist das nicht der Fall, dann sind die Ausgänge alle auf 
jeden Fall auf High und A, B, und C sind komplett uninteressant.

> mit A0-A15 und D0-D7, ABC, G1, G2A, G2B und ADR, das
> würde mir wahrscheinlich am besten weiterhelfen.

Das machst du dir schön selber. Nur so lernt man das.

> Habe leider nichts dazu
> gefunden.
Du kannst im PDF von der Schaltung nicht eine halbe Seite runterscrollen 
und die dort angegebenen Tabelle interpretieren?

: Bearbeitet durch User
von Peter1286 (Gast)


Angehängte Dateien:

Lesenswert?

Hier mal die Lösung, vielleicht anhand dessen am einfachsten zu 
erklären.

von Karl H. (kbuchegg)


Lesenswert?

Peter1286 schrieb:
> Vielen Dank Karl Heiz, da fängt es schon an, ich weiss nicht warum die y
> beim ersten und zweiten 74138 je 1kB groß sind und beim dritten laut
> Lösung nur einem Byte entsprechen.

Verfolg es von hinten nach vorne!
Welche Bedingung muss erfüllt sein, damit ADR0 auf 0 gehen kann!

Mit dem Wissen, wie ein 74138 arbeitet ist das doch nicht schwer zu 
entscheiden, wie die Eingänge des 138 stehen müssen, damit das der Fall 
sein kann.

von Peter1286 (Gast)


Lesenswert?

Vielen Dank, das hilft mir schonmal, auf ein neues :-)

von Peter1286 (Gast)


Lesenswert?

Was sagt es denn aus, dass am unteren 74138, A0 an A, A1 an B, A2 an C 
und A3-A7 an G1 sitzen? Oder ist das völlig irrelevant?

Vielen Dank.

von Karl H. (kbuchegg)


Lesenswert?

Peter1286 schrieb:
> Was sagt es denn aus, dass am unteren 74138, A0 an A, A1 an B, A2 an C
> und A3-A7 an G1 sitzen? Oder ist das völlig irrelevant?

A3 bis A7 sitzen nicht einfach irgendwie an G1!

Du musst schon die paar Gatter dazwischen auch ins Kalkül ziehen.
A3 bis A7 werden allesamt miteinander UND-verknüpft. D.h. der Ausgang 
des UND ist dann und genau dann 1 (also High), wenn alle, A3 bis A7 
einen High Pegel führen.
Und dieses High geht an den 138. Und zwar an dessen G1 Eingang.

Was war noch mal der G1 Eingang?

Das war die Freigabe, ob der 128 überhaupt irgendwas tut. Nur dann wenn 
G1 auf High ist, arbeitet der.

Nämlich was arbeitet der?
Er zieht den Ausgang auf Low, dessen Nummer dem Binärwert der an den 3 
Eingängen A, B und C anliegenden Binärzahl entspricht.

Jetzt 1 und 1 zusammenzählen. Was ergibt sich in Summe daraus?

Wenn A3 bis A7 high sein müssen, dann lauten die zugehörigen Adressen 
binär
1
 nnnn nnnn 1111 1xxx
wobei 'n' bedeutet "wird an anderer Stelle entschieden" und die x für 
die 3 Bits A0 bis A2 steht. Grundstzlich müssen die Bits A3 bis A7 also 
eine 1 führen, damit der 138 grundsätzlich abhängig von diesen Leitung 
überhaupt mal etwas tun kann. Das kann sich noch durch die 2.te 
Freigabe, die über G2A (bzw. G2B) kommt noch ändern, aber wenn A3 bis A7 
nicht alle eine 1 haben, dann arbeitet der 138 schon mal garantiert 
nicht.

Es wird also freigeschaltet
1
  nnnn nnnn 1111 1000    -> ADR16
2
  nnnn nnnn 1111 1001    -> ADR17
3
  nnnn nnnn 1111 1010    -> ADR18
4
  nnnn nnnn 1111 1011    -> ADR19
5
  nnnn nnnn 1111 1100    -> ADR20
6
  nnnn nnnn 1111 1101    -> ADR21
7
  nnnn nnnn 1111 1110    -> ADR22
8
  nnnn nnnn 1111 1111    -> ADR23

jetzt musst du nur noch rauskriegen, was bei 'nnnn nnnn' stehen muss, 
damit der 138-er die andere Freigabe, die über G2A bzw. G2B führt 
erhält. Welche dieser n müssen wie stehen, damit an diesem Pin ein Low 
vorliegt. Wie kann das zustande kommen und was bedeutet das für die 
verbliebenen 8 Bits, die hier einfach nur mit n geschrieben wurden?

Also: rückverfolgen unter welchen Umständen am G2 Eingang eine 0 
anliegen kann. Welche Leitungen führen dort hin, wo kommen die her und 
wie müssen die Bedingungen sein, damit da eine 0 entsteht.



Bist du sicher, dass du nicht im falschen Kurs bist? Das ist doch eine 
prinzipiell einfache Schaltung, die man einfach nach Kochrezept 
abarbeiten kann. Wenn man sich blöd anstellt, dann probiert man einfach 
alle Kombinationen für A0 bis A15 durch. Wenn man es intelligenter 
anstellt, dann erkennt man bei dieser Probiererei rasch die 
zugrundeliegenden Muster, weil die 0-en und 1-en auf den Leitungen über 
weite Adress-Strecken eh immer den gleichen Wert haben.
Das ist doch ohnehin immer das gleiche Prinzip:
mit den 3-Bit Eingängen A, B und C wird einer von 8 Ausgängen auf 0 
gezogen. Aber nur dann, wenn G1 auf 1 und G2 auf Low ist. Mittels der 3 
Eingänge A, B, C wählt man also auf einer feineren Eben einen von 8 
Ausgängen aus und mittels G1 bzw. G2 wird die Ausgabe unterdrückt, wenn 
man im komplett falschen Block von Adressen ist.

: Bearbeitet durch User
von Michael N. (michael2306)


Lesenswert?

Eine Frage dazu habe ich noch, und zwar die Bestimmung vom 3. Block zu 
A15, A14, A13, A12, dass kann ich nicht nachvollziehen, da muss ja y7 
aus dem ersten und y0 aus dem 2ten Block low sein oder? aber wie mache 
ich das, dass ich 2 Bedingungen in einem Zustand darstelle?

Vielen Dank.

: Bearbeitet durch User
von Karl H. (kbuchegg)


Lesenswert?

Michael N. schrieb:
> Eine Frage dazu habe ich noch, und zwar die Bestimmung vom 3. Block zu
> A15, A14, A13, A12, dass kann ich nicht nachvollziehen, da muss ja y7
> aus dem ersten und y0 aus dem 2ten Block low sein oder?

Einer von beiden reicht
1
und
2
3
   A      B     Ergebnis
4
   0      0      0
5
   0      1      0
6
   1      0      0
7
   1      1      1

der Ausgang eines UND ist nur dann 1, wenn A und B auf 1 sind. Ist einer 
der beiden Eingänge eine 0, dann ist auch der Ausgang auf 0


> aber wie mache
> ich das, dass ich 2 Bedingungen in einem Zustand darstelle?

ermittle doch mal, wie die Leitungen A15, A14, A13, A12 stehen müssen, 
damit sich nach der UND Verknüpfung der beiden Leitungen eine 0 ergibt.

Sind ja nur 4 Leitungen. Das kann man auch als Tabelle mit allen 
Möglichkeiten noch aufschreiben
1
  A15   A14   A13   A12    Y7   Y0      Nach der UND-Verknüfung am G2 Eingang vom 3-ten 138
2
3
   0     0     0     0              .
4
   0     0     0     1              .
5
   0     0     1     0              .
6
   0     0     1     1              .
7
   0     1     0     0              .
8
   0     1     0     1              .
9
   0     1     1     0              .
10
   0     1     1     1              .
11
   1     0     0     0              .
12
   1     0     0     1              .
13
   1     0     1     0              .
14
   1     0     1     1              .
15
   1     1     0     0              .
16
   1     1     0     1              .
17
   1     1     1     0              .
18
   1     1     1     1              .

Du ermittelst jetzt, indem du einfach die vorgegebenen 0-en bzw. 1-en in 
jeder Zeile anlegst und die Funktion des 138 nachvollziehst, ob sich 
nach dem UND eine 0 oder eine 1 ergibt.

: Bearbeitet durch User
von Sascha W. (sascha-w)


Lesenswert?

Michael N. schrieb:
> Eine Frage dazu habe ich noch, und zwar die Bestimmung vom 3. Block zu
> A15, A14, A13, A12, dass kann ich nicht nachvollziehen,
> da muss ja y7
> aus dem ersten und y0 aus dem 2ten Block low sein oder?
das währe ja schön, da die ersten beiden Blöcke unterschiedliche 
Bereiche dekodieren kann die Bedingung ADR7=ADR8=Low nie erfüllt sein!
Die UND-Verknüpfung führt hier durch die Low-Aktiven Signale aber zu 
einer Logik mit ODER. D.h. der 3.Block liefert Ausgangssignale wenn ADR7 
oder ADR8 aktiv (Low) ist.

> aber wie mache
> ich das, dass ich 2 Bedingungen in einem Zustand darstelle?
brauchst du nicht, denn die Adressbereiche die sich aus der o.g. 
Bedingung für das Enable des 3.Block ergeben folgen ohne Lücke 
aufeinenander.

Sascha

: Bearbeitet durch User
von Michael N. (michael2306)


Lesenswert?

Danke euch für die Hilfe!

von Michael N. (michael2306)


Angehängte Dateien:

Lesenswert?

Also muss hier A15 Low sein (ist eine andere Aufgabe), weil laut Lösung 
(ist dann wohl falsch) muss es HIGH sein.

von Karl H. (kbuchegg)


Lesenswert?

Michael N. schrieb:
> Also muss hier A15 Low sein (ist eine andere Aufgabe)


A15 muss hier Low sein, damit dieser 138 überhaupt was macht

>, weil laut Lösung
> (ist dann wohl falsch) muss es HIGH sein.

kann ich nicht beurteilen, weil das ja nur ein Ausschnitt aus der 
Schaltung ist. Kommt drauf an, was im nicht gezeigten Teil passiert und 
was eigentlich die Fragestellung zur Antwort "A15 muss high sein" ist.

von Michael N. (michael2306)


Angehängte Dateien:

Lesenswert?

Hier ist die Aufgabenstellung dazu. Also ich meinte A15 muss Low sein 
das überhaupt ein Y Low werden kann.

von Karl H. (kbuchegg)


Lesenswert?

Karl Heinz schrieb:
> Michael N. schrieb:
>> Also muss hier A15 Low sein (ist eine andere Aufgabe)
>
>
> A15 muss hier Low sein, damit dieser 138 überhaupt was macht
>
>>, weil laut Lösung
>> (ist dann wohl falsch) muss es HIGH sein.
>
> kann ich nicht beurteilen, weil das ja nur ein Ausschnitt aus der
> Schaltung ist. Kommt drauf an, was im nicht gezeigten Teil passiert und
> was eigentlich die Fragestellung zur Antwort "A15 muss high sein" ist.


Äh. Mist.
Die Bildqualität ist so schlecht, dass ich fast den kleinen Kringel am 
Ausgang des 'UND-Gatters' übersehen hätte. Das ist kein UND, das ist ein 
NAND. D.h. der Ausgang ist gegenüber einem UND noch invertiert. Und da 
die beiden Eingänge dieses NAND kurzgeschlossen sind, arbeitet dieses 
Gatter ganz einfach als Inverter.

Also: A15 muss 1 sein, damit der 138 etwas macht.

: Bearbeitet durch User
von Michael N. (michael2306)


Lesenswert?

Ah danke, das habe ich auch übersehen.

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.