9309| 3
|
看完《ld3320 开发手册》后疑问之二 |
20 FIFO_DATA上限低8位(UpperBoundary L) 21 FIFO_DATA上限高8位(UpperBoundary H) 22 FIFO_DATA下限低8位(LowerBoundary L) 23 FIFO_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 idata nLD_Mode; #define LD_MODE_ASR_RUN 0x08 在接下来的程序中没有再提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”没有定义,还有上面的句子为什么要这样写,有什么含义? |
我也是在看开发手册和参考程序, 倒数第一个问题: 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,不知道你弄好了没,其他几个问题我也不是太会。。。 |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed