模块功能展示:
串口音频控制模块
一、简介
方案为串口音频播放芯片+功放芯片,口音频播放芯片IC为my1690-16s,功放为PAM8406。
1、my1690-16s
迈优科技的一款由串口控制的插卡MP3播放控制芯片,支持串口控制播放指定音频、音量调节等功能。 支持MP3、WAV格式双解码,支持24 位 DAC 输出,模块最大支持32G TF卡,也可外接U盘或USB数据线连接电脑更换SD卡音频文件;
2、PAM8406
PAM8406是一款数字功放芯片,支持双声道,能够驱动2个5W的喇叭,建议喇叭使用3-4w左右,5W在大音量长时间使用时会发热现象,不过问题不大,模块可以在很多店铺购买,如淘宝、立创商城等平台,价格从几毛钱到2块左右不等。
二、电路设计
1、my1690-16s
参考芯片手册:
例如:
2、PAM8406
参考芯片手册:
例如:
3、完整参考电路
PCB工程已上传至“立创开源硬件平台”:
立创开源硬件平台-通用串口音频播放模块设计
三、STM32串口控制音频播放例程
1、打开例程
在笔者测试时,最初使用的是串口调试助手,我们还可以使用任意带串口的MCU进行编程控制音频播放,可在公众号“IOT趣制作”私信回复“0839”获取工程文件,打开“MP3-my1690-16s模块测试代码-keil工程”文件夹,工程主要添加了MP3.c和MP3.h文件,位于工程目录下的“.\HARDWARE\MP3”文件夹内。
2、MP3.C/H
keil工程中主要是使用STM32的串口3来发送十六进制的串口指令,在MP3的资源文件中,例如播放指定MP3的功能如下所示:
/*
*********************************************************************************************************
* 函 数 名: PlayMp3
* 功能说明: 播放指定MP3
* 形 参:uint8_t mp3num:1-65535
* 返 回 值: 无
*********************************************************************************************************
*/
void PlayMp3(uint8_t mp3num)
{
//起始码 长度 操作码 曲目高位 曲目低位 校验码 结束码
//7E 05 41 00 01 45 EF
uint8_t arry[]={0x7E,0x05,0x41,0x00,0x00,0x00,0xEF};
arry[3]=mp3num/256;
arry[4]=mp3num%256;
arry[5]=(arry[1]^arry[2]^arry[3]^arry[4]);
USART3_Send_Hex_Buff(arry,7);
}
烧录例程,大家就可以尝试使用STM32控制音频模块播放各种MP3了。