LD3320芯片Word文档下载推荐.docx
- 文档编号:17810750
- 上传时间:2022-12-10
- 格式:DOCX
- 页数:9
- 大小:17.32KB
LD3320芯片Word文档下载推荐.docx
《LD3320芯片Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《LD3320芯片Word文档下载推荐.docx(9页珍藏版)》请在冰豆网上搜索。
电压要求:
VDD数字电路用电源输入3.0V-3.3V
VDDIO数字1/0电路用电源输入1.65V-VDD
VDDA模拟电路用电源输入3.0V-4.0V
为简化设计,可统一使用3.3v电压输入供电。
时钟(Clock)
芯片必须连接外部时钟电路,频率范围可以是4-48MHz;
而芯片内部配备PLL频率合成器,可产生特定的频率供内部模块使用。
复位
对芯片的进行复位(高电平)必须在VDDA/VDD/VDDIO电压都稳定后进行。
无论芯片在进行任何运算,复位信号都可以复位芯片为初始状态,并使各寄存器恢复默认值。
如果没有设定指令(对寄存器的设置),复位后芯片将进入休眠状态。
此后,一个CSB:
高电平,片选信号就重新激活芯片进入工作状态。
并行接口
本芯片可通过并行方式和外部主CPU连接,此时使用8根数据线(PO-P7),4个控制信号(WRB#,RDB#,CS冰,AO),以及一个中断返回信号(INTB#)。
串行接口
串行接口通过SPI协议和外部主CPU连接,首先要将MD接高电平,而将(SPIS:
1:
)接地。
此时只使用4个管脚:
片选(SCS冰)、SPI时钟(SDCK)、SPI输入(SDI)和SPI输出(SDO)。
**************************************************************************/
voidLD_Init_ASR()
{
LD_Init_Common();
LD_WriteReg(0xBD,0x00);
LD_WriteReg(0x17,0x48);
delay(10);
LD_WriteReg(0x3C,0x80);
LD_WriteReg(0x3E,0x07);
LD_WriteReg(0x38,0xff);
LD_WriteReg(0x3A,0x07);
LD_WriteReg(0x40,0);
LD_WriteReg(0x42,8);
LD_WriteReg(0x44,0);
LD_WriteReg(0x46,8);
delay
(1);
}
/************************************************************************
功能描述:
中断处理函数
入口参数:
none
返回值:
其他说明:
当LD模块接收到音频信号时,将进入该函数,
判断识别是否有结果,如果没有从新配置寄
存器准备下一次的识别。
**************************************************************************/
voidProcessInt0(void)
uint8nAsrResCount=0;
EX0=0;
ucRegVal=LD_ReadReg(0x2B);
LD_WriteReg(0x29,0);
LD_WriteReg(0x02,0);
if((ucRegVal&
0x10)&
&
LD_ReadReg(0xb2)==0x21&
LD_ReadReg(0xbf)==0x35)/*识别成功*/
{
nAsrResCount=LD_ReadReg(0xba);
if(nAsrResCount>
0&
nAsrResCount<
=4)
nAsrStatus=LD_ASR_FOUNDOK;
else
nAsrStatus=LD_ASR_FOUNDZERO;
}
}/*没有识别结果*/
LD_WriteReg(0x2b,0);
LD_WriteReg(0x1C,0);
/*写0:
ADC不可用*/
LD_WriteReg(0x2B,0);
LD_WriteReg(0xBA,0);
LD_WriteReg(0xBC,0);
LD_WriteReg(0x08,1);
/*清除FIFO_DATA*/
LD_WriteReg(0x08,0);
/*清除FIFO_DATA后再次写0*/
EX0=1;
运行ASR识别流程
asrflag:
1->
启动成功,0—>
启动失败
识别顺序如下:
1、RunASR()函数实现了一次完整的ASR语音识别流程
2、LD_AsrStart()函数实现了ASR初始化
3、LD_AsrAddFixed()函数实现了添加关键词语到LD3320芯片中
4、LD_AsrRun()函数启动了一次ASR语音识别流程
任何一次ASR识别流程,都需要按照这个顺序,从初始化开始
uint8RunASR(void)
uint8i=0;
uint8asrflag=0;
for(i=0;
i<
5;
i++)//防止由于硬件原因导致LD3320芯片工作不正常,所以一共尝试5次启动ASR识别流程
LD_AsrStart();
delay(50);
if(LD_AsrAddFixed()==0)
LD_Reset();
//LD3320芯片内部出现不正常,立即重启LD3320芯片
//并从初始化开始重新ASR识别流程
continue;
delay(10);
if(LD_AsrRun()==0)
asrflag=1;
break;
//ASR流程启动成功,退出当前for循环。
开始等待LD3320送出的中断信号
returnasrflag;
检测LD模块是否空闲
flag:
空闲
uint8LD_Check_ASRBusyFlag_b2()
uint8j;
uint8flag=0;
for(j=0;
j<
10;
j++)
if(LD_ReadReg(0xb2)==0x21)
flag=1;
returnflag;
启动ASR
voidLD_AsrStart()
LD_Init_ASR();
uint8LD_AsrRun()
LD_WriteReg(0x35,MIC_VOL);
LD_WriteReg(0x1C,0x09);
LD_WriteReg(0xBD,0x20);
LD_WriteReg(0x08,0x01);
LD_WriteReg(0x08,0x00);
if(LD_Check_ASRBusyFlag_b2()==0)//检测LD模块是否空闲
return0;
//LD_WriteReg(0xB6,0xa);
//识别时间1S
//LD_WriteReg(0xB5,0x1E);
//背景音段时间300ms
//LD_WriteReg(0xB8,10);
//结束时间
//LD_WriteReg(0x1C,0x07);
//配置双通道音频信号做为输入信号
LD_WriteReg(0x1C,0x0b);
//配置麦克风做为输入信号
LD_WriteReg(0xB2,0xff);
delay
(1);
LD_WriteReg(0x37,0x06);
delay(5);
LD_WriteReg(0x29,0x10);
return1;
uint8LD_AsrAddFixed()
uint8k,flag;
uint8nAsrAddLength;
#defineDATE_A5/*数组二维数值*/
#defineDATE_B20/*数组一维数值*/
uint8codesRecog[DATE_A][DATE_B]={
\"
xiaojie\"
\\
ruodeng\"
\\
qiangdeng\"
quanmie\"
liushuideng\"
};
/*添加关键词,用户修改*/
uint8codepCode[DATE_A]={
CODE_CMD,\\
CODE_RD,\\
CODE_QD,\\
CODE_QM,\\
CODE_LSD,\\
/*添加识别码,用户修改*/
for(k=0;
k<
DATE_A;
k++)
if(LD_Check_ASRBusyFlag_b2()==0)
flag=0;
LD_WriteReg(0xc1,pCode[k]);
LD_WriteReg(0xc3,0);
LD_WriteReg(0x08,0x04);
delay
(1);
for(nAsrAddLength=0;
nAsrAddLength<
DATE_B;
nAsrAddLength++)
if(sRecog[k][nAsrAddLength]==0)
LD_WriteReg(0x5,sRecog[k][nAsrAddLength]);
LD_WriteReg(0xb9,nAsrAddLength);
LD_WriteReg(0xb2,0xff);
LD_WriteReg(0x37,0x04);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- LD3320 芯片
![提示](https://static.bdocx.com/images/bang_tan.gif)