⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tidtv_msp34x0g.c

📁 ti的数字电视芯片 tvp9000的源码
💻 C
📖 第 1 页 / 共 3 页
字号:
 /*******************************************************************************
*	@ModuleName  ::	TiDTV_MSP34x0G.c
*	
*	@Copyright	 ::	Copyright 2005- Texas Instruments, Inc.
*	
*	@Description ::	Software driver for MSP34x0G Multistandard Sound Processor
*	
*	@History     ::
*---------------------------------------
*	08-16-2005	W.Shi	Created
*******************************************************************************/

#include   <stdio.h>
#include	"ucos_ii.h"

#include	"TvpDefs.h"
#include	"TvpError.h"

#include	"TiDTV_DataType.h"
#include	"TiDTV_SysCtrl.h"

#include	"TvpI2c.h"
#include    "TVP9K_I2C_Def.h"
#include 	"TiDTV_SysCtrl.h"
#include 	"TiDTV_UserApi.h"
#include    "TiDTV_MSP34x0.h"

//---------------------------------------------------------------------
#define msp3410_ID                  0x80
#define	msp3410_I2C_CHANNEL			TVP_I2C_0

AUDIO_CHANNEL_  StoredAudioData;
UCHAR UserPrefmNicamEnable;

static  WORD Cfg_VolumeTable[101] = {
	0x0000,	   /*  0   */   //mute
	0x5200,    /*  1   */   //-19 dB
	0x5500,    /*  2   */
	0x5600,    /*  3   */
	0x5700,    /*  4   */
	0x5740,    /*  5   */ //------->1
	0x5770,    /*  5     1 */  
	0x5810,    /*  6   */
	0x5840,    /*  7   */
	0x5850,//0x5400,    /*  8   */
	0x5860,//0x5800,    /*  9   */
	0x5870,//0x6000,    /*  10  *///------->20
	0x5900,//0x6440,    /*  11  */
	0x5970,//0x6500,    /*  12  */
	0x6030,//0x6540,    /*  13  */
	0x6100,//0x6600,    /*  14  */
	0x6140,//0x6640,    /*  15  */
	0x6200,//0x6700,    /*  16  */
	0x6240,//0x6700,    /*  17  */
	0x6300,//0x6740,    /*  18  */
	0x6340,//0x6800,    /*  19  */
	0x6400,//0x6840,    /*  20  */
	0x6500,//0x6900,    /*  21  */
	0x6600,//0x6940,    /*  22  */
	0x6700,//0x6940,    /*  23  */
	0x6800,//0x6a00,    /*  24  */
	0x6840,//0x6a40,  
	0x6900,//0x6a40,    /*  25  */
	0x6940,//0x6b00, 
	0x6a00,//0x6b00,    /*  26 */
	0x6a40,//0x6b40, 
	0x6b40,    /*  27 */
	0x6b00,//0x6c00,    /*  28  */
	0x6b40,//0x6c00,    /*  29  */
	0x6c00,//x6c40, 
	0x6c40,    /*  30  */
	0x6d00,
	0x6d00,    /*  31  */
	0x6d40,
	0x6d40,    /*  32  */
	0x6e00,
	0x6e00,    /*  33 */
	0x6e40,    /*  34  */
	0x6e40,
	0x6f00,   /*  35 */
	0x6f00,    /*  36  */
	0x6f40,
	0x6f40,    /*  37  */
	0x7000,
	0x7000,    /*  38  */ //--------------
	0x7040,    /*  39  */
	0x7040,    /*  40  */
	0x7100,    /*  41  */
	0x7100,    /*  42  */
	0x7140,    /*  43  */
	0x7140,    /*  44  */
	0x7200,    /*  45  */
	0x7200,    /*  46  */
	0x7240,    /*  47  */
	0x7240,    /*  48  */
	0x7300,    /*  49  */   //0 dB
	0x7300,    /*  50  */   //0 dB
	0x7340,    /*  51  */
	0x7340,    /*  52  */
	0x7400,    /*  53  */
	0x7400,    /*  54  */
	0x7440,    /*  55  50 :2/3 */
	0x7440,    /*  56   50 :2/3 */
	0x7500,    /*  57  */
	0x7500,    /*  58  */
	0x7540,    /*  59  */
	0x7540,    /*  60  */
	0x7600,    /*  61  */
	0x7600,    /*  62  */
	0x7640,    /*  63  */
	0x7640,    /*  64  */
	0x7700,    /*  65 */
	0x7700,    /*  66  */
	0x7740,    /*  67  */
	0x7740,    /*  68  */
	0x7800,    /*  69  */
	0x7800,    /*  70  */
	0x7840,    /*  71  */
	0x7840,    /*  72  */
	0x7900,    /*  73 */
	0x7900,    /*  74  */
	0x7940,    /*  75  *///------>64
	0x7940,    /*  76  */
	0x7a00,    /*  77  */
	0x7a00,    /*  78  */
	0x7a40,    /*  79  */
	0x7a40,    /*  80  */
	0x7b00,    /*  81  */
	0x7b00,    /*  82  */
	0x7b40,    /*  83  */
	0x7b40,    /*  84  */
	0x7c00,    /*  85  */
	0x7c00,    /*  86  */
	0x7c40,    /*  87  */
	0x7c40,    /*  88  */
	0x7d00,    /*  89  */
	//0x7d00,    /*  90  */
	//0x7d40,    /*  91 */
	//0x7d40,    /*  92  */
	//0x7e00,    /*  93  */
	//0x7e00,    /*  94  */
	//0x7e40,    /*  95  */
	//0x7e40,    /*  96  */
	//0x7f00,     /*  97  */   //+12 dB
	//0x7f00,     /*  98 */   //+12 dB
	//0x7f00      /*  99  */   //+12 dB
};

static  WORD Cfg_BassTrebleTable[25] = {
0xa000,	  /*  0   */   //-12 dB
0xa800,	  /*  1   */
0xb000,	  /*  2   */
0xb800,	  /*  3   */
0xc000,	  /*  4   */
0xc800,	  /*  5   */
0xd000,	  /*  6   */
0xd800,	  /*  7   */
0xe000,	  /*  8   */
0xe800,	  /*  9   */
0xf000,	  /*  10  */
0xf800,	  /*  11  */   //-1 dB
0x0000,	  /*  12  */   //0 dB
0x0800,	  /*  13  */   //+1 dB
0x1000,	  /*  14  */
0x1800,	  /*  15  */
0x2000,	  /*  16  */
0x2800,	  /*  17  */
0x3000,	  /*  18  */
0x3800,	  /*  19  */
0x4000,	  /*  20  */   //+8 dB
0x4800,    /*   21  */
0x5000,    /*   22  */
0x5800,    /*   23  */
0x6000,    /*   24  */   //+12dB
};

static  WORD Cfg_BalanceTable[25] =
{
0x8100,    /*  0   */   //Left = 100% and right = muted
//0x8800,    /*  1   */
//0x9000,    /*  2   */
//0x9800,    /*  3   */
//0xa000,    /*  4   */
0xa800,    /*  5   */
0xb000,    /*  6   */
0xb800,    /*  7   */
0xc000,    /*  8   */
0xc800,    /*  9   */
0xd000,    /*  10  */
0xd800,    /*  11  */
0xe000,    /*  12  */
0xe800,    /*  13  */
0xf000,    /*  14  */
0xf800,    /*  15  */
0x0000,	   /*  16  */   //Left = 100% and right = 100%
0x0800,    /*  17  */
0x1000,    /*  18  */
0x1800,    /*  19  */
0x2000,    /*  20  */
0x2800,    /*  21  */
0x3000,    /*  22  */
0x3800,    /*  23  */
0x4000,    /*  24  */
0x4800,    /*  25  */
0x5000,    /*  26  */
0x5800,    /*  27  */
//0x6000,    /*  28  */
//0x6800,    /*  29  */
//0x7000,    /*  30  */
//0x7f00,    /*  31  */
0x7f00     /*  32  */   //Left = muted and right = 100%
};



//***************************************************************************8
void  gm_WriteI2C(BYTE B_DevAddress, UCHAR *Bp_Buffer,
                          BYTE B_Length, BYTE B_Stop );
                          
void  gm_ReadI2C(UCHAR B_DevAddress, UCHAR *Bp_Buffer, 
                          BYTE B_Length, BYTE B_Stop );

void  Msp3410ReadSubI2C( int TxDataSize, UCHAR *pTxDataBuf,
                           int B_Length, UCHAR *Bp_Buffer);

//******************************************************************************
// FUNCTION     :   void dev_msp3410ControlWrite(WORD wrdata)
// USAGE        :   this fucntion does a write to the msp
// INPUT        :	addr,data
// OUTPUT       :   None
// GLOBALS      :   None
// USED_REGS    :   None
//******************************************************************************

void dev_msp3420ControlWrite(WORD wrdata)
{
    UCHAR temparray[3];
    
    temparray[0] = 0x00;	
    temparray[1] = wrdata >> 8;	
    temparray[2] = (BYTE)wrdata & 0xff;			
    gm_WriteI2C(msp3410_ID,&temparray[0], 3, 1);
}

//******************************************************************************
// FUNCTION     :   WORD dev_msp3410ControlRead()
// USAGE        :   this fucntion does a read from the msp
// INPUT        :	addr
// OUTPUT       :   data
// GLOBALS      :   None
// USED_REGS    :   None
//******************************************************************************

WORD dev_msp3420ControlRead()
{
    UCHAR sub_addr[2];
    WORD rdata;
    WORD temp;
    sub_addr[0] = msp3410_ID;
    sub_addr[1]=0x00;
    //gm_WriteI2C(msp3410_ID,&sub_addr, 1, 0);
    //gm_ReadI2C(msp3410_ID, (BYTE *)&temp, 2, 1);
    Msp3410ReadSubI2C(2, &sub_addr[0], 2, (UCHAR *)&temp);
    
    rdata = (temp << 8) & 0xff00;
    rdata = rdata | ((temp >>8) & 0x00ff);
    return rdata;
}


//******************************************************************************
// FUNCTION     :   void dev_msp3410DspWrite(WORD wraddr,WORD wrdata)
// USAGE        :   this fucntion does a write to the dsp block of the msp
// INPUT        :	addr,data
// OUTPUT       :   None
// GLOBALS      :   None
// USED_REGS    :   None
//******************************************************************************

void dev_msp3420DspWrite(WORD wraddr,WORD wrdata)
{
    UCHAR temparray[5];

    temparray[0] = 0x12;	
    temparray[1] = wraddr >> 8;	
    temparray[2] = (UCHAR)wraddr & 0xff;			
    temparray[3] = wrdata >> 8;	
    temparray[4] = (UCHAR)wrdata & 0xff;			
    gm_WriteI2C(msp3410_ID,&temparray[0], 5, 1);
}

//******************************************************************************
// FUNCTION     :   WORD dev_msp3410DspRead(WORD raddr)
// USAGE        :   this fucntion does a read to the dsp block of the msp
// INPUT        :	addr
// OUTPUT       :   data
// GLOBALS      :   None
// USED_REGS    :   None
//******************************************************************************

WORD dev_msp3420DspRead(WORD raddr)
{    
    WORD rdata;
    UCHAR temp[2];
    UCHAR temparray[5];
    rdata=0;
    temparray[0] = msp3410_ID;
    temparray[1] = 0x13;	//I2C Bus sub-addr.=>read address Dsp(see msp3450 datasheet page 17)
    temparray[2] = raddr >> 8;	
    temparray[3] = (UCHAR)raddr & 0xff;
    temparray[4] = msp3410_ID |0x01;
    //gm_WriteI2C(msp3410_ID,&temparray[0], 3, 0);
    //gm_ReadI2C(msp3410_ID, (BYTE*)&temp, 2, 1);
    TiDTV_I2cReadAfterWrite(msp3410_I2C_CHANNEL, 1, 5, temparray,
        2, temp, OS_TICKS_PER_SEC / 2);
    
    rdata = temp[0];
    rdata &= 0x00ff;
    rdata <<= 8;
    rdata &= 0xff00;
    rdata = rdata | temp[1];
    return rdata;
}

//******************************************************************************
// FUNCTION     :   void dev_msp3410DemodWrite(WORD wraddr,WORD wrdata)
// USAGE        :   this fucntion does a write to the demodulator block of the msp
// INPUT        :	addr,data
// OUTPUT       :   None
// GLOBALS      :   None
// USED_REGS    :   None

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -