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
Ja welche Schaltung denn? Was soll die Schaltung/der GAL denn machen..?
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.
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
@Hans was ist den ein GAL Generic Array Logic - viel mehr hab ich bei wiki nicht gefunden...?
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
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...
>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.
@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?)
Wieso 5? +--+ A24 --| | A23 --| | A22 --| | A21 --| +---- A20 --| | | A19 --| | | +--+ | 74xx30 | | +-------+ --|/G2A Y0| |C Y1| A18 -----------|B Y2| A17 -----------|A Y3| +-------+ 74xx138
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
@ 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?
@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
@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...
...ass man den an drei I/Os anschließt und dadurch 8 ICs selektieren ka... Ok, aber das klingt nicht grade so...
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??
noch eine Frage: gibt es so einen IC wie den 74LS138 auch für 3.3V VCC?
ja, nimm die LVC-Reihe, oder einen HC-Typ. Der sollte auch gehen...
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?
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
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???
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?
... 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
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.