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

📄 tmbsltest.c

📁 Cu1216 解调器驱动
💻 C
字号:
// tmbslTest.c : Defines the entry point for the console application.
//

//-----------------------------------------------------------------------------
// Standard include files:
//-----------------------------------------------------------------------------
//

//-----------------------------------------------------------------------------
// Project include files:
//-----------------------------------------------------------------------------
//
#include "tmTypes.h"
#include "tmhalFEtypes.h"
#include "dvp.h"

#include "SystemFunc.h"
#include "tmbslTuner.h"
#include "tmbslTunerext.h"
#include "tmbslDemodCab.h"
#include "tmbsl10023.h"
#include "tmbsl10023local.h"

//-----------------------------------------------------------------------------
// Types and defines:
//-----------------------------------------------------------------------------
//
#define DISPLAY_ERR(x,y) if(TM_OK != x) { \
                            printf("\n%s returns %u\n", y, x); \
                            return -1;}

#define DEMOD_I2C_ADDRESSS   0x18
#define TUNER_I2C_ADDRESSS   0xC0

//-----------------------------------------------------------------------------
// Internal Prototypes:
//-----------------------------------------------------------------------------
//
int DisplayConsoleMenu();
int DisplayConsoleInfo();
int RunConsoleApp();

//-----------------------------------------------------------------------------
// Main function:
//-----------------------------------------------------------------------------
//
int TCLTunerTest(void)
{
    tmErrorCode_t eErrorCode;
    I2C_Conf_T sI2CConf;
    tmhalFEBslSystemFunc_t myDemodSystemFunc;
    tmhalFEBslSystemFunc_t myTunerSystemFunc;
    tmbslTuConfig_t myTunerFunc;
    tmbslTuParam_t MyTunerParam;
    tmbslDcParam_t MyDemodParam;
    tmhalFEManagerStatus_t eStatus;

    //---------
    // INIT COM
    //---------
    // open
    SY_OpenCom();
    
    // set the config - LPT1 at 100khz
    sI2CConf.iLptPort = 1;
    sI2CConf.iI2cSpeed = 100000;
    sI2CConf.bAutoInc = 1;
    sI2CConf.bDebugTrace = 0;
    SY_SetComConfig(sI2CConf);

    //---------
    // INIT BSL
    //---------
    // initialize system func for demod 
    myDemodSystemFunc.SY_GetTickTime    = SY_GetTickTime;
    myDemodSystemFunc.SY_GetTickPeriod  = SY_GetTickPeriod;
    myDemodSystemFunc.SY_GetCommErrors  = SY_GetComError; 
    myDemodSystemFunc.SY_Write          = SY_WriteDemod; 
    myDemodSystemFunc.SY_WriteBit       = SY_WriteBitDemod; 
    myDemodSystemFunc.SY_Read           = SY_ReadDemod;    
    
    // initialize system func for tuner 
    myTunerSystemFunc.SY_GetTickTime    = SY_GetTickTime; 
    myTunerSystemFunc.SY_GetTickPeriod  = SY_GetTickPeriod;
    myTunerSystemFunc.SY_GetCommErrors  = SY_GetComError; 
    myTunerSystemFunc.SY_Write          = SY_WriteTuner; 
    myTunerSystemFunc.SY_WriteBit       = SY_WriteBitTuner; 
    myTunerSystemFunc.SY_Read           = SY_ReadTuner;
    
    // initialize tuner address for the demod
    myTunerFunc.initFunc                = tmbslTunerInit; 
    myTunerFunc.deinitFunc              = tmbslTunerDeInit; 
    myTunerFunc.getSWVersionFunc        = tmbslTunerGetSWVersion; 
    myTunerFunc.setPowerStateFunc       = tmbslTunerSetPowerState; 
    myTunerFunc.getPowerStateFunc       = tmbslTunerGetPowerState; 
    myTunerFunc.setCfgFunc              = tmbslTunerSetConfig; 
    myTunerFunc.getCfgFunc              = tmbslTunerGetConfig; 
    myTunerFunc.writeFunc               = tmbslTunerWrite; 
    myTunerFunc.writeBitFunc            = tmbslTunerWriteBit; 
    myTunerFunc.readFunc                = tmbslTunerRead;
    myTunerFunc.setRfFunc               = tmbslTunerSetRf; 
    myTunerFunc.getRfFunc               = tmbslTunerGetRf;
    
    // initialize tuner unit 0
    MyTunerParam.uHwAddress     = TUNER_I2C_ADDRESSS; 
    MyTunerParam.systemFunc     = myTunerSystemFunc;
    eErrorCode = tmbslTunerInit ((tmUnitSelect_t)0, MyTunerParam);
    DISPLAY_ERR (eErrorCode, "tmbslTunerInit");

    // initialize demod unit 0
    MyDemodParam.uHwAddress     = DEMOD_I2C_ADDRESSS; 
    MyDemodParam.systemFunc     = myDemodSystemFunc;
    MyDemodParam.tunerFunc      = myTunerFunc;
    MyDemodParam.eTunerUnit     = (tmUnitSelect_t)0;
    eErrorCode = tmbsl10023Init ((tmUnitSelect_t)0, MyDemodParam);
    DISPLAY_ERR (eErrorCode, "tmbsl10023Init");

    // set the tuner and demod config for CU1216 board
    eErrorCode = tmbslTunerSetConfig ((tmUnitSelect_t)0, tmhalFEBoard, 0x57550000); 
    DISPLAY_ERR (eErrorCode, "tmbslTunerSetConfig");
    eErrorCode = tmbsl10023SetConfig((tmUnitSelect_t)0, tmhalFEBoard, 0x57550000);
    DISPLAY_ERR (eErrorCode, "tmbsl10023SetConfig");

    // Initialize TDA10023 registers
    eErrorCode = tmbsl10023SetConfig((tmUnitSelect_t)0, tmhalFEInit, 0);
    DISPLAY_ERR (eErrorCode, "tmbsl10023SetConfig(tmhalFEInit)");

    //------------------
    // PROGRAM FRONT-END
    //------------------
    eErrorCode = tmbsl10023SetRF ((tmUnitSelect_t)0, 330000000);
    DISPLAY_ERR (eErrorCode, "tmbsl10023SetRF");
    eErrorCode = tmbsl10023SetSR ((tmUnitSelect_t)0, 6872000); 
    DISPLAY_ERR (eErrorCode, "tmbsl10023SetSR");
    eErrorCode = tmbsl10023SetSI ((tmUnitSelect_t)0, tmhalFESpectrumNormal); 
    DISPLAY_ERR (eErrorCode, "tmbsl10023SetSI");
    eErrorCode = tmbsl10023SetMod ((tmUnitSelect_t)0, tmhalFEModulationAuto); 
    DISPLAY_ERR (eErrorCode, "tmbsl10023SetMod");
    
    // perform algo
    do {
        eErrorCode = tmbsl10023Manager((tmUnitSelect_t)0, &eStatus);
        DISPLAY_ERR (eErrorCode, "tmbsl10023Manager");
    } while (tmhalFEManagerStatusNotCompleted == eStatus);

    //---------------
    // DISPLAY RESULT
    //---------------
    if (tmhalFEManagerStatusCarrierOk == eStatus)
        printf("\n\n Carrier detected...\n");
    else
        printf("\n\n No carrier detected !\n");

    //------------------------
    // DISPLAY MENU (OPTIONAL)
    //------------------------
//    RunConsoleApp();

    //------
    // CLOSE
    //------
    eErrorCode = tmbslTunerDeInit ((tmUnitSelect_t)0);
    DISPLAY_ERR (eErrorCode, "tmbslTunerDeInit");
    eErrorCode = tmbsl10023DeInit ((tmUnitSelect_t)0);
    DISPLAY_ERR (eErrorCode, "tmbsl10023DeInit");

    // close communication port
    SY_CloseCom();


    return 0;

}

int DisplayConsoleInfo()
{
            printf("\nSequence of operations:\n");
            printf("f -> Enter Frequency   (ex: 170000)\n");
            printf("s -> Enter Symbol rate (ex: 6875)\n");
            printf("e -> Execute manager while status is 'not completed'\n");
            printf("l -> Check Lock Status. The FEL bit should be '1'\n");
return 1;
}




 

⌨️ 快捷键说明

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