查看: 1706|回复: 0

[其他] 利用PWM IP核实现节奏灯

[复制链接]
  • TA的每日心情

    2018-11-20 13:41
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    发表于 2019-6-6 17:11:29 | 显示全部楼层 |阅读模式
    分享到:
    本帖最后由 电子月 于 2019-6-6 17:21 编辑

    利用PWM IP核实现节奏灯

    为什么要做这个节奏灯呢?
    一是因为在大一刚接触单片机的时候,学校电子设计比赛有道题目就是节奏灯。那时候没基础,刚刚自学了C语言,能够跑起流水灯,根本不知道什么是FFT,想着设计电路来实现幅频变换,搞了一阵子也没搞出来。后来这个东西就一直放着,直到现在才算画了一个句号,也是弥补一个小小的遗憾,或许我当初坚持把这个东西做出来,在专业方面可能会有更好地积累,所以,在实现目标的路上,一定不能知难而退,急流勇进才能收获更多!
    第二个原因是想证实一下之前用OLED显示频谱是否耗时太久,从而导致Line Out的输出品质很差。
    具体实现就不多说了,在设计实现之前已经做了充足的准备,一是搭建了音频处理的硬件平台,二是软件实现FFT算法,三是利用Vivado HLS设计了PWM IP核,有了这些工作,节奏灯就水到渠成了。
    效果演示:
    手头没有音箱,声音通过耳机输出,音量较小。
    经过实际测试发现,如果采用led进行显示,Line Out输出的音频质量还是可以接受的。从而可以判断出如果使用OLED进行显示,那么整个设计的瓶颈就在于OLED显示耗时过长(其实可以对各部分耗时进行时间测量,也可以得到同样的结论)。接下来,尝试开发OLED的驱动程序,减少软件操作OLED的工作量,从而减轻软件负担,实现音频的流畅播放。或者采用VGA显示器显示,显示时间不长,而且显示内容更加多,色彩也更为丰富。此外,对音频进行采样时的时间间隔如何充分利用,或者说采样和显示如何更好地配合,也是需要进一步考虑和测试的。
    这几天学习Vivado HLS时发现Vivado是自带FFT IP核的,而且可以通过c programming的方式在HLS中设计算法时进行调用。前期规划的把软件fft算法转换为IP核的思路就没有必要再实现了。倒是可以在HLS中完成FFT运算以及后续的数据处理工作。HLS集成了很多有价值的c函数库,例如FIR滤波、FFT运算、图像处理函数库、流数据处理函数库等等,如果能够合理利用HLS函数库,设计算法一定能够达到事半功倍的效果。
    版权声明:
    本文由博主“cuter”发布。欢迎转载,但不得擅自更改博文内容,也不得用于任何盈利目的。转载时不得删除作者简介和版权声明。如有盗用而不说明出处引起的版权纠纷,由盗用者自负。

    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-4-19 09:40 , Processed in 0.113420 second(s), 15 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.