Kleine Digitaltechnik-Lehrstunde ...
Hallo,
OpenCollector, TriState und HighZ gibts richtig? Also als Ausgänge in der Digitalen/Analogen Welt. HighZ war mit sehr hohem Innenwiderstand, Tristate sagt aus das ich das ganze hochohmig schalten kann und OpenCollector ist einfach nur der nackte Transistor Kollektor => Widerstand. Warum aber soll bei Opencollector keine 5V möglich sein?
Das haben wir nie gelernt deshalb frag ich
dann wollen wir doch die Wissenslücke mal schließen (Klack - Aua !! Nimm die
Finger wech !
)
In der Digitaltechnik findest Du bei den Ausgangstreibern der ICs 3 Zustände ...
- 1. High (logisch 1, bei TTL +5V)
- 2. Low (logisch 0, bei TTL GND/0V)
- 3. HighZ (undefiniert, hochohmig)
das sind jetzt 3 Zustände (auf englisch three States oder auch TriState)
Dann gibt es noch ...
- 4. Open Collector - der Ausgang besteht nur aus einem Transistor der nach
GND schaltet. Also muß (wenn bei npn der Emitter auf GND liegt) der
Collector des Ausgangstransistors als einzigstes am Ausgangspin des ICs
liegen. Und weil nur dieser Collector da dran ist, ist er offen zugänglich.
Also Open Collector.
Warum nun dieser ganze Zirkus ? Also die Punkte 1. - 3. lassen sich leicht
erklären. 1+2 sind die normalen Logikzustände. Wenn man nun aber einen
Datenbus mit mehreren ICs (zB Speicher) aufbaut ist es nicht so doll, wenn
alle ICs die Ausgänge aktiv haben. Wenn dann einer auf High und der andere
auf Low schalten will gibts nen Kurzschluß und als Ergebnis einen Brandfleck
auf der Platine
.
Also schaltet man alle ICs, die im Moment am Bus Pause haben auf hochohmig.
Das geht zB bei Bustreibern (74245, 74540, 74541, 74573, 74574, 74595, ...)
mit dem Enable-Eingang. Bei Speichern würde zB ein Adress-Decoder nur den
Speicher mit Enable aktivieren, mit dem man was machen will (CE = ChipEnable)
Alle anderen bleiben hochohmig und stören die Kommunikation nicht.
Da das mit High und Low zusammen der dritte Zustand ist, nennt man diese
Ausgänge von den ICs dann TriState-Ausgänge. Das kann der AVR auch.
Nun zu OpenCollector ... Das ist eigentlich auch recht einfach. OC-Ausgänge
werden meißt für verODERungen von Signalen benötigt. zB das mehrere
ICs den Interrupt oder den Reset eines ICs bedienen können. So etwas läuft
ja normalerweise asynchron ab - also ohne das der INT oder der Reset erst
freigegeben wird. Ein Timer fragt den Prozessor ja auch nicht erst ...
"Darf ich jetzt nen Interrupt auslösen?" Oder der Watchdog-Timer ...
"Hallo CPU, bist du wirklich abgestürzt? Darf ich nen Reset auslösen?"
Und gleichzeitig soll der Reset-Taster (nach GND wie der OC-Ausgang) ja
auch funktionieren. Wenn man da normale Push/Pull-Ausgänge mit High und
Low hätte, dann würde man ja wieder nen Kurzschluß haben, wenn alle auf
High sind und einer mit Low nen Reset auslösen will. Darum gibt es OC-Ausgänge.
Die brauchen aber dann als Gegenpunkt einen PullUp-Widerstand, damit man
nicht nur mit dem Transistor nach GND schaltet sondern aucch irgendwie
einen High-Pegel erzeugen kann. Wenn also alle Transistoren der zusammen-
geschalteten OC-Ausgänge gesperrt sind, dann zieht der PullUp-Widerstand
die Leitung nach High (+5V), also nach oben. Darum auch PullUp.
So ... damit hab ich jetzt wieder einige Lehrer entlastet
- - - - EDIT - - - -
Da war ich wohl noch am schreiben wie Dirk seine Antwort gesendet hat ...
Dafür ist meine Antwort aber allumfassend - Bäätsch
Gruß
Dino