//*****************************************************************************
// File Name: KT_WirelessMicTxdrv.c
// Function: KT Wireless Mic Transmitter Products Driver For Customer
// (KT064xM)
//*****************************************************************************
// Revision History
// Version Date Description
// V0.1 2016-04-26 For KT0646M_VX
// V0.2 2016-06-01 增加VX和VX2的编译选项
// V0.3 2016-08-18 For KT0646M_VX4
// V0.3.1 2016-08-24 删除KT_WirelessMicTx_Init程序内一些重复配置
// V0.4 2016-08-26 修正了XTAL_DUAL问题
// V0.5 2016-10-11 修改了初始化函数中的一些配置,把0x25,0x26寄存器的配置加到了初始化函数里面,
// 在初始化函数里面set pilot frequency
// V0.5.1 2016-10-17 重新修改了一下里面的宏定义,定义了RXISKT0616M就用BPSK的旧模式,然后再根据
// 是否是双晶振把KT0616M选晶振的程序加进去。
// V0.5.2 2016-11-15 在tune台前把lo_fine_vref_sel改为3,tune完后改成0.
// V0.5.3 2016-12-15 在初始化中把lo_fine_vref_sel改为3,不用在tune台的时候再来回修改了.为了温度
// 变化不锁定的问题,详见被宏DOUBLE_KVCO包围的代码
// V0.6 2017-02-08 格式规范化整理
// V1.1 2017-04-27 删除了一些初始化函数里面没用的东西,把有些用小写字母定义的宏定义改成了大写的字母
// V1.2 2017-05-24 初始化中,把HARD_LIMIT从14改成了15,COMPANDOR_TC改成了3,即48ms。
// V1.3 2017-09-18 COMPEN_GAIN由3改成1,MIC_SENS_GAIN由9改成5,COMPANDOR_TC_48ms改成COMPANDOR_TC_12ms
// V1.4 2017-10-10 echo关闭的时候,不真正关echo而是把Echo_Ratio写成0,soft_rst不是在寄存器0x3e的bit15了,而是在0x1e的bit4.
// V1.5 2017-12-14 根据接收是KT0616M时,把BPSK_NEW_MODE改成0,否则为1
//*****************************************************************************
//-----------------------------------------------------------------------------
// Includes
//-----------------------------------------------------------------------------
#include "KT_WirelessMicTxdrv.h"
#include <math.h>
//-----------------------------------------------------------------------------
//函 数 名:KT_Bus_Write
//功能描述:总线写程序
//函数说明:
//全局变量:无
//输 入:UINT8 Register_Address, UINT16 Word_Data
//返 回:无
//设 计 者:Kang Hekai 时间:2014-02-13
//修 改 者: 时间:
//版 本:V1.0
//-----------------------------------------------------------------------------
void KT_Bus_Write(UINT8 Register_Address, UINT16 Word_Data)
{
I2C_Word_Write(KTWirelessMicTxw_address,Register_Address,Word_Data);
}
//-----------------------------------------------------------------------------
//函 数 名:KT_Bus_Read
//功能描述:总线读程序
//函数说明:
//全局变量:无
//输 入:UINT8 Register_Address
//返 回:I2C_Word_Read(KTWirelessMicTxr_address, Register_Address)
//设 计 者:Kang Hekai 时间:2014-02-13
//修 改 者: 时间:
//版 本:V1.0
//-----------------------------------------------------------------------------
UINT16 KT_Bus_Read(UINT8 Register_Address)
{
return( I2C_Word_Read(KTWirelessMicTxr_address, Register_Address) );
}
//-----------------------------------------------------------------------------
//函 数 名:KT_WirelessMicTx_PreInit
//功能描述:芯片工作始化程序
//函数说明:判断是否芯片是否正常上电,I2C总线是否读写正常
//全局变量:INIT_FAIL_TH
//输 入:无
//返 回:正确:1 错误:0
//设 计 者:Kang Hekai 时间:2014-02-13
//修 改 者: 时间:
//版 本:V1.0
//-----------------------------------------------------------------------------
BOOL KT_WirelessMicTx_PreInit(void)
{
UINT16 regx;
UINT8 i;
for (i = 0; i < INIT_FAIL_TH; i++)
{
regx = KT_Bus_Read(0x01); //Read Manufactory ID
Delay_ms(10);
if (regx == 0x4B54)
return(1);
}
return(0);
}
//-----------------------------------------------------------------------------
//函 数 名:KT_WirelessMicTx_Init
//功能描述:芯片初始化程序
//函数说明:
//全局变量:无
//输 入:无
//返 回:正确:1 错误:0
//设 计 者:Zhou Dongfeng 时间:2016-04-26
//修 改 者:Zhou Dongfeng 时间:2016-08-26
//版 本:V0.4
//版 本:V1.2 HARD_LIMIT从14改成了15,COMPANDOR_TC改成了3,即48ms
//-----------------------------------------------------------------------------
BOOL KT_WirelessMicTx_Init(void)
{
UINT16 regx;
Delay_ms(50);
regx = KT_Bus_Read(0x03);
KT_Bus_Write(0x03, (regx & 0xfffe) | PA_SEL);
regx = KT_Bus_Read(0x24);
KT_Bus_Write(0x24, (regx & 0xEFFF) | (BATTERY_METER_ENABLE << 12));
//ref_vtr_vth_sel = 1
regx=KT_Bus_Read(0x47);
KT_Bus_Write(0x47,(regx | 0x0200));
//vref_mon_en=1
regx = KT_Bus_Read(0x0a);
KT_Bus_Write(0x0a, regx | 0x0200);
regx = KT_Bus_Read(0x1C);
KT_Bus_Write(0x1C, (regx & 0xF1E1) | ( FDEV_MONITOR_TC_250ms << 10 ) | (COMPANDOR_ENABLE<<4) |
( PRE_EMPHASIS_ENABLE << 9 ) | ( COMPANDOR_TC_12ms << 1 ));
KT_WirelessMicTx_Mic_Sens(MIC_SENS_GAIN_5);
//cic overflow detect enable
regx = KT_Bus_Read(0x1e);
KT_Bus_Write(0x1e, (regx & 0xffdf)|(1<<5));
regx=KT_Bus_Read(0x30);
KT_Bus_Write(0x30, ( regx & 0x8000 ) | (AGC_VHIGH << 11) | (AGC_VLOW << 7) | (AGC_ATTACK << 4) |
(AGC_RELEASE << 1) | AGC_DIS );
regx=KT_Bus_Read(0x31);
KT_Bus_Write( 0x31, ( regx & 0xff00 ) | (GAIN_SEL << 6) | (COMPEN_GAIN << 4) |
(BLANK_EN << 3) | BLANK_TIME );
regx=KT_Bus_Read(0x39);
KT_Bus_Write(0x39,(regx & 0xFC00) | (HARD_LIMIT << 6) | (CPRS_1XLPF_BP << 5) |
(CPRS_KNEE_DIS << 4) | CPRS_THRSH);
KT_Bus_Write( 0x3a,(ALC_DIS << 15) | (ALC_SOFTKNEE << 14) | (ALC_VMAX << 7)
基于昆腾微KT0646无线麦克风发射资料 包括demo软件代码+硬件原理图+PCB+技术手册
需积分: 50 9 浏览量
2021-08-28
16:56:30
上传
评论 5
收藏 4.32MB RAR 举报
木头1233
- 粉丝: 273
- 资源: 632
最新资源
- 信呼OA系统2.1.7版源码
- 3122080306 邹子轩 实验报告二.docx
- 基于STM32 NUCLEO板设计彩色LED照明灯(纯cubeMX开发)(大赛作品,文档完整,可直接运行)
- 发那科工业机器人保养大全
- Sphere.h
- REMD固有时间尺度分解信号分量可视化(Matlab完整源码和数据)
- 嵌入式系统双单片机STC89C52+STC15W104多功能学习板电路图可扩展 适用于单片机初学者和教学
- 基于STM32蓝牙控制小车系统设计(硬件+源代码+论文)大赛作品
- XILINXFPGA源码基于Spartan3火龙刀系列FPGA开发板VGA测试例程
- Java聊天室的设计与实现【尚学堂·百战程序员】
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
评论0