KT148A语音芯片使用说明、硬件设计、通讯协议、常见问题集锦,参考代码

目录

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.概述

1.1 简介 

KT148A是一款32位的DSP语音芯片标准的SOP8封装内置420KByte的语音空间,最大支持420秒的语音长度,支持多段语音,同时支持直驱0.5W的扬声器,支持用户自己更换语音

目前该芯片的优势如下:

  1. 性价比高,相比较传统的OTP芯片来说,工艺的提升大大降低了成本,同时芯片可重复烧录
  2. 用户可以自行的更换声音,通过电脑端的串口即可自己完成,无需其他昂贵的工具
  3. 芯片自带足够的空间,可以追求更高的音质效果

1.2 功能简述

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.3 芯片功耗描述

状态

详细描述

播放状态

  1. 播放状态的功耗,取决于外接的扬声器负载大小,基本维持在150mA--200mA之间
  2. 芯片本身的在播放时,功耗在8mA左右

空闲状态

  1. 当芯片本身没有播放,或者播完完毕之后,会自动进入待机状态
  2. 芯片自身的功耗是在25uA左右,足够一般的应用场景了

超低功耗状态

1、芯片同时有一条指令,是让芯片进入超低功耗,也就是关机状态,功耗是2uA

2、详见手册的4.3章节描述

2.参数说明

芯片选用的是SOC方案,集成了一个16位的MCU,以及一个专门针对音频解码的aDSP,采用硬解码的方式,更加保证了系统的稳定性和音质。小巧的封装尺寸更加满足嵌入其它产品的需求

2.1 管脚说明

KT148A语音芯片使用说明、硬件设计、通讯协议、常见问题集锦,参考代码_第1张图片

Pad No

Pad Name

ATTR

Description 描述

1

GND

Power

电源负极

2

PB9

I/O

Busy信号=播放输出低空闲输出高

复用串口下载,连接MCU或者USB转TTLRX

3

PB1

I/O

[ONELINE-DATA]一线串口输入端

复用串口下载,连接MCU或者USB转TTLTX

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供电的注意事项:

  1. 建议给芯片的供电,做到5V供电,电压越高芯片驱动喇叭的功率也越高,声音也越大
  2. 如果是[3.3--4.2V]锂电池的场景,电源正极直接进芯片的8脚即可
  3. 如果是干电池的供电场景,电源正极也是直接进芯片的8脚
  4. 如果需要超低电压供电,如2V--3V之间的纽扣电池,建议芯片的7脚和8脚直接短路,再连接电源正极

2、快速测试说明:

==》芯片的是第4脚为测试脚,外接一个按键或者镊子对地触发一下,就会播放下一个语音

==》连接好扬声器,然后供电之后,就可以用第4脚对地测试了

2.2 GPIO电气特性

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

2.3 GPIO的内部特性

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

2.4 参考电路

KT148A语音芯片使用说明、硬件设计、通讯协议、常见问题集锦,参考代码_第2张图片

3一线通讯协议

    目前芯片支持一线串口通讯协议,采用的也是高低电平时间宽度来确定0或者1 。

3.1 通讯格式

KT148A语音芯片使用说明、硬件设计、通讯协议、常见问题集锦,参考代码_第3张图片

先把数据线DATA,也就是ONELINE,拉低 6ms 后,发送 8 位数据,先发送低位,再发送高位。使用高电平和低电平比例来表示每个数据位的值。

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

推荐使用 200us:600us。取值范围:窄脉冲=[150us--400us]    宽脉冲[500us--1000us]

注意使用 3:1 和 1:3 电平比例以保障通讯稳定。

注意起始的6ms低电平,初次调试时,尽量用示波器或者逻辑分析仪看一下,误差在10%左右都能接受

1、0x00H到0xDFH为声音地址码或定义功能码。

2、0xFE为语音停止码,发送该命令可以停止播放语音。

3、编码之间的间隔须大于20ms

3.2 通讯指令

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段声音 

    1. 通讯举例F2--循环播放

void oneline_test_CMD_F2(void){

    oneline_send_one_data(0x01) ;

    udelay(20) ;/*延时25ms*/

    oneline_send_one_data(0xF2) ;   

    udelay(20) ;/*延时25ms*/

}     实现的效果,就是第一段声音,循环播放,不停止。如果需要停止,可以发送FE指令

4.2 通讯举例F3--组合播放

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指令

同时,在组合播放的过程中,接收到新的组合播放数据,会停止当前的组合播放,转去播放新的指令

4.3 通讯指令F0描述【超低功耗】

1、专用于芯片进入超低功耗,因为芯片在播放结束之后,会自动进入待机状态,功耗维持在25uA 。

2、如果需要芯片的功耗再低,则需要发送F0指令,任何状态下都可以

3、芯片接收到F0指令之后,就会进入关机状态,功耗维持在1.7uA左右

4、如果需要芯片再次接收指令,必须先将dat信号拉低40ms,让芯片被唤醒,再发送数据就可以了

4.4 通讯细节注意事项

1、控制MCU上电之后,第一时间就要将通讯IO,也就是ONELINE脚设置为高电平输出

2、尽量和KT148A芯片的通讯之间,串1K的电阻,来适配不同的电平

3、芯片的2脚PB9,在播放的时候,电压大概是3.1V左右 。一旦进入空闲状态,此IO会变成2.8V左右

因为芯片内部有一个空闲进入低功耗待机的机制。

  1. 用户自己更换声音

芯片支持通过串口更换声音,需要的工具如下:

  1. PC端的音频压缩软件---我们提供
  2. PC端的下载工具软件---我们提供
  3. USB转TTL的串口工具---推荐使用CH340G的USB转TTL模块

5.1 第1步产生音频文件

1、这个可以通过TTS合成软件,自己生成mp3或者wav文件 。也可以找真人录音等等方式

2、获取了这些音频文件之后,自己可以试听一下效果

3、音频的效果,必须是在这一步完成,包括,修音、去头去尾,调整好音量大小等等

待续。。。。。。。。。

5.2 第2步--转换音频文件

KT148A语音芯片使用说明、硬件设计、通讯协议、常见问题集锦,参考代码_第4张图片

1、使用我们提供的工具软件,格式只能选择F1A

2、采样率和码率,就自己去灵活的选择了,一般推荐“采样率16K”,码率6K ,效果就很好了

如果空间允许,就自由发挥

3、添加文件,选择输出的目录  ,最后点击转换就可以了

  1. 他会将原始的音频文件,生成为xxx.f1a格式的文件,注意这个文件在电脑端是不能播放的,只能下载到芯片里面去解码播放

5.3 第3步--使用串口下载工具下载音频

KT148A语音芯片使用说明、硬件设计、通讯协议、常见问题集锦,参考代码_第5张图片

1、一定要把芯片的5脚对地短路再上电 ,听到喇叭“滴”的一声,松开就可以了

2、这个时候,芯片就自动进入到下载状态 。建议选用CH340G的USB转TTL模块

3、然后,连接串口模块到电脑,USB转TTL的TX接芯片的2脚,USB转TTL的RX接芯片的3脚,然后共地 。就可以了

4、点击上位机上面的,打开串口,波特率固定115200 ,选择导入文件,再点击“下载全部”,等待完成5、注意下载完了之后,可以用芯片的4脚对地触发一下,试听下载的声音

六、KT148A芯片问题集锦

遇到问题,先不要着急上火,先看看这个

6.1 KT148A是什么? 具备哪些功能? 有什么特色?

1、KT148A是一颗专用于语音播报,芯片内置420秒的语音空间,直驱扬声器,可以重复烧录,用户也可以自己更换声音,使用简单的一线串口控制,成本低,性价比高

2、支持一线串口控制,支持插播和组合播报,非常适合游戏机、播报金额

3、提供上位机进行用户下载语音,不限段数

4、超低的待机功耗20uA,超低的关机功耗2uA ,不支持外挂功放,需要外挂功放可以选择KT142A的芯片,或者KT404A

6.2 KT148A工作电压多少?电流是多少?控制方式是多少?支持多大的喇叭?

(1)、KT148A的工作电压是2.0V--5V,供电电压越高,扬声器功率越足,当然声音也就越好

(2)、KT148A最佳的工作电压是4.6V 。如果是5V的供电,建议串一个二极管适当的降压

二极管选择4001或者4148之类的都可以。

(3)、待机电流20uA,工作电流大概8mA。如果外接喇叭,则视喇叭功率而定

(4)、控制方式是一线串口,详见手册的章节3,最好搭配逻辑分析仪调试,最简单

6.3 KT148A我焊接到PCB板上面之后,为什么没有任何反应呢?

(1)、这个问题比较模糊,所以需要多重判断,才能找出问题来

(2)、首先看一下芯片的供电正常不正常,也就是芯片的8脚,输入电压是否是2.0--5.2V之间

(3)、在看看芯片的7脚,是否有3.3V的电压输出。如果超过3.7V以上则极有可能芯片被击穿了,只能更换了

(4)、然后再看看芯片的第2脚,这个脚是busy脚,播放输出低电平,空闲输出高电平,空闲超时5秒自动进入待机,则是高阻态 。

(5)、芯片还有一个测试脚,也就是第4脚,对地触发一下,可以播放出来声音,这个io就是方便客户测试用的

6.4 KT148A如何下载语音到芯片里面呢?  拷贝是按照什么顺序呢?

(1)、详见手册的章节5,总共分为3步,详细看一下,

(2)、拷贝的顺序,是按照上位机里面加载文件的顺序来编号的

6.5KT148A支持按键3个按键对应不同的语音播放吗?

1、详见资料包里面另外一份文档“20220723_KT148A芯片IO触发功能描述_支持3路_V2.pdf”

KT148A语音芯片使用说明、硬件设计、通讯协议、常见问题集锦,参考代码_第6张图片

2、注意拿样品的时候,一定要联系客服,备注:“KT148A_V12_xxxx_按键版本”

6.6 KT148A支持一些特定的功能开发吗?芯片具备哪些资源

1、KT148A芯片封装为SOP8,可用的IO口只有3个,可以分别作为输入和输出,也可以作为AD采样,或者IO去模拟IIC通讯,都是可以的

2、所以有些简单的应用,如控制一些闪灯,或者采集一些电压等功能,都是可以订制开发的

6.7 KT148A通过串口更新内置的语音,可以提供协议吗?

1、KT148A芯片更新语音的流程相对比较复杂,流程比较多,所以一定是要有一定的技术能力才能做,否则售后太麻烦了

2、真的有实际产品要开发的话,协议我们是可以开放的。

6.8 KT148A的静电数据如何?工作温度?

  1. 芯片的接触放电是4kv,隔空放电,没有测试过
  2. 工作温度范围:-40°C to +85°C

6.9 KT148A的可以调节音量吗?

1、可以的,可以参见手册的一线命令指令

2、“15 级音量,0xE0 为最小音量 0,0xEF最大音量  (上电默认)。

(若需要调节音量,则先发音量码,隔 20ms 再发声音码)”

3、如果调到了最大音量,发现音量还不够大,没关系,可以在音源端调整音量,详见“07_音频的生成和压缩以及简单修音_合成方法介绍_V3.pdf”这份文档,资料包里面07号文件夹找找

6.10 同样条件下,外接VBAT为5V和外接3.3V,5V供电是不是扬声器的声音要大写?

1、是的,因为扬声器的输出功率,直接受供电电压的影响,电压越高,当然PWM输出驱动喇叭的功率也就越高

2、同时,也要注意一下,低于3.3v的供电,可以选择把7/8脚直接短路起来 。这样芯片可以工作在最低2.2V的状态下

6.11 你们有做过  ch571f的一线串口控制吗  我调了半天  没有效果啊?

  1. 一线通讯,和用什么主控没什么关系,主要还是时序。因为这个确实不太好查原因,多半是程序问题
  2. 首先,看一下芯片是不是进入下载语音状态了,进入下载语音的条件是,芯片的5脚开机被拉低,才会进入下载,一旦进入下载,芯片的一线串口IO就会作为下载使用,就不是一线串口了
  3. 其次,检查一下时序,严格按照我们说明书给出的电平时间宽度来,如下图:KT148A语音芯片使用说明、硬件设计、通讯协议、常见问题集锦,参考代码_第7张图片

4、总之,目前客户使用的mcu种类也很多,也没有客户反馈什么问题,使用都还是很顺的

你可能感兴趣的:(KT148A,单片机)