记一次USB声卡设计开发

10 篇文章 2 订阅

目前笔者从事音频开发工作,借助公司硬件资源,给自己做了个迷你声卡,接下来让笔者介绍一下相关开发过程。

USB声卡,这里借助度娘的解释:USB声卡是插在USB口的声卡,通过USB总线与计算机系统链接。。。。。。

那么怎么DIY声卡需要些什么硬件资源呢?

1.具有USB和音频相关外设(I2S/TDM等等)的MCU    2.AD/DA芯片,也叫Codec(编码解码器)  3.输出输入接口及相关模电电路

如下简图:

        笔者这里直接选用的MCU资源为NXP的RT1052,当然MCU大可不必选这么好的,选用STM32F1系列基本就可以,笔者主要为了可玩性,加一些算法效果所以选择了这款比较火的跨界处理器。Codec的选择根据自己想做到什么级别的吧,市面上的几块十几块几十块的都可以,我们主要需要了解的一些基本参数:动态范围,信噪比等等。另外模拟运放部分也很关键,总之音质的影响是方方面面的,如:USB Audio 同步问题,Codec选型配置问题,运放设计问题,电源问题都会影响声卡的参数。

如下实物图:

        硬件配套全了,接下来开搞软件了,核心部分当然是USB Audio啦。这里笔者采用比较古老的Audio1.0标准开发的,主要原因是免驱,开发难度不会很大。对于USB Audio 的开发这里说比较关键的几点:

1.设备接口数量:如果要实现扬声器和录音功能,那么接口数量为3个分别为: Control+Recoder+Speaker

2.音频流同步问题(缓冲区的处理方案,反馈端点的使用策略)具体可以参考我之前写的一个博客

USB Audio 音频流同步问题_L_17的博客-CSDN博客

3.采样率,采样精度,格式等等

4.每次修改usb audio配置后必须卸载之前的驱动,让PC重新配置相关驱动

下面分享其关键的配置描述符:

uint8_t g_UsbDeviceConfigurationDescriptor[] = 
{
    0x09, 0x02, 0xD4, 0x00, 0x03, 0x01, 0x00, 0xC0, USB_DEVICE_MAX_POWER, 

    //ctrl
    0x09, 0x04, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 
    0x0A, 0x24, 0x01, 0x00, 0x01, 0x48, 0x00, 0x02, 0x01, 0x02, 
    0x0C, 0x24, 0x02, 0x01, 0x04, 0x02, 0x00, 0x02, 0x03, 0x00, 0x00, 0x00, 
    0x0A, 0x24, 0x06, 0x02, 0x01, 0x01, 0x01, 0x02, 0x02, 0x00, 
    0x09, 0x24, 0x03, 0x03, 0x01, 0x01, 0x00, 0x02, 0x00, 
    0x0C, 0x24, 0x02, 0x04, 0x01, 0x01, 0x00, 0x02, 0x03, 0x00, 0x00, 0x00, 
    0x0A, 0x24, 0x06, 0x05, 0x04, 0x01, 0x01, 0x02, 0x02, 0x00, 
    0x09, 0x24, 0x03, 0x06, 0x02, 0x03, 0x00, 0x05, 0x00, 
    0x09, 0x05, 0x81, 0x03, 0x08, 0x00, 0x08, 0x00, 0x00, 
    
    //Recoder
    0x09, 0x04, 0x01, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 
    0x09, 0x04, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x00, 
    0x07, 0x24, 0x01, 0x03, 0x00, 0x01, 0x00, 
    0x0B, 0x24, 0x02, 0x01, 0x02, 0x03, 0x18, 0x01, 0x44, 0xAC, 0x00, 
    0x09, 0x05, 0x83, 0x25, 0x0E, 0x01, 0x04, 0x00, 0x00,
    0x07, 0x25, 0x01, 0x00, 0x00, 0x00, 0x00, 
    
    //Speaker
    0x09, 0x04, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00,
    0x09, 0x04, 0x02, 0x01, 0x02, 0x01, 0x02, 0x00, 0x00, 
    0x07, 0x24, 0x01, 0x04, 0x01, 0x01, 0x00,
    0x0B, 0x24, 0x02, 0x01, 0x02, 0x03, 0x18, 0x01, 0x44, 0xAC, 0x00, 
    0x09, 0x05, 0x02, 0x05, 0x66, 0x01, 0x04, 0x00, 0x82, 
    0x07, 0x25, 0x01, 0x00, 0x00, 0x00, 0x00, 
    0x09, 0x05, 0x82, 0x15, 0x04, 0x00, 0x04, 0x05, 0x00,                                    
};

戴上我的耳机试试,呦有点意思!!!大功告成

  • 2
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Android USB声卡是一种通过USB接口连接到Android设备的外部音频设备,用于提供更高质量的音频输入和输出。它可以替代手机或平板自带的内部声卡,提供更好的音频处理和音频效果。 Android USB声卡通常由一个USB接口和音频输入输出接口组成。通过连接USB接口,可以将声卡连接到Android设备上。利用声卡的音频输入接口,可以将外部麦克风或乐器等音频信号输入到Android设备上,进行录音或音频处理。利用声卡的音频输出接口,可以将Android设备上的音频信号输出到外部音响、耳机或音箱等设备上,提供更好的音频体验。 通过使用Android USB声卡,用户可以获得更高质量的音频输入输出。与手机或平板自带的内部声卡相比,USB声卡通常具有更高的采样率和比特深度,可以捕捉更真实、清晰的声音和音乐细节。此外,USB声卡通常还提供了更多的音频接口,比如耳机输出、音频输入等,方便用户根据不同的需求进行连接。 此外,在音乐制作、录音和混音等专业领域,Android USB声卡也发挥着重要的作用。相对于内部声卡USB声卡通常具有更好的音频处理和效果处理能力,可以满足专业用户的需求。用户可以通过连接USB声卡,将专业麦克风、乐器等设备连接到Android设备上,进行更高水平的音频创作和编辑。 综上所述,Android USB声卡可以提供更高质量的音频输入输出,以及更好的音频处理和效果处理能力。无论是普通用户还是专业音乐人,都可以通过使用Android USB声卡,获得更出色的音频体验和创作效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值