本帖最后由 lvehe 于 2016-6-7 15:47 编辑
目前仅实现单一的USB Microphone录音功能,没有Speaker的功能。二者结合实现起来感觉比较困难,毕竟对USB学习还不太深入。
板子上使用的是一颗带IIS数字输出的MEMS麦克风,要移植到其他咪头和CODEC芯片(比如WM8978)组合的板子也是很容易的,因为都是IIS数字输出接口。
源码主要参考
https://github.com/iliasam/STM32F4_USB_MICROPHONE
2016-5-31更新:
添加FeatureUnit,实现静音和音量调节功能。
已知问题:Win7和XP下的音量设置数据不一样,目前程序以Win7为依据。
2016-6-7更新:
修改音量调节为0dB~20dB,步进值为4dB。使Win7和XP下的音量设置数据保持一致。
添加多频选择功能,可选4种常用频率。
至此,USB Microphone功能基本完备,此帖完结,不再更新。
以下是我用XP自带的录音软件录的2段WAV,一个是比较纯粹的1kHz正弦波声音,一个是一段音乐。
用GoldWave查看的波形,没有发现底噪特别大的情况,用耳朵听的话感觉音质也还行。
不知道你的这段代码是放在哪的,是在DMA传输完成中断中?
USB Audio 一个比较常见的问题就是时钟同步问题,不确定你的现象是不是由此引起。
但如果数据处理加上发送时间较短的话,一般不会感觉到不同步。具体原因还得由你自己摸索。
发送数据还是usb_dataIn里面。dma中断也是循环接收,分别是两个buf在切换和大部分的流程是一样的。usb发送的时候用已经接收完的的数据。我这样想如果是切换的时候dma的数据正好改变了倒是有可能出现我之前测试的现象。
你说的不同步我倒是没有直观的感觉,因为做上面的实验我同时还在进行录音,两个声音的语速和长度我对比了一下差不多一致的。当然这个也是主观的感觉。
lvehe楼主你好,请问一下你的实验后续有没有做进一步的测试。我这里前一段时间ST技术支持发了一个二合一的usb(microphone+recorder)的历程,用的是st407的demo板。
一周热门 更多>