📄 init_54x.inc
字号:
*******************************************************
*******
*******包含ST0、ST1、PMST、SWWSR、寄存器的配置值*******
******* *******
*******************************************************
******定时器控制寄存器TCR
*#####################################*
*| 15 -12 | 11 | 10 |9-6| 5 | 4 |3 -0|*
*|reserved|SOFT|FREE|PSC|TRB|TSS|TDDR|*
*#####################################*
K_TCR_RES .set 0000b<<12
K_SOFT .set 0b<<11
K_FREE .set 0b<<10
K_PSC .set 0000b<<6
K_TRB .set 1b<<5
K_TSS .set 0b<<4
K_TDDR .set 1001b<<0
K_TCR .set K_TCR_RES|K_SOFT|K_FREE|K_PSC|K_TRB|K_TSS|K_TDDR
*******************************************************
*TCR:0000000000101001B(0029H)
*****************************
*******ST0寄存器的状态位如下:
*###########################*
* |15-13|12|11| 10| 9 |8-0| *
*###########################*
* | ARP |TC|C |OVA|OVB| DP| *
*###########################*
K_ARP .set 000b<<13 ;
K_TC .set 1b<<12 ;测试控制位
K_C .set 1b<<11 ;加法进位位
K_OVA .set 1b<<10 ;累加器A溢出标志
K_OVB .set 1b<<9 ;累加器B溢出标志
K_DP .set 000000000b<<0 ;数据页指针
K_ST0 .set K_ARP|K_TC|K_C|K_OVA|K_OVB|K_DP
******ST0:0001111000000000B(1E00H)
*******************************************************
*******ST1寄存器的状态位如下:
*####################################################*
* | 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| *
*####################################################*
K_BRAF .set 1b<<15 ;块重复活动标志
K_CPL .set 0b<<14 ;编译器模式
K_XF .set 1b<<13 ;外部标志
K_HM .set 0b<<12 ;保持模式
K_INTM .set 1b<<11 ;中断模式INTM
K_ST1_RESR .set 0b<<10 ;保留位
K_OVM .set 1b<<9 ;溢出标志
K_SXM .set 0b<<8 ;符号扩展模式
K_C16 .set 0b<<7 ;双16位/双精度算术模式
K_FRCT .set 1b<<6 ;小数乘模式
K_CMPT .set 0b<<5 ;兼容模式
K_ASM .set 00000b<<0 ;累加器移位模式
K_ST1_HIGH .set K_BRAF|K_CPL|K_XF|K_HM|K_INTM|K_ST1_RESR|K_OVM
K_ST1_LOW .set K_SXM|K_C16|K_FRCT|K_CMPT|K_ASM
K_ST1 .set K_ST1_HIGH|K_ST1_LOW
******ST1:0010101101000000B(2B40H)
*******************************************************
*******PMST寄存器的状态位如下:
*#############################################*
* |15-7| 6 | 5 | 4 | 3 | 2 | 1 0 | *
*#############################################*
* |IPTR|MP/MC|OVLY|AVIS|DROM|CLKOFF|Reserved| *
*#############################################*
K_IPTR .set 000000001b<<7 ;中断矢量指针
K_MP_MC .set 0b<<6 ;微处理器/微计算机
K_OVLY .set 1b<<5 ;RAM重置方式
K_AVIS .set 0b<<4 ;地址可见模式
K_DROM .set 0b<<3 ;数据ROM模式
K_CLKOFF .set 0b<<2 ;时钟输出无效模式
K_PMST_RESR .set 00b<<0 ;保留
K_PMST_HIGH .set K_IPTR|K_MP_MC|K_OVLY|K_AVIS|K_DROM
K_PMST_LOW .set K_CLKOFF|K_PMST_RESR
K_PMST .set K_PMST_HIGH|K_PMST_LOW
******PMST:1111111111000000B(FFC0H)
*******************************************************
*******SWWSR寄存器的状态位如下:
*############################################*
* | 15 |14-12|11-9|8-6 | 5-3 | 2-0 | *
*############################################*
* |Reserved| I/O |Data|Data|Program|Program| *
*#############################################*
K_RES .set 0b<<15 ;Extended program address control
K_IO .set 111b<<12 ;I/O space
K_DATAHI .set 000b<<9 ;Data space(8000-FFFFh)
K_DATALO .set 000b<<6 ;Data space(0000-7FFFh)
K_PROGHI .set 000b<<3 ;Program space(xx8000-xxFFFFh)
K_PROGLO .set 000b<<0 ;Program space(xx0000-xx7FFFh)
K_SWWSR .set K_RES|K_IO|K_DATAHI|K_DATALO|K_PROGHI|K_PROGLO
K_SWWSR_IO .set 2000h ;将地址为0000h-FFFFh的I/O空间置为两个等待状态
*******************************************************
* SWCR:Software Wait-State Control Register
*######################################################
* | 15-1 | 0 | *
*############################################*
* |Reserved| SWSM| *
*#############################################*
K_SWCR_RES .set 000000000000000b<<1;Reserved
K_SWSM .set 0b<<0 ;Software Wait-State multiplier bit
K_SWCR .set K_SWCR_RES|K_SWSM
**************************************************************
*******BSCR寄存器的状态位如下:
*#################################*
* | 15 |14 -13| 12 | 11-3 | 2 |1 | 0 | *
*#################################*
* |CONSEC|DIVFCT|IACKOFF|Reserved|HBH|BH|EXIO| *
*#################################*
K_CONSEC .set 0b<<15 ;存储器大小设置为64K字
K_DIVFCT .set 00b<<13 ;在程序或数据读时不插入一个额外周期
K_IACKOFF .set 0b<<12
K_BSCR_RESR .set 000000000b<<3 ;保留
K_HBH .set 1b<<2
K_BH .set 0b<<1 ;总线保持器
K_EXIO .set 0b<<0 ;扩展总线接口无效
K_BSCR .set K_CONSEC|K_DIVFCT|K_IACKOFF|K_BSCR_RESR|K_HBH|K_BH|K_EXIO
******BSCR:0000000000000000B(0000H)
*******************************************************
*******CLKMD寄存器的状态位如下(时钟模式):
*#####################################################*
* | 15-12| 11 | 10-3 | 2 | 1 | 0 | *
*#####################################################*
* |PLLMUL|PLLDIV|PLLCOUNT|PLLON/OF|PLLNDIV|PLLSTATUS| *
*#####################################################*
K_PLLMUL .set 1110b<<12 ;PLL倍频
K_PLLDIV .set 0b<<11 ;PLL分频
K_PLLCOUNT .set 00101001b<<3 ;PPL计数器,每输入16个时钟周期PLL计数器减一
K_PLLON_OF .set 1b<<2 ;PLL开关控制
K_PLLNDIV .set 1b<<1 ;PLL时钟发生器选择
K_PLLSTATUS .set 1b<<0 ;PLL状态位,指示工作模式
K_CLKMD .set K_PLLMUL|K_PLLDIV|K_PLLCOUNT|K_PLLON_OF|K_PLLNDIV|K_PLLSTATUS
******CLKMD:0100000000000111B(4007H)
*******************************************************
******定时器控制寄存器TCR
*#####################################*
*| 15 -12 | 11 | 10 |9-6| 5 | 4 |3 -0|*
*|reserved|SOFT|FREE|PSC|TRB|TSS|TDDR|*
*#####################################*
K_TCR_RES .set 0000b<<12
K_SOFT .set 0b<<11
K_FREE .set 0b<<10
K_PSC .set 0000b<<6
K_TRB .set 1b<<5
K_TSS .set 0b<<4
K_TDDR .set 1001b<<0
K_TCR .set K_TCR_RES|K_SOFT|K_FREE|K_PSC|K_TRB|K_TSS|K_TDDR
***********************************************************************
*******SPCR1寄存器的状态位如下(串口控制):
*######################################################################*
* | 15|14-13| 12-11| 10-8 | 7 | 6 |5-4 | 3 | 2 | 1 | 0 | *
*######################################################################*
* |DLB|RJUST|CLKSTP|RESERVED|DXENA|ABIS|RINTM|RSYNCERR|RFULL|RRDY|RRST| *
*######################################################################*
K_DLB .set 0b<<15 ;数字链路回馈模式
K_RJUST .set 01b<<13 ;接收数据的符号扩展及调整模式
K_CLKSTP .set 00b<<11 ;在SPI中的时钟调整模式
K_RESERVED .set 000b<<8 ;保留
K_DXENA .set 0b<<7 ;DX引脚使能
K_ABIS .set 0b<<6 ;A-Bis模式,McBSP在PCM链中最多接收或发送1024bit
K_RINTM .set 00b<<4 ;接收中断模式
K_RSYNCERR .set 0b<<3 ;接收同步错误
K_RFULL .set 0b<<2 ;接收移位寄存器(RSR)满,出错状态
K_RRDY .set 0b<<1 ;接收准备好
K_RRST .set 0b<<0 ;发送准备好
K_SPCR1 .set K_DLB|K_RJUST|K_CLKSTP|K_RESERVED|K_DXENA|K_ABIS|K_RINTM|K_RSYNCERR|K_RFULL|K_RRDY|K_RRST
K_SPCR1_RS .set 0010000000000000b
******SPCR1:0010000000000001B(2001H)
*******************************************************
*******SPCR2寄存器的状态位如下(串口控制):
*######################################################################*
* | 15-10 | 9 | 8 | 7 | 6 | 5-4 | 3 | 2 | 1 | 0 | *
*######################################################################*
* |RESERVED|FREE|SOFT|FRST|GRST|XINTM|XSYNCERR|XEMPTY|XRDY|XRST| *
*######################################################################*
K_RESERVED .set 000000b<<10 ;保留
K_FREE .set 0b<<9 ;自由运行模式
K_SOFT .set 0b<<8 ;SOFT模式
K_FRST .set 1b<<7 ;桢同步发生器复位
K_GRST .set 1b<<6 ;采样率发生器复位
K_XINTM .set 00b<<4 ;发送中断模式
K_XSYNCERR .set 0b<<3 ;发送同步错误
K_XEMPTY .set 1b<<2 ;发送移位寄存器(XSR)空
K_XRDY .set 1b<<1 ;发送准备好
K_XRST .set 1b<<0 ;发送复位
K_SPCR2 .set K_RESERVED|K_FREE|K_SOFT|K_FRST|K_GRST|K_XINTM|K_XSYNCERR|K_XEMPTY|K_XRDY|K_XRST
K_SPCR2_SE .set 0000000000000110b
K_SPCR2_SE_ONE .set 0000000001000110b
K_SPCR2_SE_TWO .set 0000000000000111b
******SPCR2:0000000011000111B(00c7H)
******************************************************
*******RCR1寄存器的状态位如下(接收控制):
*######################################################################*
* | 15 | 14-8 | 7-5 |4-0 | *
*######################################################################*
* |RES1|RFRLEN1|RWDLEN1|RES2| *
*######################################################################*
K_R1_RES1 .set 0b<<15 ;保留
K_RFRLEN1 .set 0000000b<<8 ;接收桢长1为1个字
K_RWDLEN1 .set 000b<<5 ;接收字长1为8bit
K_R1_RES2 .set 00000b<<0 ;保留
K_RCR1 .set K_R1_RES1|K_RFRLEN1|K_RWDLEN1|K_R1_RES2
******RCR1:0000000000000000B(0000H)
******************************************************
*******RCR2寄存器的状态位如下(接收控制):
*######################################################################*
* | 15 | 14-8 | 7-5 | 4-3 | 2 | 1-0 | *
*######################################################################*
* |RPHASE|RFRLEN2|RWDLEN2|RCOMPAND|RFIG|RDATDLY| *
*######################################################################*
K_RPHASE .set 0b<<15 ;接收为单相
K_RFRLEN2 .set 0000000b<<8 ;接收桢长2为1个字
K_RWDLEN2 .set 000b<<5 ;接收字长2为8bit
K_RCOMPAND .set 00b<<3 ;信号无压扩,先接收MSB位
K_RFIG .set 0b<<2 ;第一次重启发送后接收桢同步脉冲
K_RDATDLY .set 01b<<0 ;1彼特延迟
K_RCR2 .set K_RPHASE|K_RFRLEN2|K_RWDLEN2|K_RCOMPAND|K_RFIG|K_RDATDLY
******RCR2:0000000000000001B(0001H)
******************************************************
*******XCR1寄存器的状态位如下(发送控制):
*######################################################################*
* | 15 | 14-8 | 7-5 |4-0 | *
*######################################################################*
* |RES1|XFRLEN1|XWDLEN1|RES2| *
*######################################################################*
K_X1_RES1 .set 0b<<15 ;保留
K_XFRLEN1 .set 0000000b<<8 ;发送桢长1为1个字
K_XWDLEN1 .set 000b<<5 ;发送字长1为8bit
K_X1_RES2 .set 00000b<<0 ;保留
K_XCR1 .set K_X1_RES1|K_XFRLEN1|K_XWDLEN1|K_X1_RES2
******XCR1:0000000000000000B(0000H)
******************************************************
******XCR2寄存器的状态位如下(发送控制):
*######################################################################*
* | 15 | 14-8 | 7-5 | 4-3 | 2 | 1-0 | *
*######################################################################*
* |XPHASE|XFRLEN2|XWDLEN2|XCOMPAND|XFIG|XDATDLY| *
*######################################################################*
K_XPHASE .set 0b<<15 ;发送为单相
K_XFRLEN2 .set 0000000b<<8 ;发送桢长2为1个字
K_XWDLEN2 .set 000b<<5 ;发送字长2为8bit
K_XCOMPAND .set 00b<<3 ;信号无压扩,先发送MSB位
K_XFIG .set 0b<<2 ;第一次重启发送后发送桢同步脉冲
K_XDATDLY .set 01b<<0 ;1彼特延迟
K_XCR2 .set K_XPHASE|K_XFRLEN2|K_XWDLEN2|K_XCOMPAND|K_XFIG|K_XDATDLY
******XCR2:0000000000000001B(0001H)
******************************************************
******PCR寄存器的状态位如下(发送控制):
*######################################################################################################*
* | 15-14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |*
*######################################################################################################*
* |RESERVED|XIOEN|RIOEN|FSXM|FSRM|CLKXM|CLKRM|RESERVED|CLKS_STAT|DX_STAT|DR_STAT|FSXP|FSRP|CLKXP|CLKRP|*
*######################################################################################################*
K_PCR_RES1 .set 00b<<14
K_XIOEN .set 0b<<13
K_RIOEN .set 0b<<12 ;DX,FSX,CLKX设置为串口引脚
K_FSXM .set 1b<<11 ;桢同步由SRGR2的FSGMF位确定
K_FSRM .set 1b<<10
K_CLKXM .set 1b<<9
K_CLKRM .set 1b<<8
K_PCR_RES2 .set 0b<<7
K_CLKS_STAT .set 0b<<6
K_DX_STAT .set 0b<<5
K_DR_STAT .set 0b<<4
K_FSXP .set 0b<<3
K_FSRP .set 0b<<2
K_CLKXP .set 0b<<1
K_CLKRP .set 0b<<0
K_XCR2 .set K_XPHASE|K_XFRLEN2|K_XWDLEN2|K_XCOMPAND|K_XFIG|K_XDATDLY
******XCR2:0000000000000001B(0001H)
******************************************************
*******IMR寄存器的状态位如下(接收控制):
*######################################################################*
* | 15 | 14-8 | 7-5 |4-0 | *
*######################################################################*
* |RES1|RFRLEN1|RWDLEN1|RES2| *
*######################################################################*
K_IMR_RES .set 00b<<14 ;Reserved
K_DMAC5 .set 0b<<13 ;DMA channel 5 interrupt
K_DMAC4 .set 0b<<12 ;DMA channel 4 interrupt
K_BXINT1 .set 0b<<11 ;McBSP #1 transmit interrupt(default)
K_BRINT1 .set 0b<<10 ;McBSP #1 receive interrupt(default)
K_HPINT .set 0b<<9 ;HPI interrupt
K_INT3 .set 0b<<8 ;External user interrupt #3
K_BXINT2 .set 0b<<7 ;McBSP #2 transmit interrupt(default)
K_BRINT2 .set 0b<<6 ;McBSP #2 receive interrupt(default)
K_BXINT0 .set 0b<<5 ;McBSP #0 transmit interrupt(default)
K_BRINT0 .set 0b<<4 ;McBSP #0 receive interrupt(default)
K_TINT0 .set 0b<<3 ;Timer0 interrupt
K_INT2 .set 0b<<2 ;External user interrupt #2
K_INT1 .set 1b<<1 ;External user interrupt #1
K_INT0 .set 0b<<0 ;External user interrupt #0
K_IMR_HIGH .set K_IMR_RES|K_DMAC5|K_DMAC4|K_BXINT1|K_BRINT1
K_IMR_MID .set K_HPINT |K_INT3|K_BXINT2|K_BRINT2|K_BXINT0|K_BRINT0
K_IMR_LOW .set K_BRINT0|K_TINT0|K_INT2|K_INT1|K_INT0
K_IMR .set K_IMR_HIGH|K_IMR_MID|K_IMR_LOW
***************************************************************************
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -