📄 init_des.asm
字号:
.title "DES5410PP-U init..."
.global _init_des,is_send_data,AD_Buffer
.global is_new_data,DA_Buffer,transmit,receive,_timer
.mmregs
gpiocr .set 3ch
gpiosr .set 3dh
dxr10 .set 23h
drr10 .set 21h
spsa0 .set 38h
spcr10 .set 39h
spcr20 .set 39h
xcr10 .set 39h
pcr0 .set 39h
dxr11 .set 43h
spsa1 .set 48h
spcr11 .set 49h
spcr21 .set 49h
xcr11 .set 49h
pcr1 .set 49h
srgr1 .set 49h
srgr2 .set 49h
swcr .set 2bh
;bscr .set 29h
;--------------------------------------------------------------------------------
; same global variable in 0x60 - 0x7f !
; use address maybe start from 0x70!, the 60h -6fh are reserved for DES5402PP-U !
;--------------------------------------------------------------------------------
mcbsp_init .set 071h
mcbsp_reg .set 072h
;-------------------------------------------------------------------------
.text
_init_des:
pshm st0
pshm st1
ssbx intm ; close all int ! (ssbx intm)
ssbx sxm ; extend sign !
ssbx frct ; faction multiply
rsbx cpl ; cpl=0, use DP !
ld #0,dp ; dp=0
stm #0ffffh,ifr ; clear all int !
; andm #0ffcfh,imr ; clear BXINT0 & BRINT0
; orm #20h,imr ; bit5->BXINT0, bit4->BRINT0, enable BXINT0
stm #20h,imr ; only enable BXINT0 !
stm #02h,29h
stm #0,swcr
;/*------------------------------------------------------------------------
; The following codes switch to 100MHz clock !
;-------------------------------------------------------------------------*/
nop
nop
;***********************************************************************
; initalize RAM, Variable....
;***********************************************************************
stm #60h,ar0 ; 60h -> ar0
xor a,a ; 0 -> a
rpt #17h ; clear 60h-78h to 0
stlm a,*ar0+
stm #0aa55h,mcbsp_init ; when mcbsp_init==0xaa55, transmit for init ac01
;******************************************************************
; The following codes are used to initalize McBSP0 !
;******************************************************************
stm #0,spsa0 ; choose SPCR10
stm #2000h,spcr10 ; receive sign_extend in DRR
stm #1,spsa0 ; choose SPCR20
stm #0c0h,spcr20 ; fs -> int !
stm #2,spsa0 ; choose RCR10
stm #40h,39h
stm #3,spsa0 ; choose RCR20
stm #0,39h
stm #4,spsa0 ; choose XCR10
stm #40h,xcr10
stm #5,spsa0 ; choose XCR20
stm #0,39h
stm #0eh,spsa0 ; choose PCR0
stm #0dh,pcr0 ; fs is low active, rise edge of clkx, falling edge
; of clkr
stm #7h,spsa0
stm #8000h,39h
rpt #0fffh
nop
stm #00h,dxr10
ldm 22h,a
stm #1,38h
stm #0c1h,39h ; start McBSP0 send !
ld #603h,a
rsbx intm ; enable all int !
;----------------------------------------------------------------------
; The following codes are initalized AC01, ALL AC01 setup same !
;----------------------------------------------------------------------
idle 1
idle 1
idle 1
idle 1 ; reset two AC01 by software !
stm #600h,mcbsp_reg
idle 1 ; wait for int .....
stm #3,mcbsp_reg
idle 1 ; send #3
stm #00119h,mcbsp_reg ; fs=10M/2/A/B= 8k
; flp=10M/2/40/A= 5k (all pass)
; fhp=fs/200= 125Hz (not use !)
; A=25(0x19),B=25(0x19)
idle 1 ; send 1th regs -> 19h
stm #3,mcbsp_reg
idle 1 ; send #3
stm #00219h,mcbsp_reg
idle 1 ; send 2th regs -> 19h
stm #3,mcbsp_reg
idle 1 ; send #3
stm #00300h,mcbsp_reg
idle 1 ; send 3th regs -> 00h
stm #3,mcbsp_reg
idle 1 ; send #3
stm #00405h,mcbsp_reg
idle 1 ; send 4th regs -> 05h (AD & DA 0 dB)
stm #3,mcbsp_reg
idle 1 ; send #3
stm #00505h,mcbsp_reg
idle 1 ; send 5th regs -> 05h (highpass filter disable)
stm #3,mcbsp_reg
idle 1 ; send #3
stm #00600h,mcbsp_reg
idle 1 ; send 6th regs -> 00h
stm #3,mcbsp_reg
idle 1 ; send #3
stm #00700h,mcbsp_reg
idle 1 ; send 7th regs -> 0
stm #3,mcbsp_reg
idle 1 ; send #3
stm #800h,mcbsp_reg
idle 1 ; send 8th regs -> 0
stm #0h,mcbsp_reg
stm #0,38h
stm #2001h,39h ; start MCbsp0 receive !
;******************************************************************************
orm #38h,imr ; bit5->BXINT0, bit4->BRINT0, enable BXINT0 & BRINT0 & TIMER0
popm st1
popm st0
ret ; return and intm=0 disable all int !
;*********************************************************************
; The following codes are serived for McBSP0' transmit !
;*********************************************************************
;********************************************************************
; The following codes are serived for McBSP0' receive ! use AR5,BK!
;*********************************************************************
;********************************************************************
; The following codes are serived for vc5402' TIMER !
;*********************************************************************
_pc_uartint:
_mcu_uartint:
__ret
rete
.end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -