产品方案介绍视频:
产品功能演示视频:
三、资料下载:
(1)、详细的资料,用户可以直接在下面的连接下载
(2)、配套的测试模块
1、直接发送的指令,不需要返回参数 CMD命令(指令) 对应的功能 参数(16位) 0x01 下一曲 0x02 上一曲 0x03 指定曲目(NUM) 详见3.4.1 0x04 音量+ 0x05 音量- 0x06 指定音量 详见3.4.2 0x07 指定EQ0/1/2/3/4/5 Normal/Pop/Rock/Jazz/Classic/Bass 0x08 单曲循环指定曲目播放 详见3.4.10 0x09 指定播放设1/2/3/4/5 详见3.4.3 0x0A 进入睡眠 -- 低功耗 0x0B 保留 0x0C 芯片复位 0x0D 播放 0x0E 暂停 0x0F 指定文件夹播放 详见3.4.4 0x10 保留 0x11 全部循环播放 详见3.4.9 0x12 指定MP3文件夹曲目 详见3.4.5 0x13 插播广告 详见3.4.6 0x14 支持15个文件夹 详见3.4.7 0x15 停止插播播放背景音乐 详见3.4.12 0x16 停止播放 详见3.4.12 0x17 指定文件夹循环播放 详见3.4.13 0x18 随机播放 详见3.4.14 0x19 循环播放 详见3.4.15 0x25 多文件夹插播功能 详见3.4.19 0x28 指定文件夹随机播放 详见3.4.20 2、查询系统的参数 CMD命令详解(查询) 对应的功能 参数(16位) 0x3C STAY 3.3.2 0x3D STAY 3.3.2 0x3E STAY 0x3F 发送初始化参数 0 - 0x0F(低四位每位代表一种设备) 0x40 返回错误,请求重发 3.3.4 0x41 应答 3.3.3 0x42 查询当前状态 3.3.3 0x43 查询当前音量 0x44 查询当前EQ 0x47 查询U盘的总文件数 0x48 查询TF卡的总文件数 0x4A 保留 0x4B 查询U盘的当前曲目 0x4C 查询TF卡的当前曲目 芯片在关键地方均会有数据返回。供用户掌控芯片的工作状态 n 芯片上电初始化成功的数据 n 芯片播放完当前曲目的数据 n 芯片成功接收到指令返回的ACK(应答) n 芯片接收一帧数据出错[包括数据没收完整、校验出错两种情况] n 芯片在繁忙时,有数据过来,芯片会返回忙的指令 n U盘、TF卡插入拔出,均有数据返回 (1)、芯片上电,需要一定的时间初始化,这个时间是需要根据U盘、TF卡、flash等设备的文件多少决定的,一般情况在1.5 ~ 3S这个时间。如果超过这个时间芯片的初始化数据还没有发送出来,说明芯片初始化出错,请复位芯片的电源,另外检测硬件的连接 (2)、芯片初始化数据包括在线设备,譬如发送7E FF 06 3F 00 00 01 xx xx EF DL = 0x01 说明上电过程中,只有U盘在线。其它的数据请参照下表,各设备之间是或的关系 U盘 -- 在线 7E FF 06 3F 00 00 01 xx xx EF 各设备之间是或的关系 TF -- 在线 7E FF 06 3F 00 00 02 xx xx EF PC -- 在线 7E FF 06 3F 00 00 04 xx xx EF U盘、TF -- 在线 7E FF 06 3F 00 00 03 xx xx EF (3)、MCU必须等待芯片初始化指令发出之后才能发送相应的控制指令,否则发送的指令芯片将不予处理。同时还会影响芯片的正常初始化。 U盘播放完第1曲 7E FF 06 3C 00 00 01 xx xx EF U盘播放第1曲完毕 U盘播放完第2曲 7E FF 06 3C 00 00 02 xx xx EF U盘播放第2曲完毕 TF卡播放完第1曲 7E FF 06 3D 00 00 01 xx xx EF TF卡播放第1曲完毕 TF卡播放完第2曲 7E FF 06 3D 00 00 02 xx xx EF TF卡播放第2曲完毕 1、针对很多的触发型的播放需求,我们芯片更正为播放一曲之后自动进入停止状态。如果用户需要此类应用。只需要指定曲目播放即可。这样,曲目播放完毕会自动停止,等待指令 2、另外我们专门开辟一个IO作为解码和停止的状态指示。请参见第6脚,GPIO1 (1)、播放状态输出低电平[很多功放有静音脚,可以通过此IO直接进行控制] (2)、播放暂停状态,输出高电平。芯片睡眠状态。也是高电平 3、争对连续播放应用,可以这样实现。假如U盘播放第一首歌完毕之后,会返回 7E FF 06 3C 00 00 01 xx xx EF 3C ---- 表示的是U盘命令 00 01 ---- 表示播放完毕的曲目。此时再发送播放下一曲的指令,即可顺序循环播放 4、芯片通电之后,初始化正常 ,芯片会自动进入设备播放状态。并且停止解码,等待用户发送播放的相关指令 5、另外用户在指定设备之后,需要等待200ms的时间,再发送指定的曲目,因为一旦指定曲目之后,系统会对指定的设备进行文件系统的初始化,如果立刻发送指定的曲目命令,会导致芯片接收不到。 芯片返回ACK 7E FF 06 41 00 00 00 xx xx EF 说明成功接收数据 (1)、为了加强数据通信之间的稳定性,我们增加了应答处理,ACKB字节就是设置是否需要回复应答。这样做的好处是保证每次通信都有握手信号,收到应答就表示MCU发送的数据,芯片已经成功收到,马上处理。 (2)、对于一般的应用,客户可以自由选择,不加这个应答处理也是可以的。 返回忙 7E FF 06 40 00 00 01 xx xx EF 芯片在文件系统初始化时 当前处于睡眠模式 7E FF 06 40 00 00 02 xx xx EF 睡眠模式只支持指定设备 串口接收错误 7E FF 06 40 00 00 03 xx xx EF 串口一帧数据没接收完毕 校验出错 7E FF 06 40 00 00 04 xx xx EF 和校验出错 指定文件超范围 7E FF 06 40 00 00 05 xx xx EF 文件的指定超过设定的范围 未找到指定的文件 7E FF 06 40 00 00 06 xx xx EF 指定为文件没有被找到 插播指令错误 7E FF 06 40 00 00 07 xx xx EF 当前状态不接受插播 播放TF卡或者U盘错误 7E FF 06 40 00 00 08 xx xx EF TF卡或者U盘读取失败,设备被拔出或者有坏区 (1)、为了加强数据通信之间的稳定性,我们增加了数据错误处理机制。芯片收到不符合格式的数据,均会有信息反馈出来 (2)、在环境比较恶劣的情况下,强烈建议客户处理此命令。如果应用环境一般,可以不用处理。 (3)、芯片返回忙,基本上是芯片上电初始化的时候才会返回,因为芯片需要初始化文件系统 (4)、芯片上电之后,进入的是设备状态,设备的顺序是U盘--TF卡。如果U盘和TF卡均不在线的话,芯片会进入睡眠状态 (5)、只要参考我们给出的测试SDK程序,移植里面的串口操作部分,就不会出现校验出错,在这里强烈建议用户使用我们给出的校验方式。因为谁都不能保证数据的传输不会出错。 (6)、文件指定部分出错,请参考下面的“指定文件名播放详细说明” U盘插入 7E FF 06 3A 00 00 01 xx xx EF TF插入 7E FF 06 3A 00 00 02 xx xx EF PC插入 7E FF 06 3A 00 00 04 xx xx EF U盘拔出 7E FF 06 3B 00 00 01 xx xx EF TF拔出 7E FF 06 3B 00 00 02 xx xx EF PC拔出 7E FF 06 3B 00 00 04 xx xx EF (1)、为了加强芯片的灵活性,我们特别增加了,设备插入、拔出的指令反馈。方便用户知道芯片的工作状态。 (2)、设备插入的时候,我们默认进入到设备等待状态,如果用户插入的是带灯的U盘,可以看到U盘灯闪烁。也可以接收到设备插入的串口消息。 以下我们对关键的地方进行详细的说明: n 指定曲目播放[针对按照存储的物理顺序播放] n 指定播放的音量 n 指定播放的设备 n 指定文件夹播放[这里有多种方式,参见下面的详细说明] n 全部循环播放指令 我们给出的指令是支持指定曲目播放的,歌曲的选择范围为0~2999.其实是可以支持更多的,因为涉及到文件系统的原因,支持过多的歌曲,会导致系统操作缓慢,一般的应用也不需要支持这么多的文件。如果客户有非常规的应用,请事前和我们沟通。 (1)、例如选择第一首歌播放,串口的发送部分7E 10 06 03 00 00 01 FE F7 EF 数据 详解 0x7E 起始字节 0xFF 版本信息 0x06 数据长度[不包含校验] 0x03 命令字节 0x00 是否需要应答[0x01=需要应答 0x00=不需要应答] 0x00 曲目的高字节[DH] 0x01 曲目的低字节[DL],这里代表的是一首歌播放 0xFE 校验高字节 0xF7 校验低字节 0xEF 结束字节 (2)、对于选曲,如果选择第100首,首先将100转化为16进制,默认为双字节,就为0x0064。 DH = 0x00 ; DL = 0x64 (3)、如果选择第1000首进行播放,首先将1000转化为16进制,默认为双字节,就为0x03E8 DH = 0x03 ; DL = 0xE8 (4)、其它的操作依次类推即可,因为在嵌入式领域采用16进制是最为方便的一种操作。 (1)、我们系统上电默认的音量为30级,如果要设置音量的话,直接发送相应的指令即可 (2)、例如指定音量为15级,串口发送的指令:7E FF 06 06 00 00 0F FF D5 EF (3)、DH = 0x00 ; DL = 0x0F ,15转化为16进制为0x000F。可以参照播放曲目部分的说明 (4)、音量设置的范围为0-30,0级代表静音,30级代表的是最大 (1)、我们的芯片默认是支持4种类型的播放设备,只有设备在线才能指定设备去播放 设备是否在线,我们软件会自动检测,无需用户关系。 (2)、看下表,选择合适的指令发送 (3)、指定设备之后。芯片会自动进入停止解码状态,等待用户指定曲目播放。从接收到指定设备到芯片内部完成初始化文件系统。大概需要200ms。请等待200ms之后再发送指定曲目的指令。 指定播放设备-U盘 7E FF 06 09 00 00 01 xx xx EF xx xx:代表校验 指定播放设备-SD盘 7E FF 06 09 00 00 02 xx xx EF 指定播放设备-PC 7E FF 06 09 00 00 05 xx xx EF 指[读卡、声卡]模式 指定播放设备-SLEEP 7E FF 06 09 00 00 06 xx xx EF