beautypg.com

Texas Instruments MSP50C6xx User Manual

Page 360

background image

Initializing the MSP50C6xx

6-6

mov ap0,0

;clear accum pointer 0

mov ap1,0

;clear accum pointer 1

mov ap2,0

;clear accum pointer 2

mov ap3,0

;clear accum pointer 3

mov r0,0

;clear register 0

mov r1,0

;clear register 1

mov r2,0

;clear register 2

mov r3,0

;clear register 3

mov r4,0

;clear register 4

mov r5,0

;clear register 5

mov r6,0

;clear register 6

mov r7,0

;clear register 7

mov sv,0

;clear shift value register

mov TOS,*0x000

;clear top of stack register

mov PH,*0x000

;clear product high register

mov MR,*0x000

;clear multiplier register

;****************************************************************
; Choose the source for the reference oscillator. Set the PLLM
; register accordingly (in this case for a CPU clock of 8 MHz)
; and then set TIMER 2 to a 200 ms period.
; Go to sleep (do an IDLE) and wake up when the clock has
; reached full speed and is stable.
;****************************************************************
#if CRO_FLAG

mov a0,CROENABLE

;enable crystal oscillator

#else ;Use BIST to determine P or C part
;––––– BOB 5/00 –––––
IN A0,0x2F ;On uninitialized P parts, port
0x2F is zero

andb

a0,0xff

;only want lower 8 bits

JNZ ITS_A_C_PART

ITS_A_P_PART

mov A0,RESISTORTRIM

;for P614 the user supplies the trim value

jmp setup_trim ;Now set up the trim in ClkSpdCtrl

ITS_A_C_PART
in A0,RTRIM ;for C614 read trim value from
register
;––––– BOB 5/00 –––––

setup_trim

and a0,0x3f

;only want lower 6 bits

mov a0~,a0

;save a copy for later

mov sv,10

;need to shift left by 10

shltpl a0,a0

;bit 1 is now bit 11, bit 0 now bit 10

or

a0,RTOENABLE

;enable resistor–trimmed oscillator

and a0,~IDLEBIT

;clear bit 10

; GJM 1.10.99
; 6 bit trim resides in bits 15–11 and bit 9 (LSB of trim value)

and a0~,a0~,0x01

;look at bit 0 of trim value

jz

trimbit0

;do nothing if it is zero

or

a0,0x0200

;else set bit 9

trimbit0
#endif