查看: 2509|回复: 1

爱玩板卡+基于stm32F030F4P6单芯片超低成本数字音频播放器

[复制链接]
  • TA的每日心情
    奋斗
    2022-6-20 16:11
  • 签到天数: 19 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    发表于 2017-6-28 21:41:07 | 显示全部楼层 |阅读模式
    分享到:
    本帖最后由 sumengqi 于 2017-6-29 13:16 编辑

    方案分享:早些日子实现了用stm32软件编码spdif协议的数字音频数据,然后通过SPI总线实验SPDIF信号的发送。近来突发奇想,可以使用目前性价比最高,价格最低的一款M0内核CPU实现珠子音频播放器,也就是数字转盘。
    功能:读取TF、SD卡中的WAV音频文件,在单片机的指定引脚输出标准SPDIF信号。
    具体实现原理如下:
    首先使用几个普通IO口模拟SPI总线,来实现对SD卡/TF卡物理扇区的读取,然后移植FATFS文件系统实现FAT32文件的读取。到此为止就可以正常读取WAV文件了。接下来要做的就是将WAV文件读取至缓冲区中,然后将缓冲区中的原始wav数据通过软件编码为spdif数据,编码后的数据是原始数据数据量的两倍,所以需要另外开辟一块内存空间。为了不使播放断流,使用DMA功能来将编码后的数据传送至spi总线,SCK时钟必须是音频时钟以保证播放速度,可以使用音频晶振作为系统的主时钟。但是为了降低系统PLL对输出spdif信号音质的影响,建议使用SPI的从模式,这样可以从SCK接口输入一个高质量的音频时钟来保证spdif信号时钟的稳定度。因为stm32f030f4p6只有16KB的flash和4KB的ram,所以使得编码一帧spdif数据变得困难,这里采用了边读取边编码边DMA发送的策略,每次处理很小的数据量,使得在仅仅4KB的ram下实现读取WAV文件并输出SPDIF信号的任务。
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2024-1-11 05:07
  • 签到天数: 4 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    发表于 2017-7-31 22:05:19 | 显示全部楼层
    等下文!!!!!!!!!!!!!!
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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



    手机版|小黑屋|与非网

    GMT+8, 2024-4-26 06:18 , Processed in 0.120665 second(s), 17 queries , MemCache On.

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

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.