123下一页
返回列表 发新帖我要提问本帖赏金: 20.00元(功能说明)

[应用方案] 【原创】N76E003+CM108B+TLV320AIC23B的I2S USB耳放(连载)

[复制链接]
 楼主| tianxj01 发表于 2018-8-4 11:00 | 显示全部楼层 |阅读模式
本帖最后由 tianxj01 于 2018-8-12 17:10 编辑

最近单位手头任务基本上完成,有点空闲时间了,就会想着折腾点啥,曾经弄过USB驱动+供电的耳放,效果不怎么理想,底噪有点大(和USB供电有直接关系),这就想起了,重新折腾一个。
作为这类东西的主控管理芯片。N76E003硬件够齐全,体积小,关键是性价比高,主控就是它了。
准备搞的东西,体积应该很小,因此,音量控制什么的都只能用按钮,而舍弃数字音量控制常用的飞梭。
TLV320AIC23B的控制,可以选择SPI也可以选择I2C,本着越简单越好的原则,就I2C了,003通过I2C,控制TLV320AIC23B的初始化、增益、静音、过采样率、掉电。
TLV320AIC23B是3.3V供电,考虑LDO数字部分可以共用,N76E003供电也采用3.3V。
下面是主控部分线路。经过修改,取消了PMOS开关,后级软关机都由单片机进行,且把CM108B的MODE和MSEL引脚也进入单片机,测试是否可以由单片机软控。PDSW和RUN引脚分别用于检测关机信号和工作状态,通过MIC插坐,引入3.3V的MIC插入信号,如果MODE可以软控,这里就是一个检测端口。另外就是3个按钮端口和2个I2C端口加上编程端口、串口了。
裁剪.gif

打赏榜单

21ic小喇叭 打赏了 10.00 元 2018-08-28
理由:原创分享

 楼主| tianxj01 发表于 2018-8-4 11:00 | 显示全部楼层

TLV320AIC23B的I2S解码、耳放部分

本帖最后由 tianxj01 于 2018-8-4 11:15 编辑

继续:
I2S解码、耳放选择TLV320AIC23B,
由于只使用了I2S解码输出部分,其他指标直接无视,具体如下:
DAC信噪比:DAC SNR (Typ) (dB):100
立体声耳放部分:
0分贝输出:0-dB full-scale output voltage 1.0 VRMS
输出功率:Maximum output power 32Ω 30mW  16Ω 40mW
信噪比:Signal-to-noise ratio, A-weighted (see Note 4) AVDD = 3.3 V ≥90 dB 标准97dB
电源抑制比:Power supply rejection ratio 1 kHz, 100 mVpp 50 dB
带开关机噪音抑制和数字静音。
想来这个芯片做个数字解码耳放应该是够了。
下面是线路图

裁剪.gif
 楼主| tianxj01 发表于 2018-8-4 11:01 | 显示全部楼层

CM108B USB 声卡部分

本帖最后由 tianxj01 于 2018-8-7 17:50 编辑

USB声卡芯片选择CM108B,有完善的ASIO 声卡驱动(HI-FI的前提)性价比高,功能多,抖动jitter数据中等水平,作为一款SOUND-I2S接口,在HI-FI范围应用,完全足够了。为了进一步降低jitter失真,采用单独电源供电的有源12MHz晶振。
实际上只用了内部 SOUND CARD I2S编码部分硬件资源,其余只选择了一个简易MIC输入,好方便网络音频使用,其余全部咔嚓。
考虑到声卡芯片和单片机是同时即插即用,因为没测试过是不是可以通过MCU的IO来控制该2种模式,故保留2种跳线选择,(选择声卡纯耳机模式、耳麦模式和电脑混音器路径选择,适应最多功能应用和最精简模式)实际做板子会连接2个IO口,测试是不是能够由单片机来控制完成。
线路图:

裁剪.gif

打赏榜单

csj85807008 打赏了 10.00 元 2023-12-29
理由:谢谢楼主无私分享

评论

@csj85807008 :PCM2706,USB,WIN7以上免驱动,完全支持ASIO驱动,16-Bit Delta-Sigma Stereo DAC,THD+N: 0.006% RL > 10 kΩ,THD+N: 0.025% RL = 32 Ω,SNR = 98 dB,完成支持IIS输出输入。 我本来可以就用这一个芯片做一个电脑USB耳放的,因为想玩玩TLV320AIC23B,故选择了CM108,至于指标TLV  发表于 2024-3-5 15:30
ASIO驱动的USB声卡芯片现在有哪些常用的推荐一下,最好有自带解码的,不用自带耳放。  发表于 2023-12-29 15:01
 楼主| tianxj01 发表于 2018-8-4 11:01 | 显示全部楼层
本帖最后由 tianxj01 于 2018-8-6 09:49 编辑

今天开始做PCB,突然想到,单片机可以sleep,而TLV320AIC23B有Power Down Control 功能,那么CM108B的PDSW输出控制信号,只需要引入到N76E003中断,或N76E003轮询,就可以实现后面级Power Down功能,很明显这样的话,Q1的PMOS管开关就完全不需要了,上传的线路就不改了,这部分大家直接无视,另外把CM108B的PDSW输出连接到N76E003的IO,后级的Power Down功能由N76E003软控就好。
等PCB做好,上传PCB图。
裁剪.gif
看线路有点复杂,其实器件并不多,可弄到的盒子就这么大,板子必须配合,所以器件排的非常空闲,不过这样也好处理混乱的AGND和GND分块,可以更充分考虑音频干扰什么的。板子上所有看上去像电解电容的东东,全部都是钽电容,一个是提高性能,另一个就是为了降低高度。
板子实际大小:85*55mm。
今天发出去打样了,大家耐心等待2天吧。2天应该就回来了。


 楼主| tianxj01 发表于 2018-8-4 11:17 | 显示全部楼层
继续占位..............
dongnanxibei 发表于 2018-8-4 20:24 | 显示全部楼层
给你点赞,做好了吗,看看实物图。

评论

已经基本做好,可以围观了。  发表于 2018-8-12 10:09
dongnanxibei 发表于 2018-8-4 20:24 | 显示全部楼层
以前我用TI的做过一个。
xinpian101 发表于 2018-8-4 21:52 | 显示全部楼层
坐等直播。
zhuomuniao110 发表于 2018-8-5 18:19 | 显示全部楼层
做出来了吗
pmw_56 发表于 2018-8-5 22:21 | 显示全部楼层
tianxj01 发表于 2018-8-4 11:01
USB声卡芯片选择CM108B,有完善的ASIO 声卡驱动(HI-FI的前提)性价比高,功能多,jet抖动数据中等水平,作 ...

加CC1101 , 这个可以搞成无线数字对讲机吧 ?

先MARK下
caijie001 发表于 2018-8-5 22:38 | 显示全部楼层
mark,更完楼主能不能艾特我

评论

@tianxj01 :谢谢  发表于 2018-8-12 10:36
已经基本完工,欢迎围观  发表于 2018-8-12 10:10
eydj2008 发表于 2018-8-6 08:14 | 显示全部楼层
咋一看 这是给电脑用的?  手机能用吗?   输出直接推功放

评论

@tianxj01 :顶, 那主要还是硬件上的工作,软件很简单, 估计要用电池供电才行,我看到淘宝有卖 500块左右那个, 赶快做出来玩吧 到时从你那里买个板来玩玩  发表于 2018-8-6 10:16
是的,做的就是一个PC用的USB 高保真 数字耳放,由USB直接驱动和供电。 理论上手机只要支持HOST USB设备,就可以驱动起来,当然就能用了。输出直接驱动功放信噪比可能会有所下降,但是处理一下应该不是问题,毕竟95dB放在那。  发表于 2018-8-6 09:48
heisexingqisi 发表于 2018-8-7 07:40 | 显示全部楼层
人家做的就是USB声卡,不懂的不要骂人,太没素质 了,一看就是键盘侠。。

评分

参与人数 1威望 +3 收起 理由
tianxj01 + 3 赞一个!

查看全部评分

 楼主| tianxj01 发表于 2018-8-7 08:14 | 显示全部楼层
heisexingqisi 发表于 2018-8-7 07:40
人家做的就是USB声卡,不懂的不要骂人,太没素质 了,一看就是键盘侠。。

USB声卡档次差异很大,但是数字接口部分芯片差异到不是太厉害,主要的也就是Jet抖动,所以选择什么模式工作就很重要了,像CM108B,芯片属于低档USB声卡芯片,这个低档主要是因为内部DAC、ADC指标比较差,如果我们不用这块,只使用芯片的数字音频部分,也就是只把芯片当作PC-I2S转换器,那么我们就做到了扬长避短。
而后续的TLV320AIC23B恰好DAC SNR达到100dB,立体声耳放SNR达到97dB,这已经是中档Hi-Fi标准的指标了,当我们进一步对电源做良好的处理,模拟数字全部分离,那么小成本就可以获得很好的性能了。
 楼主| tianxj01 发表于 2018-8-7 18:27 | 显示全部楼层
趁着做板子,现在把机器基本工作流程简述如下:
先看简单流程图:
流程图.gif

PC端,安装好CM108B兼容声卡驱动后,应用程序,将音频文件,解释成为USB数据流,到本声卡的CM108B芯片,芯片接收USB音频数据流(不稳定),并通过内部时钟,进一步编码成为I2S音频数据,传输到TLV320AIC23B。
TLV320AIC23B,内部DAC将I2S数据,转换为音频输出,并送到耳机放大器,输出。
N76E003,负责播放状态和MIC插入等的检测,并切换CM108B到相应工作状态,同时,根据按钮、上电等,通过I2C控制TLV320AIC23B的增益和静音、开机冲击消除等。
很明显,这里从PC端--声卡I2S输出,都是纯数字操作,中间不会引人任何附加噪音和其他不可知失真,唯有I2S编码的时钟稳定性,会造成jitter失真,因此这里选择CM108B也是因为该芯片jitter参数和高档芯片比并不差,处于中档以上水平。同时为了进一步控制jitter,采用了外接有源晶振并用AMS1117-3.3单独供电。获得最大稳定性。
TLV320AIC23B内部DAC SNR=100dB  耳放 SNR=97dB,这个指标,已经超过CD音乐标准。所以实现Hi-Fi应该不是问题。对于48KHz采样音频,TLV320AIC23B提供96KHzDAC采样率,也就是2倍过采样,也完全符合中档Hi-Fi信源标准了。
而上面的所有过程,除了jitter失真、就唯有TLV320AIC23B把I2S数据转换为音频的失真过程,这里TLV320AIC23B的DAC部分 Total harmonic distortion(总谐波失真)=−92dB (1KHz -3dB)该指标也虽非非常惊人,但也是相当可以了。
这样构成的系统,根据上面所述,做一个小小的Hi-Fi耳放,完全足够了。唯一担心的就是电源条件,毕竟采用的是USB直接供电,而USB供电质量大家都明白,虽然采用了一片AMS1117-3.3为音频部分单独供电,还必须对音频地和数字地进行进一步处理,加强退偶滤波,并且稍大退偶电容全部采用钽电容。
线路完成,板子去打样了,剩下的就看板子的实际工作性能了,期待有个好效果。


 楼主| tianxj01 发表于 2018-8-10 11:18 | 显示全部楼层
11111.jpg
板子刚刚才通过顺丰到手。
黄油,看起来还像那么回事情。
下午开始焊接器件。
贝塔 发表于 2018-8-10 21:28 | 显示全部楼层
请问楼主为啥不选择NUC123作为主控呢?一头接USB,另外就直接输出IIS了。参考代码都有的。
 楼主| tianxj01 发表于 2018-8-11 11:34 | 显示全部楼层
贝塔 发表于 2018-8-10 21:28
请问楼主为啥不选择NUC123作为主控呢?一头接USB,另外就直接输出IIS了。参考代码都有的。 ...

这一类IIS输出,如果是USB播放(不是USB声卡)还成,做USB声卡-IIS是不行的。
 楼主| tianxj01 发表于 2018-8-11 11:47 | 显示全部楼层
板子焊接好了,大家上眼,就这么个样子:
4444.jpg

板子上面由于都是钽电容,所以很多大电容并联的0.1直接暂时忽略。
MIC输入部分,不是整个测试的重点,果断暂时不弄。
单片机程序也只是纯粹的TLV320AIC23B初始化,其他什么都没写。
下面开始测试:
第一次插入USB,电脑没认,怀疑没有焊接好,对USB插座再进行一次补焊。
插入电脑,设备顺利出现。CM108B,系统自己认识,基本驱动直接就装上了。
接着就是安装ASIO驱动:AudioDevice on USB Bus 2.8.40
也顺利完成。一路好消息:
3333.jpg

下面上基础波形测试:
2222.jpg
MCLK和SCK信号,采样44.1KHz 32Bit IIS SCK频率=2.8224MHz,至少示波器直读还是非常准的,看波形速度限制非常合适,无明显过冲,波形稳定,这是Hi-Fi的基本保障。
111.jpg
IIS的LRCK和DATA。没什么好说的,反正就是干净利落。

贝塔 发表于 2018-8-11 23:30 | 显示全部楼层
看了楼主的波形,确实比NUC123输出的波形好太多了,那个做主模式的时候不太准,做从模式还行。TI CODEC推大耳机还是不行,要不要试试line out 加功放?

评论

0-dB full-scale output voltage 1.0 VRMS 哪怕驱一般的高阻耳机都够了。不要说低阻耳机了。  发表于 2018-8-12 09:40
您需要登录后才可以回帖 登录 | 注册

本版积分规则

17

主题

3211

帖子

93

粉丝
快速回复 在线客服 返回列表 返回顶部