dafeng133 发表于 2014-3-1 15:11:46

【转贴】用PIC单片机汇编程序做的音乐频谱,相当牛!

本帖最后由 dafeng133 于 2014-3-1 15:23 编辑

(原贴在数码之家论坛:《超动感音乐频谱显示_红蓝双色》bbs.mydigit.cn/read.php?tid=791846

    继13*14 LCD《音乐频谱显示器》和13*14 LED《音乐频谱显示器》后,旋子挑战更高难度,开发了16*16 红蓝双色LED《超动感音乐频谱》。相比之前的版本,该频谱具有分辨率更高、功能更强、效果更好、使用更方便等主要特点。当然材料成本也更高;程序和硬件做了全面的优化(运算提速45%)。下面就来认识一下这个“姗姗来迟”的“丑媳妇”吧。话不多说,先看视频。

player.youku.com/player.php/sid/XNjc2MTg1Nzc2/v.swf

由于优酷转码原因,播放时声音可能会不同步,有需要有朋友可以移步到百度云下载我的原视频文件:
《超动感音乐频谱显示_红蓝双色》pan.baidu.com/s/1bnBvRY3
详细介绍:
1.先上两张正反面图。



      正面仍然是无任何丝印字符;全黑“身形”尤如“黑金钢”般不畏黑暗;其“三围”是247*108*2mm ,显得高端、大器、上档次!依照人们观看频谱习惯,LED纵向排列要比横向来的密集。PCB布局布线整齐有致,在兼容插件双色LED的情况下,四周冗余边框控制到了最小,实则不易!


      再看背面,一眼就能看见6颗IC“静静”地“守”在各自的岗位上协同工作,有白色圈圈的就是主控CPU了,旁边是一个32.768KHz的晶振。这里有人会觉得不思议了,什么情况啊,这可是做大量信号运算的频谱呢,这么低的频率,难不成你的主控是FPGA不成?误会了,其实这只是作为时基而已,内部有比这高得高的时钟,叫PLL锁相环倍频。旋子玩单片机也超频了一把,用40KHz晶振代换,并短接晶振旁边的JP4(以选择正解的频率运行程序),达到了22%的性能提升。
      线路板上方“架”起了8个MOS管,迎接“大电流”的到来(用IO直驱点阵屏的方法简直就是弱暴了)。细细观察发现,四周只有一个插拔寿命更高的Micro USB接口,这该如何输入音频呢?原来Micro USB除了外壳以外,其实有5个PIN脚,两根做5V电源引脚,三根作立体声音频输入。在输入接口旁边是一个硕大的钽电解电容,以提供电源的稳定。在钽电容右上方有个小型的亮度调节电位器,用于设置屏幕亮度。线路左上角(背面视图)上是一个侧边按键,用于设置开/关机、手/自动模式、模式切换以及系统复位等多种功能。有人会问这么多功能,仅一个键操作岂不是很繁琐或者根本不可能实现。但旋子告诉您,其实比用鼠标还简单,无非就是单击和双击。具体怎么实现的,就请认真看测试视频吧!右下角是产品名称及出处,设计日期,TB网址等。

2.显示效果照片也来几张









3.此次升级,除了显示效果提升到了一流水平,硬件方面也下足了功夫。开关机、多显示模式、自动增益(AGC)功能一应齐全,下面是旋子的多项独创:

1、使用RISC构架单片机汇编程序设计,代码密度超高
2、浮点运算,信噪比高(别人用的可都是定点数运算,谁与争峰?)
3、12位采样精度,动态范围宽(4倍于10位采样,16倍于8位采样)
4、使用红蓝双色同体LED,比红绿双色更酷
5、LED采用恒流芯片+MOS管驱动,亮度高且一致性好,哪怕不同电压的LED
6、外部使用低频32.768KHz晶振,内部PLL倍频,抗干扰能力更强
7、外部可直接超频40KHz(有频率选项跳线,只提升运算速度,不影响工作状态)
8、线路板兼容贴片和插件LED,且板边控制到了最小,便于不同的DIY.
9、黑色2mm超厚PCB,正面除了LED,无任何凸起元器件和丝印字符
10、使用钽电解电源滤波,信噪比和抗干扰能力再提升一个档次
11、1uA超低待机电流,是移动电源的保护伞。
12、LED亮度使用电位器无级调节,实现单片机不可能完成的任务
13、具有测试模式,方便排查故障。还可用来照明哦!
14、单键操作,单线路板、单接口(Micro USB)设计,使用方便
15、电源音频线自带信号分支,不必另接分支器,随行随用。
16、全动态操作菜单,使用心情非常愉快!
17、多个独创显示模式,如有雷同,请看我首次发布时间。谁抄谁一目了然。
18、带手动/自动切换显示功能,支持切歌更换模式,酷!



补充说明:

旋子工作室出品的音乐频谱,注重每个细节的性能提升;本次频谱的全面升级对比市面上的频谱具有以下不同:
1.板厚而整体轻簿(PCB尺寸:247*108*2mm);普通的PCB厚度只有1.6mm;
2.显示正面干净整洁,除LED外,无其它元件或裸露引脚。冗余的PCB面积大幅减小。
3.单接口(Micro USB)单按键(侧面),使用简单方便,USB线连接音频,另一端接上5V直流稳压电源和音源即可工作:单击切换模式,双击关机或切换手动/自动.
4.亮度高(设计1/8扫采用高亮LED且电流大于3mA):市场上同类产品大都为了节约成本,使用传统74HC595D 1/16扫方式驱动LED,而74HC595驱动电流仅为70mA,则单颗LED电流=70mA÷8路×1/16扫<0.6mA,亮度可见一般,即使1/4扫也无法与本频谱相抗衡。
5.无闪烁(严格130Hz):同类产品在往往很难兼顾AD采样与LED扫描的实时性,导致LED扫描频率不稳定,从而出现闪烁现象;更有甚者由于使用C语言编写的代码,代码效率不及汇编,受单片机处理速度限制而不得不降低LED扫描速度引起频闪(当扫描低于60Hz,长期观看眼睛会感觉不适)
6.跳动流畅,动感十足,旋子把两点当作频谱的灵魂:从所周知,视频帧速低的动作电影很难表现其场面的振捍,甚至很不爽。同理频谱也要求帧速高于30Hz才会看上去流畅,这里指的帧速并非LED扫描频率,而是一秒内频谱实现从AD采集转换到显示的次数;旋子将代码刮骨抽脂,重新调整程序框架、优化代码,花了两年时间,把流畅度做到了最大化。稍微仔细的人会发现,流畅度低的频谱电平上升过程几乎是突变的,而旋子工作室出品的频谱则是流畅上升的,中途无任何丢帧现象。可以说,目前这一点STC方案望尘莫及。
7.高灵敏度:本频谱使用双运放作为信号缓冲放大,12位40KHz(480kbps)的AD采样精度,转为浮点数进行运算,以保证小信号灵敏度.
8.八种形态各异的工作模式自由切换,可设置为手动或自动切换,让您拥有的不只是频谱,更是一种品味。
9.极极极低的待机(关机)功耗(<1uA),这在电池供电的场合(比如汽车)非常实用,您也可以把此频谱当成受控对象,根据您的控制器需求,对其执行相关启停动作,只需要将控制引脚连至频谱复位按键的1脚即可。
10.增益自动校正,音量再大都不会持续满屏(音量最佳范围10mV~300mV;严禁接至功放输出端,虽然不会损坏频谱;但功放是直接推动喇叭的,电压幅度超过了运放工作范围。波形失真严重,谐波覆盖原始频谱,频谱失去意义)
11.当然再完美的产品都伴随着不足,而此频谱的不足也可能正是大家的遗憾,那就是显示分辨率做得还不够高,那么旋子送您这句话:够看就好,性能和效果才能体现产品的价值。(毕竟与大型频谱不是一个档次,成本天差地别,而高性价比才是王道)
12.技术参数:
(1)产品尺寸:247*108*10mm
(2)安装孔距:Φ3.0mm 102*235mm
(3)电源要求:3.3V~5.5V/1A(平均工作电流:100~600mA)
(4)输入信号:10mV~300mV
(5)待机电流:<1uA
(6)运放型号: LM358
(7)AD采样率:12位/40KHz
(8)FFT点数: 64(浮点运算)
(9)LED驱动:全彩恒流芯片方案,130Hz,1/8扫,使用电位器调节亮度
(10)显示分辨率:16*16点 红蓝双色
(11)处理器:PIC RISC指令集 汇编语言
(12)显示花样:8种
(13)标配:频谱x1,亚克力防护板x1,USB音频线(DIY)x1,电源适配器(5V/1A)x1

注意:晶振属精密元件,电流微弱,拒绝剧烈振动、摔打,工作时切忌用手触摸;频谱显示表面暂无机械防护措施,谨防硬物和小孩!

Smartist 发表于 2014-3-13 16:40:59

新人支持下,继续努力

dafeng133 发表于 2014-3-6 21:20:05

回复:Your_Father

本帖最后由 dafeng133 于 2014-3-7 08:53 编辑

Your_Father 发表于 2014-3-5 10:11
我觉的 “旋子” 以前的版本更好些,
我是说频谱效果,这次的 很容易就满屏
可能用了浮点吧,实时性一般。
电源我看和LED驱动公用的,
12位ADC也没啥优势。
LM358性能一般,输入电压幅值很容易就销顶失真,
建议采用 轨道轨,比如LMV358,LMV321等
个人觉得 LED尺寸如果小的话,板子小一点好看,
不然有零零碎碎的感觉。

效果的那个上下镜像不错,准备抄一个。



1、之前的运算同样是用浮点,如今的运算速度优化提速了45%,实时性和流畅度比第一版的好得多.只是原来的频谱转换速度只能达到30Hz,升级后转换速度提升,与相机的摄影频率不同步,拍出来丢帧严重,加之优酷转码降至25Hz,看视频的流畅度和实时性与实际产品差别很大.升级版的实际观看效果是一级棒的!
2、这次测试设置的AGC输出幅度是参照Kugoo的频谱,提高一些为了使屏显不会太空乏.但好像偏高了,导致屏过满,谢谢您帮我发现这个问题,现在已经改回来了.后期发布完整版时再上效果视频。
3、电源总供电确实从一个USB接入,以方便使用。但LED驱动和模拟电路是隔离滤波、分开接地的,加之运放本身的电源抑制比PSRR已经高达100DB ,所以信噪比几乎不受LED影响,看我静音时频谱已经看不到噪声了。
4、要说12位AD的优势是显而易见的,即便LM358的输出幅度只有轨到轨的2/3,但采样位数增加就相当于是10采样4倍的输出幅度。这样算来动态范围相当于是轨到轨的2.3倍,电路的放大倍数也可设置得小一些。
5、LED排列宽是兼容插件LED,其发光面积更大。频谱是纵向变化的,所以纵向比横向更密集一些,远看就显得很有动感。分立LED成本太高,做不到TFT屏那么精细。但屏做得太小可看性也会差一些。
6、至于镜像显示也不是我的首创,只是觉得好看就加了两种上去,爱抄就抄吧。
7、感谢您宝贵的建议,也欢迎各位大哥大姐与我探讨技术或非技术性问题,共同提高!

Your_Father 发表于 2014-3-5 10:11:44

本帖最后由 Your_Father 于 2014-3-5 10:22 编辑

我觉的 “旋子” 以前的版本更好些,
我是说频谱效果,这次的 很容易就满屏
可能用了浮点吧,实时性一般。
电源我看和LED驱动公用的,
12位ADC也没啥优势。
LM358性能一般,输入电压幅值很容易就销顶失真,
建议采用 轨道轨,比如LMV358,LMV321等
个人觉得 LED尺寸如果小的话,板子小一点好看,
不然有零零碎碎的感觉。

效果的那个上下镜像不错,准备抄一个。{:lol:}

dafeng133 发表于 2014-3-1 22:23:23

您说的是LED模组吧,好像是有一种长条形的,长方形像素,专门用于电平显示,可惜双色的我还没有找到。模拟频谱要做到多分频电路就有点复杂了,祝你早日成功,谢谢您的提意!

yuhang 发表于 2014-3-1 21:21:06

分立的发光管有漏光,还是用专用的LED好一点

yuhang 发表于 2014-3-1 20:57:58

我也在做音乐频谱

只不过是纯模拟电路的

dafeng133 发表于 2014-3-1 19:32:31

呵呵,新手发贴经验不足,多多指教。一个产品有没有实用价值,设计者说了不算,而只有使用者才有说话权。只是旋子爱玩音乐频谱,乐意折腾,分享一下成果。欢迎讨论技术问题,真诚收集改善建议。

binaimei2007 发表于 2014-3-1 16:11:30

楼主的解说很有淘宝的风格

无级电工 发表于 2014-3-1 15:33:11

很有学生作品的风格。 职业电工更看重产品的实用价值。
页: [1]
查看完整版本: 【转贴】用PIC单片机汇编程序做的音乐频谱,相当牛!