init_54x.asm

来自「VC5402的MCBSP作为通用串口的程序」· 汇编 代码 · 共 65 行

ASM
65
字号
***********************************************************************
* MODULE NAME:  init_54x.asm                                          *
*                                                                     *
                .mmregs
                .include "init_54x.inc" ;包含VC5402初始化的各个寄存器
                .include "mcbsp54x.inc" ;多通道缓冲串行口的各个寄存器
                .global  _McBSP_init
                .def     _init_54     
K_IPTR_init     .set  0080h
                .text
***************初始化系统***************************
_init_54:     
 				NOP
				LD 		#0, DP     ;复位数据页指针
****************使所有的中断无效******************************
				SSBX   INTM        ;屏蔽全局中断
				STM    #0x0000,IMR ;屏蔽所有的中断
				STM    #0x0FFFF,IFR ;清除中断标志寄存器
****************时钟方案选择**********************************
           		STM		#0, CLKMD	;DSP系统时钟的软件设置
				STM     #0,	CLKMD   
				STM		#0x9007,CLKMD ;设置VC5402 DSP时钟到5MHz
****************配置C5402系统寄存器*******************************
				STM		#0x7492,SWWSR ;I/O等待2个时钟,数据和程序空间无等待
				STM     #0x0000,BSCR  ;为块切换等待0个时钟
				STM     #0x1800,ST0
				STM		#0x2900,ST1
				STM		#0x0FFE0,PMST  ;0x0FFA0
****************改变中断向量表位置*****************************
			    LDM   PMST,        A
		   		AND   #7FH,        A 
		   		OR    #K_IPTR_init,     A 
		   		STLM  A,           		PMST
				RETD
				NOP
				NOP
****************多通道缓冲串行通信端口初始化*************************************
*(1)	设置SPRCR[1,2]中的XRST=RRST=FRST=0,如果马上离开复位状态这一步不需要。**
*(2)	只对需要的McBSP配置寄存器进行编程(不是数据寄存器)。
*(3)	等待2个位时钟。确保内部正确的同步。
*(4)	设置所需要的数据采集。
*(5)	设置XRST=RRST=1,使串行端口有效。注意这时写到SPCR[1,2]中的值只是复位的位变成1。剩下的的位域与上面的第二步的值相同。
*(6)	如果需要内部的产生帧同步信号,设置FRST=1。
*(7)	等待2个时钟用于使接收器和发送器有效。

_McBSP_init:
*********************串行端口复位******************************************
				STM		#SPCR10_SUBADDR,SPSA0 ;复位串行端口
				STM		#0000h,SPSD0        ;/RRST=0 ;控制寄存器1配置
				STM		#SPCR20_SUBADDR,SPSA0
				STM		#0000h,SPSD0        ;/XRST=0 ;控制寄存器2配置			
				RPT		#512
				NOP 

				
				STM		#PCR0_SUBADDR,SPSA0   
				STM		#3F25h,SPSD0   
				
				

				RPT		#512
				NOP
				
			.end

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?