[an error occurred while processing this directive]
|
Конфигурю спокойно, после сброса ДСП и его, т.е. он после сброса работает в соотв. с настройками по умолчанию, далее я спокойно устанавливаю свои настройки.
*************************************************************************
.include regs.h
.def init_mcbsp0
NOP_REQ .set 0000h ; Pseudo reg0 val
REG1_VAL .set 0200h ; by default not change
REG2_VAL .set 0402h ; set freqensy divider by 2 Fs = MCLK/(256*2) = 7372800/(256*2) = 14400
REG3_VAL .set 0609h ; enable 16 bit ADC mode and flag = 1
REG4_VAL .set 0805h ; output = -12 dB /input gain = 6 dB
;was 0807h ; output = -6 dB /input gain = 6 dB
SEC_REQ .set 0001h
.text
;==========================================================
; Initialize AD10 REG1, REG2, REG3, REG4
;==========================================================
init_mcbsp0:
stm SPCR2, McBSP0_SPSA ; disable McBSP Tx
andm 0FFFEh, McBSP0_SPSD ; wait 2 SCLK cycle
rpt #10
nop
nop
stm SPCR1, McBSP0_SPSA ; disable McBSB Tx
andm 0FFFEh, McBSP0_SPSD ; wait 2 SCLK cycle
rpt #10
nop
nop
stm SPCR1, McBSP0_SPSA ;
stm #4000h, McBSP0_SPSD ; Reset McBSP0 Receiver
stm SPCR2, McBSP0_SPSA ;
stm #0300h, McBSP0_SPSD ; Reset McBSP0 Transmitter; spcr2=0x0300 for free running
stm RCR1, McBSP0_SPSA ;
stm #0040h, McBSP0_SPSD ;
stm RCR2, McBSP0_SPSA ;
stm #0040h, McBSP0_SPSD ;
stm XCR1, McBSP0_SPSA ;
stm #0040h, McBSP0_SPSD ;
stm XCR2, McBSP0_SPSA ;
stm #0040h, McBSP0_SPSD ;
stm SRGR1, McBSP0_SPSA ;
stm #0001h, McBSP0_SPSD ;
stm SRGR2, McBSP0_SPSA ;
stm #0000h, McBSP0_SPSD ;
stm PCR, McBSP0_SPSA ;
stm #000Ch, McBSP0_SPSD ;
*=============================================================
* Rx and Tx enable instructions are removed
* Rx and Tx are enabled in the caller function
*=============================================================
stm 7FFFh,IFR ; clear BXINT0 flag
stm 0020h,IMR ; unmask BXINT0
stm SPCR2, McBSP0_SPSA ; enable McBSP0 Tx
orm 0001h, McBSP0_SPSD ; wait 2 SCLK cycle
nop
nop
nop
nop
ld #REG1_VAL,0,A ;
calld WAIT ; send to AD10
nop
nop
ld #REG2_VAL,0,A ;
calld WAIT ; send to AD10
nop
nop
ld #REG3_VAL,0,A
calld WAIT
nop
nop
ld #REG4_VAL,0,A ;
calld WAIT ; send to AD10
nop
nop
stm SPCR1, McBSP0_SPSA ; enable reciver
orm 0001h, McBSP0_SPSD ;
stm 0000h,IMR ; unmask BXINT0
stm 7FFFh,IFR ; clear BXINT1 flag
ld #0,A
stlm A,McBSP0_DXR1 ; ACCA=>McBSP0_DXR1
retd ; return
nop
nop
WAIT:
stm SEC_REQ, McBSP0_DXR1 ; McBSP1_DXR0=1
nop
stm 7FFFh,IFR ; clear BXINT1 flag
nop
idle 1 ; wait for BXINT0
stlm A,McBSP0_DXR1 ; ACCA=>McBSP0_DXR1
nop
stm 7FFFh,IFR ; clearBXINT0 flag
nop
idle 1 ; wait for BXINT0
retd ; return
nop
nop
.end
E-mail: info@telesys.ru