目录
1.概述
1.1 简介
KT148A是一款32位的DSP语音芯片,标准的SOP8封装。内置420KByte的语音空间,最大支持420秒的语音长度,支持多段语音,同时支持直驱0.5W的扬声器,支持用户自己更换语音
目前该芯片的优势如下:
1.2 功能简述
1.3 芯片功耗描述
2.参数说明
2.1 管脚说明
2.2 GPIO电气特性
2.3 GPIO的内部特性
2.4 参考电路
3.1 通讯格式
3.2 通讯指令
4.2 通讯举例F3--组合播放
4.3 通讯指令F0描述【超低功耗】
4.4 通讯细节注意事项
5.1 第1步产生音频文件
5.2 第2步--转换音频文件
5.3 第3步--使用串口下载工具下载音频
六、KT148A芯片问题集锦
6.1 KT148A是什么? 具备哪些功能? 有什么特色?
6.2 KT148A工作电压多少?电流是多少?控制方式是多少?支持多大的喇叭?
6.3 KT148A我焊接到PCB板上面之后,为什么没有任何反应呢?
6.4 KT148A如何下载语音到芯片里面呢? 拷贝是按照什么顺序呢?
6.5KT148A支持按键3个按键对应不同的语音播放吗?
6.6 KT148A支持一些特定的功能开发吗?芯片具备哪些资源
6.7 KT148A通过串口更新内置的语音,可以提供协议吗?
6.8 KT148A的静电数据如何?工作温度?
6.9 KT148A的可以调节音量吗?
6.10 同样条件下,外接VBAT为5V和外接3.3V,5V供电是不是扬声器的声音要大写?
6.11 你们有做过 ch571f的一线串口控制吗 我调了半天 没有效果啊?
KT148A语音芯片完整的开发资料sop8封装国产低成本-智慧城市文档类资源-CSDN下载KT148A是一款32位的DSP语音芯片,标准的SOP8封装。内置420KByte的语音空间,最大支更多下载资源、学习资料请访问CSDN下载频道.https://download.csdn.net/download/qyvhome/85907009https://item.taobao.com/item.htm?spm=a230r.1.14.3.24c842cdu2wJ7D&id=676362019327&ns=1&abbucket=11#detailhttps://item.taobao.com/item.htm?spm=a230r.1.14.3.24c842cdu2wJ7D&id=676362019327&ns=1&abbucket=11#detail
1. 32 位 DSP 语音芯片、5MHZ的内部振荡,PLL到120MHZ; |
2. 工作电压 2.0~5.5V; 注意低于3.3V的供电,硬件上有细节的区别 |
3. 待机功耗小于 25ua;另有低功耗模式1.5uA |
4. 16bit 的 PWM输出、可直接驱动 8欧姆 /0.5W 喇叭; |
5. 提供工具自行转换音频格式,全部用户可以自己操作,非常简单 |
6. 16KHZ 下最大可以支持200秒。8KHZ 下最大可以支持400秒 |
7. 客户可以通过电脑端的工具软件,通过串口直接更换语音内容 |
8. 支持一线串口控制,当然可以根据需求订制各种协议 |
9. 支持 224 段地址,有更多需求可以扩展; |
10.具有硬件 iic接口、UART 接口,可以为客户定制各类功能。 |
11.芯片具备重复烧录的能力,所以任何时候不用担心测试不完整,导致批量性的问题 |
状态 |
详细描述 |
播放状态 |
|
空闲状态 |
|
超低功耗状态 |
1、芯片同时有一条指令,是让芯片进入超低功耗,也就是关机状态,功耗是2uA 2、详见手册的4.3章节描述 |
芯片选用的是SOC方案,集成了一个16位的MCU,以及一个专门针对音频解码的aDSP,采用硬解码的方式,更加保证了系统的稳定性和音质。小巧的封装尺寸更加满足嵌入其它产品的需求
Pad No |
Pad Name |
ATTR |
Description 描述 |
1 |
GND |
Power |
电源负极 |
2 |
PB9 |
I/O |
Busy信号=播放输出低空闲输出高 复用串口下载,连接MCU或者USB转TTL的RX脚 |
3 |
PB1 |
I/O |
[ONELINE-DATA]一线串口输入端 复用串口下载,连接MCU或者USB转TTL的TX脚 |
4 |
PB0 |
I/O |
KEY按键--测试IO--对地触发就播放 |
5 |
SPK1 |
Out |
不分正负,支持8欧姆0.5W |
6 |
SPK2 |
Out |
不分正负,支持8欧姆0.5W |
7 |
VDDIO |
Power |
芯片内部的LDO输出,最大100mA |
8 |
VBAT |
Power |
电源正极 |
1供电的注意事项:
2、快速测试说明:
==》芯片的是第4脚为测试脚,外接一个按键或者镊子对地触发一下,就会播放下一个语音
==》连接好扬声器,然后供电之后,就可以用第4脚对地测试了
IO输入特性 |
||||||
符号 |
参数 |
最小 |
典型 |
最大 |
单位 |
测试条件 |
VIL |
Low-Level Input Voltage |
-0.3 |
- |
0.3*VDD |
V |
VDDIO=3.3V |
VIH |
High-Level Input Voltage |
0.7VDDIO |
- |
VDDIO+0.3 |
V |
VDDIO=3.3V |
IO输出特性 |
||||||
符号 |
参数 |
最小 |
典型 |
最大 |
单位 |
测试条件 |
VOL |
Low-Level Output Voltage |
- |
- |
0.33 |
V |
VDDIO=3.3V |
VOH |
High-Level Output Voltage |
2.7 |
- |
- |
V |
VDDIO=3.3V |
Port |
General Output |
High Drive |
Internal Pull-Up Resistor |
Internal Pull-Down Resistor |
Comment |
PB0,PB1 |
8mA |
64mA |
10K |
60K |
1、PB0 & PB1 default pull down 2、internal pull-up/pull-down resistance | accuracy ±20% |
PB9 |
8mA |
10K |
60K |
3一线通讯协议
目前芯片支持一线串口通讯协议,采用的也是高低电平时间宽度来确定0或者1 。
先把数据线DATA,也就是ONELINE,拉低 6ms 后,发送 8 位数据,先发送低位,再发送高位。使用高电平和低电平比例来表示每个数据位的值。
注意:必须高电平在前,低电平在后。
推荐使用 200us:600us。取值范围:窄脉冲=[150us--400us] 宽脉冲[500us--1000us]
注意使用 3:1 和 1:3 电平比例以保障通讯稳定。
注意起始的6ms低电平,初次调试时,尽量用示波器或者逻辑分析仪看一下,误差在10%左右都能接受
1、0x00H到0xDFH为声音地址码或定义功能码。
2、0xFE为语音停止码,发送该命令可以停止播放语音。
3、编码之间的间隔须大于20ms
NO.序号 |
Data编码 |
Voice语音表 |
0 |
0x00 |
保留 |
1 |
0x01 |
声音1 |
2 |
0x02 |
声音2 |
3 |
0x03 |
声音3 |
…… |
||
224 |
0xE0~0xEF |
15级音量,0xE0H为最小音量0,0xEFH最大音量 (上电默认)。 (若需要调节音量,则先发音量码,隔20ms再发声音码) |
225 |
0xF0 |
关机。进入超低功耗状态=1.7uA,详见4.3章节 进入此状态之后,还需要控制芯片,则需要先拉低DATA脚40ms 目的是唤醒芯片,就可以正常发指令控制了, |
242 |
0xF2 |
循环码 -- 详见4.1章节 若需要循环某个声音,则先发声音码,隔20ms再发循环码) |
243 |
0xF3 |
连码播放 -- 详见4.2章节 F3H+语音地址 A,语音地址 B,语音地址 C,… 在播放地址 A 的时候,收到后面的码不打断,播放完 A,就播放 B,然后播放 C…。F3 与地址之间需要加 20ms 的延时。而一组连码地址与下一组地址最大需要 40ms 延时(“F3+语音地址”为一组连码地址) |
254 |
0xFE |
停止码 |
/*******************************************************************************
- 函数说明:一线通数据发送【注意调试的时候,用示波器或者逻辑分析仪看一下脉冲宽度】
- 隶属模块:内部
- 参数说明:dat = 待发送的数据
- 返回说明:无
********************************************************************************/
#define IO1_HIGH() JL_PORTA->DIR &= ~BIT(6);JL_PORTA->OUT |= BIT(6);
#define IO1_LOW() JL_PORTA->DIR &= ~BIT(6);JL_PORTA->OUT &= ~BIT(6);
void oneline_send_one_data(u8 dat)
{
u8 i = 0 ;
IO1_LOW() ;/*现将总线拉低*/
udelay(5000) ;/*延时6MS --- 这里就是发起通讯的起始信号*/
CPU_SR_ALLOC();//关中断--芯片不同,可能接口不同
OS_ENTER_CRITICAL();//关中断
for(i=0 ; i<8 ;i++){
if(dat & 0x01){
IO1_HIGH() ;
udelay(500);/*延时600us*/
IO1_LOW();
udelay(170) ;/*延时200us*/
}else{
IO1_HIGH() ;
udelay(170);/*延时200us*/
IO1_LOW();
udelay(500) ;/*延时600us*/
}
dat = dat >> 1 ;/*发送的时候,先发送最高位,再发送次高位,以此类推*/
}
IO1_HIGH() ;/*空闲时将该脚拉高即可*/
OS_EXIT_CRITICAL();//开中断
/*同时注意,芯片初始化的时候,请将信号脚拉高。*/
}
oneline_send_one_data(0x05);//对应播放第5段声音
void oneline_test_CMD_F2(void){
oneline_send_one_data(0x01) ;
udelay(20) ;/*延时25ms*/
oneline_send_one_data(0xF2) ;
udelay(20) ;/*延时25ms*/
} 实现的效果,就是第一段声音,循环播放,不停止。如果需要停止,可以发送FE指令
void oneline_test_CMD_F3(void){
oneline_send_one_data(0xF3) ;
udelay(20) ;/*延时25ms*/
oneline_send_one_data(0x01) ;
udelay(20) ;/*延时25ms*/
oneline_send_one_data(0x02) ;
udelay(20) ;/*延时25ms*/
oneline_send_one_data(0x03) ;
udelay(20) ;/*延时25ms*/
} 组合播放第1段、第2段、第3段声音,依次按照顺序播放。如果需要停止,可以发送FE指令
同时,在组合播放的过程中,接收到新的组合播放数据,会停止当前的组合播放,转去播放新的指令
1、专用于芯片进入超低功耗,因为芯片在播放结束之后,会自动进入待机状态,功耗维持在25uA 。
2、如果需要芯片的功耗再低,则需要发送F0指令,任何状态下都可以
3、芯片接收到F0指令之后,就会进入关机状态,功耗维持在1.7uA左右
4、如果需要芯片再次接收指令,必须先将dat信号拉低40ms,让芯片被唤醒,再发送数据就可以了
1、控制MCU上电之后,第一时间就要将通讯IO,也就是ONELINE脚设置为高电平输出
2、尽量和KT148A芯片的通讯之间,串1K的电阻,来适配不同的电平
3、芯片的2脚PB9,在播放的时候,电压大概是3.1V左右 。一旦进入空闲状态,此IO会变成2.8V左右
因为芯片内部有一个空闲进入低功耗待机的机制。
芯片支持通过串口更换声音,需要的工具如下:
1、这个可以通过TTS合成软件,自己生成mp3或者wav文件 。也可以找真人录音等等方式
2、获取了这些音频文件之后,自己可以试听一下效果
3、音频的效果,必须是在这一步完成,包括,修音、去头去尾,调整好音量大小等等
待续。。。。。。。。。
1、使用我们提供的工具软件,格式只能选择F1A
2、采样率和码率,就自己去灵活的选择了,一般推荐“采样率16K”,码率6K ,效果就很好了
如果空间允许,就自由发挥
3、添加文件,选择输出的目录 ,最后点击转换就可以了
1、一定要把芯片的5脚对地短路再上电 ,听到喇叭“滴”的一声,松开就可以了
2、这个时候,芯片就自动进入到下载状态 。建议选用CH340G的USB转TTL模块
3、然后,连接串口模块到电脑,USB转TTL的TX接芯片的2脚,USB转TTL的RX接芯片的3脚,然后共地 。就可以了
4、点击上位机上面的,打开串口,波特率固定115200 ,选择导入文件,再点击“下载全部”,等待完成5、注意下载完了之后,可以用芯片的4脚对地触发一下,试听下载的声音
遇到问题,先不要着急上火,先看看这个
1、KT148A是一颗专用于语音播报,芯片内置420秒的语音空间,直驱扬声器,可以重复烧录,用户也可以自己更换声音,使用简单的一线串口控制,成本低,性价比高
2、支持一线串口控制,支持插播和组合播报,非常适合游戏机、播报金额
3、提供上位机进行用户下载语音,不限段数
4、超低的待机功耗20uA,超低的关机功耗2uA ,不支持外挂功放,需要外挂功放可以选择KT142A的芯片,或者KT404A
(1)、KT148A的工作电压是2.0V--5V,供电电压越高,扬声器功率越足,当然声音也就越好
(2)、KT148A最佳的工作电压是4.6V 。如果是5V的供电,建议串一个二极管适当的降压
二极管选择4001或者4148之类的都可以。
(3)、待机电流20uA,工作电流大概8mA。如果外接喇叭,则视喇叭功率而定
(4)、控制方式是一线串口,详见手册的章节3,最好搭配逻辑分析仪调试,最简单
(1)、这个问题比较模糊,所以需要多重判断,才能找出问题来
(2)、首先看一下芯片的供电正常不正常,也就是芯片的8脚,输入电压是否是2.0--5.2V之间
(3)、在看看芯片的7脚,是否有3.3V的电压输出。如果超过3.7V以上则极有可能芯片被击穿了,只能更换了
(4)、然后再看看芯片的第2脚,这个脚是busy脚,播放输出低电平,空闲输出高电平,空闲超时5秒自动进入待机,则是高阻态 。
(5)、芯片还有一个测试脚,也就是第4脚,对地触发一下,可以播放出来声音,这个io就是方便客户测试用的
(1)、详见手册的章节5,总共分为3步,详细看一下,
(2)、拷贝的顺序,是按照上位机里面加载文件的顺序来编号的
1、详见资料包里面另外一份文档“20220723_KT148A芯片IO触发功能描述_支持3路_V2.pdf”
2、注意拿样品的时候,一定要联系客服,备注:“KT148A_V12_xxxx_按键版本”
1、KT148A芯片封装为SOP8,可用的IO口只有3个,可以分别作为输入和输出,也可以作为AD采样,或者IO去模拟IIC通讯,都是可以的
2、所以有些简单的应用,如控制一些闪灯,或者采集一些电压等功能,都是可以订制开发的
1、KT148A芯片更新语音的流程相对比较复杂,流程比较多,所以一定是要有一定的技术能力才能做,否则售后太麻烦了
2、真的有实际产品要开发的话,协议我们是可以开放的。
1、可以的,可以参见手册的一线命令指令
2、“15 级音量,0xE0 为最小音量 0,0xEF最大音量 (上电默认)。
(若需要调节音量,则先发音量码,隔 20ms 再发声音码)”
3、如果调到了最大音量,发现音量还不够大,没关系,可以在音源端调整音量,详见“07_音频的生成和压缩以及简单修音_合成方法介绍_V3.pdf”这份文档,资料包里面07号文件夹找找
1、是的,因为扬声器的输出功率,直接受供电电压的影响,电压越高,当然PWM输出驱动喇叭的功率也就越高
2、同时,也要注意一下,低于3.3v的供电,可以选择把7/8脚直接短路起来 。这样芯片可以工作在最低2.2V的状态下
4、总之,目前客户使用的mcu种类也很多,也没有客户反馈什么问题,使用都还是很顺的