看完《ld3320 开发手册》后疑问之二
20FIFO_DATA上限低8位(UpperBoundary L)21FIFO_DATA上限高8位(UpperBoundary H)
22FIFO_DATA下限低8位(LowerBoundary L)
23FIFO_DATA下限高8位(LowerBoundary H)
“上限低8位”什么意思?
FIFO_EXT MCU水线低8位(MCU water mark L)
FIFO_EXT MCU水线高8位(MCU water mark H)
FIFO_EXT DSP水线低8位(DSP water mark L)
FIFO_EXT DSP水线高8位(DSP water mark H)
“水线高8位”什么意思?
void LD_Init_Common() 函数定义中
LD_ReadReg(0x06);
上面的语句读什么呢
也没有读的东西赋给任何值啊
0x06里面的位怎么表示?
LD_WriteReg(0xCB, 0x02)
寄存器的OXCB为0x02时是什么意思?
BC 寄存器使用
ASR:识别过程强制结束,在ASR进行过程中,可以设置本
存器提前结束本次ASR过程;
写07H,停止录音,但对已有声音进行识别运算,可能会
最优识别候选,返回BA=0 - 4
写08H,强制停止ASR运算,返回BA=51H。
这两种设置都会使DSP送出中断,如同正常的识别结束
MP3: 写01H,主控MCU通知语音芯片MP3数据结束
LD_PLL_11
#define LD_PLL_11 (uint8)((CLK_IN/2.0)-1)
“(uint8)((CLK_IN/2.0)-1)”不知道里面的含义?
#define LD_PLL_MP3_1D (uint8)(((90.0*((LD_PLL_11)+1))/(CLK_IN))-1)
“(uint8)(((90.0*((LD_PLL_11)+1))/(CLK_IN))-1)”什么意思,为什么要这样定义?
#define LD_PLL_ASR_19 (uint8)(CLK_IN*32.0/(LD_PLL_11+1) - 0.51)
“(uint8)(CLK_IN*32.0/(LD_PLL_11+1) - 0.51)”什么意思,为什么要这样定义
在void LD_Init_ASR()函数中
nLD_Mode=LD_MODE_ASR_RUN
上句中在宏定义中只有
extern uint8 idatanLD_Mode;
#define LD_MODE_ASR_RUN0x08
在接下来的程序中没有再提nLD_Mode,对此不解?
在寄存器中的B2是ff时代表什么意思?手册中没有给出
在uint8 LD_Check_ASRBusyFlag_b2() 中
for (j=0; j<10; j++)
为什么是10呢
在uint8 LD_AsrAddFixed()中
LD_WriteReg(0x08, 0x04); 要操什么,手册中无说明
for (nAsrAddLength=0; nAsrAddLength<20; 为什么是20次
LD_WriteReg(0xb2, 0xff); 要操什么,手册中无说明
在uint8 LD_AsrRun() 中
在0x1C中写0x9H为Reserver 保留命令字
这句话怎么理解啊
LD_WriteReg(0x08,0x01);
LD_WriteReg(0x08,0x00);
08 手册寄存器介绍
清除FIFO内容(清除指定FIFO后再写入一次00H)
第0位:写入1→清除FIFO_DATA
第2位:写入1→清除FIFO_EXT
看完介绍我还是不知道要操作什么?
LD_WriteReg(0x1C,0x0b);
要操什么,手册中无说明
在uint8 RunASR()中
void ExtInt0Handler(void) interrupt 0
"interrupt 0 "什么意思?和51c中的定义的6个中断相同吗?
ucHighInt=LD_ReadReg(0x29);
LD_WriteReg(0x29,0) ;
1.怎么读了有写
2.0x29写0表示什么,手册中无具体解释?
if( (ucRegVal & 0x10) &&
LD_ReadReg(0xbf)==0x35 &&
LD_ReadReg(0xb2)==0x21)
“ucRegVal”没有定义,还有上面的句子为什么要这样写,有什么含义?
什么时候回复啊,不是说好了24小时没回复吗,怎么还没有回复,dfrobot的工程师们,快快快回复吧 如果您是购买的我们的语音识别模块,我们只能告诉您我们语音识别模块怎么使用,您的问题已经涉及到开发上了,我们很难回答清楚您的问题。 我也是在看开发手册和参考程序,
倒数第一个问题:ucRegVal = LD_ReadReg(0x2B);
ucRegVal 值为地址为2B寄存器的值
而if( (ucRegVal & 0x10) &&
LD_ReadReg(0xbf)==0x35 &&
LD_ReadReg(0xb2)==0x21)
这句是用来判断识别是否成功的
0x29写0是因为SPI总线通信时,必须写入一个值才能读另一个值,写0是为了读
interrupt 0 是关闭总中断
LD_WriteReg(0x1C,0x0b);就是向地址1c写0b啊,查寄存器表。
在uint8 LD_Check_ASRBusyFlag_b2() 中
for (j=0; j<10; j++)
为什么是10呢。。。。尝试十次读取Flag,不能只尝试一次啊
我也在弄LD3320,不知道你弄好了没,其他几个问题我也不是太会。。。
页:
[1]