Projektdokumentation: gusich benjamin, 5hna
Matura-Projektdokumentation
Gruppe 1: Temperaturmessung
Prinzip: Die Temperaturabhängigkeit der Basis-Emitter-Spannung.Auswertung durch Messung an zwei (ziemlich) identischen Transistoren mit unterschied- lichen Kollektorströmen.
Der zu verwendende ADC ist im Zählverfahren zu realisieren, die optische Anzeige per Sie- bensegmentanzeige (2-stellig, hexadezimal) aufzubauen. ADC-Steuerschaltung und 7-Seg-ment-Decoder sollen mittels programmierbarem Logikbaustein verwirklicht werden.
1. Entwurf der Blockschaltung
2.
Siebensegmentdecoder
Unter Verwendung des Laboratorium-Protokolls „7-Segment-Anzeige“ (4HNA, 1995/96), das bereits Wahrheitstabelle, Gleichungen in disjunktiver Normalform sowie Karnaugh-Diagram- me enthielt, realisierte ich einen Decoder in der programmierbaren Logik „XILINX“. Ich un-tersuchte die Tabelle auf ihre Richtigkeit und konnte diesen Teil der Schaltung durch direkte Eingabe der Karnaugh-Diagramme rasch abschließen.
Da das Xilinx-Board nur über eine einzige Anzeigeeinheit verfügt, beschränkte ich mich nach Rücksprache mit dem Prüfer auf einen Decoder. Um dennoch alle 8 bit zur Anzeige bringen zu können, befolgte ich den Vorschlag, die 8 vorhandenen Balken-LEDs für eine binäre Dar-stellung zu nutzen.
Wahrheitstabelle:
a
b
c
d
e
f
g
HEX
D
C
B
A
1
1
1
1
1
1
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
1
1
1
0
1
1
0
1
2
0
0
1
0
1
1
1
1
0
0
1
3
0
0
1
1
0
1
1
0
0
1
1
4
0
1
0
0
1
0
1
1
0
1
1
5
0
1
0
1
1
0
1
1
1
1
1
6
0
1
1
0
1
1
1
0
0
0
0
7
0
1
1
1
1
1
1
1
1
1
1
8
1
0
0
0
1
1
1
0
0
1
1
9
1
0
0
1
1
1
1
0
1
1
1
A
1
0
1
0
0
0
1
1
1
1
1
B
1
0
1
1
1
0
0
1
1
1
0
C
1
1
0
0
0
1
1
1
1
0
1
D
1
1
0
1
1
0
0
1
1
1
1
E
1
1
1
0
1
0
0
0
1
1
1
F
1
1
1
1
3. Analog-Digital-Konverter
Wie aus der Aufgabenstellung hervorgeht, soll die Konvertierung nach dem Zählverfahren er- folgen.
Die analoge Spannung (UBE-Differenz) liegt am negativen Eingang eines Analog- Komparators an, am positiven hängt ein RC-Glied, das von einem Pulsweitenmodulator ange- steuert wird. Dieser verändert sein Tastverhältnis so, daß der Tiefpaß, der hier als Mittel-wertsbilder eingesetzt wird, eine linear ansteigende Spannung liefert. Sobald der Wert der zu wandelnden Spannung erreicht bzw. überschritten ist, kippt der Komparator und stoppt den Zähler des Pulsweitenmodulators. Er enthält nun eine Zahl, die der analogen Spannung entspricht.
Im Datenbuch des 80C51 war auf Seite 788 folgende Schaltung eines Pulsweitenmodulators zu finden:
Erklärung:
Das Register wird mit einem bestimmten Wert geladen und der Zähler beginnt von Null weg aufwärts zu zählen.
Solange der Registerwert größer als der des Zählers ist, liefert der digitale Komparator Null. Erreicht nun der Zähler den Wert des Registers, (oder überschreitet er ihn,) dann kippt der Komparator. Somit ist die Zeit, die der Zähler bis zum Erreichen des Register- werts braucht, direkt proportional zu der ins Register geladenen Zahl.
Da die Periodendauer des Ausgangssignals konstant ist, entsprechen größere Registerwerte kleineren Pulsweiten, da der Zähler den Komparator später zum (auf HIGH) kippen bringt.
Modifikationen zur Adaption an das Projekt:
Für die Verwirklichung des Modulators bin ich der Idee gefolgt, anstatt des immer wieder mit neuen Werten nachzuladenden Registers einen langsamen Rückwärtszähler einzusetzen. Sein Takt wird durch den Überlauf des schnellen Vorwärtszählers generiert.
Sobald der Vorwärtszähler den momentanen Rückwärtszählerwert (kurzzeitig) erreicht, wird über den digitalen Komparator ein Flip-Flop gesetzt, dessen Q den PWM-Ausgang bildet. Der Zähler fährt in seiner Tätigkeit ungehindert fort; sein Überlauf (neg. Flanke des MSBs) generiert den Takt des Rückwärtszählers und setzt außerdem das PWM-Ausgangs-Flip-Flop rück.
Der Rückwärtszähler enthält nun einen dekrementierten Wert, der vom Vorwärtszähler des-halb in kürzerer Zeit erreicht wird. Das hat eine kürzere Low-Phase des Ausgangs-Flip-Flops zur Folge, was aufgrund der konstanten Periodendauer (gebildet vom Vorwärtszähler) eine längere Pulsdauer und somit eine größere Ausgangsspannung bedeutet. (Der Vorwärtszähler kann durch nichts gestoppt werden, ausgenommen vom Analogkomparator, der ihn zur Wertübernahme kurz anhalten kann.
)
Das RC-Glied liefert (durch Mittelwertbildung) eine gleichmäßig ansteigende Spannung, die den Komparator knapp nach Erreichen des Wertes der Differenzspannung zum Kippen bringt. Der Ausgang (bzw. seine positive Flanke) steuert folgende Dinge:
#) Der Zählertakt wird angehalten, bis der Komparator
wieder auf Low springt,
#) die Ausgangs-Flip-Flops übernehmen und speichern
den momentanen Zählerstand und
#) über eine kleine Verzögerung wird der Rückwärtszähler
neu gesetzt und der Vorwärtszähler resetiert..
#) Außerdem wird über dieselbe Verzögerung das PWM-
Ausgangs-Flip-Flop rückgesetzt, was in weiterer Folge
ein „Reset“ des analogen Komparators bedeutet, da da-
durch der Mittelwert der Vergleichsspannung gegen
Null sinkt.
[Anm.
: Genauere Beschreibung siehe „DA-Konvertierungsablauf“]
Bezüglich des Digitalkomparators ist anzumerken, daß nicht, wie vorher angenommen, ein vollständiger Größenvergleich mit a<b, a=b und a>b vonnöten ist [siehe Datei(en) „7SEG&PWM.* und Stichwort „Digitalkomparator“], sondern daß eine Verknüpfung /(a<b) ausreicht (a..Vorwärtszähler, b..Rückwärtszähler [Register]).
4. Detaillierte Darstellung der Gesamtschaltung
5. DA-Konvertierungsablauf
Gehen wir davon aus, daß der Vorwärtszähler leer (Reset) und der langsamere Rückwärtszäh-ler (entspricht Register) gesetzt ist, sowie daß der PWM-Ausgang auf Low liegt. Der analoge Komparator ist ebenfalls auf 0, deshalb liegt der externe Takt direkt am Zähler an.
Der Zähler beginnt aufwärts zu zählen und erreicht nach (relativ) langer Zeit den Wert des Re-gisters, deshalb bleibt der PWM-Ausgang lange auf Null. Sobald der Komparator die Äquivalenz (siehe „Digitalkomparator“ für nähere Beschreibungen) der beiden 8-bit-Worte feststellt, setzt er über das UND-Gatter das PWM-FF.
Der Zähler allerdings fährt ungehindert zu zählen fort und liefert beim Überlauf (MSB High->Low) eine Taktflanke für das so dekrementierende Register. Zugleich resetiert er PWM OUT und beginnt von vorne.
Irgendwann erreicht der Mittelwert der Pulsweite einen Wert, der gleich groß bzw. geringfü-gig größer als die Meßspannung ist. Dann springt der Analogkomparator auf High und unter-bricht über Pin 2 den Zählertakt. Außerdem sichert er über eine Long-Line den momentanen Registerstand in die dafür vorgesehenen Ausgangs-FFs (=Anzeige-Speicher).
Über eine Delay-Schaltung (4 Inverter) wird das Register neu gesetzt, der Zähler resetiert und der PWM-Ausgang ebenfalls rückgesetzt. Die Verzögerung stellt sicher, daß der Registerwert bereits gerettet ist, wenn er durch Set gelöscht wird.
Das Rücksetzen von PWM OUT kommt einem Reset des Analog-Komparators gleich, weil dadurch sein nichtinvertierender Eingang lange genug auf Low gehalten wird, um ein zurück-kippen zu erzwingen. Sobald das geschieht, gibt er den Takt wieder frei, und somit ist der Ablauf in sich geschlossen.
6. Digitalkomparator
Prinzipiell ist ein Komparator mit vollständigem Größenvergleich folgendermaßen aufgebaut:
In meiner gezeigten Anwendung ist allerdings nur der Vergleich A<B von Bedeutung, wobei A den Zählerstand und B den des Registers darstellt.
Nur wenn diese Aussage nicht mehr wahr ist, soll der PWM-Ausgang kippen.
Ich habe den Ausdruck /(A<B), also Y= /(/A*B), umgeformt und Y=A+/B erhalten, was in XILINX leichter zu verwirklichen ist. Der Schaltungsaufwand ließ sich so auf den Faktor 1/3 reduzieren.
7. Realisierung in XILINX
7.1.
Gesamtschaltung (PWM & Decoder)
7.2. Innenschaltung einzelner Blöcke
*) Delay-Block
*) Vorwärtszähler
*) Digitalkomparator
*) Rückwärtszähler (Register)
*) Ausgangs-Flip-Flop
*) Segmentdecoder
*) PWM-Flip-Flop
8. Zum Verlauf der Übung
Nachdem der erste Tag der Projektwoche ziemlich gut verlief (ich war mit der Ausführung der Segmentdecoder beschäftigt), hielten mich am Dienstag mehrere Denk- und Ausführungs-fehler sehr lange auf, da ich mich aus gesundheitlichen Gründen nicht konzentrieren konnte.
Am Mittwoch war ich die meiste Zeit mit der Realisierung des Pulsweitenmodulators in XILINX beschäftigt; am nächsten Tag, dem Freitag, benötigte einer meiner Kollegen meinen Computer, was meine Umsiedelung an einen anderen Rechner bedingte. Leider hatte der eine defekte Parallel-Schnittstelle, (die für die Ausführung von XILINX aber unbedingt nötig ist,) wodurch sich die Fortführung meiner Tätigkeit in XILINX verzögerte.
Ein weiteres Problem ergab sich, nachdem ich meinen ursprünglichen Rechnerplatz wieder eingenommen hatte. Scheinbar bin ich an die Grenzen der XILINX zur Verfügung stehenden Möglichkeiten gestoßen, da ich immer wieder die Fehlermeldung „NO ROUTING POSSI-BILITY“ zu sehen bekam. Ich mußte viele Blöcke neu plazieren, um den erschöpften routing-Reserven auszuweichen, was mit hohem Zeitaufwand verbunden war und außerdem die unübersichtliche Anordnung erklärt. [Ebenfalls aus Gründen der routing-possibility traf die Wahl des PWM-Ausgangs-Pins einen Switch (Pin/Jmp 24), weshalb ich an dieser Stelle darauf hinweise, daß besagter Schalter unbedingt offen bleiben muß (siehe XILINX-Board-Schaltung).]
Während des Zeichnens der Gesamtschaltung verlor ich durch einen „Stromausfall“ einen Teil dieser. Auch das warf mich im Zeitplan zurück.
Fazit: Durch verschiedene eigentlich unnötige Zwischenfälle und Fehler meinerseits konnte ich die Übung nicht ganz fertigstellen.
Anmerkungen: |
| impressum | datenschutz
© Copyright Artikelpedia.com