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

📄 setad73311.c

📁 文件系统在DSP5509上的实现
💻 C
字号:
/*********************************************************************/
//               设置AD73311
//
/*********************************************************************/
#include "VoiceProcess.h"

 
 

void    SET_AD73311();                  //总调用

		static void    se_ad73311_1(void);       //选择串口1对应的AD73311
		static void	reset_ad73311_1(void);	     //复位串口1对应的AD73311
		static void	setreg_ad73311_1(void);      //设置串口1对应的AD73311寄存器
 


/******************************************************************************/
 
/***************************************************************************/
//                     总调用
void SET_AD73311(void)
{   
    reset_ad73311_1();	             //复位串口1对应的AD73311
  
    se_ad73311_1();                  //选择串口1对应的AD73311
 
	setreg_ad73311_1();              //设置串口1对应的AD73311寄存器
 
	                                  
} 

/***********************************************************************/
//              第一通道初始化 
static void se_ad73311_1(void)
{
  GPIO_pinWrite(GPIO_PIN0,1);  		 //选择串口1对应的AD73311
}

static void reset_ad73311_1(void)
{
    Uint32 i=0;
	GPIO_pinWrite(GPIO_PIN3,0);  	 //复位串口1对应的AD73311 
    for(i=0;i<500000;i++);
	GPIO_pinWrite(GPIO_PIN3,1);
	
}

static void setreg_ad73311_1(void)
{   
/*设置AD73311控制寄存器 ,16位寄存器格式如下:
//   0 0 0 0   0 0 0 0   0 0 0 0   0 0 0 0
//   - - ------- -----   -----------------
//   | |     |       |        Register data       
//   | |     |       +--Register address
//   | |     +--device address
//   | +-- R/(/W)
//   +--C/(/D)
*/

	while (!MCBSP_xrdy(hMcbsp1));
	MCBSP_write16(hMcbsp1, 0X8132);  //设置B寄存器
/*	                           || 
//该位置的HEX数值              |+--0          1          2         3
//对应的采样率                 |   DMCLK/2048 DMCLK/1024 DMCLK/512 DMCLK/256	
//该位置的HEX数值              +--0    1      2      3      4       5 6 7
//对应的DMCLK数值	              MCLK MCLK/2 MCLK/3 MCLK/4 MCLK/5  MCLK 
//MCLK为AD73311的输入时钟16.384MHz	*/
	while (!MCBSP_xrdy(hMcbsp1));
	MCBSP_write16(hMcbsp1, 0X8279);	//设置C寄存器
	while (!MCBSP_xrdy(hMcbsp1));
	MCBSP_write16(hMcbsp1, 0x8301);	//设置D寄存器
/*  MCBSP_write16(hMcbsp1, 0X8300);	//设置D寄存器
//                             ||
//该位置的HEX数值              |+--0  1  2  3  4  5  6   7  
//该位置对应的输入增益(db)   |   0  6  12 18 20 26 32  38                   |
//该位置的HEX数值              |+--0  1  2  3  4  5  6   7
//该位置对应的输出增益(db)       6  3  0  -3 -6 -9 -12 -15 
//	
*/					
	while (!MCBSP_xrdy(hMcbsp1));
	MCBSP_write16(hMcbsp1, 0X8400);    //设置E寄存器
	while (!MCBSP_xrdy(hMcbsp1));
	MCBSP_write16(hMcbsp1, 0X8520);    //设置F寄存器
/*                             |
//                             +--0   0   0   0
//该位置的比特值                      |   |
//                                    |   +--0   			1
//对应的结果                          |      双端输入       单端输入
//该位置的比特值                      +--0             1
//对应的结果                             正端输入      负端输入
*/	
	while (!MCBSP_xrdy(hMcbsp1));
	MCBSP_write16(hMcbsp1, 0X8001);//设置A寄存器 
	//注意:必须最后才能初始化寄存器A,这是因为
	//最低位置1后,语音芯片将过渡到数据模式
} 


 
 

 

///////////////////////////// END /////////////////////////////////////////////

⌨️ 快捷键说明

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