『瀚思彼岸』» 智能家居技术论坛
标题: 香橙派OrangePi Zero之Volumio数字播放系统 快来DIY! [打印本页]
作者: TwoOne 时间: 2021-8-21 15:17
标题: 香橙派OrangePi Zero之Volumio数字播放系统 快来DIY!
本帖最后由 TwoOne 于 2021-8-21 17:31 编辑
OrangePi Zero可能是目前存世量最高的全志开发板设备了,H2+ SOC、百兆PHY、自带WiFi能够满足不少的开发需求。Volumio是一个非常强大的数字播放系统,我希望手里所有的开发板都能物尽其用,因此决定刷上Volumio,做成一个数播系统继续发光发热。本文主要涉及Volumio系统刷写+PCM5102解码电路绘制。
[attach]31390[/attach]
Volumio系统刷写
Volumio是一款高颜值低配置要求的数播软件,能够读取USB设备、NAS上的音乐文件,支持各种主流格式和无损音乐播放,支持苹果Airplay等无线推送播放。官方只提供了树莓派和x86设备的镜像。树莓派一代都能够完美运行,可见配置要求并不高,因此移植到香橙派上按照全志的性能绝对是绰绰有余的。通过搜寻资料果然一官方帖子中有OrangePi Zero的Volumio镜像。烧写后发现这个2017年原作者编译的镜像太古老,导致Homeasistant对其支持不友好,界面内无法调用API获取播放列表,只能简单控制音乐的播放和暂停。好在另外一个老哥分享了2020编译的版本,目前工作正常。
新版本的安装完成后,在homeassistant中能够实现联动,显示当前播放的文件名以及歌词。
[attach]31391[/attach]
烧录后第一次启动因为解压内核,需要至少10分钟时间,我一度以为镜像出错无法兼容。长时间的等待之后成功进入了系统。
Volumio默认是不开启SSH功能的,需要进入IP地址volumio.local/dev 打开SSH,即可通过用户名volumio 密码volumio 访问。
Volumio的界面非常友好,运行向导可以配置进行WiFi联网、挂载NAS等操作。
[attach]31392[/attach]
打通I2S和Wlan因为OrangePi Zero并不带音频输出接口,所以需要通过I2S接口外接解码芯片实现音频输出。全志H2+芯片的I2S接口DATA引脚为PA20,而Zero将此引脚用做了WLan LDO电源的使能信号引脚,因此需要改造一下电路。
[attach]31393[/attach]
[attach]31394[/attach]
从原理图中可以看到,PST73118BETV是一颗1.8v 300mA的LDO电源芯片,只需要将EN脚挑起,输入高电平即可。可以选择直接和VIN脚联通,也可以和板子上的3.3v测试点联通,我选择了后者。同时底部焊盘飞线引出,作为I2S输出。
[attach]31397[/attach]
线飞完后,I2S的其他引脚全部都能在排座上找到,分别是DATA、BCK、LRCK。引用一张图片:
[attach]31395[/attach]
飞线完成用ifconfig测试一下,已经能够成功找到eht0和wlan0两张网卡。
[attach]31398[/attach]
到此板子的处理就全部完成了。
PCM5102解码板绘制
I2S有3个主要信号:
1、串行时钟 SCLK,也叫做位时钟BCLK,即对应数字音频的每一位数据,SCLK的频率=2×采样频率×采样位数,I2S一般是传输立体声,有两个声道channel,采样频率指的是采样数率,多久去采集一个点,每个点是几个bit组成。
2、帧时钟LRCK,用于切换左右声道的数据,LRCK为“0”表示正在传输的是左声道的数据,为“1”表示正在传输的是右声道的数据。LRCLK == FS,就是采样频率。
3、串行数据SDATA,就是用二进制补码表示的音频数据,有时为了使系统间能够更好的同步,还需要另外传输一个信号MCLK,称为主时钟,也叫系统时钟(System Clock),是采样频率的256或384倍。
香橙派Zero这个板子并没有引出MCLK信号,因此只能将采样频率倍频后送入DAC中,完成时钟的同步。PCM5102这款芯片,刚好具有这个功能,因此无需连接MCKL(PCM芯片中又称为SCK)信号,将SCK引脚拉低即可使系统内部输出时钟完成同步。
[attach]31399[/attach]
官方发布的中文资料,值得信赖(虽然只有第一页是中文哈哈哈)
按照官方参考原理图和layout绘制即可:
[attach]31400[/attach]
电路中,PCM5102共需要三路3.3v的VCC供电,分别是数字、模拟和电荷泵。这三路电源独立设计,GND在大电容处一点接地,以最大程度降低底噪。放出我的原理图以供参考。
[attach]31401[/attach]
为了尽可能缩小成品的体积,我按叠层电路板的思路设计板子,配合3D打印的外壳做成一个内夹Zero的三层汉堡。同时为了让板子能够充分散热,SOC部分挖空以安装突起的散热片。这款板子的WLan、SOC、DRAM都是发热大户,同样需要经过降频处理以降低功耗和温度,并覆盖散热片,这个将在后面讲到。
[attach]31402[/attach]
3D打印的外壳将天线外置,用小辣椒天线,这个样子还是非常讨喜的。
上层解码板实际我调整了四次,第一次测试功能和底噪,第二次和第三次调整外形,更好地匹配外壳。
焊接部分非常常规就不讲了,一把烙铁行天下。
[attach]31403[/attach]
因为全志这款芯片的发热实在是太大了,待机能轻松超过70度,装入机壳后甚至85+,所以最终的版本中做了最大面积的开窗,在上方安装一个小风扇,让风扇下吹形成尽可能大的风道。风扇压制下,温度能降到65度上下,这样才能放心长时间运行。
功放继电器插件
利用开发板最大的优势就是GPOIO非常丰富。Volumio中有个很好用的插件库,里面有一个叫Amplifier Switch,可以利用GPIO口连接继电器,在播放音乐时自动开启,播放结束后延时关闭,延时时间可以自定义。
[attach]31404[/attach]
于是为了不影响美观,我利用了一下供电的USB口。将GPIO10焊接到USB的D+和D-上,这样可用一条USB实现供电+继电器控制,于是整机只有一条供电线和一条音频线引出,极简设计!
[attach]31405[/attach]
听感
听感这个东西就比较玄学主观了,对我而言,这块解码板确实没有让我失望。首先零底噪,上电、切歌是没有噪音的,所谓静如深海;其次动态比我的笔记本板载声卡要丰富,感觉细节更加清楚,音乐的场面能够恢弘全景的呈现。总结四个字:通透敞亮!
起初我还担心这块小芯片的表现,而它的表现作为一个数播系统的DAC解码是不折不扣的高分选手。在此也推荐给有DAC解码需求的伙伴们。
OrangePi Zero的三三两两
关于香橙派的表现,除了第一次开机时间较长外,后续开机在一分钟内都能完全启动,访问WEB界面,使用过程中也不会出现卡顿的情况,性能足够。
首先要解决的第一个问题是MP3等音乐文件中文乱码的问题,这个问题我也还在摸索中。Volumio只识别ID3v2的tag,使用Mp3tag修改工具,将其编码格式换为UTF-8,能解决一大部分乱码的问题,其次还乱码的,如果想我一样懒得折腾,那直接删除所有tag就能一劳永逸。删除tag后,Volumio将显示音乐的文件名,播放全部都正常,只是无法获取封面和歌手、专辑等信息。
[attach]31406[/attach]
第二个是插件功能。Volumio有一个非常好用的继电器插件,能够控制GPIO口连接继电器,播放音乐时自动打开功放,播放结束后延时关闭功放,这简直是懒人福音,再也不用用手开关功放了哈哈。
第三个是温度控制。这是老生常谈的问题了。Volumio是基于debian系统开发的,一些为armbian设计的软件比如h3consumption无法使用,h3consumption能够关闭GPU核心,降低发热量,但对于此时的Zero来说,经过我的多次尝试,只能通过降频的方法降温。在不人工干预的情况下,Volumio默认为CPU的调度在performance性能模式,导致主频稳在1.1GHz,测量此时的CPU供电在1.3v,温度能一路狂奔到80。在长期值守的情况下,这个问题还是让我有些担心。
修改/etc/default/cpufrequtils文件,将其改为ondemand按需模式或者conservative保守模式,保存后重启服务,CPU将长时间跑在480MHz。稳定运行一段时间以后,CPU终于能下降五度(捂脸)测量CPU供电为1.1v。降多少都是降对吧,在不损失性能又不想加装主动散热又想要极致体积的情况下,这是最佳解决办法了。
[attach]31396[/attach]
最后尽情享受音乐吧!
作者: aexyun 时间: 2021-8-21 15:49
围观大佬,先
作者: zhouhui920 时间: 2021-8-21 16:59
高手啊,字都跟零件一样密集了
作者: TwoOne 时间: 2021-8-21 17:28
CPU内确实有一个内置的DAC,效果不好只能听个响。
作者: gzwireless 时间: 2021-8-21 19:38
厉害了,拜膜一下
作者: innx 时间: 2021-8-22 14:45
厉害厉害
作者: jack9603301 时间: 2021-8-22 18:28
用习惯了贴片元件的焊接方法,才能说焊接容易把,不管怎么说,不同的开发者有最适合自己的选择方法
作者: jack9603301 时间: 2021-8-23 16:49
厉害,不知道楼主是第一次焊接还是专门做这个的,o(∩∩)o...哈哈
不过,如果是我,会选择树莓派,连解码板都不需要
作者: TwoOne 时间: 2021-8-23 20:03
也可以的哈,我这是闲置利用哈哈。树莓派有输出,音质没有这个独立DAC来的好的
作者: yinghu183 时间: 2021-8-23 20:12
看不懂,围观一下大佬
作者: 菠菜大哥 时间: 2021-8-31 18:49
这就是全栈的威力
作者: along1231 时间: 2021-9-8 21:06
厉害了,拜膜一下
作者: zxyny1989 时间: 2021-9-11 00:44
请收下我的膝盖
作者: 15283928038 时间: 2021-9-26 22:31
想主请教下歌词是怎么实现的,我换了几个版本,播放音乐都没有歌词,HA里面也不会显示歌词。
作者: 15283928038 时间: 2021-9-28 07:46
请教下大师,歌词是怎么显示出来的。
作者: hxkjc 时间: 2021-9-28 15:12
围观大佬
作者: kissax 时间: 2023-2-1 11:46
很不错,有兴趣
欢迎光临 『瀚思彼岸』» 智能家居技术论坛 (https://bbs.hassbian.com/) |
Powered by Discuz! X3.5 |