当前位置:网站首页>KT148A语音芯片ic的软件参考代码C语言,一线串口
KT148A语音芯片ic的软件参考代码C语言,一线串口
2022-07-02 18:41:00 【清月电子】
目录
一线通讯协议
目前芯片支持一线串口通讯协议,采用的也是高低电平时间宽度来确定0或者1 。
3.1 通讯格式
注意:必须高电平在前,低电平在后。
推荐使用 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段声音
- 通讯举例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左右
因为芯片内部有一个空闲进入低功耗待机的机制。
边栏推荐
- Memory management of C
- 移动机器人路径规划:人工势场法[通俗易懂]
- Golang并发编程——goroutine、channel、sync
- AcWing 903. 昂贵的聘礼 题解(最短路—建图、dijkstra)
- Mobile robot path planning: artificial potential field method [easy to understand]
- 注解开发方式下AutowiredAnnotationBeanPostProcessor的注册时机
- MySQL
- 450 Shenxin Mianjing 1
- Npoi export Excel2007
- PHP parser badminton reservation applet development requires online system
猜你喜欢
AcWing 340. 通信线路 题解(二分+双端队列BFS求最短路)
xml开发方式下AutowiredAnnotationBeanPostProcessor的注册时机
守望先锋世界观架构 ——(一款好的游戏是怎么来的)
字典
安装单机redis详细教程
Set up sentinel mode. Reids and redis leave the sentinel cluster from the node
Registration opportunity of autowiredannotationbeanpostprocessor in XML development mode
注解开发方式下AutowiredAnnotationBeanPostProcessor的注册时机
KT148A语音芯片ic的硬件设计注意事项
mysql函数
随机推荐
2022.7.1-----leetcode. two hundred and forty-one
Cuckoo filter
Refactoring: improving the design of existing code (Part 2)
MySQL table historical data cleaning summary
Introduction to mongodb chapter 03 basic concepts of mongodb
AcWing 1129. 热浪 题解(最短路—spfa)
PXE installation "recommended collection"
AcWing 1125. 牛的旅行 题解(最短路、直径)
Binary operation
[pytorch learning notes] tensor
Typescript 之 快速入门
R语言使用econocharts包创建微观经济或宏观经济图、indifference函数可视化无差异曲线(indifference curve)
Think about the huge changes caused by variables
MySQL
Zabbix5 client installation and configuration
移动机器人路径规划:人工势场法[通俗易懂]
checklistbox控件用法总结
NPOI导出Excel2007
The mybatieshelperpro tool can be generated to the corresponding project folder if necessary
Chapter 7 - class foundation