Ich arbeite gerade an einer Schaltung mit einem Intel 8008. In der Schaltung wird bei einem Interrupt und beim Reset kein Speicher und kein I/O selektiert. Der Prozessor liest dann, weil alle Chips im Tristate sind, dank der Pullups und Pulldowns am Bus einen 1-Byte Sprungbefehl ein. Drei Bits bestimmen dabei den Sprungvektor und werden durch Umschalten zwischen Pullup und -pown gesetzt. Damit ist es aber nicht möglich, zwischen Reset und Interrupt zu unterscheiden. Ich würde jetzt gerne mit dem INT-Signal eine der Busleitungen umschalten. Ich habe die Idee, die Leitung "herunterzuziehen" indem ich den niedrigeren Pulldown mit einem FET durchschalte. Der "Spannungsteiler" müsste dann so festgelegt sein, das die Leitung dann sicher unter der "L"-Schwelle liegt. Frage: Ist meine Idee abwegig? Oder hat jemand so was schon mal gemacht? Der Prozessor hat ein Fan-Out von 1 und angeschlossen sind LS, HC und n-MOS ICs mit Tristate Eingängen.
:
Bearbeitet durch User
Ich würde den pull-up/down Widerstand mit dem Gegentaktausgang eines x-beliebigen CMOS/LS-TTTL-IC ansteuern und damit umschalten.
Frank E. schrieb: > Frage: Ist meine Idee abwegig? Mir ist nicht so recht klar, warum du einen Widerstand zwischen das MOSFET-Drain und die Datenleitung machst. Pullup und MOSFET, mehr brauchts nicht. Natürlich muß du schaltungsmäßig sicherstellen, daß der MOSFET nur dann durchgesteuert wird, wenn alle anderen Busteilnehmer im Tristate sind. Aber so wie du das beschreibst, ist das ja gegegeben. Eine ähnliche Variante habe ich mal bei einem Z80 Rechner gesehen. Der Z80 setzt beim Reset den PC auf 0x0000, weswegen da Programmcode im Speicher stehen sollte. Andererseits möchte man oft gerne einen möglichst großen RAM ab 0x0000 haben und setzt das BIOS-ROM lieber ans obere Ende des Adreßraums. Dort wurde das so gelöst, daß mit Reset ein Flipflop gesetzt wurde, das einerseits alle Chip-Selects deaktivierte und andererseits alle Datenleitungen auf L gezogen wurden. Der Z80 hat so den Befehlcode 0x00 = NOP gelesen und die Adressen hochgezählt. Sobald die erste Adresse im BIOS-ROM erreicht war, wurde das Flipflop zurückgesetzt und die Datenleitungen wieder los gelassen.
:
Bearbeitet durch User
nectcc schrieb: > Ich würde den pull-up/down Widerstand mit dem Gegentaktausgang eines > x-beliebigen CMOS/LS-TTTL-IC ansteuern und damit umschalten. Ich vermute, Du meinst statt mit einem Pulldown die Leitung mit einem Gatter auf Null ziehen? Das geht wegen des Timings nicht. Der Status für den Interrupt ist schon gesetzt, während der Prozessor möglicherweise noch selber auf den Bus schreibt. Dann wären 2 Ausgänge zugleich auf dem Bus aktiv - das möchte ich vermeiden.
Axel S. schrieb: > Mir ist nicht so recht klar, warum du einen Widerstand zwischen das > MOSFET-Drain und die Datenleitung machst. Pullup und MOSFET, mehr > brauchts nicht. [...] Wenn alle anderen Busteilnehmer im Tristate sind. Einerseits schreibt der Prozessor noch selber zeitweilig auf den Bus. Zum anderen ist der interne Bus in einigen Takten mit dem externen verbunden, damit würde der Prozessor durcheinander geraten. Klassisch löst man das Problem mit einem 8 Bit Tristate Puffer und verknüpft den Interrupt Status, Read und SYNC zum OE, aber dafür bräuchte ich mindestens zwei zusätzliche Bausteine - viel Aufwand für letztlich 1 Bit :) > Datenleitungen auf L gezogen wurden. Der Z80 hat so den Befehlcode 0x00 > = NOP gelesen und die Adressen hochgezählt. Sobald die erste Adresse im > BIOS-ROM erreicht war, wurde das Flipflop zurückgesetzt und die > Datenleitungen wieder los gelassen. Genau das hat mich auf die Idee gebracht.
Frank E. schrieb: > nectcc schrieb: >> Ich würde den pull-up/down Widerstand mit dem Gegentaktausgang eines >> x-beliebigen CMOS/LS-TTTL-IC ansteuern und damit umschalten. > > Ich vermute, Du meinst statt mit einem Pulldown die Leitung mit einem > Gatter auf Null ziehen? Ich vermute, er meint nicht "statt" sondern "mit", so ähnlich wie im Bild. Ja, der Opcode ist falsch ;)
Bauform B. schrieb: >> nectcc schrieb: >>> Ich würde den pull-up/down Widerstand mit dem Gegentaktausgang eines >>> x-beliebigen CMOS/LS-TTTL-IC ansteuern und damit umschalten. > > Ich vermute, er meint nicht "statt" sondern "mit", so ähnlich wie im > Bild. Ja, der Opcode ist falsch ;) Autsch - klar. Wenn man nur von Ausgang zu Eingang denkt, kommt man darauf nicht. Vielen Dank, ich werd's gleich ausprobieren.
Bauform B. schrieb: > Ich vermute, er meint nicht "statt" sondern "mit", so ähnlich wie im > Bild. Ja, der Opcode ist falsch ;) So wars gemeint. Vielen Dank für die grafische Ergänzung.
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.