查看: 220|回复: 1

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

[复制链接]

24

主题

0

好友

699

积分

举人

Rank: 4

  • TA的每日心情
    郁闷
    2017-8-30 10:11
  • 签到天数: 9 天

    连续签到: 2 天

    [LV.3]偶尔看看II

    发表于 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信号的任务。
    回复

    使用道具 举报

    0

    主题

    0

    好友

    30

    积分

    白丁

    Rank: 1

  • TA的每日心情
    开心
    2015-11-13 03:19
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

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

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    关闭

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

    手机版|爱板网 |网站地图  

    GMT+8, 2017-9-25 13:58 , Processed in 0.738607 second(s), 10 queries , Memcache On.

    苏公网安备 32059002001056号

    Powered by Discuz!

    回顶部