0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

KT148A一线串口通讯的注意事项以及常见的调试问题点总结归纳

清月电子 来源:清月电子 作者:清月电子 2022-09-26 14:39 次阅读

一、简介
KT148A语音芯片是受主MCU控制的,使用的是单线通讯的方式,也就是俗称串口通信,注意不是UART通信,通信的协议也是非标准的,详细的可以看看芯片说明书。

pYYBAGMxSOiAGpzqAAG2B9D372c780.png

二、详细说明
2.1 我们给出的参考代码
/*******************************************************************************
- 函数说明:一线通数据发送【注意调试的时候,用示波器或者逻辑分析仪看一下脉冲宽度】
- 隶属模块:内部
- 参数说明:dat = 待发送的数据
- 返回说明:无 -- 这里对应的就是PA6这个GPIO ,不同的MCU,对于IO口的操作不同,这个自己理解了
- 备注:整体的通讯逻辑如下:
1、先把数据线DATA,也就是ONELINE,拉低 6ms 后,发送 8 位数据,先发送低位,再发送高位。
2、使用高电平和低电平比例来表示每个数据位的值。
3、推荐使用 200us:600us。取值范围:窄脉冲=[150us--400us] 宽脉冲[500us--1000us]
********************************************************************************/
#define IO1_HIGH() JL_PORTA->DIR &= ~BIT(6);JL_PORTA->OUT |= BIT(6); //PA6输出高电平
#define IO1_LOW() JL_PORTA->DIR &= ~BIT(6);JL_PORTA->OUT &= ~BIT(6); //PA6输出低电平
void oneline_send_one_data(u8 dat)
{
u8 i = 0 ;
IO1_LOW() ;/*现将总线拉低*/
udelay(5000) ;/*延时6MS --- 这里就是发起通讯的起始信号------注意不同的芯片延时不一样,请自行测试*/
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、为什么按照例程发的数据,没反应呢?
==》面对这个问题,应该是借助仪器:示波器、逻辑分析仪等等仪器来测试你的波形
==》而不是来问我们什么原因,我们也没法给出意见,最好用仪器看一下,找出问题来

2、为什么程序里面,需要关中断、再来开中断呢?
==》这样的目的,是为了保证波形的完整性,因为你的,注意是你的mcu运行时候,可能存在
多种中断交替,这样就会导致在发送波形的途中,被打断,导致时间变长,或者其他
==》这个就看你具体的程序逻辑了,其实这样的问题我们也不想回答,这是您应该知道的
********************************************************************************/

poYBAGMxSPSAXR9-AAHMaNhm9cg285.png

2.2 参考波形图--逻辑分析仪

注意点:
1、起始信号一定不能低于6ms ,请严格按照这个去写程序
2、遇到问题,第一时间,请用工具,用工具,不要一开始就问我们怎么发数据了,没反应,很崩溃的
3、另外很多的工程师,可能不习惯于用逻辑分析仪,都喜欢拿示波器去量。真的实在是太痛苦了
只要是数字信号,推荐逻辑分析仪,不仅波形抓起来漂亮直观,抓数据的时间还长,

强烈推荐使用,老手请忽视


2.3 关于芯片待机5秒自动进入待机

1、由于芯片要兼容低功耗的应用,所以不得不设计一个低功耗的机制

2、芯片一旦进入空闲,计时超过5秒之后,自动待机,功耗为25uA左右。进入待机之后芯片所有的外设都是关闭的,包括busy脚也是弱上拉的状态

3、进入待机之后,芯片的data脚,设置的是下降沿唤醒,所以当主MCU发送数据的时候,为什么前面需要6ms的起始信号,很大一部分的原因,是因为芯片唤醒之后到正常读取一线的数据,中间需要大概2-3ms的时间 。所以起始信号一定要给足6ms


2.4 关于芯片低功耗的F0指令说明

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

2、芯片接收到F0指令之后,就会进入关机状态,功耗维持在1.7uA左右
3、如果需要芯片再次接收指令,必须先将dat信号拉低40ms,让芯片被唤醒,再发送数据就可以了
==》这里的主MCU发送40ms的低电平之后,再紧接着将data脚拉高就可以了
==》此时如果需要发指令,就再延时个15ms就可以了,合计也就是65ms左右了

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • mcu
    mcu
    +关注

    关注

    146

    文章

    16011

    浏览量

    343563
  • 串口
    +关注

    关注

    14

    文章

    1483

    浏览量

    74504
  • 语音芯片
    +关注

    关注

    12

    文章

    1571

    浏览量

    35827
收藏 人收藏

    评论

    相关推荐

    第25章 使用RTX时注意事项总结

    转rtx操作系统本章节主要是总结下RTX使用中几个常见问题的解决办法。25.1 RTX使用中注意事项25.2总结25.1RTX使用中
    发表于 10-10 08:48

    UART串口通讯硬件常见注意事项有哪些

    串口通讯的数据格式是怎样的?串口通讯硬件常见注意事项有哪些?
    发表于 12-06 07:28

    Proteus仿真单片机串口注意事项和实物调试注意事项

    蓝牙的使用,Proteus仿真单片机串口注意事项和实物调试注意事项。玩转单片机串口详细零基础版学习单片机、Proteus仿真单片机串口
    发表于 02-23 06:57

    KT148A语音芯片的常见问题

    (1)、KT148A是一颗专用于语音播报,芯片内置420秒的语音空间,直驱扬声器,可以重复烧录,用户也可以自己更换声音,使用简单的一线串口控制,成本低,性价比高
    的头像 发表于 07-03 09:12 653次阅读

    DSP语音芯片KT148A简介

    九齐ny3p语音芯片替代方案国产KT148A性价比更高420秒长度
    的头像 发表于 07-30 10:39 2152次阅读
    DSP语音芯片<b class='flag-5'>KT148A</b>简介

    KT148A语音芯片怎么烧录语音进入芯片里面

    KT148A语音芯片怎么烧录语音进入芯片里面,这里需要用到串口和电脑端的工具
    的头像 发表于 08-01 09:01 2119次阅读
    <b class='flag-5'>KT148A</b>语音芯片怎么烧录语音进入芯片里面

    KT148A语音芯片的工作原理及架构

    KT148A芯片内部采用的是 MCU + spiflash架构,是叠层封装在一起的,也就是两颗晶圆封在一颗芯片里面
    的头像 发表于 08-01 09:00 1098次阅读
    <b class='flag-5'>KT148A</b>语音芯片的工作原理及架构

    KT148A语音芯片关于_音量_声音的所有介绍汇总_比如声音小等等_V1

    KT148A语音芯片关于_音量_声音的所有介绍汇总_比如声音小等等 首先声音的大小,取决于如下3个方面 1、芯片的驱动能力,比如:KT148A的手册描述驱动8欧姆0.5W的喇叭这个参数
    发表于 11-14 11:38 637次阅读
    <b class='flag-5'>KT148A</b>语音芯片关于_音量_声音的所有介绍汇总_比如声音小等等_V1

    KT148A语音芯片替代OTP常见问题集锦

    KT148A是什么? 具备哪些功能? 有什么特色?
    的头像 发表于 11-21 09:03 729次阅读
    <b class='flag-5'>KT148A</b>语音芯片替代OTP<b class='flag-5'>常见</b>问题集锦

    语音芯片KT148A一线串口KT148A串口版本以及按键版本有什么区别_V1

    目前KT148A语音芯片自带的程序,分为两个版本,分别是 1、一线串口版本:应用场景是搭配MCU,KT148A受到MCU的控制,来播放语音 2、按键版本:
    发表于 11-21 11:44 366次阅读
    语音芯片<b class='flag-5'>KT148A</b>的<b class='flag-5'>一线</b><b class='flag-5'>串口</b>和<b class='flag-5'>KT148A</b>的<b class='flag-5'>串口</b>版本<b class='flag-5'>以及</b>按键版本有什么区别_V1

    KT148A语音芯片按键版本一对一触发播放功能描述V4

    KT148A语音芯片--按键版本,支持3个IO口一对一触发 。同时也支持用户自己更换芯片内部的声音文件,方法,参考我们另外一份文档的描述“20220704_KT148A芯片自己更换声音的方法V3
    的头像 发表于 11-21 15:42 703次阅读
    <b class='flag-5'>KT148A</b>语音芯片按键版本一对一触发播放功能描述V4

    KT148A语音芯片420s秒的语音空间是什么意思

    我想问一下KT148A这个芯片真的能存420秒的语音么?我随便一个5秒的语音mp3格式都65k了,如果是这样的话 那我的mp3的源文件在最小的采样率和最小码率的情况下 mp3文件可以支持多大?有没有实际测试的数据,使用的是一线串口
    的头像 发表于 01-12 17:20 442次阅读
    <b class='flag-5'>KT148A</b>语音芯片420s秒的语音空间是什么意思

    KT148A语音芯片下载过程的问题集锦 包含下载不了批量生产的说明

    为什么我买的KT148A测试板-不能下载语音,驱动我也装了,上面的三步我也详细看了,感觉没什么问题,出现这个问题会是什么原因呢?
    的头像 发表于 10-14 11:50 236次阅读
    <b class='flag-5'>KT148A</b>语音芯片下载过程的问题集锦 包含下载不了批量生产的说明

    KT148A语音芯片的下载用的是串口,测试可以直接串口发指令控制吗?

      KT148A语音芯片的下载用的是串口,那我实际测试是不是可以直接串口发指令测试控制?就不用单独写程序去模拟一线串口的时序了
    的头像 发表于 11-14 14:21 296次阅读
    <b class='flag-5'>KT148A</b>语音芯片的下载用的是<b class='flag-5'>串口</b>,测试可以直接<b class='flag-5'>串口</b>发指令控制吗?

    KT148A语音芯片使用串口uart本控制的完整说明_包含硬件和指令举例

    KT148A肯定是支持串口的,有客户反馈使用一线还是不方便,比如一些大型的系统不适合有延时的操作,所以更加倾向于使用uart控制,这里我们也给出解决方案 延伸出来另外一个版本,KT1
    的头像 发表于 11-17 09:05 391次阅读
    <b class='flag-5'>KT148A</b>语音芯片使用<b class='flag-5'>串口</b>uart本控制的完整说明_包含硬件和指令举例