AC1082带标准程序的版本说明_3.3-KT4083软件版本说明

 

3.3 -KT4083软件版本说明

此版本一般用于配合MCU应用的场景,并且是简单的应用场景,无需双向的交互数据

3.3.1 -KT4083的协议说明

一线协议

说明:协议分为16位数据[占2个字节],高4位为命令,低12位为数据[0000 0000 0000 0000]

备注:主机MCU发送数据是从最高位开始发送

命令格式是:CMD + tempH + tempL  = [tempH指的是第一个字节的低4位][tempL指的是第二个字节]

CMD

说明

说明

备注

0x01

下一曲

 

 

0x02

上一曲

 

 

0x03

指定曲目

0-1023

物理顺序[拷贝进去的先后顺序]

0x04

指定音量

0-30级

 

0x05

指定播放设备

 

见下面详解

0x06

播放/暂停/停止/复位/睡眠/停止插播

 

见下面详解

0x07

指定文件夹文件名播放

 

文件夹最多15,文件夹里面文件最多255个

0x08

指定文件夹循环播放

 

此时文件夹里面曲目就不限 多少都可以

0x09

指定文件夹随机播放

 

此时文件夹里面曲目就不限 多少都可以

0x0A

整个设备播放

 

设备随机播放设备顺序播放

0x0B

插播文件

 

文件夹最多15,文件夹里面文件最多255个

0x0C

组合播放

 

 

0x0D

指定曲目循环播放

 

按照物理顺序

0x0E

预留

 

 

0x0F

预留

 

 

备注:命令占前4位,文件夹占第二个4位,后面的八位代表的是数据

3.3.2 -KT4083的硬件说明

AC1082带标准程序的版本说明_3.3-KT4083软件版本说明_第1张图片

 

  1. 芯片上电的流程

1、

芯片上电会优先检测flash是否在线,如果不在线,就自动去检测TF卡,完全不需要用户干预,芯片检测到设备,就会完成相应的初始化,用户不用理会

2、

如果两个设备都不在线,自动进入空闲

3、

USB下载,会对当前在线的设备进行处理,用户您不用管,芯片自动处理

4、

Flash和TF卡是不能共存,因为他们是共用的一个spi的接口,只能二选一

 

  1. 调试的注意事项

 

1、

芯片的第4脚为按键接口,这个脚的唯一作用就是给您调试的,如果设备都焊接好了,设备是否被芯片检测到,只能通过这个按键按一下,是否有声音播放出来来判断

2、

(1)、连接USB到电脑,是否有可以打开的移动设备显示,如果都没有,请检测硬件连接

(2)、正常TF卡被检测到,usb会自动桥接到TF卡。

(3)、spiflash被检测到,usb会自动桥接到spiflash,第一次需要格式化,写入文件系统

3、

芯片的15脚为busy脚,播放时输出低,空闲输出高

4、

芯片的14脚为led脚,这个脚空闲为高,接收到一线的命令则输出100ms的低电平,然后拉高

5、

4脚和14脚存在的目的,是方便用户调试程序,所以请不要忽视,遇到不正常的时候这两个IO口就是用来查找问题的指示

6、

用户只需要判断设备是否硬件连接好,然后一线通讯发命令即可,其他的芯片会自动完成

 

3.3.3 -KT4083的指令详细说明

命令格式是:CMD + tempH + tempL  = [tempH指的是第一个字节的低4位][tempL指的是第二个字节]

CMD

tempH

tempH的含义

备注

0x05

0x00

指定U盘

 

0x01

指定TF卡

 

0x02

唤醒睡眠

 

0x03

进入睡眠

 

0x04

指定spiflash

 

0x05

复位

这个是软复位

0x06

0x01

播放

(1)、初次上电发送这个命令,先播放第一个声音

(2)、再次发送就还是播放第一个声音

(3)、如果发送下一曲,再发这个就播放第2个声音,相当于播放当前的声音

0x02

暂停

 

0x03

停止

 

0x04

停止插播

 

0x05

播放和暂停

 

0x06

全部循环播放开启

 

0x07

音量+

 

0x08

音量-

 

备注:这两个命令的tempL保持为0就可以了

 

3.3.4 -KT4083的指令举例说明

1、06指令详细说明

播放指令

0101 0001 0000 0000 = 0x6100

 

暂停指令

0101 0010 0000 0000 = 0x6200

 

停止指令

0101 0011 0000 0000 = 0x6300

 

 

 

2、[07][08][09]指令详细说明

0111 0001 0000 0001 = 0x7101

发送指定01文件夹001文件播放,对应发送的数据

0111 0010 0000 0011 = 0x7203

如果发送指定02文件夹003文件播放,对应发送的数据

1000 0001 0000 0000 = 0x8100

如果发送指定01文件夹循环播放,那么发送的数据如下

1001 1111 0000 0000 = 0x9F00

如果发送指定15文件夹随机播放,那么发送的数据如下

 

3、0A指令详细说明

1010 0001 0000 0000 = 0xA100

如果发送整个设备顺序循环播放

1010 0002 0000 0000 = 0xA200

如果发送整个设备随机循环播放

 

 

4、0C指令详细说明 --- 高级功能,不需要的不用看

  1. 、组合播放最多支持15段语音组合播放,实现的原理就是使用0C这条指令,连续的发送需要组合一起播放的数据。每帧数据之间间隔大于20mS。
  1. 、芯片再接收到0C指令的时候,会将接收到的数据,做一个超时处理,也就是连续100mS没检测到0C的数据则认为组合播放的数据已经接收完毕了。
  1. 、芯片从接收到第一个数据,就开始播,在播放的同时不间断的检测外部是否还有其它的数据进来

 

3.3.5 -KT4083的通信时序说明

(1)、先把数据线拉低5ms后,发送16位数据,先发送高位,再发送低位。

(2)、使用高电平和低电平比例来表示每个数据位的值。

 

注意:必须高电平在前,低电平在后

(3)、推荐使用200us:600us。取值范围:150us:450us ~ 400us:1200us。注意使用3:1和1:3电平比例以保障通讯稳定。

备注:发送的数据,是从最高位开始发

  1. 我们的芯片是3.3V的电平

(1)、如果是3.3V的IO口连接,可以直接直连,建议还是串一个100欧姆的电阻

(2)、如果是5V的IO口连接,建议串1K的电阻,这个可能还需要根据实际的调试来确认

 

3.3.6 -KT4083的参考程序说明以及注意事项

  1. 发送部分的参考函数如上,用户可以直接调用即可,但是有两点需要反复的强调

AC1082带标准程序的版本说明_3.3-KT4083软件版本说明_第2张图片

  1. 、通信脚空闲的时候一定要拉高,保持高电平
  2. 、起始信号一定要比较精确,保持在5ms。请在调试的时候借助于示波器进行调试
  3. 另外还需要看单片机的资源,在发送时一定要关“总中断”,发送完之后打开“总中断”

 

2、通过按键测试,函数的调用如下:

AC1082带标准程序的版本说明_3.3-KT4083软件版本说明_第3张图片

 

3、实际测试的示波器波形图如下:

       AC1082带标准程序的版本说明_3.3-KT4083软件版本说明_第4张图片     AC1082带标准程序的版本说明_3.3-KT4083软件版本说明_第5张图片

左图为图1      右图为图2   如上图,这个是我们测试时的波形截图

  1. 、左图为完整的一帧数据截图,请仔细看一下
  2. 、右图为部分数据的放大处理

首先是起始信号,然后是 0001 0101 00 后面的就看不到了

 

(1)、调试一线通讯的时候,请一定使用示波器配合调试,因为一旦哪里有错误,我们是没有办法帮忙排除的,因为每个单片机的延时时间周期是不一样的,不可一概而论

(2)、我们芯片内部一定做了容错处理和超时处理,可以彻底的解决如下干扰

==》外围容性负载的工作引起的电平不稳干扰

==》数据发送中途被高优先级的中断打断,导致数据错误

==》内部的超时处理,对于不符合数据的过滤作用

3、一定要借助于芯片的14脚,如果接收到正确的数据,这个脚会拉低100ms,空闲输出高

 

​​​​​​​3.3.7 -KT4083的完整的参考原理图说明

AC1082带标准程序的版本说明_3.3-KT4083软件版本说明_第6张图片

AC1082带标准程序的版本说明_3.3-KT4083软件版本说明_第7张图片

你可能感兴趣的:(AC1082带标准程序的版本说明_3.3-KT4083软件版本说明)