摘要(简要概述)
此次主要是移植mpy到FR3068x-c平台中,然后实例化DAC模块 成audio 设备,通过shell 可进入REPL micropython 编程模式,然后进行音乐播放 停止等控制
设计背景&目的
设计背景主要实现一个音乐播放器功能
基本设计思路
此次开发由于精力有限,借鉴了论坛qinyunti的实现过程,主要实现思路是完成基础的dac输出、spi flash 文件系统、micropython 移植基础模块(audio及pyb led 等),
然后通过shell 运用x.Ymodem实现 文件传送到spi flash文件系统中,wav 文件播放时通过wav头解析pcm数据 通过fifo 缓存给DAC 模块进行音频输出播放
开发思路、功能体验测试


准备特定的wav数据,这里代码将格式设定死了,需要 16k采样率 单通道 16bit 小端的数据,准备wav如下
image.png
在shell 中输入
ls 2:/
复制代码
可以发现只用一个test.bin 文件,然后在shell中输入,这里 rxfile 是告诉下位机进行文件接收,放到2:/下面,文件名wojide_cut.wav ,文件大小 1600078byte
rxfile 2:/wojide_cut.wav 1600078
复制代码
然后再传输协议中选择xmodem  点击串口助手的打开文件找到相应的wav文件,然后点击发送文件,然后会出现下面的进度条
image.png
等待进度条完成
d9f83b8e1d8e8fc4b0d11c83a63c2eb.png
然后进入REPL micropython 环境,输入
<pre>micropython</pre>
复制代码
然后输入
import pyb
  • audio = pyb.AUDIO(1)
  • audio.play("2:wojide_cut.wav")
  • 复制代码

    d30df9de8bddd484967ea410b02212a.png


    如下图接上喇叭就可听到美妙的声音了,也可进行audio.stop  进行停止播放
    image.png
    评价及总结

    感谢面包板论坛和富芮坤提供此次开发板试用活动,试用过程中,感觉芯片上手还是蛮快的,教程很详细
    后续想基于大神的代码驱动下sd卡及mp3解码及多采样率和bit位宽转换功能等,实现一个真正的音乐播放功能
    然后试用下蓝牙的A2DP功能,实现蓝牙音乐播放及本地播放切换,结合屏幕进行操作控制....
    这颗芯片功能还是蛮强大的,目前没看到销售渠道,后续可实际应用到项目中。