# 前言
收到开发板快一个多月了,年前得了新冠又奈何项目太多就没来得及评测 【AT-START-F437】,之前家里有块 AT-START-F407 做一些应用还是很不错的,这次有机会有幸申请了 F437,平时开发中经常开发音频类产品,看到F437带了USB 2.0 和 全双工的 I2S 就觉得可以拿来做 【会议音响】、【USB声卡】之类的产品,加上主频能够288Mhz,做一些3A算法应该还是绰绰有余的。
# 正文
USB UAC声卡主要框架为:
硬件音频输出用的wm8978,板卡靓照:
由于软件上使用了I2S双工,根据文档需要初始化I2S2为输出,I2S2_EXT为录音用,然后初始化对应的DMA收发即可。
其中USB 声卡最复杂的问题是音频同步的问题,由于USB时钟跟I2S的时钟总是会有误差的,这个误差不仅限于时钟,还有漂移和相位属性误差问题,因此USB UAC提共了一个反馈的机制来控制采样率问题。感谢at32完善的bsp不需要去重新去编写这个反馈机制。
HID功能
由于播放音频的时候难免需要使用控制暂停,播放,音量+/-,因此修改了一下自带的Audio_hid_desc里的Report,
然后封装了一个函数来实现功能需求。
最后视频来演示一下:
---
# 结束语
写这个评测的时候其实并不是打算做这个帖子来作为评测贴的,想着用这个性能做一些更高级点的应用,本来打算做 SIP电话开源给大家的,标题都想好了【AT-START-F437测评】原创开源FreeRTOS+POSIX+LWIP+SIP网络电话,移植都完成了功能实现了,连接SIP服务器也很正常,但是就是语音流传输的时候出现了断断续续,一开始考虑到是否是丢包问题,后面用网线直连也是断续问题,然后测试一直都这样,然后把又折腾把软件移植到了 之前的 STM32F4的开发板上,结果没有出现问题,下班吃完饭调到晚上深夜,几个晚上排查大致感觉实在网络发送的问题,但也不太确定哪里的问题.....
闲话到此了,后续如果调通了,就单独在开个分享贴子给大家。
|