?? tlg1100mfg.c
字號:
/*****************************************************************************
* FILENAME
* tlg1100Mfg.c
*
*
* ABSTRACT
* This file contains Application Programmer's Interface library support for
* manufacturing floor tests of the TLG1100 Ultra Low Power NTSC/PAL
* Tuner/Decoder Front End.
*
* $Revision: 1.2 $
*
* (c) 2006 Telegent Systems
*****************************************************************************/
#include "tlgConfig.h"
#if TLG_CHIP_TYPE == TLG_CHIP_TYPE_TLG1100_1
#include "tlg1100Api.h"
#include "tlg1100Hal.h"
#include "tlgi2c.h"
/*****************************************************************************
* TLG_FreezeAgcLoops
*
*
*
*
*****************************************************************************/
TLGDLL_API int TLG_FreezeAgcLoops(uint32 base_addr, int minmax, tlg_statep state)
{
uint16 lna2_gain, bb1_gain, bb2_gain;
if (minmax == TLG_FREEZE_MAX)
{
lna2_gain = 0x1200;
bb1_gain = 0xf800;
bb2_gain = 0xd400;
} else {
lna2_gain = 0x0000;
bb1_gain = 0x0000;
bb2_gain = 0x0000;
}
TLG_ReadReg(base_addr, REG_0030, &state[1]);
TLG_WriteReg(base_addr,REG_002F, lna2_gain);
TLG_WriteReg(base_addr,REG_0030, 0xc000);
TLG_ReadReg(base_addr, REG_001B, &state[2]);
TLG_WriteReg(base_addr,REG_001D, bb1_gain);
TLG_WriteReg(base_addr,REG_001C, bb2_gain);
TLG_WriteReg(base_addr,REG_001B, 0x0003);
state[0] = TLG_STATE1;
return(TLG_ERR_SUCCESS);
}
/*****************************************************************************
* TLG_RestoreAgcLoops
*
*
*
*
*****************************************************************************/
TLGDLL_API int TLG_RestoreAgcLoops(uint32 base_addr, tlg_statep state)
{
if (state[0] != TLG_STATE1)
return (TLG_ERR_PARAM);
TLG_WriteReg(base_addr, REG_0030, state[1]);
TLG_WriteReg(base_addr, REG_001B, state[2]);
return(TLG_ERR_SUCCESS);
}
/*****************************************************************************
* TLG_EnterAdcMode
*
*
*
*
*****************************************************************************/
TLGDLL_API int TLG_EnterAdcMode(uint32 base_addr, tlg_statep state)
{
uint16 reg;
#ifdef TLG_SUPPORT_RUNTIME_CHECK
{uint32 version; TLG_GetChipVersion(base_addr, &version);}
#endif /* TLG_SUPPORT_RUNTIME_CHECK */
TLG_CHIP_VERS_1_2_BEGIN
#if defined(TLG_CMP_CHIP_1_3) || defined(TLG_CMP_CHIP_2)
TLG_ReadReg(base_addr, REG_0000, &state[1]);
reg = state[1];
TLGHAL_CLEAR(reg, REG_0000_BIT1_MASK);
TLG_WriteReg(base_addr, REG_0000, reg);
#endif /* TLG_CMP_CHIP_1_2 */
TLG_CHIP_VERS_1_1_ELSE
#ifdef TLG_CMP_CHIP_1_1
TLG_ReadReg(base_addr, REG_0000, &state[1]);
reg = state[1];
TLGHAL_SET(reg, TLG_ON, REG_0000_BIT1_SHIFT, REG_0000_BIT1_MASK);
TLG_WriteReg(base_addr, REG_0000, reg);
#endif /* TLG_CMP_CHIP_1_1 */
TLG_CHIP_VERS_END
TLG_ReadReg(base_addr, REG_0098, &state[2]);
reg = state[2];
TLGHAL_SET(reg, REG_0098_BIT3_0_ADC, REG_0098_BIT3_0_SHIFT,
REG_0098_BIT3_0_MASK);
TLG_WriteReg(base_addr, REG_0098, reg);
state[0] = TLG_STATE1;
return(TLG_ERR_SUCCESS);
}
/*****************************************************************************
* TLG_ExitAdcMode
*
*
*
*
*****************************************************************************/
TLGDLL_API int TLG_ExitAdcMode(uint32 base_addr, tlg_statep state)
{
if (state[0] != TLG_STATE1)
return(TLG_ERR_PARAM);
TLG_WriteReg(base_addr, REG_0000, state[1]);
TLG_WriteReg(base_addr, REG_0098, state[2]);
return(TLG_ERR_SUCCESS);
}
/*****************************************************************************
* TLG_GetTFCalCode
*
*
*
*
*****************************************************************************/
TLGDLL_API int TLG_GetTFCalCode(uint32 base_addr, uint16 *tfCalCode)
{
TLG_NULLPTR_CHECK(tfCalCode);
/* Tracking Filter cal code */
TLG_ReadRegNS(base_addr, REG_011C, tfCalCode);
return TLG_ERR_SUCCESS;
}
/*****************************************************************************
* TLG_GetPeakAgcGain
*
*
*
*
*****************************************************************************/
TLGDLL_API int TLG_GetPeakAgcGain(uint32 base_addr, uint16 *peakAgcGain)
{
TLG_NULLPTR_CHECK(peakAgcGain);
TLG_ReadRegNS(base_addr, REG_0123, peakAgcGain);
return TLG_ERR_SUCCESS;
}
/*****************************************************************************
* TLG_GetTotalGain
*
*
*
*
*****************************************************************************/
TLGDLL_API int TLG_GetTotalGain(uint32 base_addr, uint16 *ttlGain)
{
uint16 bb1, bb2, lna1, lna2, lna_mode, m6db;
int res = TLG_ERR_SUCCESS;
int lna_gain, bb_gain, fix;
TLG_NULLPTR_CHECK(ttlGain);
/* Calculate the total gain */
TLG_ReadRegNS(base_addr, REG_010E, &bb1);
TLG_ReadRegNS(base_addr, REG_010D, &bb2);
TLGHAL_GET(bb1, bb1, REG_010E_BIT15_11_SHIFT,
REG_010E_BIT15_11_MASK);
TLGHAL_GET(bb2, bb2, REG_010D_BIT15_10_SHIFT,
REG_010D_BIT15_10_MASK);
#ifdef TLG_SUPPORT_RUNTIME_CHECK
{uint32 version; TLG_GetChipVersion(base_addr, &version);}
#endif /* TLG_SUPPORT_RUNTIME_CHECK */
TLG_CHIP_VERS_1_2_BEGIN
#if defined(TLG_CMP_CHIP_1_3) || defined(TLG_CMP_CHIP_1_2)
TLG_ReadRegNS(base_addr, REG_0139, &lna1);
TLGHAL_GET(lna1, lna1, REG_0139_BIT10_9_SHIFT,
REG_0139_BIT10_9_MASK);
#endif /* TLG_CMP_CHIP_1_2 */
TLG_CHIP_VERS_1_1_ELSE
#ifdef TLG_CMP_CHIP_1_1
TLG_ReadRegNS(base_addr, REG_0113, &lna1);
TLGHAL_GET(lna1, lna1, REG_0113_BIT1_0_SHIFT,
REG_0113_BIT1_0_MASK);
#endif /* TLG_CMP_CHIP_1_1 */
TLG_CHIP_VERS_END
TLG_ReadRegNS(base_addr, REG_0114, &lna2);
TLGHAL_GET(lna2, lna2, REG_0114_BIT12_9_SHIFT,
REG_0114_BIT12_9_MASK);
TLG_ReadReg(base_addr, REG_0180, &lna_mode);
TLGHAL_GET(lna_mode, lna_mode, REG_0180_BIT15_13_SHIFT,
REG_0180_BIT15_13_MASK);
TLG_ReadReg(base_addr, REG_0193, &m6db);
TLGHAL_GET(m6db, m6db, REG_0193_BIT15_SHIFT,
REG_0193_BIT15_MASK);
lna_gain = -20*min(2,(3-lna1)) + -2*max(0, 9-lna2);
bb_gain = (bb1 + bb2)/2;
switch (lna_mode)
{
case TLG_LNA_UHF : fix = 11; break;
case TLG_LNA_VHF2: fix = 12; break;
case TLG_LNA_VHF1: fix = 13; break;
default: res = TLG_ERR_FAIL; break;
}
if (res == TLG_ERR_SUCCESS)
{
fix += (m6db) ? 5 : 11;
*ttlGain = lna_gain + bb_gain + fix + 21;
}
return(res);
}
#endif /*TLG_CHIP_TYPE */
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -