beautypg.com

Motorola DSP56301 User Manual

Page 305

background image

DSP56301 User’s Manual

A

-9

; Switch to ISA mode

movep X0,X:M_DCTR ; Software personal reset

move #$010020,y1 ; width 16, offset 32

; (also used as replacment to needed NOP after sw

reset!)

movep #$3a0000,X:M_DCTR ; HM=$3 (UB)

; HIRD=1 (HIRQ_ pin - drive high enabled)

; HIRH=0 (HIRQ_ pin - handshake disabled)

; HRSP=1 (HRST pin - active low)

; HDRP=0 (HDRQ pin - active high)

; HTAP=0 (HTA pin - active high)

; HDSM=0 (Data-strob pin mode enabled)

; read the "magic sequence" 32 consecutive words with value $37

_LBLC

do #32,_LOOP3 ;

jclr #2,X:M_DSR,* ; Wait for SRRQ to go high (i.e. data ready)

movep X:M_DRXR,A1 ; Store 24-bit data into A1

and #$00ffff,A ; Mask upper byte

cmp #$37,A ; Compare the 24-bit dat to $000037

beq <_LBLD ; If dat = $37 then go back to loop

enddo ; else break the loop and retry

bra <_LBLC

_LBLD

nop

_LOOP3

; read new CBMA value ("ISA base address")

jclr #2,X:M_DSR,* ; Wait for SRRQ to go high (i.e. data ready)

movep X:M_DRXR,A1 ; Store 24-bit data into A1

; Switch to Self Configuration mode

movep X0,X:M_DCTR ; Software personal reset

movep A1,X:M_DPMC ; write to DPMC

; (also used as replacment to needed NOP after sw

reset!)

movep b1,X:M_DCTR ; Configure HI32 as Self-Config

rep #4

movep X0,X:M_DPAR ; write to DPAR (CSTR+CCMR,CCCR+CRID,CLAT,CBMA)

; Switch to ISA mode

movep X0,X:M_DCTR ; Software personal reset

move #$010010,x1 ; width 16, offset 16

; (also used as replacment to needed NOP after sw

reset!)

movep #$3a0010,x:M_DCTR ; HM=$3 (UB)

; HIRD=1 (HIRQ_ pin - drive high enabled)

; HIRH=0 (HIRQ_ pin - handshake disabled)

; HRSP=1 (HRST pin - active low)

; HDRP=0 (HDRQ pin - active high)

; HTAP=0 (HTA pin - active high)

; HDSM=0 (Double-strob pin mode enabled)

; HF4 =1 (turn on flag 4 for handshake)

jclr #2,X:M_DSR,* ; Wait for SRRQ to go high (i.e. data ready)

movep X:M_DRXR,a0 ; Store number of words

jclr #2,X:M_DSR,* ; Wait for SRRQ to go high (i.e. data ready)

movep X:M_DRXR,x0 ; Store starting address

jclr #2,X:M_DSR,* ; Wait for SRRQ to go high (i.e. data ready)