0% fanden dieses Dokument nützlich (0 Abstimmungen)
8 Ansichten18 Seiten

CTR3

Hochgeladen von

gerhard.hofbauet
Copyright
© All Rights Reserved
Wir nehmen die Rechte an Inhalten ernst. Wenn Sie vermuten, dass dies Ihr Inhalt ist, beanspruchen Sie ihn hier.
Verfügbare Formate
Als PDF, TXT herunterladen oder online auf Scribd lesen
0% fanden dieses Dokument nützlich (0 Abstimmungen)
8 Ansichten18 Seiten

CTR3

Hochgeladen von

gerhard.hofbauet
Copyright
© All Rights Reserved
Wir nehmen die Rechte an Inhalten ernst. Wenn Sie vermuten, dass dies Ihr Inhalt ist, beanspruchen Sie ihn hier.
Verfügbare Formate
Als PDF, TXT herunterladen oder online auf Scribd lesen

Temperaturmessung mittels fernabfragbarem

Oberflächenwellen-Sensor

Teil III

Schaltungsaufbau und Schaltungsbeschreibung

Graz, am 6.10.2003
3 Schaltungsaufbau und Schaltungsbeschreibung
3.1 Blockschaltbild

237 5 MH z PLL +VCO

Temper aturkompensierter
phasenr auscharmer Qu adratu r-DDS
25 MHz-1 25 MHz Quadraturmodulator Ri chtkopp ler 3dB
Quarzos zillator 10 MHz Ve rstä rker
I
130 MH z Tiefpaß
24 00 MHz -
DDS 25 00 MHz ANTENNE
Q Ba ndp aß
130 MH z Tiefpaß

Ve rstä rker Ab wä rtsm isch er

50 kHz
Tiefpaß

D
An alo g-na ch-Dig ital-Wa ndle r

Abb.3.1 Blockschaltbild des Temperaturauslesegeräts.

Zum leichteren Verständnis ist das Blockschaltbild des Auslesegeräts in Abb.3.1 nochmals
gezeigt. Das komplette System wurde auf Wunsch der [Link] in drei Teile zerlegt.

1.) Der Quarzoszillator und die DDS (direkte Synthese) Baugruppe.


2.) Der Quadraturmodulator, Der 2.36 GHz Oszillator mit PLL der Leistungsverstärker mit
Filter.
3.) Der Richtkoppler, Abwärtsmischer und Tiefpaß sowie ZF-Verstärker.
3.2 Der Quarzoszillator und die DDS (direkte Synthese) Baugruppe.

R1 330R
U1 R2
C1
1k3
A3.3V 64 61
J1 DIFF-EN PLL-FILTER A3.3V
R3 330R 70
S/P-SEL R4
9 71 56 10nF R5 C2 C3 C4 C5
8 MRES DAC-RSET 22pF
R6 330R 2k2 50R 27pF 47pF 39pF
7 55 L1 L2 L3
DACBP A3.3V
6 8
R7 330R D0
5 7 C6 100nF
4 6 D1 52 82nH 68nH 68nH
R8 330R D2 IOUT2 QP
3 5 51 12pF 8.2pF
D3 IOUT2B 2.2pF
2 4
R9 330R D4 C10C7 C11C8 C12C9
1 3
2 D5 48
R11 330R D6 IOUT1 R10 QN
1 49 50R 2.2pF 12pF 8.2pF
Control D7 IOUT1B L4 L5 L6

68nH
3

3
82nH 68nH
19 43
18 A0 VINN 42 C13 C14 C15 C16
C61 D1 D2 D3 D4 D5 17 A1 VINP
+ A2 27pF 47pF 39pF 22pF
10UF 3V3 3V3 3V3 3V3 3V3 16 36
15 A3 VOUT
3.3V 14 A4
R32 A5
1

1
31 A3.3V
AVDD 32 C17 C18 C19 C20
C21 AVDD1 R12
21 37 50R 27pF 47pF 39pF 22pF
22 WRB AVDD2 38 L7 L8 L9
10R +5V RDB AVDD3
R13 44
100nF 20 AVDD4 54
220 U2 R14 I/O UD AVDD5 82nH 68nH 68nH
8

U3A 1k 60
C29 AVDD6 IP
14 R15 65 C25 C62 C63 C64 12pF 8.2pF
C30 C31 AVDD7 2.2pF
30 MHz 3 69 50 100nF 100nF 100nF 100nF
C32 1k REFCLK AVDD8 C33C22 C34C23 C35C24
1 2 7 100nF 68 33
2 REFCLKB AGND 34
R16 AGND1 R17 IN
100nF 100nF 7 100nF 1k 29 39 50R 2.2pF 12pF 8.2pF
FSK/BPSK AGND2 L11 L12 L13
74AC04 R18 30 40
SHAPED AGND3 41
MC100ELT20 1k AGND4
5

R19 11 45 82nH 68nH 68nH


R20 DGND AGND5
100R 220 R21 R22 12 46
26 DGND1 AGND6 47 C36 C37 C38 C39
3k3 3k3 DGND2 AGND7
27 53 27pF 47pF 39pF 22pF
28 DGND3 AGND8 59
72 DGND4 AGND9 62
75 DGND5 AGND10 66
76 DGND6 AGND11 67
77 DGND7 AGND12
C40 C41 78 DGND8
9 DGND9 L10
100nF 100nF DVDD
3.3V 10
DVDD1 3.3V
23
10MHz DVDD2
C42 C43 24 10uH C26 C27 C28
25 DVDD3 +5V 3.3V
100nF 100nF DVDD4 100nF 100nF 100nF
73
74 DVDD5
79 DVDD6 U4 U5
80 DVDD7
DVDD8 1 3 3 2
IN OUT VIN VOUT
AD9854AST + C44 2 + C45 + C46 1 + C47
10UF GND 10UF 10UF GND 10UF
LM7805C/TO220 LD1117/TO

J2
U8 78M12 +12V
+12V 1
2 1 3

GND
3 IN Out
4 + C48 + C49
10UF 10UF

4
C50 C51 POWER
100n 100n
C52 R23 R24
100n 56k 220
R25 R26
39k 150 R27 R28
1k8 220k
L14 L15
C53 C54 Q1
3u3 3u3
C55 Q2
BFR93A Q3
100n C56 100n BFR93A
C57
C58 C59 82p 1-10p
100n 56p
33p
BFR93A
R30

R29
68
22

R31 C60
390 100n
L16
33u
Y1
10.000000 MHz

Abb.3.2 Schaltbild der DDS und Quarzoszillatorbaugruppe.

Der Baustein U1 in Abb. 3.2 ist ein kompletter DDS-Synthesizer vom Typ AD9854ASQ.
Der Baustein wurde auf serielle Dateneingabe und differentiellen Takteingang konfiguriert.
Er generiert das 40 MHz bis 123 MHz Rampensignal und gibt die Signalform als Stromwerte
an Pin 48, 49 , 51 und 52 aus. Dieser Strom wird in den Widerständen R5, R10, R12 und R17
in eine entsprechende Spannung gewandelt. Da das Ausgangssignal durch die D/A Wandlung
noch hochfrequente Anteile besitzt, wird jedem Ausgang ein 3-stufige elliptisches Filter
nachgeschaltet. Eine Übertragungsnullstelle liegt bei 300 MHz, der internen Taktfrequenz des
Chips. Die Ausgänge IOUT und /IOUT enstprechen den 0° Phasen-Ausgängen in
differentieller Form, und QOUT und /QOUT den um 90° phasenverschobenen
Quadraturausgängen. R3, R6, R7 und R11 sind Eingangsschutzwiderstände, welche das
Eingangssignal mittels der Zenerdioden D1-D6 in 0 V/ 3.3 V Signale umwandeln, dadurch ist
ein Betrieb mit 5 V TTL-Logik möglich. Die Takterzeugung findet im 10 MHz
Quarzoszillator statt, welcher aus Q2, Q3 und Y1 besteht. Die Induktivitäten L14 und L15
dienen zur korrekten Phasendrehung und Anpassung im Rückkopplungspfad des Oszillators.
Das 10 MHz Signal wird durch R30 und C54 ausgekoppelt und in Q1 verstärkt. Danach wird
das Signal einerseits an einen 50 Ohm SMA Anschluß geführt, andererseits in einem Inverter
vom Typ 74AC04 in ein TTL Signal umgewandelt. Dieses TTL-Signal wird in einem TTL
nach PECL Konverter vom Typ MC100ELT20 in ein differenzielles ECL Signal
umgewandelt und in den DDS Baustein an Pin 68 und 69 geführt.
3.3 Der Quadraturmodulator, der 2.36 GHz Oszillator mit PLL und der
Leistungsverstärker mit Filter.

3.3.1 Der 2.36 GHz Oszillator mit PLL


U1 LM78L05A/SO
1 8
VOUT VIN +12V
C1 C2
100pF 100nF
7 6 3 2
GND
GNDGND
GND
C3 C4
100pF 100nF

LOIN1

w1 =w2= 1 m m , w2 = 0 .8 R2 R1
l = 6. 7 m m 82R 47R

s1 =s2= 2.5 mm C5 l= 5.77 mm , w =1.1 mm R3


D1
1 2
47R
BBY51 C7 1pF C6
R5 100pF
D2 R4
1 2 1pF 10k
C8

3
l= 7 mm , w = 0 .472 mm 2k7
BBY51 1 Q1
BFP420
1pF C9 R6

4
2
47pF 1k5 C10
150pF
C11 R8
R7
1k8
C12
1pF 500R R9 1.5nF

2k7

C13
47pF
U3 U2
1

R10
6 R11 11 2
VCC

GP1/AN1/VREF 5 R12 12 CLK CP


GP2/T0CKI/AN2 3 100R 13 DATA
J1 4 GP4/OSC2/AN3 2 R13 100R 10 LE
GP3/MCLR/VPP GP5/OSC1/CIN 100R C14 CE
7 8 6 C15
3 8 GP0/AN0 100R REFin RFinA 5
2 GND 14 RFinB
1 PIC12C671/SO J2 R14 1nF MUXOUT R15 100pF
C16 50R 1
CNTRL 1 1nF Rset
15 4k7
DVDD 3
CPGND
2

9 4
BNC DGND AGND
16
VP
7
AVDD

ADF4112 U4 LM78L05A/SO
1 8
VOUT VIN +12V
C17 C18 + C19
100nF 100nF 10uF
7 6 3 2
GND
GNDGND
GND

Abb.3.3 Schaltbild der PLL und VCO Bausteine.

Abbildung 3.3 zeigt alle Komponenten der PLL und VCO Bausteine. Transistor Q1 und die
Kapazitätsdioden D1 und D2 bilden den 2.36 GHz VCO. U2 ein ADF 4112 PLL-Synthesizer
wir über den SMA-Stecker mit 10 MHz vom Quarzoszillator gespeist, und benutzt dieses
Signal als Referenzsignal. Der PIC-Microcontroller vom Typ 12C508 programmiert den PLL-
Baustein beim Einschalten und überwacht diesen durch den LOCK Ausgang der PLL (PIN
14, LOCK OUT on MUX bit selected). Das HF-Ausgangssignal wir über C11 und R8
ausgekoppelt und über R1 und R3 verzweigt, sodaß ein Teil des HF Signals in den Vorteiler
des PLL Bausteins an Pin 6 geführt wird. Der PLL Baustein vergleicht nun das
heruntergetaktete HF-Signal mit dem 10 MHz Referenzsignal. und gibt entsprechende Strom-
Nachführimpulse an Pin 2 (Charge pump) aus. Ein Schleifenfilter bestehend aus C10, R5, R6,
C12, C9, R9 und C13, beschränkt die Regelbandbreite des PLL-Regelkreises auf ca. 20 kHz.
Das HF-Signal wird auch auf den LOIN1 Bezeichner geführt um das Signal auch auf den
anderen Schaltplänen zu identifizieren.
3.3.2 Der Quadraturmodulator, Leistungsverstärker und Filter.
+5V

C30 C31 +12V +12V


C32 C33 C34 C35
J3 100nF
100pF

7
1 3 U10 U11 100nF L1 100nF L2
+ 100pF 100pF
6 1 10nH 10nH
2 2 IBBP
- IBBN C36 C37 C38 C39
2

AD8001
BNC 16
QBBP C40

4
15
R25 QBBN 11 100nF R23 100nF R24
6 VOUT 100pF 100pF
LOINP 100R 100R
5
820R LOINN 16pF

R26 R27 3 7 L3 L4
C41 C42 COM1 VPS1
50R 270R 4 12 U12 10nH U14 10nH
9 COM2 VPS2 HMC315 U13 HMC315 J4
COM3 C43 C44 C45
10 R28
COM4 C46 C47
100nF 13 3 1 1 6 3 1 1
100pF 14 COM5 8
COM6 ENBL 470R 16pF
16pF 16pF

2
-5V C48 C49
100pF 100nF BNC
16pF 16pF C50 C51 JBANDPASS

2
4
5
6

2
3
4
5

2
4
5
6
+5V

C52 C53
L5 L6
100pF 100nF
U15 10nH 10nH

1
J5 100nF JBALUN
100pF
7

1 3 + U16 5
6
2 - 2
2

AD8001
C54 C55
BNC
4

3
R29
LOIN1
100pF 100nF
820R +5V

R30 R31
C56 C57
50R 270R

100nF
100pF
C58 C59 C60 C61
C62 U17 U18
-5V 0.5pF 1.8pF 2.2pF 0.5pF J6
C63
4 8
+5V RFIN RFOUT/VD1 7 1 6 1
Z= 104, E = 1 4° Z= 104, E = 1 9° RFOUT/VD2
3.9pF w= 0.38 l = 2 .69 w= 0.38 l = 3 .66 2 Z= 50, E = 11 ° Z= 53, E = 31 °
C64 C65 VG1

2
1 w= 1.86 1 l = 2 w= 1.68 l = 5 .68 100pF
VG2 6 BNC
VD3 JBANDPASS

2
3
4
5
3 Z= 91, E = 82 °
J7 100nF GND w= 0.55 l = 15.6
100pF
7

1 3 + U19 CMM2321
6
C70 C71
2 - C66 C67 C68 C69
2

AD8001 100pF 100pF 100pF 100pF


BNC
4

R32
100pF 100pF

820R

R33 R34 +VD C72


C73 C74
50R 270R 100nF
-VG

100nF
100pF

-5V 50 OHM = w = 1.8 6mm

+5V

C75 C76

J8 100nF
100pF
7

1 3 + U20
6
2 -
2

AD8001
BNC
4

R35

820R

R36 R37
C77 C78
50R 270R

100nF
100pF

-5V

Abb.5.4 Schaltplan des Leistungsversärkers und Quadraturmodulators.

Die links in Abb.3.4 gezeigten vier Eingangsbuchsen werden mit den vier Ausgangsbuchsen
des DDS I und Q Signals verbunden. Die vier nachfolgenden Operationsverstärker-
Schaltungen verstärken die DDS-Signale ( x 4) und führen sie dem Quadraturmodulator AD
8346 an Pin 1,2 und 15,16 zu. Der Modulator fügt nun die DDS-Signale mit dem durch einen
Balun symmetrierten differentiellen HF-Signal zusammen, und produziert so das
einseitenband-modulierte Ausgangssignal im Bereich von 2.4 GHz bis 2.483 GHz. Das Signal
wird nun durch einen Ausgangsverstärker U12 um ca. 15 dB verstärkt und in einem
nachfolgenden Bandpaßfilter U13 in einem Frequenzbereich von 2.4 GHz bis 2.5 GHz
gefiltert. Danach wird das Signal aufgeteilt und einerseits einem Verstärker U14 mit ca. –15
dB zugeführt und um 15 dB verstärkt. Diese Signal wird dann auf eine SMA Buchse geführt
und dient dem Empfänger als Referenzsignal. Der andere Teil des Signals wird dem
Leistungsverstärker U 17 zugeführt, welcher das Signal auf + 30 dBm verstärkt. Das
Ausgangssignal aus dem Leistungsverstärker wird dann noch durch einen 2.4 GHz - 2.5 GHz
Bandpaß gefiltert und steht als 1 W Ausgangssignal an der SMA-Buchse J6 zur Verfügung.
(Da der Modulator nicht genügend Ausgangssignal lieferte wurde der Ausgang von U14 (
HMC315) mit dem Eingang des Leistungsverstärker verbunden . R28 wurde entfernt und
durch eine Brücke ersetzt, statt dessen wurde am Ausgang von U14 ein Teil des
Ausgangssignals mit einem 47 Ohm Widerstand in Serie abgezweigt.)
3.3.3 Netzteil U5

+16V 3 2 +VD
VIN VOUT
1
ADJ
+ C20 + C21
10uF LM317/TO220 10uF
R16 R17
6k8 220 U6 79M05

4 3

GND
-8V In Out -5V
Q2
BC846AL R18

1
D3 1200
BAV99 + C22 + C23
10uF 10uF

D4
BAV99
D5
3

U7 78M05

1 3

GND
+8V IN Out +5V

R19
1

4
BZX84 + C24 + C25
10uF 10uF
680

U8

-8V 2 1 -VG
3 VIN VOUT U9 78M12
6 VIN
7 VIN 1 3

GND
VIN +16V IN Out +12V
+ C26
10uF 4 C27
ADJ +
10uF

4
+ C28 + C29
LM337/SO 10uF 10uF

R20
120

R21
470

R22
120

Abb.3.5 Schaltplan des Netzteils des Leistungsversärkers und Quadraturmodulators.

Das Netzteil des Leistungsverstärkers besteht aus U5 und U8. U5 ist ein negativer
Spannungsregler mit dem die Gate-Vorspannungen des Leistungsverstärkers geregelt werden.
U8 ist ein einstellbarer positiver Spannungsregler vom Typ LM317, der auf eine Spannung
von 5.5 V eingestellt ist. Ist keine negative Spannung vorhanden wird auch gleichzeitig U8
ausgeschalten (über Transistor Q2). (Änderung: die Spannung am positiven Regler wurde auf
7V eingestellt und an PIN 2 von U5 zwei Si-Dioden (1N4001) in Serie geschalten, da der
Spannungsregler auch im abgeschaltenen Zustand 1.2 V lieferte.)
3.4 Der Empfänger und Richtkoppler
-5V
-5V -5V
C1
C2 C3

ANAREN_COUPLER1 100n
1 2 AN TENN E 100n 100n
POUT1 1 2

C4
3 4
3 4
Coupler_1
2.2n

R1 R2 ad8058
U2 U3

4
100R 100R ad8058
C5

4
1
8
AD797/SO

4
HMC219MS8 C6 2
C7
-
U4 2 100nF 1 6

LO
R3 C8 R4 R5
- -
6 3 + 7
1 6 7 5 3 + R6 5 +
RF IF R7 10nF R8
390R 100nF

8
390R U1A 390R
47R 100n 470 470

7
5

8
U1B
JBANDPASS
2
3
4
5

1
3
4
6
8
R9 C9
C10 1k 6.8n R10
C11

1
3
4
6
8
33n R11 R12 47R R13
+12V C12 C13
47R 1k R14 47R
C14 C15 1k
100n
100n 100n
100nF L1 +5V
100pF +5V +5V
10nH
C16 C17

100nF R15 -5V -5V


100pF
100R C18 C19

L2
100n 100n
U5 10nH
HMC315
C20 C21
C22
PDCON 3 1
U6 79M05
16pF
16pF 4 3

GND
2.2n -8V In Out -5V
2
4
5
6

ad8058

1
ad8058

4
4
C25 6 - + C23 + C24
2 100nF 7 10uF 10uF
R16 R17 OUTPUT
-
1 5 +
3 + R18
R19 390R

8
390R U7B
470 470

8
U7A

C26 R20 U8 78M05


C27
6.8n R21 R22 47R
C28
47R 1k 1 3

GND
+8V IN Out +5V

100n
100n

4
+ C29 + C30
+5V 10uF 10uF
+5V

U9 78M12

1 3

GND
+16V IN Out +12V

4
+ C31 + C32
10uF 10uF

Abb.3.6 Schaltplan des Empfängers und Richtkopplers.

Abbildung 3.6 zeigt nun den Empfänger des FMCW Systems. Das Referenzeingangssignal
am SMA Eingang PDCON wird durch U5 um 15 dB auf ca. +12 dBm verstärkt und dem
Mischer U2 zugeführt. Das +30dBm Sendesignal wird über die SMA-Buchse POUT1 und
einem Richtkoppler der Antenne zugeführt.
Das reflektierte von der Antenne empfangene Signal wird vom Richtkoppler isoliert und
ebenfalls dem Mischer U2 zugeführt. Am ZF-Ausgang des Mischers entsteht so das
Basisbandsignal, welches zur weiteren Verarbeitung zuerst durch ein Filternetzwerk gefiltert
und dann um ca. 100 dB (U1, U3 und U7) verstärkt wird.
(Da die Verstärkung zu hoch war wurde sie nachträglich auf 80 dB reduziert, weiters wurden
die aktiven Filter zu einfachen Verstärkern umfunktioniert, das Filtern wurde durch passive
RC-Kombinationen zwischen den Verstärkerstufen realisiert (C4,C22,R4 und R16 wurden
entfernt wobei R4 und R16 durch 0-Ohm-Brücken ersetzt wurden.)
3.5 Schnittstelle zum PC

Grundlage der Kommunikation des FMCW Lesegeräts mit dem PC ist die 25-polige parallele
Schnittstelle mit folgender Standardbelegung.
DB25-plug
---------------------------------------------
PIN Function I/O level
----------------------------------------------
1 Datastrobe I/O 24 ma OC
2 Databit 0 I/O 24 ma OC
3 Databit 1 I/O 24 ma OC
4 Databit 2 I/O 24 ma OC
5 Databit 3 I/O 24 ma OC
6 Databit 4 I/O 24 ma OC
7 Databit 5 I/O 24 ma OC
8 Databit 6 I/O 24 ma OC
9 Databit 7 I/O 24 ma OC
10 Ack I TTL
11 Busy I TTL
12 Paper Error I TTL
13 Select I TTL
14 Autofeed O 24 ma TTL
15 Error I TTL
16 Reset O 24 ma TTL
17 Slctln O 24 ma TTL
18 Shield GND
19 Shield GND
20 Shield GND
21 Shield GND
22 Shield GND
23 Shield GND
24 Shield GND
25 Shield GND
-----------------------------------------------

Die Belegung des FMCW-Geräts ist (Es werden nur die parallelen Datenbits verwendet):

PIN NR. Bedeutung


2 DDS AD9854 Serieller Takt (SCLK)
3 DDS AD9854 Serielle Daten (SDAT)
4 DDS AD9854 /Chip Select (/CS)
5 DDS AD9854 IO-RESET (IORES)
6 DDS AD9854 MASTER RESET (MRES)
22 GND
3.6 Programmierung des PLL PICS

Der PLL PIC Microcontroller ist vom Typ 12C508 und enthält folgendes Programm:

;CTR OSC 2360 MHz

;GP0 = Lock Out = LO


;GP1 = PLL Clock = CLK
;GP2 = PLL Data = DAT
;GP3 = /MCLR = MCLR
;GP4 = PLL Latchen = LE
;GP5 = Muxout = LI

list p=12c508
#include <[Link]>

ROTVAL EQU 0x08 ;Temp variables


CNTR EQU 0x09

; VALUES FOR 2360 MHz or x236 x 10 MHz Operation

WERT1MSB EQU 0x5B


WERT1NSB EQU 0x00
WERT1LSB EQU 0x93

WERT2MSB EQU 0x5B


WERT2NSB EQU 0x00
WERT2LSB EQU 0x92

WERT3MSB EQU 0x00


WERT3NSB EQU 0x0E
WERT3LSB EQU 0x31

WERT4MSB EQU 0x11


WERT4NSB EQU 0x00
WERT4LSB EQU 0x04

ORG 0x00 ;Reset Vector


GOTO START

ORG 0X05 ;Start Program


START
CLRF GPIO ;Clear I/O Port
MOVLW 0x28 ;/MCLR & LIN are Inputs
TRIS GPIO ;Set Port Function
MOVLW 0xC8
OPTION
MOVLW WERT1MSB ;PLL Wert1
MOVWF ROTVAL
MOVLW 0x08 ;8 Bits to shift
MOVWF CNTR
LOOP11
BTFSC ROTVAL,7
BSF GPIO,2 ; SET DATA
BTFSS ROTVAL,7
BCF GPIO,2 ; CLR DATA
BSF GPIO,1 ; CLOCK PULSE
BCF GPIO,1
RLF ROTVAL,F
DECFSZ CNTR,F
GOTO LOOP11

MOVLW WERT1NSB ;PLL Wert1


MOVWF ROTVAL
MOVLW 0x08 ;8 Bits to shift
MOVWF CNTR
LOOP12
BTFSC ROTVAL,7
BSF GPIO,2 ; SET DATA
BTFSS ROTVAL,7
BCF GPIO,2 ; CLR DATA
BSF GPIO,1 ; CLOCK PULSE
BCF GPIO,1
RLF ROTVAL,F
DECFSZ CNTR,F
GOTO LOOP12

MOVLW WERT1LSB ;PLL Wert1


MOVWF ROTVAL
MOVLW 0x08 ;8 Bits to shift
MOVWF CNTR
LOOP13
BTFSC ROTVAL,7
BSF GPIO,2 ; SET DATA
BTFSS ROTVAL,7
BCF GPIO,2 ; CLR DATA
BSF GPIO,1 ; CLOCK PULSE
BCF GPIO,1
RLF ROTVAL,F
DECFSZ CNTR,F
GOTO LOOP13

BSF GPIO,4
BCF GPIO,4 ;LATCH VALUE

MOVLW WERT2MSB ;PLL Wert1


MOVWF ROTVAL
MOVLW 0x08 ;8 Bits to shift
MOVWF CNTR
LOOP21
BTFSC ROTVAL,7
BSF GPIO,2 ; SET DATA
BTFSS ROTVAL,7
BCF GPIO,2 ; CLR DATA
BSF GPIO,1 ; CLOCK PULSE
BCF GPIO,1
RLF ROTVAL,F
DECFSZ CNTR,F
GOTO LOOP21

MOVLW WERT2NSB ;PLL Wert1


MOVWF ROTVAL
MOVLW 0x08 ;8 Bits to shift
MOVWF CNTR
LOOP22
BTFSC ROTVAL,7
BSF GPIO,2 ; SET DATA
BTFSS ROTVAL,7
BCF GPIO,2 ; CLR DATA
BSF GPIO,1 ; CLOCK PULSE
BCF GPIO,1
RLF ROTVAL,F
DECFSZ CNTR,F
GOTO LOOP22

MOVLW WERT2LSB ;PLL Wert1


MOVWF ROTVAL
MOVLW 0x08 ;8 Bits to shift
MOVWF CNTR
LOOP23
BTFSC ROTVAL,7
BSF GPIO,2 ; SET DATA
BTFSS ROTVAL,7
BCF GPIO,2 ; CLR DATA
BSF GPIO,1 ; CLOCK PULSE
BCF GPIO,1
RLF ROTVAL,F
DECFSZ CNTR,F
GOTO LOOP23

BSF GPIO,4
BCF GPIO,4 ;LATCH VALUE

MOVLW WERT3MSB ;PLL Wert1


MOVWF ROTVAL
MOVLW 0x08 ;8 Bits to shift
MOVWF CNTR
LOOP31
BTFSC ROTVAL,7
BSF GPIO,2 ; SET DATA
BTFSS ROTVAL,7
BCF GPIO,2 ; CLR DATA
BSF GPIO,1 ; CLOCK PULSE
BCF GPIO,1
RLF ROTVAL,F
DECFSZ CNTR,F
GOTO LOOP31

MOVLW WERT3NSB ;PLL Wert1


MOVWF ROTVAL
MOVLW 0x08 ;8 Bits to shift
MOVWF CNTR
LOOP32
BTFSC ROTVAL,7
BSF GPIO,2 ; SET DATA
BTFSS ROTVAL,7
BCF GPIO,2 ; CLR DATA
BSF GPIO,1 ; CLOCK PULSE
BCF GPIO,1
RLF ROTVAL,F
DECFSZ CNTR,F
GOTO LOOP32

MOVLW WERT3LSB ;PLL Wert1


MOVWF ROTVAL
MOVLW 0x08 ;8 Bits to shift
MOVWF CNTR
LOOP33
BTFSC ROTVAL,7
BSF GPIO,2 ; SET DATA
BTFSS ROTVAL,7
BCF GPIO,2 ; CLR DATA
BSF GPIO,1 ; CLOCK PULSE
BCF GPIO,1
RLF ROTVAL,F
DECFSZ CNTR,F
GOTO LOOP33

BSF GPIO,4
BCF GPIO,4 ;LATCH VALUE

MOVLW WERT4MSB ;PLL Wert1


MOVWF ROTVAL
MOVLW 0x08 ;8 Bits to shift
MOVWF CNTR
LOOP41
BTFSC ROTVAL,7
BSF GPIO,2 ; SET DATA
BTFSS ROTVAL,7
BCF GPIO,2 ; CLR DATA
BSF GPIO,1 ; CLOCK PULSE
BCF GPIO,1
RLF ROTVAL,F
DECFSZ CNTR,F
GOTO LOOP41

MOVLW WERT4NSB ;PLL Wert1


MOVWF ROTVAL
MOVLW 0x08 ;8 Bits to shift
MOVWF CNTR
LOOP42
BTFSC ROTVAL,7
BSF GPIO,2 ; SET DATA
BTFSS ROTVAL,7
BCF GPIO,2 ; CLR DATA
BSF GPIO,1 ; CLOCK PULSE
BCF GPIO,1
RLF ROTVAL,F
DECFSZ CNTR,F
GOTO LOOP42

MOVLW WERT4LSB ;PLL Wert1


MOVWF ROTVAL
MOVLW 0x08 ;8 Bits to shift
MOVWF CNTR
LOOP43
BTFSC ROTVAL,7
BSF GPIO,2 ; SET DATA
BTFSS ROTVAL,7
BCF GPIO,2 ; CLR DATA
BSF GPIO,1 ; CLOCK PULSE
BCF GPIO,1
RLF ROTVAL,F
DECFSZ CNTR,F
GOTO LOOP43

BSF GPIO,4
BCF GPIO,4 ;LATCH VALUE

LOCKLOOP
BTFSS GPIO,5 ;TEST ON LOCK DETECT
GOTO NOLOCK
GOTO LOCK

NOLOCK
BCF GPIO,0 ;LOCK = 0 = NO
GOTO LOCKLOOP ;WAIT IN LOOP FOR LOCK (after 18ms = RESET
(Watchdog))
LOCK BSF GPIO,0 ;LOCK = 1 = YES
CLRWDT ;Clear Watchdog timer
GOTO LOCKLOOP

END

3.7 Das Programm des DDS –Programmier-PIC 12C508

Folgendes Programm steuert jenen PIC Microcontroller vom Typ 12C508, der beim
Einschalten des Demonstrators den DDS Chip AD9854 mit Standardwerten speist.
(2400 MHz – 2483 MHz, 10ms Rampenzeit)
;CTR DDS SETTING

;GP0 = DDS RESET = IORES/MRES


;GP1 = DDS Clock = CLK
;GP2 = DDS Data = DAT
;GP3 = /MCLR = MCLR
;GP4 = DDS /CE = /CE
;GP5 = DDS SDO = DATA OUT

list p=12c508
#include <[Link]>

ROTVAL EQU 0x08 ;Temp variables


CNTR EQU 0x09

COMMAND0 EQU 0x02


VALUE_0_0 EQU .34
VALUE_0_1 EQU .34
VALUE_0_2 EQU .34
VALUE_0_3 EQU .81
VALUE_0_4 EQU .132
VALUE_0_5 EQU .0

COMMAND1 EQU .7
VALUE_1_0 EQU .16
VALUE_1_1 EQU .30
VALUE_1_2 EQU .135
VALUE_1_3 EQU .33

COMMAND2 EQU .8
VALUE_2_0 EQU .6
VALUE_2_1 EQU .102

COMMAND3 EQU .9
VALUE_3_0 EQU .6
VALUE_3_1 EQU .102

COMMAND4 EQU .4
VALUE_4_0 EQU .0
VALUE_4_1 EQU .0
VALUE_4_2 EQU .3
VALUE_4_3 EQU .186
VALUE_4_4 EQU .111
VALUE_4_5 EQU .236

COMMAND5 EQU .6
VALUE_5_0 EQU .0
VALUE_5_1 EQU .0
VALUE_5_2 EQU .1

COMMAND6 EQU .5
VALUE_6_0 EQU .0
VALUE_6_1 EQU .22
VALUE_6_2 EQU .227
VALUE_6_3 EQU .96

;=====================================================================
; Configuration SEQUENCE
;=====================================================================

ORG 0x00 ;Reset Vector


GOTO START

ORG 0X05 ;Start Program


START
CLRF GPIO ;Clear I/O Port
MOVLW 0x28 ;/MCLR & LIN are Inputs
TRIS GPIO ;Set Port Function
MOVLW 0xC8
OPTION
GOTO weiter
;========= SUBROUTINE WRITEBYE ===========================
WRITEBYTE
MOVLW 0x08 ;8 Bits to shift
MOVWF CNTR
LOOP11
BTFSC ROTVAL,7 ;IF BIT 7 = 1
BSF GPIO,2 ; SET DATA
BTFSS ROTVAL,7 ; IF BIT 7 = 0
BCF GPIO,2 ; CLR DATA
BSF GPIO,1 ; CLOCK PULSE
BCF GPIO,1
RLF ROTVAL,F ;ROTATE LEFT 1
DECFSZ CNTR,F ;DECREMENT COUNTER to ZERO
GOTO LOOP11 ;AND LOOP UNTIL FINISHED
RETLW 0 ;RETURN
;=========== SUBROUTINE READBYTE in ROTVAL
==============================================
READBYTE
MOVLW 0x08 ;8 Bits to shift
MOVWF CNTR
MOVLW 0x00
MOVWF ROTVAL
LOOP22
RLF ROTVAL,F ;ROTATE VALUE 1 left
BSF GPIO,1 ;SET CLOCK 1
BTFSC GPIO,5 ;SDO == 1 ?
BSF ROTVAL,0 ;IF YES SET BIT 0
BTFSS GPIO,5
BCF ROTVAL,0
BCF GPIO,1 ;SET CLOCK = 0
DECFSZ CNTR,F ;DECREMENT COUNTER TO ZERO
GOTO LOOP22
RETLW 0
;============ COMPARE ROTVAL and W AND RESET IF NOT EQUAL
=================================================
COMPAREANDRESET
SUBWF ROTVAL,0
BTFSC STATUS,Z
RETLW 0
ENDLESS
NOP
GOTO ENDLESS

weiter
BSF GPIO,0 ;SET RESET
BSF GPIO,4 ;SET /CE = DISABLE
BCF GPIO,1 ;CLK = 0
BCF GPIO,0 ;CLEAR RESET = 0
;=====================================================================

;========COMMAND 2====================================================
BCF GPIO,4 ; /CE = 0 = Chip enable
MOVLW COMMAND0 ;PLL Wert1
MOVWF ROTVAL
CALL WRITEBYTE
MOVLW VALUE_0_0
MOVWF ROTVAL
CALL WRITEBYTE
MOVLW VALUE_0_1
MOVWF ROTVAL
CALL WRITEBYTE
MOVLW VALUE_0_2
MOVWF ROTVAL
CALL WRITEBYTE
MOVLW VALUE_0_3
MOVWF ROTVAL
CALL WRITEBYTE
MOVLW VALUE_0_4
MOVWF ROTVAL
CALL WRITEBYTE
MOVLW VALUE_0_5
MOVWF ROTVAL
CALL WRITEBYTE
BSF GPIO,4 ;/CE = 1 CHIP DISABLED = COMMAND
EXECUTED
CLRWDT

;========COMMAND 7====================================================
BCF GPIO,4 ; /CE = 0 = Chip enable
MOVLW COMMAND1 ;PLL Wert1
MOVWF ROTVAL
CALL WRITEBYTE
MOVLW VALUE_1_0
MOVWF ROTVAL
CALL WRITEBYTE
MOVLW VALUE_1_1
MOVWF ROTVAL
CALL WRITEBYTE
MOVLW VALUE_1_2
MOVWF ROTVAL
CALL WRITEBYTE
MOVLW VALUE_1_3
MOVWF ROTVAL
CALL WRITEBYTE
BSF GPIO,4 ;/CE = 1 CHIP DISABLED = COMMAND
EXECUTED
CLRWDT

BCF GPIO,4 ; /CE = 0 = Chip enable


MOVLW COMMAND1+0x80 ;READBACK
MOVWF ROTVAL
CALL WRITEBYTE
CALL READBYTE
MOVLW VALUE_1_0
CALL COMPAREANDRESET
CALL READBYTE
MOVLW VALUE_1_1
CALL COMPAREANDRESET
CALL READBYTE
MOVLW VALUE_1_2

CALL READBYTE
MOVLW VALUE_1_3

BSF GPIO,4 ;/CE = 1 CHIP DISABLED = COMMAND


EXECUTED
CLRWDT
;========COMMAND 8====================================================
BCF GPIO,4 ; /CE = 0 = Chip enable
MOVLW COMMAND2 ;PLL Wert1
MOVWF ROTVAL
CALL WRITEBYTE
MOVLW VALUE_2_0
MOVWF ROTVAL
CALL WRITEBYTE
MOVLW VALUE_2_1
MOVWF ROTVAL
CALL WRITEBYTE
BSF GPIO,4 ;/CE = 1 CHIP DISABLED = COMMAND
EXECUTED
CLRWDT

;========COMMAND 9====================================================
BCF GPIO,4 ; /CE = 0 = Chip enable
MOVLW COMMAND3 ;PLL Wert1
MOVWF ROTVAL
CALL WRITEBYTE
MOVLW VALUE_3_0
MOVWF ROTVAL
CALL WRITEBYTE
MOVLW VALUE_3_1
MOVWF ROTVAL
CALL WRITEBYTE
BSF GPIO,4 ;/CE = 1 CHIP DISABLED = COMMAND
EXECUTED
CLRWDT

;========COMMAND 4====================================================

BCF GPIO,4 ; /CE = 0 = Chip enable


MOVLW COMMAND4 ;PLL Wert1
MOVWF ROTVAL
CALL WRITEBYTE
MOVLW VALUE_4_0
MOVWF ROTVAL
CALL WRITEBYTE
MOVLW VALUE_4_1
MOVWF ROTVAL
CALL WRITEBYTE
MOVLW VALUE_4_2
MOVWF ROTVAL
CALL WRITEBYTE
MOVLW VALUE_4_3
MOVWF ROTVAL
CALL WRITEBYTE
MOVLW VALUE_4_4
MOVWF ROTVAL
CALL WRITEBYTE
MOVLW VALUE_4_5
MOVWF ROTVAL
CALL WRITEBYTE
BSF GPIO,4 ;/CE = 1 CHIP DISABLED = COMMAND
EXECUTED
CLRWDT

;========COMMAND 5====================================================
BCF GPIO,4 ; /CE = 0 = Chip enable
MOVLW COMMAND5 ;PLL Wert1
MOVWF ROTVAL
CALL WRITEBYTE
MOVLW VALUE_5_0
MOVWF ROTVAL
CALL WRITEBYTE
MOVLW VALUE_5_1
MOVWF ROTVAL
CALL WRITEBYTE
MOVLW VALUE_5_2
MOVWF ROTVAL
CALL WRITEBYTE
BSF GPIO,4 ;/CE = 1 CHIP DISABLED = COMMAND
EXECUTED
CLRWDT

;========COMMAND 6====================================================
BCF GPIO,4 ; /CE = 0 = Chip enable
MOVLW COMMAND6 ;PLL Wert1
MOVWF ROTVAL
CALL WRITEBYTE
MOVLW VALUE_6_0
MOVWF ROTVAL
CALL WRITEBYTE
MOVLW VALUE_6_1
MOVWF ROTVAL
CALL WRITEBYTE
MOVLW VALUE_6_2
MOVWF ROTVAL
CALL WRITEBYTE
MOVLW VALUE_6_3
MOVWF ROTVAL
CALL WRITEBYTE
BSF GPIO,4 ;/CE = 1 CHIP DISABLED = COMMAND
EXECUTED
CLRWDT
INNERLOOP

CLRWDT
GOTO INNERLOOP
END

Das könnte Ihnen auch gefallen