5.注意事项

芯片的使用,关键的地方做如下说明:

  1. 芯片的GPIO的特性
  2. 应用的中注意事项
  3. 串口编程部分的注意

5.1 GPIO的特性

IO输入特性

符号

参数

最小

典型

最大

单位

测试条件

VIL

Low-Level Input Voltage

-0.3

-

0.3*VDD

V

VDD=3.3V

VIH

High-Level Input Voltage

0.7VDD

-

VDD+0.3

V

VDD=3.3V

IO输出特性

符号

参数

最小

典型

最大

单位

测试条件

VOL

Low-Level Output Voltage

-

-

0.33

V

VDD=3.3V

VOH

High-Level Output Voltage

2.7

-

-

V

VDD=3.3V

5.2 应用中的注意点

1、芯片对外的接口均是3.3V的TTL电平,所以在硬件电路的设计中,请注意电平的转换问题。

另外在强干扰的环境中,请注意电磁兼容的一些保护措施,GPIO采用光耦隔离,增加TVS等等

2、串口通信,在一般的使用环境下,注意好电平转换即可。如果强干扰环境,或者长距离的RS485应用,那么请注意信号的隔离,严格按照工业的标准设计通信电路。可以联系我们,我们提供设计参考

3、我们支持音频文件的采样率最低为8KHZ。也就是说低于8KHZ的音频文件是不支持的,不能正常解码播放。用户可以使用音频处理软件,提高音频文件的采样率来解决这个问题。

4、芯片在睡眠状态的电流在10MA左右,播放中,依据音量的大小以及外接的喇叭负载,峰值电流可以达到1A。功耗会比较大。如果使用在低功耗场合,请用户控制芯片或者芯片的供电。这样可以减小芯片的功耗

5、用户如果直接使用我们芯片自带的功放,请选择合适的喇叭即可。推荐使用4欧姆/3W。这个是使用效果最好的配置。选用其它的喇叭,请注意负载大小,以及功率这两个参数

6、该芯片芯片支持MP3、WAV二种主流的音频格式。推荐用户尽量使用MP3格式,因为这样就更节省FLASH的容量。

7、我们的芯片支持8/11.025/12/16/22.05/24/32/44.1/48KHZ 采样率的音频文件,这些也是网络上绝大多数的音频文件的参数。如果用户的音频文件的采样率不在此范围内,是不支持播放的,但是可以通过专用的软件转换一下即可。我们的优势就是无压缩播放和高音质,所以不太建议用户对音频进行压缩。

5.3注意事项点

串口部分的操作,参见下面的流程,我们提供了完整的参照例程,供用户参考:

  1. 芯片上电的流程
  2. 串口编程参考的说明
  3. 串口操作需要延时的注意事项
  4. 串口协议的校验的说明
  5. 串口协议的校验的算法详解
  6. 外接MCU的晶振选择说明
  7. 芯片的播放说明[物理顺序等等]

5.3.1 芯片上电的工作流程图

  1. 我司提供的所有芯片的串口部分的操作,均是一样的协议,所以不用担心不同芯片的不兼容
  2. 如果对串口的操作,有任何不明白的,请一定联系我们,索取串口编程参考例程。
  3. 我们产品的更新,也一定会按照当前的协议版本,做到向下兼容。

5.3.2 串口编程参考的说明

目前我们提供的串口编程参考代码,有两部分

  1. 、第一部分是我们测试版的测试代码,相关的串口操作比较全面
  2. 、另一个是基本版,只是指定曲目的范例。请用户耐心消化

5.3.3 串口编程需要适当延时的注意点

1、芯片上电之后,需要大概1S-1.5S时间进行初花的相关操作,初始化完毕之后,会有初始化的相关数据发送出来。用户也可以直接不理会这些数据

2、当指定设备播放之后,需要延时200ms的时间,再发送指定曲目等等相关指令。

3、因为芯片自带文件系统,正常情况下,在曲目不大于1000首的话,响应速度是低于50ms的

曲目超过3000首之后,文件系统的切换速度会变慢一点,响应速度在100ms --- 1S之间不等

4、芯片内部对串口的处理是10MS处理一次,所以连续的指令发送时,必须要间隔20MS的延时。否则前面的指令将会被覆盖而得不到执行

5、如果指定文件夹文件名播放[0x0F、0x14]延时必须大于40ms,因为芯片锁定文件是需要时间的。只要涉及到文件夹文件名查找的相关指令,40MS的延时是必不可少的。如果芯片当前正在查找文件,串口的数据过来太频繁,会导致芯片的工作不正常

5.3.4 校验的重要说明

1、针对很多用户不太习惯校验的通信方式,我们特别推出了带校验和不带校验的兼容方式。举例说明。如果我们发送组合播放指令如下:

组合播放[不带校验]

7E FF 09 21 00 05 01 02 03 04 EF

播放5、1、2、3、4

组合播放[带校验]

7E FF 09 21 00 05 01 02 03 04 FE C8 EF

播放5、1、2、3、4

比较两条指令的区别,就是省略掉的校验的2个字节。这两帧数据均可以被芯片所接收。

2、因为很多用户在使用的过程中,很多都是使用不带晶振的MCU。这样的话,我们必须建议您加上校验这种方式,来保证通信的稳定性。

3、假如用户使用STM32或者STC等等MCU,并且是外挂晶振的,就可以适当的省掉校验。因为不带晶振的MCU,时钟是相对不那么准的,所以串口会存在误差,一旦误差过大,会导致通信出错。请用户朋友自行斟酌。

5.3.5 校验的计算说明

发送的指令,去掉起始和结束。将中间的6个字节进行累加,最后取反再+1得到校验码。接收端就将接收到的一帧数据,去掉起始和结束。将中间的数据累加,再加上接收到的校验字节。刚好为0.这样就代表接收到的数据完全正确。

举例说明:

举个例子,如果我们播放下一曲,就需要发送:7E FF 06 01 00 00 00 FE FA EF

数据长度为6 ,这6个字节是[FF 06 01 00 00 00] 。不计算起始、结束、和校验。校验字节为FE FA。

发送端得到校验码的过程:

相加的过程: FF+06+01+00+00+00 = 0x0106

取反加1的过程:0x0106取反 = FEF9  /  再+1 = 0xFEFA,和我们的校验值对比一下

接收端进行校验的过程:

相减的过程: 0 - 0x0106 = 0xFEFA 。再和我们的结果比较一下。

最后可以参考一下我们给出的参考例程,或者直接移植我们给出的函数。就很容易理解了

5.3.6 MCU的晶振选择

1、原则上我们建议用户,使用11.0592MHZ或者相倍数的晶振。这样可以让串口产生9600的波特率会更准确。我们的芯片串口误差是允许在3%以内的

2、如果用户在12M的晶振时。首先要做如下判断,

(1)、看是什么MCU,51或者PIC、STM32等等,基本都自带波特率发生器,所以产生9600的波特率基本没压力。

(2)、看MCU是否为硬件串口,如果是IO模拟的串口的话,强烈建议用户使用11.0592的晶振

(3)、标准的51,如:STC89C52或者AT89C52等等都是采用定时器产生波特率的,经过简单的计算就可以算出,12M晶体做9600波特率的误差是是0.16%,正常运行是没有任何问题,但还是需要用户进行全面测试

5.3.7 指定播放的说明

  1. 指定曲目播放[按照物理顺序]
  2. 指定曲目播放[按照文件夹和文件名的名称]

1、按照物理顺序指定曲目播放:

需要按照下图的方法往SPIFLASH中拷贝歌曲。先拷贝进设备的,编号为第一首,以此类推

2、指定文件夹和文件名播放

详情请参考芯片数据手册的“3.4.6指定文件夹文件名的播放”章节

5.3.8 串口调试说明

1、首先现在网上下载一个软件”串口猎人”,为什么选择这个,因为它有自动搜索串口的功能,十分好用。打开之后的主界面如上图所示,可以看到红色部分,依次设置即可

2、打开软件,首先要搜索串口,找到指定的端口之后,指定“波特率”,我们的芯片默认的波特率为9600,最后就是“启动串行端口”,这样软件就配置好了。这里有两个概念需要明确一下

第一是“HEX码”,我们默认是这个,这个是用来显示数据的。所以必须设置这里

第二是“字符串”,这个是用来显示打印字符的,我们这里用不到。

3、软件配置OK之后,将需要的指令复制到发送区域即可。具体的指令请参照芯片的数据手册

4、如果芯片的数据手册没有的测试指令的话,请自行计算,尤其需要注意的是“校验和”这两个字节,如何计算不对的话,芯片是不接受指令的,同时会返回相应的错误指令

5.3.9 校验代码的移植

我们这里的说明,争对的是用户的MCU给我们的芯片发送控制指令

1、发送端 --- 用户的MCU

/******************************************************************************

- 功能描述: 串口向外发送命令[包括控制和查询]

- 参数说明: CMD:表示控制指令,请查阅指令表,还包括查询的相关指令

feedback:是否需要应答[0:不需要应答,1:需要应答]

data:传送的参数

******************************************************************************/

void Uart_SendCMD(INT8U CMD ,INT8U feedback , INT16U dat)

{

Send_buf[0] = 0xff;    //保留字节

Send_buf[1] = 0x06;    //长度

Send_buf[2] = CMD;     //控制指令

Send_buf[3] = feedback;//是否需要反馈

Send_buf[4] = (INT8U)(dat >> 8);//datah

Send_buf[5] = (INT8U)(dat);     //datal

DoSum(&Send_buf[0],6);        //校验

SendCmd(8);       //发送此帧数据

}

DoSum(&Send_buf[0],6); 这里是指对Send_buf[0]---Send_buf[5]这6个字节进行校验的算法

生成校验的两个字节,并且存储于Send_buf[6]和Send_buf[7]中

/******************************************************************************

- 功能描述:求和校验

- 和校验的思路如下:

发送的指令,去掉起始和结束。将中间的6个字节进行累加,最后取反码。接收端就将接收到的一帧数据,去掉起始和结束。将中间的数据累加,再加上接收到的校验字节。刚好为0.这样就代表接收到的数据完全正确。

******************************************************************************/

void DoSum( INT8U *Str, INT8U len)

{

INT16U xorsum = 0;

INT8U i;

for(i=0; i<len; i++)

{

xorsum  = xorsum + Str[i];

}

xorsum     = 0 -xorsum;

*(Str+i)   = (INT8U)(xorsum >>8);//得到高字节

*(Str+i+1) = (INT8U)(xorsum & 0x00ff);//得到低字节

}

2、接收端,芯片发送数据给用户的MCU

If(一帧数据接收完毕)

{

for(i=0; i<(*(pi+1)); i++)//这里pi指向的是接收缓冲区,*(pi+1)是获取数据长度。

{

xorsum  = xorsum + pi[i] ;//将接受到的数据进行累加

}

xorsum1 = ((u16)((*(pi+i))<<8)) | (*(pi+i+1));//这里是接收到的校验字节,16位

xorsum  = xorsum + xorsum1;//将接收到的校验字节和自己算的校验数据相加

if(!xorsum)

{

Uart_Task(pi);//串口处理--对接收到的指令进行处理

}

else

{

ErrorStatus = ERROR_CheckSError ;//接收校验出错

//校验码出错之后的处理

}

}

3、用户无论使用的是什么MCU,这两个函数均可以平行的移植到自己的程序中。

5.3.10 芯片或者芯片的供电说明

这里为什么增加两个二极管,分两种情况说明

  • 外部只需要外接U盘播放,那么D2是可以省略掉的
  • 如果外接电脑,则需要D2,这样是为了防止7805前端无电压输入时,直接插上电脑,会把电脑端的USB电压拉低,导致不正常。
  1. 我们的芯片或者芯片,供电的范围是3.3V--5V。不可以超过5V,否则会造成芯片的永久性损坏。
  2. 我们的芯片,是音频类的产品,对电源的纹波是有要求的,建议用户最好使用线性电源[带变压器的电源],后级使用7805之类的线性稳压芯片供电。
  3. 7805后一级最好增加一个二极管,这里的4148其实并不是最合适的,因为4148的正向电流只有500MA。如果我们后级的功放功率过大,会导致4148 永久性损坏。这里选用IN4001或者IN4007才是最合适的。
  4. 很多用户在应用过程中,往往很多供电是12V或者9V,如果用户使用7805之类的线性稳压IC时,一定要注意芯片的发热,线性稳压IC的原理,基本上都是将多余的电压以热量的形式表现出去。举个例子,假如12V输入,经过7805之后,压差为7V。假如后级的耗电流为200MA,那么7805产生的热量就是1.4W,这个热量就很烫手了,会导致7805过热自保护,所以这样的硬件设计是很不合理的。所以此时可以选用合适的DCDC芯片,我们推荐使用LM2596之类的纹波小的芯片

KT404A芯片使用手册_5.注意事项相关推荐

  1. KT404A芯片使用手册_4.参考电路

    4.参考电路 争对芯片的应用,我们提供了详细的设计参考,让您可以更快的上手体验到该芯片的强大功能 串行通信接口,波特率默认9600,可以根据客户的要求修改 外部的IO按键的功能可以按照客户需求订制 外 ...

  2. 芯片参考手册和数据手册的区别

    数据手册 有关产品技术特征的基本描述,包含产品的基本配置(如内置Flash和RAM的容量.外设的数量等),管脚的数量和分配,电气特性,封装信息,和定购代码等. 参考手册 有关如何使用该产品的具体信息, ...

  3. DAC8563芯片参考手册重要内容总结

    DAC8563的主要参数: 供电电压:2.7~5.5V 分辨率:16bit,双通道 通讯接口:3线SPI串行通讯,速率最高至50MHz,支持3.3V和5V单片机(有MOSI/CLK/CS,无MISO) ...

  4. IS61LV25616芯片技术手册

    256K*16告诉异步CMOS静态RAM(支持3.3V) 特性 高速访问时间:8,10,12和15ns CMOS 低功耗运行 兼容TTL接口电平 单3.3V±10%供电 全静止操作:不需要提供时钟或者 ...

  5. W5500芯片使用bug及注意事项

    ENC28J60比较复杂,W5500用了很久,这次做了一个转发服务模块,总是遇到各种现象. 1.W5500无论是TCP客户端还是服务端,通过自动或者手动KEEPALIVE来知道对方已经不在线,W550 ...

  6. sony芯片 camera pcb layout注意事项

    PCB Layout Check List CCM尽可能使用PSRR > 65DdB 的LDO,如果使用DC/DC,应远离cmos芯片,DC/DC下面尽量不要布线; 用于电源芯片的电容.电感,离 ...

  7. php处理预占库存,京东sop库存数量设置(非入仓)操作手册及注意事项

    针对sop商家修改库存后出现超卖情况以及商家做预售营销活动时修改库存出现超卖等常见问题温馨提示:商家后台设置库存数是库存总数,非可售库存数.下面一起去了解一下具体的操作! 1. 当商家修改库存总数时修 ...

  8. mtkgpio中断控制器_MT2523芯片参考手册

    MT2523 Series Reference Manual 2.总线体系结构与内存映射 为了更好地支持各种IOT应用,MT 2523采用32位多AHB矩阵,提供低功耗.快速.灵活的数据操作.表2-1 ...

  9. 物理服务器内存条有安装位置一说吗,DELL官方服务器内存安装手册及注意事项...

    系统内存 系统支持 DDR3 注册的 DIMM (RDIMM) 或 ECC 非缓冲的 DIMM (UDIMM).单列和双列 DIMM 可以是 1067 MHz 或 1333 MHz,四列 DIMM 可 ...

最新文章

  1. 锐捷RG-S2126G交换机密码恢复实战
  2. mysql中新建不了查询语句_将excel和mysql建立链接后,如何通过在excel里面执行mysql查询语句,然后建立查询...
  3. matlab 柯西黎曼方程,【判断题】柯西-黎曼方程成立是函数解析的必要条件.
  4. 2014 网选 5024 Wang Xifeng's Little Plot
  5. php项目实战流程_一个完整的php流程管理实例代码分享
  6. 性能测试学习05_lr(根据接口文档写脚本+参数化)
  7. 玩转文字!汉字海报的布局排版形式成功案例,给你灵感!
  8. 「leetcode」104559:求树的最大深度
  9. Regularized logistic regression(正则化逻辑回归)----吴恩达机器学习
  10. python中re模块的span_python3正则模块re的使用方法详解
  11. 为什么技术管理者要懂一点产品思维?向苹果,爱马仕学习产品底层素养
  12. 鱼塘钓鱼(fishing)
  13. 十隔日推算法_年、月、日、时干支推算法
  14. 用计算机制作个人简历图片,计算机应用基础制作个人简历.ppt
  15. 菜鸟应用-手机应用在线制作平台,手机应用,APP开发,手机软件开发
  16. QQ小游戏接入问题:Uncaught TypeError: wx.saveFile is not a function
  17. 证券期货经营机构私募资产管理业务管理办法 2018年10月22日
  18. XP电脑桌面图标文字带上颜色不透明 解决办法
  19. Java中的方法覆盖(Overriding)和方法重载(Overloading)是什么意思?
  20. 用python画小猪佩奇代码_Python turtle模块实例:绘制小猪佩奇(上)

热门文章

  1. nexus 6p刷入kali移动渗透测试平台
  2. python 学习第六天
  3. java基于Springboot+vue的文体文具销售商城网站 elementui
  4. 《静态时序分析实用方法》 第一章翻译
  5. Flowable多实例任务
  6. 京剧“ 韵味” 及其它
  7. PHP获取字符串首字母拼音类
  8. 30岁的程序猿该何去何从?
  9. 送你一份春节看片攻略~
  10. 模拟鼠标的左键单击和右键单击