我之前在407的基础上做了一个基于IIS和USB的录音和放音的工程,现在因为要扩展到1拖4个数字mic也就是,原来的IIS满足不了要求。所以要用SAI总线。我手头现在有一个429的discovery开发板,用阿波罗的429的历程进行测试。429的声卡和录音历程和407很相似,大部分不要做修改,但还是有几个地方我吃不准。 先说一下基本情况,用到了一条SAI总线。接了4个数字mic,每个mic都是16K 16bit的数据。
开始弄修改之前有3个地方不是太明白,请论坛有经验的朋友指点一下。
第一个是SAI的基本设置,由于是1拖4,所以在历程基础上做了修改
SAI1A_Handler.FrameInit.FrameLength=64 //
SAI1A_Handler.FrameInit.ActiveFrameLength=1; //这里的帧同步信息我看iis情况下是16,查了数据手册“PCM/DSP”模式设置为1
SAI1A_Handler.SlotInit.SlotNumber=4; //对应4个mic的
第二是采样率,我设置成16K之后 SAIA_SampleRate_Set(REC_SAMPLERATE);
帧时钟的脉冲频率(中间第二条红 {MOD}的线)不是16K,算了一下只有5.11K。改成48K之后才变成附件的样子,单也只有15.64K。
这里我觉得在多个slot情况下,频率设置是否有特殊要求。
第三个就是DMA的问题,之前407开发板是2个IIS通道,现在一帧有4个通道的数据,这里是不是要修改成
SAIA_RX_DMA_Init(sairecbuf1,sairecbuf2,SAI_RX_DMA_BUF_SIZE/2,1);SAI_RX_DMA_BUF_SIZE应该是128,一次传输一帧128个字节。 就存放发送音频数据的playbuf来说,playBuf[0]、playBuf[1]、playBuf[2]、playBuf[3]应该就是存放的一帧中4个mic传过来的数据。
问题比较多,请有经验的朋友指点一下。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
那請問要改成雙聲道的麥克風跟雙聲道的揚聲器要怎麼做?你之前提供的例程中,麥克風只有一個聲道
一周热门 更多>