📄 mcbsp0xinit.asm
字号:
***串口0的初始化设置程序
.include MMRegs.h
.global _mcbsp0xinit
.title "mcbsp.asm"
.sect "mcbsp"
_mcbsp0xinit:
***************以下是设定mcbsp0的串口工作方式
stm SPCR2, McBSP0_SPSA ;将mcbsp0的spcr2寄存器的子地址存入mcbsp0的subbank子地址寄存器
stm #0200h, McBSP0_SPSD ;spcr2寄存器值设定为0200h,reset发送、grst、frst,发送中断由XRDY信号触发
stm XCR1, McBSP0_SPSA ;将mcbsp0的xcr1寄存器的子地址存入mcbsp0的subbank子地址寄存器
stm #0040h, McBSP0_SPSD ;xcr1寄存器值设定为0040h,发送数据时每帧1word,每word=16bits
stm XCR2, McBSP0_SPSA ;将mcbsp0的xcr2寄存器的子地址存入mcbsp0的subbank子地址寄存器
stm #0044h, McBSP0_SPSD ;xcr2寄存器值设定为0044h,发送数据时signal frame方式,第一帧以后的脉冲被忽略,数据不延迟
* 由于采用外部fsr和clks,所以sample rate genetator 不需要设置,也不需要工作,srgr1,srgr2的值可以不设置
stm PCR, McBSP0_SPSA ;将mcbsp的pcr寄存器的子地址存入mcbsp0的subbank子地址寄存器
stm #0002h, McBSP0_SPSD ;fsx/fsr、clkx/clkr采用外部时钟,fsx/fsr都是高电平有效,clkx上升沿有效,clkr下降沿有效
rpt #100
nop ;等待两个bit周期
stm SPCR2, McBSP0_SPSA ;
stm #0201, McBSP0_SPSD ;设置xrst=1
rpt #5
nop
ret
.end
*****以上设置依据ti文档page49
;串口调试经验:
;寄存器实行子地址设置方式,现将子地址放入串口地址寄存器,再将要设置的寄存器数值放入
;串口数据寄存器。要设置好采样率寄存器srgr1和srgr2,将clkg和fsg的源时钟设置好,他们的
;源时钟有CPU时钟和外部clkr/x输入的时钟两种选择,选择方式参考ti文档(外围部件卷)2-58
;的图2-42,依次设置各个寄存器
;值得注意的是,在使用中,只有设置中断由RRDY和XRDY触发,才能进入中断,帧信号触发方式
;不能正确进入中断服务程序对ad73311的采样数据进行存储
*********以下是设定mcbsp1的spi工作方式的寄存器值,mcbsp1处于master工作方式
*****以上程序依据ti文档page118之2.7.4设置即可
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -