4.9 Bausteine zur A/D- und D/A-Wandlung Inhaltsverzeichnis  

Lösungsvorschläge zu den Selbsttestaufgaben von Kapitel 2



Hinweis: Beachten Sie bitte die in den Zeichnungen dieser Lösungsvorschläge verwendeten älteren Symbole für die logischen Grundschaltungen. Ihre Bedeutungen sind in den folgenden Zeichnungen jeweils angegeben. Im weiteren steht Sn.m-k für Selbsttestaufgabe n.m-k.

Zu S2.2-1:

Zum HOLD-Signal

Zum HALT-Signal

Zu S2.3-1:

Zeitpunkt I2 - I0 Ereignis
0 2 Laden durchs Betriebssystem
1 3 Interrupt der Klasse 3
2 4 Interrupt der Klasse 4
3 3 Fortsetzung des Interrupts der Klasse 3
4 2 Beendigung des Interrupts der Klasse 3
5 3 2. Interrupt der Klasse 3
6 7 NMI
7 3 Fortsetzung des 2. Interrupts der Klasse 3
8 5 Interrupt der Klasse 5
9 3 Fortsetzung des 2. Interrupts der Klasse 3
10 2 Beendigung des 2. Interrupts der Klasse 3

Die Interruptanforderung der Klasse 1 wird hier nie ausgeführt, da vom Betriebssystem die Klasse 3 als Klasse niedrigster Priorität verlangt wird.


Zu S2.4-1:

Zunächst skizzieren wir im Bild L2.4-1 den Aufbau eines parallelen Addierers/Subtrahierers, der die Subtraktion als Addition im Zweierkomplement ausführt: A – B = A + B2k = A ++ 1.

Die Antivalenzschaltungen übernehmen darin die bitweise Invertierung des Operanden B, der Übertragseingang Ü0 = AS = 1 sorgt für die Addition der 1.


Bild L2.4-1: Paralleles Addier-/Subtrahierwerk


(Im folgenden stehen: = für die Äquivalenz, <> für die Antivalenz, ˆ für die UND-Verknüpfung, v für die ODER-Verknüpfung, ¬ für die bitweise Negation und «–» für "genau dann, wenn").

1. CF und AF:

Für das Übertrags-Ausgangssignals Ük+1 (Carry/Borrow) des Volladdierers VAk gilt bekanntlich:

Ük+1 = (Ak ˆ (Bk <> AS)) v (Ak ˆ Ük) v ((Bk <> AS) ˆ Ük) = (Ak ˆ (Bk <> AS)) v (Ük ˆ (Ak v (Bk <> AS))) .

Beginnend mit Ü0 = AS kann man daraus nun iterativ AF = Ü4 und CF = Ü8 berechnen. Wir wollen hier auf die sture Ausrechnung verzichten. (Führen Sie sie doch zur Übung einmal für AF selbst durch.)

OF:

Bei der Addition kann ein Überlauf nur auftreten, wenn beide Operanden das gleiche Vorzeichen haben, aber das Ergebnis das entgegengesetzte Vorzeichen hat. Hier gilt also:

OF+ = (A7 = B7) ˆ (A7 <> F7) ˆ (¬ AS) .

Bei der Subtraktion tritt ein Überlauf nur dann auf, wenn beide Operanden entgegengesetztes Vorzeichen haben und das Ergebnis ein anderes Vorzeichen als der Operand A hat. Also gilt:

OF = (A7 <> B7) ˆ (A7 <> F7) ˆ AS .

Durch die ODER-Verknüpfung beider Fälle erhält man:

OF = (A7 <> F7) ˆ (((A7 = B7) ˆ (¬ AS)) v ((A7<> B7) ˆ AS)) = (A7<> F7) ˆ (A7 = B7= (¬ AS)) .

Zur Berechnung der nächsten drei Flags ist nichts weiter zu sagen:

ZF = ¬ (F7 v F6 v ... v F1 v F0) ,

SF = F7 ,

EF = ¬ F0 .

PF:

Die (ungerade) Parität wird durch die modulo-2-Summe der Ergebnisbits F7,..,F0 gegeben. Diese Summe wird bekanntlich durch die Antivalenz-Verknüpfung der Summanden ermittelt. Also folgt:

PF = F7<> F6<> .... <> F1<> F0 .

2. a) A, B vorzeichenlose ganze Zahlen:

b) A, B vorzeichenbehaftete Zahlen im Zweierkomplement:

Aus AS = 1, SF = F7 und der oben hergeleiteten logischen Funktion des Überlauf-Bits OF folgt zunächst:

OF = OF = (A7 <> B7) ˆ (A7 <> SF)

= [(¬ A7) ˆ B7ˆ SF] v [A7ˆ (¬B7) ˆ (¬SF)].

Daraus folgt weiter:

SF=1 «–» OF = (¬ A7) ˆ B7 ,

SF=0 «–» OF = A7ˆ (¬B7) .

Nun kann man die vier Möglichkeiten für die Wahl von SF und OF genauer untersuchen:

OF SF Bedingung Ergebnis
0 0 kein Überlauf, F positiv: 0 <= A - B <= 27-1 A >= B
0 1 kein Überlauf, F negativ: -27<= A - B < 0 A < B
1 0 (A7 = 1) ˆ (B7 = 0): A negativ, B positiv A < B
1 1 (A7 = 0) ˆ (B7 = 1): A positiv, B negativ A > B

Daraus ergeben sich nun unmittelbar die gesuchten Beziehungen:

3.

Bild L2.4-2: Erzeugung der Flags und Testmultiplexer


4. Durch die Addition kann der BCD-Zahlenbereich in der unteren Hälfte des Ergebnisses durch zwei Möglichkeiten verlassen werden:

     a) Es tritt eine Pseudotetrade A, B, C, D, E, F auf. Diese wird durch die folgende logische Funktion angezeigt:

L = F3 ˆ (F2 v F1) .

     b) Durch das Flag AF wird ein Übertrag in die obere Hälfte des Ergebnisses gemeldet.

In beiden Fällen, angezeigt durch L v AF = 1 , muß die ALU zum Ergebnis F den Wert $06 addieren. Entsprechend kann in der oberen Ergebnishälfte eine Pseudotetrade oder ein Übertrag auftreten, der hier durch das Flag CF gemeldet wird. Daher muß die ALU immer dann, wenn    

CF v H := CF v [F7 ˆ (F6 v F5)] = 1

ist, zum Ergebnis F den Wert $60 addieren. Das Ergebnis der Addition wird nun durch das Übertragsbit CF und das korrigierte Ergebnis F' dargestellt.

Beispiele:

 

 

 

 

 

Korrektur der

unteren Tetrade

Korrektur der

oberen Tetrade

i)

            CF

A:              89

B:     +       44

F:  AF=0  CD

        +       06

                 D3

        +       60

            1   33

ii)

                  CF

                       89

       +              98

AF, CF=1   1  21

       +              06

                   1  27

       +              60

                   1  87


Zu S2.4-2:

  CF A CF
Anfangswert 0 10101101 0
Verschieben      
logisch/arithmetisch, n. links 1 01011010  
logisch, nach rechts   01010110 1
arithmetisch, nach rechts   11010110 1
       
Rotieren      
nach rechts   11010110  
nach links   01011011  
nach rechts mit Übertragsbit   11010110 1
nach links mit Übertragsbit 1 01011011  
n. rechts durchs Übertragsbit   01010110 1
n. links durchs Übertragsbit   01011010 1

 

IVN wird auf die höherwertigen Eingänge B3 – B10 des Adreßaddierers gelegt, die niederwertigen werden konstant mit '0' belegt. Dadurch wird IVN um drei Bits nach links verschoben bzw. mit 8 multipliziert.


Zu S2.4-3:

a) Im Bild 2.4-3 ist eine Realisierung aus logischen Grundschaltungen für den 4-bit-Multiplexer skizziert. Wegen der Einfachheit der Schaltung verzichten wir hier auf weitere Erklärungen.


Bild L2.4-3: 4-bit-Multiplexer

b) Im Bild L2.4-4 ist der Aufbau des Schieberegisters skizziert.


Bild L2.4-4: Aufbau des Schieberegisters


Es ist aus D-Flipflops aufgebaut, deren Eingängen jeweils ein Multiplexer vorgeschaltet ist. Diese Multiplexer werden durch zwei Signale S1, S0 gesteuert und dienen zur Auswahl genau einer der letzten drei aufgeführten Funktionen. Den Aufbau der Multiplexer ersieht man aus Bild L2.4-1, wenn man darin das oberste UND-Gatter des Eingangs E0 entfernt. Die erstgenannte Funktion "Registerinhalt unverändert lassen" wird im Fall S0 = S1 = 0 dadurch erreicht, daß der Takt T (durch die UND/ODER-Gatterkombination) von den Flipflops abgetrennt wird.

c) S. Bild L2.4-5.

Bild 2.4-5: Skalierung der IVN mit 8

Zu S2.5-1:

(AP: Adreßpuffer, DBP: Datenbuspuffer, F: Ergebnis des Addierers, Ri: Register i=1,2)

B0    —> R2             Basisadresse nach R2

DBP —> R1             Offset nach R1

F := R2 + R1             Addition  (B0)+<Offset>

F      —> R1             Zwischenergebnis nach R1

I0     —> R2             Index nach R2

F := R2 + R1             Addition  [(B0)+<Offset>]+(I0)

F      —> AP             Operandenadresse nach AP

Inkrement R2          (I0)+1

F       —> I0             neuer Indexwert nach I0


Zu S2.6-1:

Als Wiederholung skizzieren wir zunächst im Bild L2.6-1 eine Lösungsmöglichkeit für jede der vier Betriebsarten, die das Register zur Verfügung stellen soll: Links/Rechts-Schieben, Vorwärts/Rückwärts-Zählen. Das Register ist bei allen vier Möglichkeiten aus JK-Master-Slave-Flipflops aufgebaut, die mit einem gemeinsamen Takt T versorgt werden. Die verlangte Funktion des Rücksetzens wird durch die statischen Reset-Eingänge R der Flipflops erreicht, die parallel miteinander verbunden werden. Diese Funktion wird im folgenden nicht weiter betrachtet. (Beachten Sie bitte, daß aus zeichentechnischen Gründen im Bild das niederstwertige Bit links gezeichnet ist, so daß hier - im Unterschied zu Abschnitt 2.4 - ein Vorwärtsschieben ein Rechtsschieben bedeutet.)


S1 S0 Funktion
0 0 Vorwärts-Zählen
0 1 Rückwärts-Zählen
1 0 Vorwärts-Schieben
1 1 Rückwärts-Schieben

Bild L2.6-1: Darstellung der zu realisierenden Funktionen



Im Bild L2.6-2 sind nun alle vier Teilfunktionen in einem Register vereint. Die Auswahl einer Funktion geschieht über die 4-auf-1-Multiplexer (MUX), die allen Flipflop-Eingängen vorgeschaltet sind. Die beiden Steuereingänge S0, S1 der Multiplexer haben folgende Wirkung:


Bild L2.6-2: Das gesuchte Multifunktions-Register


Zu S2.7-1:

Der Adreßbustreiber ist im Bild L2.7-1 dargestellt. Durch das Signal G (Gate) können beide Tristate-Treiber hochohmig geschaltet werden und damit der Programmzähler und der Adreßpuffer vom Adreßbus getrennt werden. Das Signal S selektiert genau eines der beiden angeschlossenen Register.


Bild L2.7-1: Der Aufbau des Adreßbustreibers


Zu S2.7-2:

Im Bild L2.7-2 wurde der Adreßbustreiber aus Bild L2.7-1 um einen bidirektionalen Datenbustreiber nach Bild 2.7-4 erweitert. Zwei Auswahlsignale S1, S0 legen fest, welches Register mit dem externen Daten-/Adreßbus verbunden wird, und zwar nach folgender Beziehung:


S1 S0 ausgewähltes Register
0 0 kein Register ausgewählt, Busleitungen hochohmig
0 1 Adreßpuffer
1 0 Programmzähler
1 1 Datenbuspuffer


Die Aktivierung des Datenbustreibers geschieht durch die zusätzliche Steuerleitung G. Bei dieser Lösung kann der Prozessor ein Datum in den Datenbuspuffer schreiben, auch wenn dieser noch nicht auf den externen Bus geschaltet ist, d.h. der Eingang OA auf L-Potential liegt. Durch Aktivierung der Eingänge G und OE kann der Prozessor jederzeit den Inhalt des Datenbuspuffers lesen.

Bild L2.7-2: Treiber eines bidirektionalen Multiplexbusses



Lösungsvorschläge zu den Selbsttestaufgaben von Kapitel 3


Zu S3.1-1:

Aus  2n = 10x   folgt   x = n · log10 2, also ungefähr 0.3 · n . Daraus folgt:

32-bit-Format

vorzeichenlos:                 0 <= Z < (232 = 109.633) < 4.3 × 109

vorzeichenbehaftet:    -231 <= Z < (231 = 109.332) < 2.15 × 109

64-bit-Format

vorzeichenlos:                 0 <= Z < (264 = 1019.266) < 1.85 × 1019

vorzeichenbehaftet:    -263 <= Z < (263 = 1018.965) < 9.23 × 1018

Zu S3.1-2:

a)   32-bit-Format

kleinste positive Zahl:    min = 21-127 × (1.0)2 , also ungefähr 1.175 × 10-38

größte positive Zahl:     max = 2254-127 × (1.111...1)2 , also ungefähr   2128   oder   3.40 × 1038

64-bit-Format

kleinste positive Zahl:    min = 21-1023 × (1.0)2 , also ungefähr   4.49 × 10-307

größte positive Zahl:     max = 22046-1023 × (1.111...1)2 , also ungefähr   21024   oder   1.80 × 10308

b)   Z1 = -1.75 = (-1)1 × 2127-127 × (1.1100...0)2

     Z2 = 36 864 = 215 + 212 = (-1)0 × 2142-127 × (1.0010...0)2



Zu S3.2-1:

a)  R = A - B · [A/B] , wobei [..] den ganzzahligen Anteil einer Zahl bezeichnet.

        FLD         FR1,A;       A ins Register FR1

        FLD         FR2,B;       B ins Register FR2

        FDIV       FR1,FR2;   Division A/B, nach FR1

        FRNDINT    FR1;      Abrunden zur ganzen Zahl

        FMUL      FR1,FR2;   Multiplikation B · [A/B], nach FR1

        FLD         FR2,A;       A ins Register FR2

        FSUB      FR1,FR2;   Subtraktion B· [A/B] - A, nach FR1

        FCHS      FR1;           Vorzeichenwechsel

        FST          FR1,C;      Abspeichern nach C


b)   FGETEXP

       160 = (-1)0 × 27 × 1.25 = (-1)0 × 2127+7 × (1.01)2  =  0 | 10000110 | 0100..002

       FGETMAN

       - 1.625 = (-1)1 × 20 × (1.101)2    =  1 | 01111111 | 10100..002

Zu S3.3-1:

1.  Berechnung der effektiven Adresse:

EA = ($00,((PC)+1)+1),($00,((PC)+1))+(Y)

Herleitung:

(PC)+1                  Adresse des Offsets im Befehl

((PC)+1)               Offset

$00,((PC)+1)        =: PAL Zeiger auf das L-Byte

$00,((PC)+1)+1    =: PAH Zeiger auf das H-Byte der Operanden-Basisadresse im Speicher

(PAH),(PAL)         =: ZA Operanden-Basisadresse im Speicher

ZA+(Y)                  effektive Operandenadresse

(',' kennzeichnet darin die Konkatenation zweier Bytes zu einer 16-bit-Adresse.)

Das Bild L3.3-1 zeigt die symbolische Darstellung dieser Adressierungsart.)

Bild L3.3-1:  Postindizierte indirekte Zero-Page-Adressierung

2.  

$E000 SUM: LDA #$00 ; Löschen der Speicher-
    STA $A2 ; zellen $A2, $A3 für das
    STA $A3 ; Ergebnis
         
  LOOP: CLC   ; Carry-Flag löschen
         
    LDA $A2 ; Laden des L-Bytes der
    ADC ($A0),Y ; Summe, Addition des
    STA $A2 ; Datums und Speichern
         
    LDA $A3 ; Laden des H-Bytes der
    ADC #$00 ; Summe, Auswertung des
    STA $A3 ; Carry Flags,  Speichern
         
    DEY   ; Y dekrementieren
    BNE LOOP ; Verzweigung, falls nicht
        ; letztes Datum
    RTS   ; Rücksprung
         
    LDA #$FF ; Basisadresse-1 (=$0FFF)
    STA $A0 ; nach $00A0
    LDA #$0F ; und  $00A1
    STA $A1 ; speichern
         
    LDY #$80 ; Y mit 128 laden
    JSR $E000 ; Aufruf von SUM
    ...    


Lösungsvorschläge zu den Selbsttestaufgaben von Kapitel 4


Zu S4.2-1:

  1. Logische Funktionen:   Ai = Ei Ù j>ij Ù ,   also:

     
    A3 = E3 Ù ,
    A2 = E2 Ù 3 Ù ,
    A1 = E1 Ù 2 Ù 3 Ù ,
    A0 = E0 Ù 1 Ù 2 Ù 3 Ù .

    Im Bild L4.2-1 sind die Realisierungen dieser Funktionen gezeigt.




    Bild L4.2-1: 4-bit-Prioritätsdecoder




  2. Bild L4.2-2: 8-bit-Prioritätsdecoder


    Ein Ausgang Ai, i=0,..,3, des "niederwertigen" Decoders PD0 darf nur dann aktiviert werden, also auf H-Potential gebracht werden, wenn alle Eingänge des "höherwertigen" Decoders PD1 inaktiv sind, also auf L-Pegel liegen. Dies erreicht man dadurch, daß man auf den -Eingang von PD0 die Oder-Verknüpfung der Eingänge E4,..,E7 von PD1 legt (s. Bild L4.2-2). Der -Eingang von PD1 wird fest mit Massepotential verbunden.


Zu S4.3-1:


CE-Bit:

In seiner Wirkung entspricht dieses Bit dem -Eingang eines Peripheriebausteins. Jedoch gestattet es, den Baustein softwaremäßig (für gewisse Zeiten) abzuschalten. Dadurch werden alle Unterbrechungsanforderungen an seinen Eingängen unterdrückt.


I/P-Bit bzw. ENI-Eingang:

Durch diese wird nur die Weitergabe einer Unterbrechungsanforderung zum Prozessor gesteuert. Die Bausteineingänge bleiben jedoch stets aktiviert, und die Anforderungen werden in den Registern gespeichert und ausgewertet.



Zu S4.5-1:

  16 bit2x8 bit
dual$4749 + 1 = 18 250 ($47 + 1) × ($49 + 1) = 72 × 74 = 5 328
BCD4749 + 1 = 4 750 (47 + 1) × (49 + 1) = 48 × 50 = 2 400


Hinweis:

Die Addition der '1' ist nötig, da voraussetzungsgemäß jeder Zählzyklus erst mit dem Ende des Null-Zustandes abgeschlossen ist.



Zu S4.6-1:

  1. Der Zustand Q des Flipflops DRi muß auf den Eingang Di zurückgekoppelt werden, wenn:

    Daraus ergibt sich die im Bild L4.6-1 dargestellte Beschaltung.




    Bild L4.6-1: 1. Variante der Portbeschaltung


  2. Bei der 2. Variante wird bei jedem Lesezugriff auf das Datenregister die Portleitung Pi auf die Datenleitung Di durchgeschaltet - unabhängig von der gewählten Übertragungsrichtung der Portleitung. Deshalb entfällt hier die Verbindung des Bits DRRi zum Eingangstreiber. Im Bild L4.6-2 ist die Realisierung gezeigt.


    Bild L4.6-2: 2. Variante der Portbeschaltung

Zu S4.6-2:

  1. Lesezugriff (s. Bild L4.6-3):




    Bild L4.6-3: Zeitlicher Ablauf eines Lesezugriffs


    Nachdem der Baustein durch das -Signal und das Datenregister DR des Ports durch die Adreßsignale A1, A0 selektiert wurden, schaltet die negative Flanke des -Signals die Portleitungen PXi auf die Datenbusleitungen Di. Mit der positiven Flanke des -Signals wird das Datum in den µP übernommen. Dabei ist es sehr wohl möglich, daß sich - anders als im Bild dargestellt - der Zustand der Portleitungen noch während des -Signals (=0) ändert. Verlangt wird lediglich, daß während der Zeitspanne tDS (Data Setup) vor der positiven -Flanke das Datum stabil anliegt.

  2. Schreibzugriff (s. Bild L4.6-4):


    Bild L4.6-4: Zeitlicher Ablauf eines Schreibzugriffs


    Nach der Anwahl des Bausteins und des Datenregisters DR durch die Signale , A1, A0 legt der Prozessor die Daten auf den Datenbus Di. Diese werden mit der positiven Flanke des -Signals in das Register DR übernommen. Mit einer kleinen Verzögerung td (Delay) erscheinen sie dann auf den Portleitungen PXi.

Zu S4.6-3:


Ein Zeitdiagramm der bidirektionalen Übertragung ist im Bild L4.6-5 dargestellt.


Bild L4.6-5: Zeitdiagramm der bidirektionalen Übertragung



Der wichtigste Unterschied zum Bild 4.6-7 besteht darin, daß die Portleitungen PA7...PA0 (Peripheral Bus) immer dann hochohmig geschaltet sind, wenn nicht gerade ein Datum übertragen wird. Die Steuerung der Tristate-Treiber wird vom Peripheriegerät übernommen: Einerseits legt es selbst ein Datum auf diesen Bus und triggert die Übernahme in den Eingabepuffer IBA durch das Strobe-Signal . Andererseits schaltet es mit seinem Quittungs-Signal die Treiber des 8255 durch und übernimmt die vom Prozessor im Datenregister DRA abgelegte Information. Durch die negative Flanke des -Signals wird, wie im Bild 4.6-6 angedeutet, nur dasjenige Interrupt-Flipflop (FF) zurückgesetzt, das dem -Eingang zugeordnet ist.



Zu S4.6-4:


Bei der angesprochenen Lösung bietet sich die folgende Zuordnung zwischen den Signalen des 8255 und der Centronics-Schnittstelle an:

PA0,...,PA7 <---> DATA1-8
<--->
<---> .


Dabei ergeben sich jedoch die nachstehenden Schwierigkeiten:
  1. Es gibt keinen freien 8255-Eingang für das BUSY-Signal.

  2. Die negative Flanke des (-)-Signals kann mit dem Zeitpunkt zusammenfallen, zu dem die Daten auf den PAi(-DATAi)-Leitungen stabil vorliegen. In diesem Fall wird die geforderte Zeitspanne (³ 0.5 µs) zwischen diesen beiden Ereignissen nicht eingehalten.

  3. Das -Signal wird erst durch die positive Flanke des -Signals zurückgenommen. Bei der Centronics-Schnittstelle gibt das Peripheriegerät das -Signal jedoch erst nach der positiven Flanke des -Signals aus.


Zu S4.6-5:

  1. Modus 0. Port PA: Ausgang; Port PB: Eingang; Port PCL: Ausgang.

  2. Das Flußdiagramm ist im Bild L4.6-6 dargestellt. Das Unterprogramm beginnt mit der Ermittlung des Gerätestatus und stellt dabei fest, ob ein "Papier Ende"-Fehler oder ein beliebiger "anderer Fehler2 vorliegt. Ist dies der Fall, wird das Programm sofort beendet.
    Im anderen Fall wird das Zeichen in den Port PA geschrieben. Es folgt die zeitgerechte Erzeugung des -Signals auf der Portleitung PC0.
    Nach der geforderten Zeitverzögerung von wenigstens 0.5 µs, während der die Daten weiterhin stabil vorliegen müssen, wird das BUSY-Signal an der Portleitung PB1 überprüft. Spätestens nach einer Sekunde muß dieses Signal einen L-Pegel annehmen. Ist dies nicht der Fall, so veranlaßt die Zeitüberwachung einen Abbruch des Programms. (Dabei kann eventuell wieder der Status des Gerätes über den Port PB ermittelt und die genauere Ursache für die Zeitüberschreitung ermittelt werden.)
    Wird die vorgegebene Zeit nicht überschritten, so schließt das Programm mit der Abfrage des -Signals an der Portleitung PB0. Dieses Signal muß zunächst den '0'-Zustand und danach wieder den '1'-Zustand einnehmen. Zur Beschleunigung der Übertragung kann der µP jedoch darauf verzichten, die Beendigung des -Signals abzuwarten. Diese Möglichkeit ist im Bild gestrichelt gezeichnet.

Bild L4.6-6: Programm zur Zeichenausgabe



Das angegebene Programm stellt die Übertragung eines einzelnen Zeichens dar. Die Sachlage ändert sich etwas, wenn - wie heute üblich - der Drucker über einen relativ großen Pufferspeicher (z.B. 32 Mbyte) verfügt. In diesem Fall sollte die Abfrage des Gerätezustandes vor jedem Zeichentransfer entfallen und nur noch nach einer Zeitüberschreitung ausgeführt werden. Das BUSY-Signal muß hier vom Drucker dazu benutzt werden, dem µP mitzuteilen, ob freier Pufferplatz zur Verfügung steht oder nicht.


Zu S4.8-1:

  1. Auflösen der Formel nach SCLKDIV liefert:

    SCLKDIV = (Frequenz von CLKOUT) / (2 × Frequenz von SCLK) - 1.

  2.     
    1. Frequenz von SCLK = 9600 Hz:

      SCLKDIV = 0.5 ×12 288 000 / 9600 - 1 = 639 = 0x027F

    2. Frequenz von SCLK = 2,048 MHz:

      SCLKDIV = 0.5 × 12,288 / 2,048 - 1 = 2 = 0x0002

  3. Auflösung der Formel nach RFSDIV liefert für die vorgegebenen Werte:

    RFSDIV = (Frequenz von SCLK) / (Frequenz von RFS) - 1 = 2048 / 8 - 1 = 255 = 0x00FF



Zu S4.9-1:


  UDA,max   = UDA(2n - 1) = (2n - 1)×(Umax - Umin) / 2n + Umin = Umax - LSB


  Umax entspricht 2n.



Zu S4.9-2:

  1. UDA($A0) = [$A0 × 5V + ($100-$A0) × 0V]/256 = 160 × 5/256 V = 3.125 V




  2. Bild L4.9-1: Schaltung zur Erzeugung des PWM-Signals


    Der Digitalwert D wird in ein Register eingeschrieben. Ein Komparator vergleicht ihn kontinuierlich mit dem Zustand Z eines frei umlaufenden Dualzählers. Die Umlaufdauer dieses Zählers bestimmt die Schwingungsdauer TS des Ausgangssignals. Der Ausgang "D< Z" des Komparators ist immer dann im '1'-Zustand, wenn der Zähler den Wert D noch nicht erreicht hat, und danach bis zum Ende des Zyklus im '0'-Zustand.

  3. TI = 1/(10 MHz) = 0.1 µs = 100 ns,

    TS = 2n × TI = 256 × 0.1 µs = 25.6 µs,

    TP = $A0 × TI = 160 × 0.1 µs = 16 µs.

    Maximale Wandlungsrate: 1/(25.6 µs) = 39.0625 kHz

  4.9 Bausteine zur A/D- und D/A-Wandlung Inhaltsverzeichnis