⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 initdsp.inc

📁 dsp自编程源代码
💻 INC
字号:
*********************************************************
*FILENAME:INITDSP.INC					*
*This include file contains the initial values of	*
*C542 configuration registers.				*
*BY:Wuchun            DATE:2002.8.7			*	
*Modified:彭洪     DATE:2005.2.4			*
*********************************************************



;Register Organization (06h)
;ST0:Status register 0  
;-------------------------
;|15-13|12|11| 10| 9 |8-0|
;-------------------------
;| ARP |TC| C|OVA|OVB|DP |
;--------------------------------------------------------------------------------------
;15-13	ARP	辅助寄存器指针。为了与'C5x、'C2x和'C2xx兼容而设置,一般不用
;12	TC	测试/控制标志。一些测试、比较等指令设置此标志。TC到值可以作为其它一些条
;		件执行指令到条件。
;11	C	如果ALU加运算产生了进位或减运算没有产生借位,则置1,否则置0。
;10	OVA	如果ALU作加法运算或MAC中的加法器运算结果产生了溢出,且结果存放到累加器A,
;		则OVA置1
;9	OVB	如果ALU作加法运算或MAC中的加法器运算结果产生了溢出,且结果存放到累加器B,
;		则OVA置1
;8-0	DP	数据页指针
;--------------------------------------------------------------------------------------
K_ARP	.set  000b<<13;左移<<<是逻辑左移
K_TC	.set  1b<<12
K_C	.set  0b<<11 
K_OVA	.set  0b<<10
K_OVB	.set  0b<<9
K_DP	.set  000000000b<<0
K_ST0	.set  K_ARP|K_TC|K_C|K_OVA|K_OVB|K_DP
;初始化结果K_ST0(1000h)
;|15-13| 12| 11| 10| 9 |   8-0   |
;| ARP | TC| C |OVA|OVB|    DP   |
;| 000 | 1 | 0 | 0 | 0 |000000000|


;Register Organization (07h)
;ST1:Status register 1  
;--------------------------------------------------
;| 15 | 14|13|12| 11 |10| 9 | 8 | 7 |  6 |  5 |4-0|
;--------------------------------------------------
;|BRAF|CPL|XF|HM|INTM|0 |OVM|SXM|C16|FRCT|CMPT|ASM|
;-------------------------------------------------------------------------------------
;15	BRAF	Block-repeat active flag,块重复有效标志。BRAF=1表示程序正处于重复执行
;		的块中。当块重复计数器递减到0时,BRAF清0。
;14	CPL	编译器模式位,CPL=0使用堆栈指针SP寻址,CPL=1使用页指针DP寻址
;13	XF	XF状态。直接设置XF引脚的状态。
;12	HM	Hold mode,保持模式,决定处理器进入保持方式后到操作。HM=0 CPU继续执行
;		HM=1 CPU停止执行
;11	INTM	全局中断屏蔽位。INTM=0 打开中断INTM=1 所有可屏蔽中断被屏蔽
;9	OVM	溢出模式。OVM决定在运算产生溢出时,存放到目的累加器的值。OVM=0 允许溢出
;	OVM=1 根据溢出方向,向目的累加器写入最大正数或最小负数。
;8	SXM	符号扩展模式。SXM=0 不作符号扩展SXM=1 运算时作符号扩展,表示有符号数运算。
;7	C16	C16=0 ALU作双精度算术运算C16=1 ALU作双16bit算术运算
;6	FRCT	小数乘法模式。
;5	CMPT	与'C5x兼容模式,一般为0。
;4-0	ASM	累加器移位模式。在存储累加器时指定一个移位值,-16~15。
;--------------------------------------------------------------------------------------
K_BRAF		.set  0b<<15
K_CPL		.set  1b<<14
K_XF		.set  1b<<13 
K_HM		.set  0b<<12
K_INTM		.set  1b<<11	;复位以后立即屏蔽中断
K_ST1_RES	.set  0b<<10
K_OVM		.set  0b<<9
K_SXM		.set  1b<<8
K_C16		.set  0b<<7
K_FRCT		.set  0b<<6
K_CMPT		.set  0b<<5
K_ASM		.set  00000b<<0
K_ST1	.set  K_BRAF|K_CPL|K_XF|K_HM|K_INTM|K_ST1_RES|K_OVM|K_SXM|K_C16|K_FRCT|K_CMPT|K_ASM
;初始化结果K_ST1(6900h)
;|15  | 14| 13|12| 11 |10| 9 | 8 | 7 |  6 | 5  | 4-0 |
;|BRAF|CPL| XF|HM|INTM| 0|OVM|SXM|C16|FRCT|CMPT| ASM |
;|  0 | 1 | 1 | 0|  1 | 0| 0 | 1 | 0 |  0 |  0 |00000|



;Register Organization (1dh)
;PMST:Processor mode status register  
;--------------------------------------------
;|15-7|   6  | 5  |  4 |  3 |   2  |  1 | 0 |
;--------------------------------------------
;|IPTR|MP/MC#|OVLY|AVIS|DROM|CLKOFF|SMUL|SST|
;--------------------------------------------------------------------------------------
;15-7	IPTR	中断向量表指针,不受RESET指令的影响。
;6	MP/MC#	微处理器/微计算机模式。MP/#MC=0 微计算机模式,片上ROM有效;(从片内ff80
;		执行)MP/#MC=1 微处理器模式,片上ROM无效。(从片外ff80执行)
;5	OVLY	对于5402,OVLY决定0000H到3FFFH程序存储空间的片内片外分配
;		OVLY=1, 0000H~007FH保留,程序无法占用。0080H~3FFFH为片内RAM
;		OVLY=0, 007FH~3FFFFH均为片外RAM
;4	AVIS	Address Visibility Mode。决定存取片内存储器时地址线是否发生变化。
;		AVIS=1 发生变化,AVIS=0 不发生变化。
;3	DROM	数据ROM。DROM=0 片上ROM都被映射到程序空间;DROM=1 片上部分ROM被映射到数据空间。
;2	CLKOFF	CLKOFF=1时,CLKOUT引脚无时钟信号输出。
;1	SMUL	乘法饱和。在MAC和MAS指令中,作加减运算前饱和。
;0	SST	存储时饱和。
;--------------------------------------------------------------------------------------
K_IPTR		.set  000000001b<<7;80h 其中1b是指80h中的高9位
K_MP_MC		.set  0b<<6
K_OVLY		.set  1b<<5
K_AVIS		.set  0b<<4
K_DROM		.set  0b<<3
K_CLKOFF	.set  1b<<2
K_SMUL		.set  0b<<1
K_SST		.set  0b<<0
K_PMST		.set  K_IPTR|K_MP_MC|K_OVLY|K_AVIS|K_DROM|K_CLKOFF|K_SMUL|K_SST
;初始化结果PMST(00a4h)
;|   15-7  |   6  |  5 |  4 |  3 |   2  |  1 | 0 |
;|   IPTR  |MP/MC#|OVLY|AVIS|DROM|CLKOFF|SMUL|SST|
;|000000001|   0  |  1 |  0 |  0 |   1  |  0 | 0 |

 
;Register Organization (28h)
;SWWSR:Software wait-state register  
;-----------------------------------------
;| 15|14-12|11-9 | 8-6 |   5-3  |   2-0  |
;-----------------------------------------
;|XPA| I/O |EDATA|IDATA|EPROGRAM|IPROGRAM|
;-----------------------------------------
;15	XPA	扩展程度地址控制,只读
;14-12	I/O	其值为I/O空间(0000h-FFFFh)的等待周期
;11-9	edata	其值为数据空间(8000h-FFFFh)的等待周期
;8-6	idata	其值为数据空间(0000h-7FFFh)的等待周期
;5-3	eprogram	其值为程序空间(8000h-FFFFh)的等待周期,XPA=0为程序空间
;			(40000h-7FFFFh)的等待周期,XPA=1
;2-0	iprogram	其值为程序空间(0000h-7FFFh)的等待周期,XPA=0为程序空间
;			(00000h-3FFFFh)的等待周期,XPA=1
;--------------------------------------------------------------------------------------
K_XPA		.set  0b<<15
K_I_O		.set  111b<<12
K_EDATA		.set  111b<<9
K_IDATA		.set  000b<<6
K_EPROGRAM	.set  111b<<3
K_IPROGRAM	.set  000b<<0
K_SWWSR		.set  K_XPA|K_I_O|K_EDATA|K_IDATA|K_EPROGRAM|K_IPROGRAM
;初始化结果SWWSR(7E38h)
;| 15|14-12|11-9 | 8-6 |   5-3  |   2-0  |
;|XPA| I/O |EDATA|IDATA|EPROGRAM|IPROGRAM|
;| 0 | 111 | 111 | 000 |   111  |   000  |

;Register Organization (29h)
;BSCR:Bank-switching control register组间切换控制寄存器 
;-----------------------------------
;| 15-12|  11 |  10-3  | 2 | 1|  0 |
;-----------------------------------
;|BNKCMP|PS-DS|Reserved|HBH|BH|EXIO|
;-----------------------------------
;15-12	BNKCMP	分组大小,这4位分别与地址线A15~A12,决定了分组大小,当两次连续的
;	片外访问在不同组是,会自动插入一个等待
;		BNKCMP		屏蔽的地址	分组大小
;		0000		无		64K
;		1000		A15		32K
;		1100		A15~A14		16K
;		1110		A15~A13		8K
;		1111		A15~A12		4K
;11	PS-DS	两次连续的片外读访问分别在程序空间和数据空间,1为加入一个周期的等待
;	0表示不等待
;2	HBH	0为主机总线不保持,1为主机总线保持在先前的电平
;1	BH	0为总线不保持,1为总线保持在先前电平
;0	EXI0	0为接通外总线,1为关闭外总线,使地址数据先为高阻,片选、选通R/W、
;--------------------------------------------------------------------------------------
K_BNKCMP	.set  0000b<<12
K_PS_DS		.set  0b<<11 
K_BSSR_RES	.set  00000000b<<3
K_HBH		.set  0b<<2
K_BH		.set  0b<<1
K_EXIO		.set  0b<<0
K_BSCR		.set  K_BNKCMP|K_PS_DS|K_BSSR_RES|K_HBH|K_EXIO
;初始化结果SWWSR(0800h)
;| 15-12|  11 |  10-3  | 2 | 1|  0 |
;|BNKCMP|PS-DS|Reserved|HBH|BH|EXIO|
;| 0000 |  1  |00000000| 0 | 0|  0 |


;Register Organization (0h)
;IMR:Interrupt mask register  
;--------------------------------------------------------------------------------------------
;|15-14|  13 |  12 |  11  |  10  |   9  |  8 |  7  | 6   |   5  |   4  |  3  |  2 |  1 |  0 |
;--------------------------------------------------------------------------------------------
;|resvd|DMAC5|DMAC4|BXINT1|BRINT1|HPIINT|INT3|TINT1|DMAC0|BXINT0|BRINT0|TINT0|INT2|INT1|INT0|
;--------------------------------------------------------------------------------------------
;先将IMR的某位置置1,则相应中断开放。这个寄存器只是对可屏蔽中断有效
;中断响应过程
;对于软件中断和硬件可屏蔽中断,CPU立即响应。对于硬件可屏蔽中断必须满足以下条件,
;CPU才能够响应中断
;(1)出现多个中断时,此中断的优先级最高
;(2)ST1中的INTM位为1,开放此中断
;(3)IMR中的中断响应响应相应位为1,开放此中断
;--------------------------------------------------------------------------------------
K_IMR_RES	.set  00b<<14
K_DMAC5_OFF	.set  0b<<13
K_DMAC5_ON	.set  1b<<13 
K_DMAC4_OFF	.set  0b<<12
K_DMAC4_ON	.set  1b<<12
K_BXINT1_OFF	.set  0b<<11
K_BXINT1_ON	.set  1b<<11
K_BRINT1_OFF	.set  0b<<10
K_BRINT1_ON	.set  1b<<10
K_HPIINT_OFF	.set  0b<<9
K_HPIINT_ON	.set  1b<<9
K_INT3_OFF	.set  0b<<8
K_INT3_ON	.set  1b<<8
K_TINT1_OFF	.set  0b<<7
K_TINT1_ON	.set  1b<<7
K_DMAC0_OFF	.set  0b<<6
K_DMAC0_ON	.set  1b<<6
K_BXINT0_OFF    .set  0b<<5
K_BXINT0_ON	.set  1b<<5
K_BRINT0_OFF   	.set  0b<<4
K_BRINT0_ON   	.set  1b<<4
K_TINT0_OFF	.set  0b<<3
K_TINT0_ON	.set  1b<<3
K_INT2_OFF	.set  0b<<2
K_INT2_ON	.set  1b<<2
K_INT1_OFF	.set  0b<<1
K_INT1_ON	.set  1b<<1
K_INT0_OFF	.set  0b<<0
K_INT0_ON	.set  1b<<0
;第一个为关闭AD时的设置|00|0|0|0|0|0|0|0|0|0|0|0|1|1|1|
K_IMR_AD_OFF	.set  K_IMR_RES|K_DMAC5_OFF|K_DMAC4_OFF|K_BXINT1_OFF|K_BRINT1_OFF|K_HPIINT_OFF|K_INT3_OFF|K_TINT1_OFF|K_DMAC0_OFF|K_BXINT0_OFF|K_TINT0_OFF|K_INT2_ON|K_INT1_ON|K_INT0_ON
;第二个为打开AD时的设置|00|0|0|0|0|0|0|1|0|0|0|1|1|1|1|
K_IMR_AD_ON	.set  K_IMR_RES|K_DMAC5_OFF|K_DMAC4_OFF|K_BXINT1_OFF|K_BRINT1_OFF|K_HPIINT_OFF|K_INT3_ON|K_TINT1_OFF|K_DMAC0_OFF|K_BXINT0_OFF|K_TINT0_ON|K_INT2_ON|K_INT1_ON|K_INT0_ON


;Register Organization (58h)
;CLKMD Clock mode
;-----------------------------------------------------
;| 15-12|  11  |  10-3  |    2    |    1   |    0    |
;-----------------------------------------------------
;|PLLMUL|PLLDIV|PLLCOUNT|PLLON/OFF|PLL NDIV|PLLSTATUS|
;--------------------------------------------------------------------------------------
;注意CLKMD1、2、3的引角设置各种器件不同
;15-12	PLLMUL	PLL乘数
;11	PLLDIV	PLL除数
;10-3	PLLCOUNT	PLL计数器,作为PLL从开始到琐定处理器时钟信号的延时记数时间,保证
;			转换的可靠性频率
;2	PLLON/OFF	PLL通断位
;1	PLL NDIV	时钟发生器选择位
;0	PLLSTATUS	只读,用来指示时钟发生器的工作方式,0为分频PLL方式,1为倍频PLL方式
;DSP实际工作的频率=输入频率X系数
;    PLL NDIV    PLLDIV	PLL    PLLMUL    系数
;       0            x          0-14     0.5
;       1            x           15      0.25
;       1            0          0-14     PLLMUL+1
;       1            0           15        1
;       1            1         0或偶数   (PLLMUL+1)/2
;       1            1          奇数     PLLNUL/4
;--------------------------------------------------------------------------------------
K_PLLMULX1	.set  0000b<<12  ;跑10MHz
K_PLLMULX10	.set  1001b<<12  ;跑80MHz
K_PLLDIV	.set  0b<<11     ;不分频
K_PLLCOUNT	.set  11011010b<<3;PLLCOUNT>琐定时间/(16*Tclkin),100MHz时为35us,最快为8us
K_PLLON_OFF	.set  1b<<2;当PLLON/OFF=0并且PLL NDIV=0时PLL断开,这两位其它的组合PLL都运行
K_PLLNDIV	.set  1b<<1
K_PLLSTATUS	.set  0b<<0
;注意!!要改变PLL的倍频,必须先把时钟从PLL模式切换到DIV模式,然后再切换
;到新的倍频PLL模式。
;对外部晶振为10Mhz的542的频率设置(00e6h)
K_CLKMD_10M	.set  K_PLLMULX1|K_PLLDIV|K_PLLCOUNT|K_PLLON_OFF|K_PLLNDIV|K_PLLSTATUS
;对外部晶振为40Mhz的542的频率设置(30e6h)
K_CLKMD_80M	.set  K_PLLMULX10|K_PLLDIV|K_PLLCOUNT|K_PLLON_OFF|K_PLLNDIV|K_PLLSTATUS


;Register Organization (24h)
;TCR 定时控制寄存器
;----------------------------------
;|15-12| 11 | 10 |9-6| 5 | 4 | 3-0|
;----------------------------------
;|resvd|SOFT|FREE|PSC|TRB|TSS|TDDR|
;----------------------------------
;11	SOFT	软件调试控制位	SOFT和FREE配合使用
;10	FREE	软件调试控制位
;	SOFT	FREE	定时器操作
;	  0		  0		定时器立即停止工作
;	  1		  0		计数器减为0时停止工作
;	  x		  1		定时器继续运行(PRD重新装入TIM)
;9-6	PSC	预标定值 定时器时钟由CLKOUT提供,每来一个时钟
;			预标定计数器PSC减1,当PSC减至0时,下一个脉冲
;			到来PSC产生借位,借位信号控制计数器TIM减1并且
;			将TDDR的内容加载到PSC中。
;5	TRB	当TRB=1时,预标定分频系数TDDR和定时器周期寄存器PRD
;		的数据分别加载至定时器预标定计数器PSC和定时器TIM中。
;		通常情况下TRB=0
;4	TSS		TSS=0 定时器启动开始工作,TSS=1定时器停止工作
;3-0	TDDR	定时器分频系数
K_TCR_RES	.set  0000b<<12
K_TCR_SOFT	.set  0b<<11
K_TCR_FREE	.set  0b<<10
K_TCR_PSC	.set  0000b<<6
K_TCR_TRB	.set  0b<<5
K_TCR_TSS	.set  1b<<4
K_TCR_TDDR	.set  0000b<<0
K_TCR	.set  K_TCR_RES|K_TCR_SOFT|K_TCR_FREE|K_TCR_PSC|K_TCR_TRB|K_TCR_TSS|K_TCR_TDDR
;初始化结果TCR(0020h)
;|15-12| 11 | 10 | 9-6| 5 | 4 | 3-0|
;|resvd|SOFT|FREE| PSC|TRB|TSS|TDDR|
;| 0000|  0 |  0 |0000| 1 | 0 |0000|

⌨️ 快捷键说明

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