文章目录
- 一、音频播放
- 二、音频录制
所有的USB控制通过EP 0端点。
一、音频播放
STM32F446E-EVAL
和STM32F769IDISCOVERY
- 主机将音频流接口的备用设置设置设置为“1”后,开始传输PCM样本。
- 对于接收到的每个数据包,USB IP将其写入FIFO内存,然后向应用程序发出中断。
- 应用程序将数据复制到循环缓冲区。
- 另一方面,SAI IP通过I2S向音频编解码器传输数据。
- SAI使用DMA传输。每次DMA完成数据包传输时,它都会引发一个传输完成中断。
- 接收到传输完成中断后,DMA被编程为从循环缓冲区读取下一个数据包。
- 数据同步激活时,应用程序估计编解码器采样率。每次主机需要数据时(同步到EP同步),设备都会发送计算的采样率。
二、音频录制
STM32446E-EVAL
- 主机将音频流接口的备用设置设置设置为“1”后,STM32设备开始发送PCM样本。
- MEMS话筒通过I2S通道产生PDM样本。DMA将它们传输到中间缓冲区。
- PDM库将PDM样本转换为PCM样本。应用程序将它们写入录制循环缓冲区。
- 每毫秒,主机从记录终端请求一个USB数据包。
- 应用程序将一个数据包复制到USB FIFO。
- STM32 USB IP向主机传输数据。
- 数据同步激活时,应用程序可能会或多或少发送一个样本。如果没有数据准备好传输,应用程序将发送一个零填充数据包。
STM32F769IDISCOVERY
进行录制不同的是:
STM32F769
芯片集成了DFSDM IP
。不需要PDM
到PCM
软件转换。应用程序使用DMA
直接读取PCM
样本。- 数据路径的其余部分与
STM32446E-EVAL
板相同
STM32F446E-EVAL 评估板的数据传输
STM32F769IDISCOVERY 评估板的数据传输
觉得好,就一键三连呗(点赞+收藏+关注)