微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > MCU和DSP > 基于TMS320LF2407 DSP控制器语音模块的设计与实现

基于TMS320LF2407 DSP控制器语音模块的设计与实现

时间:07-27 来源:互联网 点击:
4.软件设计  

当系统要对语音信号进行处理时,首先要正确地初始化SPI和AD50。由于AD50属于DSP的外围器件,且不是标准的通信串口,所以不能象SPI一样通过直接向各寄存器置入初始化值而完成,而必须在AD50的二次通信时将原来置于SPI输出缓冲寄存器里的值,通过串行传输线送入AD50的串行输入端,以完成对AD50的初始化。  

SPI初始化如下:   

LDP #DP_PF2   
LACL MCRB  
OR #003CH   
;配置SPI各个引脚为特殊功能方式  
LDP  #DP_PF1   
SPLK #000FH,SPICCR   
;配置SPI寄存器允许初始化,16位数据输出  
SPLK #0003H,SPICTL   
;从动方式,时钟方式为无延时的上升沿  
SPLK #0002H,SPIBRR   
;SPI波特率为10MHz (根据采样率确定波特率)  
SPLK #008FH,SPICCR   
;初始化结束,并关闭初始化使能位   
在初始化AD50过程中,首先向AD50的DIN端口发送0000H,确保第二次向AD50发送字符时,AD50处于一次通信,然后发送一个0001引发二次通信,再分四次把命令字写入AD50,程序如下:  
SPLK #0000H,SPIDAT   
NOP  
XMIT_RDY0:   
;确保第二次向AD50发送字符时,AD50处于一次通信  
BIT SPISTS,BIT6  ;等待数据  
BCND XMIT_RDY1,NTC ;发送完  
NOP  
LACL SPIRXBUF   
NOP   
SPLK #0001H,SPIDAT ;开始初始化寄存器2   
XMIT_RDY1:   
BIT SPISTS,BIT6  ;等待数据  
BCND XMIT_RDY1,NTC   
;发送完,完成对AD的二次通信请求  
NOP   
LACL SPIRXBUF   
NOP   
SPLK #0210H,SPIDAT   
;正式初始化寄存器2,(16 BIT ADC MODE )   
XMIT_RDY1_1:   
BIT SPISTS,BIT6   
;等待数据  
BCND XMIT_RDY1_1,NTC   
;发送完,完成对寄存器2的初始化  
NOP  
LACL SPIRXBUF   

SPI将它要发送的数据放在SPIDAT(一个移位寄存器)内,当SPI的使能引脚SPISTE变低,且SPICLK时钟到来时,SPI便将SPIDAT内的数据通过移位的方式移出该寄存器,同时也以移位的方式将AD50发送的串行数据移入该寄存器。接收完后,SPI将接收到的数据复制到接收缓冲器SPIRXBUF,并将中断标志位置为1。DSP可以通过查询的方式不断查询这个位,当其变为1时,即表明一次数据传输已经结束,此时可以去处理这个数据。  

DSP对语音信号进行处理时,可依据需要设计一些滤波器对其进行滤波处理,如FIR、IIR、FFT等。采用以上的硬件电路设计使得滤波器的频率可调,大大扩展了该语音处理模块的应用范围。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top