mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik GAL für Adressbus verwenden?


Autor: Hans (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo,

ich habe einen µC mit 16Bit Adressbus und möchte mehrere Geräte darüber 
laufen lassen - z.B. einen Ethernet-controller und einen externen 
RAM-Baustein...

beide besitzen einen 16Bit Adressbus - muss ich die schaltung mit hilfe 
eines GALs verwirklichen oder gibt es auch andere möglichkeiten?

Hans

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja welche Schaltung denn? Was soll die Schaltung/der GAL denn machen..?

Autor: Jupp M. (juppp)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du mußt doch einfach nur Chipselect-Signale erzeugen, kannst du das 
nicht mit einem 74138 machen? Dad Ding kostet ein paar Cent und 
verbraucht sehr wenig Strom im Gegensatz zum GAL.

Autor: Hans (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
im Prinzip suche ich nach einer Möglichkeit mehrere Geräte an einem 
Adressbus zu bringen... der Adressbus vom µC hat 16Bit - die beiden ICs 
auch...

d.h. es muss irgendwie möglich sein, zu sagen, welches Gerät man gerade 
ansprechen möchte oder wenn vom Ethernet Controller Daten kommen muss 
ich es wissen und den Adressbus für den Ethernet Controller verwenden 
und nicht für den RAM...

ich weiß, dass das ein GAL kann, aber ich weiß auch das sowas schon 
etwas veraltet ist und vielleicht gibt es ja neuere möglichkeiten, die 
das ganze eleganter lösen.



Hans

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Hans

was ist den ein GAL Generic Array Logic - viel mehr hab ich bei wiki 
nicht gefunden...?

Autor: Michael U. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

das Problem sind nciht die 16 Adressleitungen der Geräte, sondern der 
benötigte Adressraum. Wenn Du die 64k Ram komplett brauchst, bleibt nur, 
eine 17. (oder auch 17. und 18.) Adresse mit I/O-Pins zu erzeugen.

Neispiel: Ein Pin als Memory/IO-Select erklären. Pin auf L für Ram und 
an den /CS des Ram, /CS des Ethernet-Controllers über einen Inverter 
auch an den Pin. Mit Pin = H ist dann der Controller gemeint.

Das kann man natürlich beliebig ausbauen (Hinweis auf ein 74138 kan 
schon, 3 Pins und damit 8x 64kB Adressraum.

Das Problem dabei ist, daß man bei Zugriffen immer getrennt diese Bist 
setzen muß.

Wenn der Controller weniger Adressraum belegt (meist ja nur eine 
Handvoll Registeradressen), kannst Du natürlich auch auf etwas Ram 
verzichten und den Controller da einblenden.

Beispielsweise A15...A12 auf ein NAND, dann ist am NAND-Ausgang bei 
$F000...$FFFF L für /CS des Controller und über Inverter bei allen 
anderen Adressen /CS des Ram L.

Sind dann nur noch 60k Ram und 4k für den Controller.
Wenn Du A15...A8 so decodierst, hast Du Ram von $0000 - $FF00, also 64kB 
- 256 Byte und 256 Byte Adressraum für den Controller.

Der Vorteil wäre, daß alle Komponenten Memory-Mapped mit den gleichen 
Befehlen ohne Tricks unter ihren Adressen zu finden sind.

Ob Du für sowas ein GAL oder 2-3 Standard-TTL nimmst, ist Deine 
Entscheidung (Platz, Verdrahtung, Stromverbrauch usw.).

Gruß aus Berlin
Michael


Autor: Hans (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
kennt jmd. ein GAL, an dem ich einen 24Bit Adressbus anschließen kann 
und zwischen drei ICs switchen kann?

@Martin
mit einem GAL kann ich ja die Adressleitungen sozusagen x-fach 
verwenden... mit Hilfe des GALs sage ich einfach welcher Baustein 
angesprochen werden soll...

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Hans:

Das geht auch ohne GAL...

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>kennt jmd. ein GAL, an dem ich einen 24Bit Adressbus anschließen kann
>und zwischen drei ICs switchen kann?

XC9572 von Xilinx z.B. Nenne das Ding aber lieber CPLD ;)
Hab mir damit mal einen 3 Chip Epromsimulator gebaut.

Autor: Hans (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Matthias

mit dem 74138? das ist leider nur ein 3Line-to-8Line Converter --> ich 
hab drei ICs mit jeweils 16Bit Adressbus die an einen 24Bit Adressbus µC 
angeschlossen werden müssen.

da bräuchte ich 5 stück von den 74138  - ist das nicht etwas zu 
aufwendig (vor allem bei der programmierung hinterher?)

Autor: Tippgeber (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wieso 5?


      +--+
A24 --|  |
A23 --|  |
A22 --|  |
A21 --|  +----
A20 --|  |   |
A19 --|  |   |
      +--+   |
     74xx30  |
             | +-------+
             --|/G2A Y0|
               |C    Y1|
A18 -----------|B    Y2|
A17 -----------|A    Y3|
               +-------+
              74xx138

Autor: Michael U. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

wie oder warum müssen ICs mit einem 16Bit-Adressbus an einen 
24Bit-Adressbus angeschlossen werden?

Selectiert werden die ICs mit Sicherheit mit einem Chip-Select-Signal 
und davon liefert ein 74138 maximal 8 Stück, also für 8 ICs...

PS: das mag jetzt böse klingen, aber entweder ist die Frage unpräzise 
gestellt oder der Umstand, daß man einen µC programmiert, verhindert das 
Verständnis für simple logische Grundschaltungen. Diese Anmerkung nur 
deshalb, weil ich sehr häufig Fragen und Antworten mit dem Ruf nach 
komplexen ICs lese, wo das Problem mit 1 oder 2 Standard-TLL für 30 cent 
bequem zu erschlagen wäre.

Gruß aus Berlin
Michael


Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Hans (Gast):

Ja, ich muss Michael zustimmen.
Das klingt so, als ob du keine Ahnung hast, wie die Daten- Adress- und 
Steuerleitungen in einem µC/µP System verschalten sind und arbeiten...

aber nichts desto trotz:
...ch
hab drei ICs mit jeweils 16Bit Adressbus die an einen 24Bit Adressbus µC
angeschlossen werden müssen.

da bräuchte ich 5 stück von den 74138  - ist das nicht etwas zu....


kannst du mir das mal vorrechnen, bzw erklären?

Autor: Hans (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Michael

das ein CPLD zu groß für sowas ist, ist mir auch klar... aber ein GAL 
macht ja nichts anderes (von daher wäre es für so eine aufgabe perfekt) 
- also nicht zu groß angesetzt.

die anderen bausteine muss ich mir erstmal anschauen

den µC hab ich mir ausgesucht (natürlich) nach mehreren merkmalen... und 
ich will eigentlich auch nicht nur ein paar leds blinken lassen etc. 
Daher brauch ich den schon.. warum der jetzt 24Bit Adressbus hat und 
nicht 16Bit? - ist halt so...


>Selectiert werden die ICs mit Sicherheit mit einem Chip-Select-Signal
>und davon liefert ein 74138 maximal 8 Stück, also für 8 ICs...

dann hab ich mir den nicht genau angeschaut (wenn das so ist, dass man 
den an drei I/Os anschließt und dadurch 8 ICs selektieren kann..perfekt) 
... sorry... hab die 3Lines-to-8 falsch interpretiert... dann ist der 
natürlich super... im prinzip ja wie ein GAL...

Hans

Autor: Hans (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Matthias

was eine Adressleitung ist weiß ich schon... aber du hast recht, ich hab 
leider keine ahnung welche ICs es gibt und was diese leisten...

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
...ass man
den an drei I/Os anschließt und dadurch 8 ICs selektieren ka...

Ok, aber das klingt nicht grade so...

Autor: M&M (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
d.h. wenn der µC z.B. nur 16Bit Adressbus besitzt und man zwei oder 
mehrere ICs mit jeweils 16Bit dran anschließen möchte? wie funktioniert 
das dann??

Autor: Hans (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
noch eine Frage: gibt es so einen IC wie den 74LS138 auch für 3.3V VCC?

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ja, nimm die LVC-Reihe, oder einen HC-Typ. Der sollte auch gehen...

Autor: Hans (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo Matthias,

danke für die schnell beantwortung meiner fragen...

eine grundsätzliche hab ich noch; warum ist der selektierte Output Q1-7 
mit Low aktiviert und nicht mit High?

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Meinst du jetzt den 74xx138 ?? der hat halt Low-aktive ausgänge..
das passt ja auch mit den CS/CE-Leitungen von Schaltkreisen für Anschluß 
an µC/µP-Bus. Der CS/CE-Anschluss ist ja auch los-aktiv.

Falls du High-Aktiv brauchst, dann nimm nen 74xx238

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo Matthias,

ich hätte auch noch eine Frage: kannst du mir die Schaltung mit dem NAND 
noch mal genauer erklären? der Ausgang des NAND-Gatters wird an einen 
der drei Enable-Eingänge (G, G2A, G2B) angeschlossen; d.h. mit dem NAND 
schalte ich den IC LVC138A zwischen Demultiplexer und 1-zu-8-Decoder hin 
und her???

Autor: Hans (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
danke,

von den drei Inputs benötige ich ja für die drei ICs nur zwei - wird der 
dritte Input (von A, B, C) einfach nicht angeschlossen, oder wird der 
sauber auf GND gezogen?

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
... LVC138A zwischen Demultiplexer und 1-zu-8-Decoder hin..

Nein. Mit dem enable eingang (eingängen) kannst du den 74xx138 
abschalten. Dann sind alle ausgänge high, also inaktiv. und die 
angeschlossenen schaltkreise sind dann nicht aktiv und werden nicht 
angsprochen.

Im kontreten Fall muss A19 bis A24 (also alle!) HIGH haben, damit das 
NAND ein LOW ausgibt. Dieses LOW Schaltet den MUX (74xx138) EIN. Dadurch 
wird, abhängig von A18,A17 einer der Ausgänge LOW, und somit einer der 
angeschlossenen IC's aktiv:

A24...A19              A18   A17    Y3  Y2  Y1  Y0
----------------------------------------------------
mind einer LOW         egal  egal    H   H   H   H    kein IC angewählt
alle HIGH               L     L      H   H   H   L    IC hinter Y0 aktiv
alle HIGH               L     H      H   H   L   H    IC hinter Y1 aktiv
alle HIGH               H     L      H   L   H   L    ...
alle HIGH               H     H      L   H   H   H

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ok vielen dank Matthias

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.