?? setad73311.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 + -