STM32F765@216MHz输出I2S试验ES9023P音频听感【代码】【视频】【固件】
[复制链接]
本帖最后由 Kεnny 于 2019-2-21 22:23 编辑
总所周知,人体通过感官获取外界信息最直接的方式无非视觉和听觉,因此多媒体设备的发展朝着这方面进行革新和优化,分辨率、量化位数不断提高,无限逼近人体感知极限,因此HiFi(High Fidelity)泛滥。
作者过年之前拜读过HiFi论坛大神的帖子,听说优秀的播放机和频响设备可以听出电厂是水电、火电还是风电,葛洲坝的发电机组供应商不同也有细微的差别,当然,站在理性的角度,作者认为这是需要经验的 。
作为一个20来岁血气方刚的年轻人,能够克制住单反、显卡、涡喷、液压和女装的冲动,却真的很想DIY一个高解析度的播放设备,但是耦合电容高昂的价格好像在对我说:“不,你不想”。。。最后,看到ES9023P口碑好,不需要耦合电容,参数还不差,自然倾心。
作者就利用手上闲置的STM32F765VIT6接ES9023P做一个通用即插即用USB声卡吧,既然用了STM32,那就不能仅仅搞个USB声卡就结束了,70多块钱一个的SOC,不做成开发板岂不浪费。考虑手头只一个9.9包邮的ST-Link时好时坏,所以,决定借鉴ST官方开发板板载ST-LinkV2_1(只用一根USB线即可供电、下载、调试和串口)岂不美哉!!!![]()
既然板载了ST-LinkV2_1,就不得不考虑将ST-Link电源和地独立设计,方便之后裁剪下来单独使用,于是成了这样:
图1.板载ST-Link V2_1
至于需要添加哪些功能,翻了datasheet,发现没有MIPI-DSI和LCD-TFT控制器,但片上512Kbytes RAM和2Mbytes Flash够大(外置SRAM速度和稳定性都差太多,而且PCB要走等长线,2层板肯定恼火,多层板成本高昂) ,那么空着的FMC总线接个LCD显示屏,留出DMCI接口接CAM可以做USB摄像头,OTG的High-Speed需要外置PHY因此改用Full-Speed速度1.5Mbytes/s使用microB和TypeA两个母座,按照开发板惯例,留出NRF24L01接口加上几个按键可以做遥控器,留出ESP8266接口,板载六轴GyroAcc芯片MPU6050,留出一组4通道PWM可以控制电机,留出一对带死区时间控制的SPWM可做纯正弦波逆变,留出2通道DAC和2通道ADC可做低频波形测量和低频信号发生,顺便加个电压跟随预置lm358(GBW:1MHz)可以pin-pin升级高端运放。。。到这里,pin也所剩无几了,又不想复用,勉强接个音频的格式解码芯片VS1053B。
依据走线要短的原则,于是,整个开发板长成了这样(个人觉得布局不怎么好看):
图2.开发板3D模型
开发板上音频部分单独LDO供电,典型的单片机开发板供电结构:
图3.开发板电源树
大年三十前一天PCB打样回来(心疼邮费),耳机座选深圳产镀金的,电容本来打算用Murata的,一看价格就沉默,看某宝上面有Samsung的就买了,钽电容用AVX,铝电容就用深圳产,LDO选用ME6211C33在10kHz PSRR有62dB:
图4.开发板ES9023P实物图 至于焊接,大老板找工厂SMT,土豪买回流焊机,论坛大神有用美的电烤箱的,有用恒温加热台的,有用妈妈的电熨斗的,而作者独爱消毒柜。搭配Sn63Pb37锡浆,熔点183℃,爬锡强焊点亮,不开钢网,手动点锡,预热开柜,置红外管侧,数分钟后取出,置平底锅上微热降温,完美!但是要注意开抽油烟机,很臭的,,消毒柜用之前要取出碗筷,用完之后要擦洗,最好趁父母不在家的时候弄。。。
图5.板载ST-Link V2_1接PC
图6.通用即插即用USB声卡
据说ES9023P外围电路参考Datasheet设计就能出好声音:
图7.ES9023P电路
图8.ES9023P特征参数
实际测试,U盘读取WAV由I2S直出ES9023P,用华为手机耳机试听效果:解析力强,低频劲,高频足,人声硬,不甜,管弦乐器表达准确,听德国Boys Noize的电音,低频躁,听One I Love人声,有鸟鸣山更幽的感觉。跟手机对比听感有明显差别,手机用的海思Hi6403,各项指标均旗舰,各频段都很均衡,但手机听久了生厌耳朵容易麻木,再去听老款mp3播放器,感觉又不一样。
下面是aux接小音响效果实测视频:
如果视频看不了,则复制连接单独查看(http://v.youku.com/v_show/id_XND ... 9408c7ceb9a65201657)
未使用OS和界面库,通过CubeMX建立的标准HAL工程,代码均一键生成,添加少量业务代码,编码风格参考ST案例工程,窃以为不至于带偏别人,因此双手奉上,供大家取用:
【通用即插即用USB声卡】
https://bbs.eeworld.com.cn/forum.php?mod=attachment&aid=NDAyODEyfGFiNDBkZTNiNjEwOGUxYmE5ZjgwZjIyZjExYTM4ZDQxfDE3Mzg5MTQ1ODg%3D&request=yes&_f=.7z
【U盘读取WAV由I2S1送ES9023P】
https://bbs.eeworld.com.cn/forum.php?mod=attachment&aid=NDAyODExfDYwZjZkYThiOGFhMjI3MmQ3MTM5MGZlZDc4M2E5NWEyfDE3Mzg5MTQ1ODg%3D&request=yes&_f=.7z
【代码备注】USB声卡案例,实际播放SampleRate和PC输出不可能严格一致,代码未作爆Buffer处理,因此时间每隔固定时间会有一声破音,请知悉
【后期方向】
mp3、flac等格式软件解码,数字滤波,人声优化,均衡调节
【附1:stlinkv2.1_bootloader,烧写之后使用USB进行固件更新,个人实验,如果侵权请联系删除】
https://bbs.eeworld.com.cn/forum.php?mod=attachment&aid=NDAyODMyfDFlMTdmYjllYWQyZDEwMmIxYjRmNmE3YTAyOGM1MTdhfDE3Mzg5MTQ1ODg%3D&request=yes&_f=.bin
【附2:SOC特征】
SOC:STM32F765VIT6
封装:LQFP100
特性:
(1) 32-bit Cortex-M7 with DPFPU, ART Accelerator™ and L1-cache, 216 MHz, MPU, 462 DMIPS/2.14 DMIPS/MHz (Dhrystone 2.1), DSP.
(2) SRAM 512(368+16+128)Kbytes, Flash Memory 2Mbytes
(3) MISC:
a. FMC Bank1 (can only support a multiplexed NOR/PSRAM memory using the NE1)
b. Quad-SPI、SPI/I2S、I2C、USART/UART、CAN、SAI、SPDIFRX、SDMMC
c. DCMI up to 12-bit
d. Chrom-ART Accelerator (DMA2D)e. DFSDM 4 filters
e. 3*12-bit ADC (16 channels)、12-bit DAC with 2 channels
f. USB 2.0 FS device/host/OTG(on-chip PHY)
g. USB 2.0 HS device/host/OTG(ULPI)
h. 100/10 Ethernet MAC(MII/RMII)
此内容由EEWORLD论坛网友Kεnny原创,如需转载或用于商业用途需征得作者同意并注明出处
|