Ameba_Arduino 发表于 2016-10-17 11:03:17

【Ameba Arduino】实战:Ameba+SGTL5000简易音频播放器

本帖最后由 Ameba_Arduino 于 2016-10-18 11:51 编辑

Ameba + SGTL5000 简易音频播放器

Realtek Aemba系列IoT WiFi Soc集成多路I2S通讯总线,结合完善的SDK,让你在10分钟内打造属于自己的音频播放器。

I2S Audio demo

此demo使用Ameba作为I2S master,音频编解码芯片SGTL5000作为I2S slave。Ameba通过I2S将数据音频数据传送到SGTL5000,SGTL5000通过耳机输出音频信号,并设置一个音量调节旋钮,用于调节耳机音量(可选)。
此demo有两种获取数字音频数据的方式,第一种是通过数组的方式,存放在Ameba的RAM中。第二种是将音频文件存放在SD卡中,结合Ameba的文件系统和SD卡驱动,从SD卡中播放音频文件。
Demo所用音频数据都是CD品质(16bits,44.1KHz)。


材料准备
◾Ameba x 1 (RTL8195AM/RTL8711AM)
◾SGTL5000 codec扩展板x1 (Teensy Audio Adapter)
◾SD/MMC Card Connector (optional)
◾可调电位器 (optional)
◾杜邦线若干 (optional)

Demo平台搭建

Teensy音频扩展板,使用飞思卡尔SGTL5000 codec,支持立体声耳机输出与线路输出,同时也支持立体声线路输入以及单通道麦克风输入。



Teensy音频扩展板官网资料:https://www.pjrc.com/store/teensy3_audio.html

1. Ameba连接SGTL5000

SGTL5000扩展板通过7根信号线与Ameba相连。I2C(SDA和SCL)用来控制和调整SGTL参数。I2S用于传输音频数据,TX,RX,LRCLK(44.1KHz),BCLK(1.41MHz)和MCLK(11.29MHz), 三个时钟信号均由Ameba产生。


2. Ameba扩展SD卡槽 (optional)
参照下图连接SD/MMC卡槽到Ameba,可实现Ameba播放存储在SD卡上的音频文件(wav格式)。


3. Ameba接音量旋钮 (optional)
可选用一个线性电位计调节耳机输出音量大小,连接电位计的1端和3端(视电位计本身而定)分别至V3.3和GND,连接2端到Ameba开发板A2。Ameba通过ADC采集A2端口的电压信号,转换为音量信号,以调节codec的耳机输出音量。


开启Audio Example

如果使用SDK 3.4b,需要先加入patch:3.4b_patch_i2s_audio_demo(v01)
如果需要开启SD卡功能(仅限RTL8195AM),还需要加入patch:3.4b_patch_sd_storage_(v04)
在platform_opts.h中将Audio Example的宏设置成1,开启Audio example。

在example_audio.c中使用一下两个宏配置是否从SD中读取音频数据,以及是否开启音量调节功能,默认都是关闭,即音频数据存放在RAM中,关闭音量调节功能。

#define CONFIG_PLAY_SD_WAV                0        // 1: play wav audio file store on SD card
                                                // 0: play audio file store on memory
#define CONFIG_TUNE_VOLUME                0        // tune volume by trimmer resistor and ADC


重新build SDK,下载ram_all.bin到Ameba,插入耳机即可以听到相应的音频。
如果从RAM中获取音频数据,默认的音频文件为‘鸟叫声’,所以可以听到循环的鸟叫声。
如果选择从SD卡中播放音频文件(wav格式),需要先将wav格式的音频文件存放在SD卡中,并更名为AudioSDTest.wav。
如果已开启音量调节功能,可以左右调节电位器,可以感觉到耳机有明显的音量变化。


Realtek官方网站教程:http://www.amebaiot.com.cn/standard-sdk-i2s-audio-demo/

关于更多介绍请访问RealtekAmeba官方主页:http://www.amebaiot.com/cn
官方QQ交流群:Ameba Arduino技术交流群(184666894)
论坛干货:
【新品推荐】Ameba Arduino全功能IoT解决方案
【Ameba Arduino】入手教程之一:开发环境搭建
【Ameba Arduino】入门教程之二:5分钟玩转小车无线控制
【AmebaArduino】入门教程之三: Wi-Fi之初体验
【Ameba Arduino】入门教程之四:Ameba WebServerLED 控制
【Ameba Arduino】入门教程之五:给无线小车添加“眼睛”
【Ameba Arduino】入门教程之六:无线小车进阶控制---六轴姿态控制
【Ameba Arduino】实战:用Ameba打造Wi-Fi控制的MP3播放器
【Ameba Arduino】实战:用Ameba读写SD卡
【Ameba Arduino】实战:Airkiss配置Ameba连接Wi-Fi
【AmebaArduino】实战:QQ物联--手机QQ和Ameba通讯

迷你强 发表于 2016-10-18 11:17:59

本论坛禁止无内容外链,您如果无法补齐内容,您的所有帖子都将被删除,敬请悉知

Ameba_Arduino 发表于 2016-10-18 11:41:27

迷你强 发表于 2016-10-18 11:17
本论坛禁止无内容外链,您如果无法补齐内容,您的所有帖子都将被删除,敬请悉知

群主,谢谢提醒。
我马上补全此帖。
页: [1]
查看完整版本: 【Ameba Arduino】实战:Ameba+SGTL5000简易音频播放器