Forum: Mikrocontroller und Digitale Elektronik Pull-Up und -Down am Bus umschaltbar?


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Frank E. (vierauge) Benutzerseite


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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
von nectcc (Gast)


Bewertung
1 lesenswert
nicht lesenswert
Ich würde den pull-up/down Widerstand mit dem Gegentaktausgang eines 
x-beliebigen CMOS/LS-TTTL-IC ansteuern und damit umschalten.

von Axel S. (a-za-z0-9)


Bewertung
0 lesenswert
nicht lesenswert
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
von Frank E. (vierauge) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
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.

von Frank E. (vierauge) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
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.

von Bauform B. (bauformb)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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 ;)

von Frank E. (vierauge) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
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.

von nectcc (Gast)


Bewertung
0 lesenswert
nicht lesenswert
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.

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]
  • [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.