コード例 #1
0
ファイル: xcomm.c プロジェクト: TheBigCheese/no-OS
/**************************************************************************//**
* @brief Initializes the Rx path
*
* @param pDefInit - pointer to initialization structure
*
* @return If success, return 0
*         if error, return -1
******************************************************************************/
int32_t XCOMM_InitRx(XCOMM_DefaultInit* pDefInit)
{
	/* Power up all the Rx clocks */
	if(ad9523_out_altvoltage_ADC_CLK_raw(1) < 0)
		return -1;
	if(ad9523_out_altvoltage_ADC_SYNC_CLK_raw(1) < 0)
		return -1;
	if(ad9523_out_altvoltage_RX_LO_REF_CLK_raw(1) < 0)
		return -1;

	/* Power Up the Rx ADF4351 */
	if(adf4351_out_altvoltage0_powerdown(0, ADF4351_RX_CHANNEL) < 0)
        return -1;

	/* Set the default Rx frequency */
	if(XCOMM_SetRxFrequency(pDefInit->rxFrequency) < 0)
        return -1;

    /* Set the AD9643 sampling rate */
    if(XCOMM_SetAdcSamplingRate(pDefInit->adcSamplingRate) < 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;

    /* Set the default Rx gain */
    if(XCOMM_SetRxGain(pDefInit->rxGain1000) < 0)
        return -1;

    return 0;
}
コード例 #2
0
ファイル: xcomm.c プロジェクト: DrSutherland/no-OS
/**************************************************************************//**
* @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;
}