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

📄 mt2063.c

📁 microtune 公司 硅高频头 源码
💻 C
📖 第 1 页 / 共 5 页
字号:
****                                    Binary**                  Value Returned    Value    Approx Temp**                  ---------------------------------------------**                  MT2063_T_0C       0000         0C**                  MT2063_T_10C      0001        10C**                  MT2063_T_20C      0010        20C**                  MT2063_T_30C      0011        30C**                  MT2063_T_40C      0100        40C**                  MT2063_T_50C      0101        50C**                  MT2063_T_60C      0110        60C**                  MT2063_T_70C      0111        70C**                  MT2063_T_80C      1000        80C**                  MT2063_T_90C      1001        90C**                  MT2063_T_100C     1010       100C**                  MT2063_T_110C     1011       110C**                  MT2063_T_120C     1100       120C**                  MT2063_T_130C     1101       130C**                  MT2063_T_140C     1110       140C**                  MT2063_T_150C     1111       150C****  Returns:        status:**                      MT_OK            - No errors**                      MT_COMM_ERR      - Serial bus communications error**                      MT_INV_HANDLE    - Invalid tuner handle**                      MT_ARG_NULL      - Null pointer argument passed**                      MT_ARG_RANGE     - Argument out of range****  Dependencies:   MT_ReadSub  - Read byte(s) of data from the two-wire bus**                  MT_WriteSub - Write byte(s) of data to the two-wire bus****  Revision History:****   SCR      Date      Author  Description**  -------------------------------------------------------------------------**   138   06-19-2007    DAD    Ver 1.00: Initial, derived from mt2067_b.********************************************************************************/UData_t MT2063_GetTemp(Handle_t h, MT2063_Temperature* value){    UData_t status = MT_OK;                  /* Status to be returned        */    MT2063_Info_t* pInfo = (MT2063_Info_t*) h;    if (IsValidHandle(pInfo) == 0)        return MT_INV_HANDLE;    if (value == NULL)        return MT_ARG_NULL;    if ((MT_NO_ERROR(status)) && ((pInfo->reg[TEMP_SEL] & 0xE0) != 0x00))    {        pInfo->reg[TEMP_SEL] &= (0x1F);        status |= MT_WriteSub(pInfo->hUserData,                              pInfo->address,                              TEMP_SEL,                              &pInfo->reg[TEMP_SEL],                              1);    }    if (MT_NO_ERROR(status))        status |= MT_ReadSub(pInfo->hUserData,                             pInfo->address,                             TEMP_STATUS,                             &pInfo->reg[TEMP_STATUS],                             1);    if (MT_NO_ERROR(status))        *value = (MT2063_Temperature) (pInfo->reg[TEMP_STATUS] >> 4);    return (status);}/********************************************************************************  Name: MT2063_GetUserData****  Description:    Gets the user-defined data item.****  Parameters:     h           - Tuner handle (returned by MT2063_Open)****  Returns:        status:**                      MT_OK            - No errors**                      MT_INV_HANDLE    - Invalid tuner handle**                      MT_ARG_NULL      - Null pointer argument passed****  Dependencies:   USERS MUST CALL MT2063_Open() FIRST!****                  The hUserData parameter is a user-specific argument**                  that is stored internally with the other tuner-**                  specific information.****                  For example, if additional arguments are needed**                  for the user to identify the device communicating**                  with the tuner, this argument can be used to supply**                  the necessary information.****                  The hUserData parameter is initialized in the tuner's**                  Open function to NULL.****  See Also:       MT2063_Open****  Revision History:****   SCR      Date      Author  Description**  -------------------------------------------------------------------------**   138   06-19-2007    DAD    Ver 1.00: Initial, derived from mt2067_b.******************************************************************************/UData_t MT2063_GetUserData(Handle_t h,                           Handle_t* hUserData){    UData_t status = MT_OK;                  /* Status to be returned        */    MT2063_Info_t* pInfo = (MT2063_Info_t*) h;    /*  Verify that the handle passed points to a valid tuner         */    if (IsValidHandle(pInfo) == 0)        status = MT_INV_HANDLE;    if (hUserData == NULL)        status |= MT_ARG_NULL;    if (MT_NO_ERROR(status))        *hUserData = pInfo->hUserData;    return (status);}/**********************************************************************************  Name: MT2063_SetReceiverMode****  Description:    Set the MT2063 receiver mode****   --------------+----------------------------------------------**    Mode 0 :     | MT2063_CABLE_QAM**    Mode 1 :     | MT2063_CABLE_ANALOG**    Mode 2 :     | MT2063_OFFAIR_COFDM**    Mode 3 :     | MT2063_OFFAIR_COFDM_SAWLESS**    Mode 4 :     | MT2063_OFFAIR_ANALOG**    Mode 5 :     | MT2063_OFFAIR_8VSB**   --------------+----+----+----+----+-----+--------------------**  (DNC1GC & DNC2GC are the values, which are used, when the specific **   DNC Output is selected, the other is always off) ****                |<----------   Mode  -------------->|**    Reg Field   |  0  |  1  |  2  |  3  |  4  |  5  |**    ------------+-----+-----+-----+-----+-----+-----+**    RFAGCen     | OFF | OFF | OFF | OFF | OFF | OFF **    LNARin      |   0 |   0 |   3 |   3 |  3  |  3**    FIFFQen     |   1 |   1 |   1 |   1 |  1  |  1**    FIFFq       |   0 |   0 |   0 |   0 |  0  |  0 **    DNC1gc      |   0 |   0 |   0 |   0 |  0  |  0**    DNC2gc      |   0 |   0 |   0 |   0 |  0  |  0**    GCU Auto    |   1 |   1 |   1 |   1 |  1  |  1**    LNA max Atn |  31 |  31 |  31 |  31 | 31  | 31**    LNA Target  |  44 |  43 |  43 |  43 | 43  | 43**    ign  RF Ovl |   0 |   0 |   0 |   0 |  0  |  0**    RF  max Atn |  31 |  31 |  31 |  31 | 31  | 31**    PD1 Target  |  36 |  36 |  38 |  38 | 36  | 38**    ign FIF Ovl |   0 |   0 |   0 |   0 |  0  |  0**    FIF max Atn |   5 |   5 |   5 |   5 |  5  |  5**    PD2 Target  |  40 |  33 |  42 |  42 | 33  | 42******  Parameters:     pInfo       - ptr to MT2063_Info_t structure**                  Mode        - desired reciever mode****  Usage:          status = MT2063_SetReceiverMode(hMT2063, Mode);****  Returns:        status:**                      MT_OK             - No errors**                      MT_COMM_ERR       - Serial bus communications error****  Dependencies:   MT2063_SetReg - Write a byte of data to a HW register.**                  Assumes that the tuner cache is valid.****  Revision History:****   SCR      Date      Author  Description**  -------------------------------------------------------------------------**   138   06-19-2007    DAD    Ver 1.00: Initial, derived from mt2067_b.**   N/A   01-10-2007    PINZ   Added additional GCU Settings, FIFF Calib will be triggered**   155   10-01-2007    DAD    Ver 1.06: Add receiver mode for SECAM positive**                                        modulation**                                        (MT2063_ANALOG_TV_POS_NO_RFAGC_MODE)**   N/A   10-22-2007    PINZ   Ver 1.07: Changed some Registers at init to have **                                        the same settings as with MT Launcher **   N/A   10-30-2007    PINZ             Add SetParam VGAGC & VGAOI**                                        Add SetParam DNC_OUTPUT_ENABLE**                                        Removed VGAGC from receiver mode, **                                        default now 1 **   N/A   10-31-2007    PINZ   Ver 1.08: Add SetParam TAGC, removed from rcvr-mode**                                        Add SetParam AMPGC, removed from rcvr-mode**                                        Corrected names of GCU values**                                        reorganized receiver modes, removed, **                                        (MT2063_ANALOG_TV_POS_NO_RFAGC_MODE)**                                        Actualized Receiver-Mode values**   N/A   11-12-2007    PINZ   Ver 1.09: Actualized Receiver-Mode values**   N/A   11-27-2007    PINZ             Improved buffered writing**         01-03-2008    PINZ   Ver 1.10: Added a trigger of BYPATNUP for **                                        correct wakeup of the LNA after shutdown**                                        Set AFCsd = 1 as default**                                        Changed CAP1sel default**         01-14-2008    PINZ   Ver 1.11: Updated gain settings********************************************************************************/static UData_t MT2063_SetReceiverMode(MT2063_Info_t* pInfo, MT2063_RCVR_MODES Mode){    UData_t status = MT_OK;                  /* Status to be returned        */    U8Data  val;    UData_t longval;    if (Mode >= MT2063_NUM_RCVR_MODES)        status = MT_ARG_RANGE;    /* RFAGCen */    if (MT_NO_ERROR(status))    {        val = (pInfo->reg[PD1_TGT] & (U8Data)~0x40) | (RFAGCEN[Mode] ? 0x40 : 0x00);        if( pInfo->reg[PD1_TGT] != val )        {            status |= MT2063_SetReg(pInfo, PD1_TGT, val);        }    }    /* LNARin */    if (MT_NO_ERROR(status))    {        val = ( pInfo->reg[CTRL_2C] & (U8Data)~0x03) | LNARIN[Mode];        if( pInfo->reg[CTRL_2C] != val )        {            status |= MT2063_SetReg(pInfo, CTRL_2C, val);        }    }    /* FIFFQEN and FIFFQ */    if (MT_NO_ERROR(status))    {        val = (pInfo->reg[FIFF_CTRL2] & (U8Data)~0xF0) | (FIFFQEN[Mode] << 7) | (FIFFQ[Mode] << 4);        if( pInfo->reg[FIFF_CTRL2] != val )        {            status |= MT2063_SetReg(pInfo, FIFF_CTRL2, val);            /* trigger FIFF calibration, needed after changing FIFFQ */            val = (pInfo->reg[FIFF_CTRL] | (U8Data)0x01);            status |= MT2063_SetReg(pInfo, FIFF_CTRL, val);            val = (pInfo->reg[FIFF_CTRL] & (U8Data)~0x01);            status |= MT2063_SetReg(pInfo, FIFF_CTRL, val);        }    }    /* DNC1GC & DNC2GC */    status |= MT2063_GetParam(pInfo, MT2063_DNC_OUTPUT_ENABLE, &longval);        status |= MT2063_SetParam(pInfo, MT2063_DNC_OUTPUT_ENABLE, longval);    /* GCUAUTO */    if (MT_NO_ERROR(status))    {        status |= MT2063_SetParam(pInfo, MT2063_GCU_AUTO, GCUAUTO[Mode]);    }    /* acLNAmax */    if (MT_NO_ERROR(status))    {        status |= MT2063_SetParam(pInfo, MT2063_ACLNA, ACLNAMAX[Mode]);    }    /* LNATGT */    if (MT_NO_ERROR(status))    {        val = ( pInfo->reg[LNA_TGT] & (U8Data)~0x3F) | LNATGT[Mode];        if( pInfo->reg[LNA_TGT] != val )        {            status |= MT2063_SetReg(pInfo, LNA_TGT, val);        }    }    /* ACRF */    if (MT_NO_ERROR(status))    {        status |= MT2063_SetParam(pInfo, MT2063_ACRF, ACRFMAX[Mode]);    }    /* PD1TGT */    if (MT_NO_ERROR(status))    {        val = ( pInfo->reg[PD1_TGT] & (U8Data)~0x3F) | PD1TGT[Mode];        if( pInfo->reg[PD1_TGT] != val )        {            status |= MT2063_SetReg(pInfo, PD1_TGT, val);        }    }    /* FIFATN */    if (MT_NO_ERROR(status))    {        status |= MT2063_SetParam(pInfo, MT2063_ACFIF, ACFIFMAX[Mode]);    }    /* PD2TGT */    if (MT_NO_ERROR(status))    {        val = ( pInfo->reg[PD2_TGT] & (U8Data)~0x3F) | PD2TGT[Mode];        if( pInfo->reg[PD2_TGT] != val )        {            status |= MT2063_SetReg(pInfo, PD2_TGT, val);        }    }    /* Ignore ATN Overload */    if (MT_NO_ERROR(status))    {        val = (pInfo->reg[LNA_TGT] & (U8Data)~0x80) | (RFOVDIS[Mode] ? 0x80 : 0x00);        if( pInfo->reg[LNA_TGT] != val )        {            status |= MT2063_SetReg(pInfo, LNA_TGT, val);        }    }    /* Ignore FIF Overload */    if (MT_NO_ERROR(status))    {        val = (pInfo->reg[PD1_TGT] & (U8Data)~0x80) | (FIFOVDIS[Mode] ? 0x80 : 0x00);        if( pInfo->reg[PD1_TGT] != val )        {            status |= MT2063_SetReg(pInfo, PD1_TGT, val);        }    }    if (MT_NO_ERROR(status))        pInfo->rcvr_mode = Mode;

⌨️ 快捷键说明

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