📄 initc5402bak.asm
字号:
;.mmregs
.include MMRegs.h
.global _InitC5402,_InitMcBSP0
.global _lightall_7279 ,_Reset_7279
.ref us_delay ,ms_delay
_InitC5402:
NOP
NOP
NOP
LD #0, DP ; reset data-page pointer
******* Disable All Interrupts *******
SSBX INTM ; disable (mask) global(CPU) intrpts
STM #0x0000, IMR ; disable peripheral interrupts
STM #0xFFFF, IFR ; clear the intrupts' flags
******* Configure C5402 System Registers *******
STM #0x3FE1,PMST
STM #0x7FFF, SWWSR ; 7 wait cycle for IO space &
; data&prog spaces
STM #0x0001,SWCR ; SWSM = 1 Wait states in SWWSR are multiplied by 2
STM #0x7000,BSCR ; 0=RES BH=0 The bus holder is disabled.
; HBH = 0 hpi bus holder is disabled.
;IACKOFF = 0 The IACK signal output off function is disabled
;DIVFCT = 11 CLKOUT is divided by 4 from the DSP clock
;CONSEC = 0 Bank-switching on 32K bank boundaries only.
STM #0x1800,ST0 ; ST0 at default setting
STM #0x2900,ST1 ; ST1 at default (note:INTX=1)
; MC mode&OVLY=1, vectors at 3F80h
;DROM=1 OVLY=1
****** Set up Timer Control Registers *******
STM #0x0010, TCR ; stop on-chip timer0
******* Setup System (CPU) Clock *******
; STM #0, CLKMD ; software setting of DSP clock PLL OFF RATIO = 0.5
; 15 14 13 12 **| 11 | 10 9 8 ** 7 6 5 4 ** 3 | 2 | 1 | 0 |
; PLLMUL (R/W) PLLDIV(R/W) PLLCOUNT (R/W) PLLON/OFF(R/W) PLLNDIV(R/W) PLLSTATUS(R)
;STM #0, CLKMD ; (to divider mode before setting)
;STM #0x3007, CLKMD ; set C5402 DSP clock to 40MHz
nop
nop
nop
stm #0H, CLKMD
stm #0H, CLKMD
nop
nop
nop ;switch to DIV mode clkout= 1/2 clkin
stm #1007h, CLKMD ;switch to PLL X 5 mode
statu:
ldm CLKMD, A
and #01b, A ;poll STATUS bit
bc statu, AEQ
nop
nop
STM #0FFFFH,IFR
STM #0x0030, IMR ; able MCBSP0 RX TX INTERRUPT
RSBX INTM ; able (mask) global(CPU) intrpts
NOP
NOP
RET
************************************************************
**** McBSP0 CONFIG GPIO MODE
************************************************************
_InitMcBSP0:
******* Reset McBSP0
STM SPCR1, McBSP0_SPSA
STM #0000h, McBSP0_SPSD
STM SPCR2, McBSP0_SPSA ;
STM #0000h, McBSP0_SPSD ;(XRST=RRST=0)
NOP ;
RPT #1FFFH
NOP
STM PCR, McBSP0_SPSA
STM #3000h, McBSP0_SPSD ;XIOEN = 1 DX, FSX and CLKX are configured as general-purpose I/Os and
;;;;;;;;;; ;do not function as serial port pins
;RIOEN = 1 DR, FSR, CLKR and CLKS are configured as general-purpose I/Os
;pins and do not function as serial port
RET
**************************************************************
_lightall_7279:
STM PCR, McBSP0_SPSA ;CS<=FSR CLK<=CLKX DATA<=CLKR
STM #3F04h, McBSP0_SPSD ; 1 0 0
NOP
NOP
STM PCR, McBSP0_SPSA
STM #3F00h, McBSP0_SPSD ; 000
NOP ; delay 45us
stm #45,ar3
call us_delay
STM PCR, McBSP0_SPSA ; 0xBF
STM #3F03h, McBSP0_SPSD ;011
stm #5,ar3
call us_delay
STM PCR, McBSP0_SPSA
STM #3F01h, McBSP0_SPSD ;001 1
stm #5,ar3
call us_delay
STM PCR, McBSP0_SPSA ;
STM #3F02h, McBSP0_SPSD ;010
stm #5,ar3
call us_delay
STM PCR, McBSP0_SPSA
STM #3F00h, McBSP0_SPSD ;000 2
stm #5,ar3
call us_delay
STM PCR, McBSP0_SPSA ;
STM #3F03h, McBSP0_SPSD ;011
stm #5,ar3
call us_delay
STM PCR, McBSP0_SPSA
STM #3F01h, McBSP0_SPSD ;001 3
stm #5,ar3
call us_delay
STM PCR, McBSP0_SPSA ;
STM #3F03h, McBSP0_SPSD ;011
stm #5,ar3
call us_delay
STM PCR, McBSP0_SPSA
STM #3F01h, McBSP0_SPSD ;001 4
stm #5,ar3
call us_delay
STM PCR, McBSP0_SPSA ;
STM #3F03h, McBSP0_SPSD ;011
stm #5,ar3
call us_delay
STM PCR, McBSP0_SPSA
STM #3F01h, McBSP0_SPSD ;001 5
stm #5,ar3
call us_delay
STM PCR, McBSP0_SPSA ;
STM #3F03h, McBSP0_SPSD ;011
stm #5,ar3
call us_delay
STM PCR, McBSP0_SPSA
STM #3F01h, McBSP0_SPSD ;001 6
stm #5,ar3
call us_delay
STM PCR, McBSP0_SPSA
STM #3F03h, McBSP0_SPSD ;011
stm #5,ar3
call us_delay
STM PCR, McBSP0_SPSA
STM #3F01h, McBSP0_SPSD ;001 7
stm #5,ar3
call us_delay
STM PCR, McBSP0_SPSA ;
STM #3F03h, McBSP0_SPSD ;011
stm #5,ar3
call us_delay
STM PCR, McBSP0_SPSA
STM #3F01h, McBSP0_SPSD ;001 8
stm #5,ar3
call us_delay
STM PCR, McBSP0_SPSA
STM #3F04h, McBSP0_SPSD ;100
stm #85,ar3
call us_delay
NOP
NOP
RET
**************************************************************
_Reset_7279:
STM PCR, McBSP0_SPSA ;CS<=FSR CLK<=CLKX DATA<=CLKR
STM #3F04h, McBSP0_SPSD ; 1 0 0
NOP
NOP
STM PCR, McBSP0_SPSA
STM #3F00h, McBSP0_SPSD ; 000
NOP ; delay 45us
stm #45,ar3
call us_delay
STM PCR, McBSP0_SPSA ;0xA4
STM #3F03h, McBSP0_SPSD ;011
stm #5,ar3
call us_delay
STM PCR, McBSP0_SPSA
STM #3F01h, McBSP0_SPSD ;001 1
stm #5,ar3
call us_delay
STM PCR, McBSP0_SPSA ;
STM #3F02h, McBSP0_SPSD ;010
stm #5,ar3
call us_delay
STM PCR, McBSP0_SPSA
STM #3F00h, McBSP0_SPSD ;000 2
stm #5,ar3
call us_delay
STM PCR, McBSP0_SPSA ;
STM #3F03h, McBSP0_SPSD ;011
stm #5,ar3
call us_delay
STM PCR, McBSP0_SPSA
STM #3F01h, McBSP0_SPSD ;001 3
stm #5,ar3
call us_delay
STM PCR, McBSP0_SPSA ;
STM #3F02h, McBSP0_SPSD ;010
stm #5,ar3
call us_delay
STM PCR, McBSP0_SPSA
STM #3F00h, McBSP0_SPSD ;000 4
stm #5,ar3
call us_delay
STM PCR, McBSP0_SPSA ;
STM #3F02h, McBSP0_SPSD ;010
stm #5,ar3
call us_delay
STM PCR, McBSP0_SPSA
STM #3F00h, McBSP0_SPSD ;000 5
stm #5,ar3
call us_delay
STM PCR, McBSP0_SPSA ;
STM #3F03h, McBSP0_SPSD ;011
stm #5,ar3
call us_delay
STM PCR, McBSP0_SPSA
STM #3F01h, McBSP0_SPSD ;001 6
stm #5,ar3
call us_delay
STM PCR, McBSP0_SPSA
STM #3F02h, McBSP0_SPSD ;010
stm #5,ar3
call us_delay
STM PCR, McBSP0_SPSA
STM #3F00h, McBSP0_SPSD ;000 7
stm #5,ar3
call us_delay
STM PCR, McBSP0_SPSA ;
STM #3F02h, McBSP0_SPSD ;010
stm #5,ar3
call us_delay
STM PCR, McBSP0_SPSA
STM #3F00h, McBSP0_SPSD ;000 8
stm #5,ar3
call us_delay
STM PCR, McBSP0_SPSA
STM #3F04h, McBSP0_SPSD ;100
stm #85,ar3
call us_delay
NOP
NOP
RET
**************************************************************
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -