Пример #1
0
/**************************************************************************//**
* @brief Initializes the XCOMM board. The Rx and Tx path are disabled.
*
* @param pDefInit - pointer to initialization structure
*
* @return If success, return 0
*         if error, return -1
******************************************************************************/
int32_t XCOMM_Init(XCOMM_DefaultInit* pDefInit)
{
    /* Local variables */
    uint32_t enableCommMux;
    uint32_t ps7Interface = 0;

    /* Reset the XCOMM state variables */
    int32_t i = 0;
    int8_t* pData = (int8_t*)&XCOMM_State;
    for(i = 0; i < sizeof(XCOMM_State); i++)
    {
        pData[i] = 0;
    }

    /* Initialize the SPI communication */
    switch(pDefInit->carrierBoard)
    {
    	case XILINX_ZC702:
            ps7Interface = 1;
        case XILINX_KC705:
        case XILINX_VC707:
            enableCommMux = 1;
            break;
        case DIGILENT_ZED:
        	pDefInit->fmcPort = FMC_HPC;
        case XILINX_ML605:
        default:
            enableCommMux = 0;
            break;
    }

    XCOMM_boardFmcPort = enableCommMux ? FMC_HPC : pDefInit->fmcPort;
    if(SPI_Init(pDefInit->fmcPort, enableCommMux, ps7Interface) < 0)
    	return -1;

    /* Initialize the AD9548 */
    if(ad9548_setup() < 0)
        return -1;

	/* Initialize the AD9523 */
    if(ad9523_setup() < 0)
        return -1;

	/* Initialize the Rx ADF4351 */
    if(adf4351_setup(ADF4351_RX_CHANNEL) < 0)
        return -1;

	/* Initialize the Tx ADF4351 */
    if(adf4351_setup(ADF4351_TX_CHANNEL) < 0)
        return -1;

    /* Read the calibration data from the EEPROM */
    if(EEPROM_GetCalData((uint8_t*)XCOMM_calData, &XCOMM_calDataSize, XCOMM_boardFmcPort) < 0)
        return -1;
    
    return 0;
}
Пример #2
0
/**************************************************************************//**
* @brief Initializes the XCOMM board
*
* @param pDefInit - pointer to initialization structure
*
* @return If success, return 0
*         if error, return -1
******************************************************************************/
int32_t XCOMM_Init(XCOMM_DefaultInit* pDefInit)
{
    /* Local variables */
    uint32_t enableCommMux;

    /* Reset the XCOMM state variables */
    int32_t i = 0;
    int8_t* pData = (int8_t*)&XCOMM_State;
    for(i = 0; i < sizeof(XCOMM_State); i++)
    {
        pData[i] = 0;
    }

    /* Initialize the SPI communication */
    switch(pDefInit->carrierBoard)
    {
        case XILINX_KC705:
        case XILINX_VC707:
        case XILINX_ZC702:
            enableCommMux = 1;
            break;
        case DIGILENT_ZED:
        	pDefInit->fmcPort = FMC_HPC;
        case XILINX_ML605:
        default:
            enableCommMux = 0;
            break;
    }
    XCOMM_boardFmcPort = enableCommMux ? FMC_HPC : pDefInit->fmcPort;
    if(SPI_Init(pDefInit->fmcPort, enableCommMux) < 0)
    	return -1;

    /* Initialize the AD9548 */
    if(ad9548_setup() < 0)
        return -1;

	/* Initialize the AD9523 */
    if(ad9523_setup() < 0)
        return -1;

    if(XCOMM_SetAdcSamplingRate(pDefInit->adcSamplingRate) < 0)
        return -1;

    if(XCOMM_SetDacSamplingRate(pDefInit->dacSamplingRate) < 0)
        return -1;
	
	/* Initialize the Rx ADF4351 */
    if(adf4351_setup(ADF4351_RX_CHANNEL) < 0)
        return -1;

    if(XCOMM_SetRxFrequency(pDefInit->rxFrequency) < 0)
        return -1;

	/* Initialize the Tx ADF4351 */
    if(adf4351_setup(ADF4351_TX_CHANNEL) < 0)
        return -1;

    if(XCOMM_SetTxFrequency(pDefInit->txFrequency) < 0)
        return -1;
    
	/* Initialize the AD9122 */
    DAC_Core_Init(pDefInit->fmcPort);
    if(ad9122_setup() < 0)
        return -1;

	/* Initialize the AD9643 */
    ADC_Core_Init(pDefInit->fmcPort);
    if(ad9643_setup() < 0)
        return -1;

	/* Initialize the AD8366 */
    if(ad8366_setup() < 0)
        return -1;

    if(XCOMM_SetRxGain(pDefInit->rxGain1000) < 0)
        return -1;

    /* Read the calibration data from the EEPROM */
    if(EEPROM_GetCalData((uint8_t*)XCOMM_calData, &XCOMM_calDataSize, XCOMM_boardFmcPort) < 0)
        return -1;

    return 0;
}