数字信号处理器串口使用
0赞数字的脉冲雷达信号通过与串口McBSP相连的D/A芯片TLC320AD50C转换为模拟信号输出,主要通过设置DSP的McBSP和TLC320AD50C的寄存器。串口McBSP设置应该先让串口的XRST=0,RRST=0,GRST=0使串口处于初始化状态,然后给控制寄存器设置设计的状态位,如SRGR、SPCR、PCR、XCR、RCR等。但要注意的是,这里不能改变XRST=0,RRST=0 GRST=0位,最后是让XRST=1,RRST=1,FRST=1使串口退出复位状态。TLC320AD50C设置通过辅助通信来读写控制寄存器,辅助通信有两种方法实现,一是硬件方式,FC必须在FS的上跳沿被拉高,这样,TLC320AD50C会在后128个SCLK后切换到辅助通信模式下;二是软件方式,要用软件方式必须是工作在15+1位模式下,当写入的数字D0位为1,则可以在后128个SCLK后切换到辅助通信模式下。对控制器的写的数据通过DIN进入TLC320AD50C,寄存器的数据从DOUT输出,访问寄存器时要求指明设备号、读写属性、寄存器地址。
由于帧同步和比特时钟都是从外部通过TLC320AD50C输入,所以我们不使用到DSP内部的采样率生成器。这样,我们对McBSP0的初始化只涉及SPCR1、SPCR2、
PCR、PCR1、PCR2、XCR1、XCR2。程序在编写时,注意的一个问题就是要对SPCR1和SPCR2赋两次值,第一次是要让McBSP0处于复位状态,第二次才是启动McBSP0。所以程序中,0号McBSP的初始化寄存器的顺序和值如表3.14所示。程序运行到这里,虽然启动了McBSP0,它开始接收和发送数据,但是,全局终端屏蔽位INTM还没有打开,也不能现在打开。这样,我们只需要对4个寄存器赋值,从而就控制了AD/DA的工作。
AD与DSP之间的连接主要是通过串口0来进行通信的。下面的程序主要是DSP串口0的配置:
stm #0,MCBSP0_SPSA
stm #2000h,MCBSP0_SPSD
stm #1,MCBSP0_SPSA
stm #100h,MCBSP0_SPSD
stm #2,MCBSP0_SPSA
stm #40h,MCBSP0_SPSD
stm #3,MCBSP0_SPSA
stm #40h,MCBSP0_SPSD
stm #4,MCBSP0_SPSA
stm #40h,MCBSP0_SPSD
stm #5,MCBSP0_SPSA
stm #0,MCBSP0_SPSD
stm #6,MCBSP0_SPSA
stm #1C8h,MCBSP0_SPSD
stm #7,MCBSP0_SPSA
stm #2020h,MCBSP0_SPSD ;
stm #0eh,MCBSP0_SPSA
stm #000eh,MCBSP0_SPSD
rpt #0ffh
nop
stm #0h,MCBSP0_SPSA
stm #2001h,MCBSP0_SPSD
stm #1,MCBSP0_SPSA
stm #1c1h,MCBSP0_SPSD
stm #0,DXR10
