加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

KT148A语音芯片ic的软件参考代码,c语言一线串口代码

(2022-07-02 18:17:04)
标签:

语音芯片

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

3.1 通讯格式
KT148A语音芯片ic的软件参考代码,c语言一线串口代码

注意:必须高电平在前,低电平在后。
推荐使用 200us:600us。取值范围:窄脉冲=[150us--400us]    宽脉冲[500us--1000us]
注意使用 3:1 和 1:3 电平比例以保障通讯稳定。
注意起始的6ms低电平,初次调试时,尽量用示波器或者逻辑分析仪看一下,误差在10%左右都能接受
1、0x00H到0xDFH为声音地址码或定义功能码。
2、0xFE为语音停止码,发送该命令可以停止播放语音。
3、编码之间的间隔须大于20ms



3.2 通讯指令
KT148A语音芯片ic的软件参考代码,c语言一线串口代码



4.参考例程
#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) ;
    CPU_SR_ALLOC();//关中断--芯片不同,可能接口不同
    OS_ENTER_CRITICAL();//关中断
    for(i=0 ; i<8 ;i++){
        if(dat & 0x01){
            IO1_HIGH() ;
            udelay(500);
            IO1_LOW();
            udelay(170) ;
        }else{
            IO1_HIGH() ;
            udelay(170);
            IO1_LOW();
            udelay(500) ;
        }
        dat = dat >> 1 ;
    }
    IO1_HIGH() ;
    OS_EXIT_CRITICAL();//开中断
   
}

oneline_send_one_data(0x05);//对应播放第5段声音 
4.1通讯举例F2--循环播放
void oneline_test_CMD_F2(void){
    oneline_send_one_data(0x01) ;
    udelay(20) ;
    oneline_send_one_data(0xF2) ;   
    udelay(20) ;
   实现的效果,就是第一段声音,循环播放,不停止。如果需要停止,可以发送FE指令
4.2 通讯举例F3--组合播放
void oneline_test_CMD_F3(void){
    oneline_send_one_data(0xF3) ;
    udelay(20) ;
    oneline_send_one_data(0x01) ;   
    udelay(20) ;
    oneline_send_one_data(0x02) ;   
    udelay(20) ;
    oneline_send_one_data(0x03) ;   
    udelay(20) ;
 组合播放第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左右
因为芯片内部有一个空闲进入低功耗待机的机制。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有