Sie sind auf Seite 1von 10

MCT : Laborprotokoll

MICROCONTROLLERTECHNIK

Nr./ Titel der bung:

4. ADC / Timer

Protokollabgabe:

29.04.2012

Protokollverfasser:

Leitner Andreas
Niederwieser Lukas

Unterschriften :

Leitner/Niederwieser

MCT : Laborprotokoll

1.)

ADC

Welche Control Register des ADC10 Devices werden initialisiert?


ADC10CTL0 (Control Register 0 )
ADC10CTL1 (Control Register 1 )
Welche Werte bzw. welche Bits wurden gesetzt?
ADC10CTL0 = ADC10CTL0 & ~ENC;
ADC10CTL0 = ctl0;
ADC10CTL1 = ctl1;

Bild 1.1 Control Register 0

ctl0 (Darstellung der gesetzten Bits)


ENC = Enable Conversion Bit auf 1
ADC10IE = Interrupt Enable auf 1
ADC10ON = ADC10 On Bit auf 1
REFON = ADC10 Reference generator on bit auf 1
REF2_5V = Reference generator voltage auf 1( 2.5V )
MSC = Multiple Sample and Conversion auf 1
ADC10SR = ADC10 Sampling Rate auf 1 ( 50ksps )
ADC10SHT_2 = Sample and Hold Time auf 10 gesetzt (16 x ADC10CLK)
SREF_1 = Select Reference auf 001 gesetzt (VR+ = VREF+ and VR = VSS )

Leitner/Niederwieser

MCT : Laborprotokoll

Bild 1.2 Control Register 1

ctl1 (Darstellung der gesetzten Bits)


CONSEQ_1 = Conversion sequence mode select auf 01 (Sequence of channels)
ADC10SSEL_0 = ADC10 Clock source select auf 00 (ADC10OSC ~ 5Mhz)
SHS_2 = Sample hold source select auf 10 (Timer_A.OUT0)
INCH_4 = Input Channel select auf 0100 (Channel A4)
Welche Clock wurde fr die ADC10CLK gewhlt?
Es wurde der ADC10OSC gewhlt welcher mit ca. 5Mhz taktet
Welche Frequenz hat die ADC10CLK?
Die Frequenz (ADC_FREQUENCY) betrgt 100Hz
Welche Clock wurde als Quelle fr das Samplen verwendet?
16 x ADC10CLK
Welche Sample Time wird bentigt?
Berechnen Sie diese. (siehe MSP430x2xx User Guide, Seite 20-8)
Rs = 120k || 1M = 107k ( Spannungsteiler der Sensoreingangstufen )
Ri= 2k
Ci= 27pF
tsample> (Rs + Ri ) * ln(2^11) * Ci = 22.4s
13*ADC10OSC = 2.6us
t_sync = 0.2us
Entspricht dies der eingestellten Sample Time?
16*ADC10OSC = 16 * 1/5Mhz = 3.2us
Stimmt mit der eingestellten Sample Time nicht berein.
D.h der Kondensator wird nicht zur Gnze aufgeladen und eine genaue Umrechnung auf die
Sensorwerte ist so nicht genau mglich.
Leitner/Niederwieser

MCT : Laborprotokoll

Wie berechnet sich aus Eingangspannung und den Referenzspannungen der Wert,
den eine AD-Konvertierung liefert?
NADC = 1023 x (Vin Vr-) / (Vr+ - Vr-)

Welche Referenzspannungen werden fr CrazyCar verwendet?


REF2_5V = High 2.5V
Wie wird die gemessene Versorgungsspannung berechnet?
ADC_buffer[0]*93 >> 10
Rechtsshift um 10 : Division durch 1024
93... Ausgleichsfaktor ( wegen Spannungsteiler und falscher Sample Time)
Multiplikation mit 10: Damit nicht mit Floating Point Zahlen gerechnet wird, das Komma wird
extra eingefgt um am Display die Floating Point Zahl darzustellen.

Leitner/Niederwieser

MCT : Laborprotokoll

Teil 2:
(1) ADC10 Konfiguration:
Lesen Sie mittels ADC auch die Werte Kompass_X, Kompass_Y ein.
Stellen Sie auch die zustzlich eingelesenen Werte am Bildschirm dar

Leitner/Niederwieser

MCT : Laborprotokoll

Leitner/Niederwieser

MCT : Laborprotokoll

2.) Timer:

Welche Control Register des Timer Devices werden initialisiert?


Timer A:
TACCTL0 = ctl0;
TACCTL1 = ctl1;
TACCTL2 = ctl2;
TACTL = ct1;

Timer B:
TBCCTL0 = ctl0;
TBCCTL1 = ctl1;
TBCCTL2 = ctl2;
TBCTL = ct1;

Timer A:

Bild 2.1 Control Register Timer A

TACCTL1 = 0
TACCTL2 = 0
TACTL:
TASSEL_2 = Timer_A clock source select auf 10 (SMCLK)
MC_1 = Mode control auf 01 (Up Mode: Timer counts to TACCR0)
TAIE = Timer interrupt enable auf 1 (Interrupt enabled)
TACCTL0 = PWM Outputmodegesetzt auf 3 (PWM Set/Reset)

Leitner/Niederwieser

MCT : Laborprotokoll

Timer B:

Bild 2.2 Control Register Timer B

TBCCTL1 = PWM Output Mode 6 (PWM Toggle/Set)


TBCCTL2 = PWM Output Mode 6 (PWM Toggle/Set
TBCTL:
TASSEL_2 = Timer_B clock source select auf 10 (SMCLK)
MC_1 = Mode control auf 01 (Up Mode: Timer counts to TBCCR0
TBCCTL0 = 0

Welche Source Clock wird fr die TimerClock verwendet ?


Es wurde der SMCLK ( System Master Clock ) verwendet.

In welchem Modus wird der Timerbetrieben ?


Der Timer wird im Up Mode ( Timer zhlt bis TACCR0 bwz. TBCCR0 )

Welche Capture-Compare Module (Register) werden verwendet?


Mit welchen Werten werden sie beschrieben?
TBCCR0 bzw. TACCR0 = periode ( Timer Periode )
TBCCR1 bzw. TACCR1 = duty1 ( Pulslnge 1 )
TBCCR2 bzw. TBCCR2 = duty2 ( Pulslnge 2 )

Leitner/Niederwieser

MCT : Laborprotokoll

Timer A:
TACCR0 = ADC_Periode( SMCLK/ADC_FREQUENCY )
TACCR1 = 0
TACCR2 = 0
Timer B:
TBCCR0 = PERIODE ( SMCLK/PWM_FREQUENCY )
TBCCR1 = NEUTRAL ( 3000 )
TBCCR2 = NEUTRAL ( 3000 )
Welche Timer Ausgnge werden verwendet und wozu?
Timer B:
TBCCR1 fr PWM Signal des DC Motors (Antrieb)
TBCCR2 fr PWM des Servos ( Lenkung )
Timer A:
Wird in der Demo Software nicht verwendet

Leitner/Niederwieser

MCT : Laborprotokoll

Erzeugen Sie 2 PWM Signale von denen ein Signal ein Tastverhltnis von 40:60 aufweist.
Das andere Signal stellen Sie invertiert dazu dar. Achten Sie dabei darauf, dass die PWM
Signale fr break before make konfiguriert sind. D.h dass bevor ein on signalisiert wird
beide Signale gemeinsam einen off Zustand zeigen:

Konfiguration :

Bild 2.3 PWM - Signal

Gerteverzeichnis:
Gert

Bezeichnung

Seriennummer

Oszilloskop
Handmultimeter

Agilent DSO-X 3012A


Metrix MX44

4535061654
54000295
Tabelle 2.1

Leitner/Niederwieser

10

Verwendete Messgerte