在线时间120 小时
UID2068692
注册时间2014-11-13
NXP金币0
TA的每日心情 | 开心 2018-6-12 12:56 |
---|
签到天数: 215 天 [LV.7]常住居民III
金牌会员
- 积分
- 1154
- 最后登录
- 2021-4-29
|
本帖最后由 wuqt 于 2017-5-8 23:07 编辑
有段时间没更新了,七姐又来催了。我的帖子虽然少,但是都是精华呀,实实在在地传授解决问题的方法! 先吐槽一下官方的 AN11855_LPC5411x_voice_detection_recognition_v.2 不开放源代码,想要源代码是要跟NXP和Sensory签NDA。签了NDA就是说只能自己研究,不能开放给大家。所谓独乐乐不如众乐乐对吧,索性自己找找资料研究研究,再跟大家分享。
先说一下初步构想,想要做音频数据识别,首先肯定要先采集一段音频,然后再去找一个这种做数据匹配的算法之类的库,作几个简单的波形识别就好了,至少识别出Trigger就可以了嘛。万利的dmic app用的是中断模式采集,fifo 能保存16个采样点,毕竟这个应用讲究低功耗,而且如果考虑后面用上系统或者跟识别库之间的接口的话,DMA工作模式无疑是最好的。所以就找了官方的DMIC DMA的例程来改了。
然后就要吐槽官方库了,之前好像也有坛友提到了。官方有两种库,一个是fsl前缀的库 SDK_2.0_LPC54113J_Windows,一个nxp的库lpc5411x_xpresso54114_keil_iar_v3.00.001_35...。万利板demo是用的是前者。nxp的库是把DMA 封装成一种service了只要简单的调用就可以了,这里还用了pingpong双buffer机制来传输,如下
- Chip_DMASERVICE_Init(Chip_DMA_Table);
- Chip_DMASERVICE_DoubleBuffer(&dmic_ch0_dma_interleaved_context, (uint32_t) &
- audioArray[2], 256,&pingPongDescriptors0);
- Chip_DMASERVICE_DoubleBuffer(&dmic_ch1_dma_interleaved_context, (uint32_t) &
- audioArray[0], 256,&pingPongDescriptors1);
- Chip_DMASERVICE_RegisterCb(&dmic_ch0_dma_interleaved_context,my_dmic_dma_cb);
- Chip_DMASERVICE_RegisterCb(&dmic_ch1_dma_interleaved_context,my_dmic_dma_cb);</font>
复制代码
把demo的基本IO配置改成万利板的IO之后 。调了好久,就是不成功,dma service 程序没有正常的中断,只有一次错误中断。对比了很多DMA的配置,就是不成功。谁有空可以帮看一下什么问题。
lpc5411x_xpresso54114_keil_iar_v3.00.001_35_WLBoard_DMIC_DMA.zip
(16.88 MB, 下载次数: 389)
|
|