microblaze配置ad9361
时间: 2024-01-24 19:03:18 浏览: 44
为了在MicroBlaze中配置AD9361,需要进行以下步骤:
1. 首先,需要在MicroBlaze中初始化SPI控制器。可以使用以下代码:
```c
struct xil_spi_init_param xil_spi_param = {
.type = SPI_PL,
.device_id = 0,
};
ad9361_param.spi_init = xil_spi_param;
```
2. 接下来,需要定义配置并关联结构体。可以使用以下代码:
```c
struct ad9361_rf_phy* ad9361_phy;
struct ad9361_init_param ad9361_param;
struct ad9361_platform_data ad9361_pdata;
struct ad9361_phy_platform_data ad9361_phy_pdata;
ad9361_phy = ad9361_init(&ad9361_param);
ad9361_phy->pdata = &ad9361_pdata;
ad9361_phy->pdata->phy = ad9361_phy;
ad9361_phy->pdata->spi_init = &xil_spi_param;
ad9361_phy->pdata->gpio_resetb = GPIO_RESET_PIN;
ad9361_phy->pdata->gpio_sync = GPIO_SYNC_PIN;
ad9361_phy->pdata->gpio_cal_sw1 = GPIO_CAL_SW1_PIN;
ad9361_phy->pdata->gpio_cal_sw2 = GPIO_CAL_SW2_PIN;
ad9361_phy->pdata->gpio_dds_en = GPIO_DDS_EN_PIN;
ad9361_phy->pdata->gpio_rx_en = GPIO_RX_EN_PIN;
ad9361_phy->pdata->gpio_tx_en = GPIO_TX_EN_PIN;
ad9361_phy->pdata->gpio_rx_mux = GPIO_RX_MUX_PIN;
ad9361_phy->pdata->gpio_tx_mux = GPIO_TX_MUX_PIN;
ad9361_phy->pdata->gpio_tdd_en = GPIO_TDD_EN_PIN;
ad9361_phy->pdata->gpio_tdd_mode = GPIO_TDD_MODE_PIN;
ad9361_phy->pdata->gpio_alert = GPIO_ALERT_PIN;
ad9361_phy->pdata->gpio_fdd_rx_rate_en = GPIO_FDD_RX_RATE_EN_PIN;
ad9361_phy->pdata->gpio_fdd_tx_rate_en = GPIO_FDD_TX_RATE_EN_PIN;
ad9361_phy->pdata->gpio_fdd_rx_rate_pin = GPIO_FDD_RX_RATE_PIN;
ad9361_phy->pdata->gpio_fdd_tx_rate_pin = GPIO_FDD_TX_RATE_PIN;
ad9361_phy->pdata->gpio_ensm_mode_pin = GPIO_ENSM_MODE_PIN;
ad9361_phy->pdata->gpio_ensm_pin_ctrl = GPIO_ENSM_PIN_CTRL;
ad9361_phy->pdata->gpio_pa_bias_en = GPIO_PA_BIAS_EN_PIN;
ad9361_phy->pdata->gpio_pa_bias_ctrl = GPIO_PA_BIAS_CTRL;
ad9361_phy->pdata->gpio_lna_bias_en = GPIO_LNA_BIAS_EN_PIN;
ad9361_phy->pdata->gpio_lna_bias_ctrl = GPIO_LNA_BIAS_CTRL;
ad9361_phy->pdata->gpio_rx_rfsw_pin = GPIO_RX_RFSW_PIN;
ad9361_phy->pdata->gpio_tx_rfsw_pin = GPIO_TX_RFSW_PIN;
ad9361_phy->pdata->gpio_rx_gain_pin = GPIO_RX_GAIN_PIN;
ad9361_phy->pdata->gpio_tx_atten_pin = GPIO_TX_ATTEN_PIN;
ad9361_phy->pdata->gpio_tx_rf_band_sel_pin = GPIO_TX_RF_BAND_SEL_PIN;
ad9361_phy->pdata->gpio_rx_rf_band_sel_pin = GPIO_RX_RF_BAND_SEL_PIN;
ad9361_phy->pdata->gpio_trx_sw_ctrl_pin = GPIO_TRX_SW_CTRL_PIN;
ad9361_phy->pdata->gpio_trx_sw_ctrl_pin_en = GPIO_TRX_SW_CTRL_PIN_EN;
ad9361_phy->pdata->gpio_adc_pdn_pin = GPIO_ADC_PDN_PIN;
ad9361_phy->pdata->gpio_dac_pd_pin = GPIO_DAC_PD_PIN;
ad9361_phy->pdata->gpio_dig_tune = GPIO_DIG_TUNE_PIN;
ad9361_phy->pdata->gpio_dig_clock_mux = GPIO_DIG_CLK_MUX_PIN;
ad9361_phy->pdata->gpio_dig_clock_div = GPIO_DIG_CLK_DIV_PIN;
ad9361_phy->pdata->gpio_dig_rf_en = GPIO_DIG_RF_EN_PIN;
ad9361_phy->pdata->gpio_dig_tune_powerdown = GPIO_DIG_TUNE_POWERDOWN_PIN;
ad9361_phy->pdata->gpio_dig_tune_powerdown_en = GPIO_DIG_TUNE_POWERDOWN_EN;
ad9361_phy->pdata->gpio_dig_resetb = GPIO_DIG_RESETB_PIN;
ad9361_phy->pdata->gpio_dig_resetb_en = GPIO_DIG_RESETB_EN;
ad9361_phy->pdata->gpio_dig_io_update = GPIO_DIG_IO_UPDATE_PIN;
ad9361_phy->pdata->gpio_dig_io_update_en = GPIO_DIG_IO_UPDATE_EN;
ad9361_phy->pdata->gpio_dig_io_update_delay = GPIO_DIG_IO_UPDATE_DELAY;
ad9361_phy->pdata->gpio_dig_io_update_delay_en = GPIO_DIG_IO_UPDATE_DELAY_EN;
ad9361_phy->pdata->gpio_dig_io_update_pulse_width = GPIO_DIG_IO_UPDATE_PULSE_WIDTH;
ad9361_phy->pdata->gpio_dig_io_update_pulse_width_en = GPIO_DIG_IO_UPDATE_PULSE_WIDTH_EN;
ad9361_phy->pdata->gpio_dig_io_update_pulse_delay = GPIO_DIG_IO_UPDATE_PULSE_DELAY;
ad9361_phy->pdata->gpio_dig_io_update_pulse_delay_en = GPIO_DIG_IO_UPDATE_PULSE_DELAY_EN;
ad9361_phy->pdata->gpio_dig_io_update_pulse_delay_mode = GPIO_DIG_IO_UPDATE_PULSE_DELAY_MODE;
ad9361_phy->pdata->gpio_dig_io_update_pulse_delay_mode_en = GPIO_DIG_IO_UPDATE_PULSE_DELAY_MODE_EN;
ad9361_phy->pdata->gpio_dig_io_update_pulse_width_mode = GPIO_DIG_IO_UPDATE_PULSE_WIDTH_MODE;
ad9361_phy->pdata->gpio_dig_io_update_pulse_width_mode_en = GPIO_DIG_IO_UPDATE_PULSE_WIDTH_MODE_EN;ad9361_phy->pdata->gpio_dig_io_update_pulse_delay_mode = GPIO_DIG_IO_UPDATE_PULSE_DELAY_MODE;
ad9361_phy->pdata->gpio_dig_io_update_pulse_delay_mode_en = GPIO_DIG_IO_UPDATE_PULSE_DELAY_MODE_EN;
ad9361_phy->pdata->gpio_dig_io_update_pulse_width_mode = GPIO_DIG_IO_UPDATE_PULSE_WIDTH_MODE;
ad9361_phy->pdata->gpio_dig_io_update_pulse_width_mode_en = GPIO_DIG_IO_UPDATE_PULSE_WIDTH_MODE_EN;
ad9361_phy->pdata->gpio_dig_io_update_pulse_delay_mode = GPIO_DIG_IO_UPDATE_PULSE_DELAY_MODE;
ad9361_phy->pdata->gpio_dig_io_update_pulse_delay_mode_en = GPIO_DIG_IO_UPDATE_PULSE_DELAY_MODE_EN;
ad9361_phy->pdata->gpio_dig_io_update_pulse_width_mode = GPIO_DIG_IO_UPDATE_PULSE_WIDTH_MODE;
ad9361_phy->pdata->gpio_dig_io_update_pulse_width_mode_en = GPIO_DIG_IO_UPDATE_PULSE_WIDTH_MODE_EN;
ad9361_phy->pdata->gpio_dig_io_update_pulse_delay_mode = GPIO_DIG_IO_UPDATE_PULSE_DELAY_MODE;
ad9361_phy->pdata->gpio_dig_io_update_pulse_delay_mode_en = GPIO_DIG_IO_UPDATE_PULSE_DELAY_MODE_EN;
ad9361_phy->pdata->gpio_dig_io_update_pulse_width_mode = GPIO_DIG_IO_UPDATE_PULSE_WIDTH_MODE;
ad9361_phy->pdata->gpio_dig_io_update_pulse_width_mode_en = GPIO_DIG_IO_UPDATE_PULSE_WIDTH_MODE_EN;
ad9361_phy->pdata->gpio_dig_io_update_pulse_delay_mode = GPIO_DIG_IO_UPDATE_PULSE_DELAY_MODE;
ad9361_phy->pdata->gpio_dig_io_update_pulse_delay_mode_en = GPIO_DIG_IO_UPDATE_PULSE_DELAY_MODE_EN;
ad9361_phy->pdata->gpio_dig_io_update_pulse_width_mode = GPIO_DIG_IO_UPDATE_PULSE_WIDTH_MODE;
ad9361_phy->pdata->gpio_dig_io_update_pulse_width_mode_en = GPIO_DIG_IO_UPDATE_PULSE_WIDTH_MODE_EN;
ad9361_phy->pdata->gpio_dig_io_update_pulse_delay_mode = GPIO_DIG_IO_UPDATE_PULSE_DELAY_MODE;
ad9361_phy->pdata->gpio_dig_io_update_pulse_delay_mode_en = GPIO_DIG_IO_UPDATE_PULSE_DELAY_MODE_EN;
ad9361_phy->pdata->gpio_dig_io_update_pulse_width_mode = GPIO_DIG_IO_UPDATE_PULSE_WIDTH_MODE;
ad9361_phy->pdata->gpio_dig_io_update_pulse_width_mode_en = GPIO_DIG_IO_UPDATE_PULSE_WIDTH_MODE_EN;
ad9361_phy->pdata->gpio_dig_io_update_pulse_delay_mode = GPIO_DIG_IO_UPDATE_PULSE_DELAY_MODE;
ad9361_phy->pdata->gpio_dig_io_update_pulse_delay_mode_en = GPIO_DIG_IO_UPDATE_PULSE_DELAY_MODE_EN;
ad9361_phy->pdata->gpio_dig_io_update_pulse_width_mode = GPIO_DIG_IO_UPDATE_PULSE_WIDTH_MODE;
ad9361_phy->pdata->gpio_dig_io_update_pulse_width_mode_en = GPIO_DIG_IO_UPDATE_PULSE_WIDTH_MODE_EN;
ad9361_phy->pdata->gpio_dig_io_update_pulse_delay_mode = GPIO_DIG_IO_UPDATE_PULSE_DELAY_MODE;
ad9361_phy->pdata->gpio_dig_io_update_pulse_delay_mode_en = GPIO_DIG_IO_UPDATE_PULSE_DELAY_MODE_EN;
ad9361_phy->pdata->gpio_dig_io_update_pulse_width_mode = GPIO_DIG_IO_UPDATE_PULSE_WIDTH_MODE;
ad9361_phy->pdata->gpio_dig_io_update_pulse_width_mode_en = GPIO_DIG_IO_UPDATE_PULSE_WIDTH_MODE_EN;
ad9361_phy->pdata->gpio_dig_io_update_pulse_delay_mode = GPIO_DIG_IO_UPDATE_PULSE_DELAY_MODE;
ad9361_phy->pdata->gpio_dig_io_update_pulse_delay_mode_en = GPIO_DIG_IO_UPDATE_PULSE_DELAY_MODE_EN;
ad9361_phy->pdata->gpio_dig_io_update_pulse_width_mode = GPIO_DIG_IO_UPDATE_PULSE_WIDTH_MODE;
ad9361_phy->pdata->gpio_dig_io_update_pulse_width_mode_en = GPIO_DIG_IO_UPDATE_PULSE_WIDTH_MODE_EN;
ad9361_phy->pdata->gpio_dig_io_update_pulse_delay_mode = GPIO_DIG_IO_UPDATE_PULSE_DELAY_MODE;
ad9361_phy->pdata->gpio_dig_io_update_pulse_delay_mode_en = GPIO_DIG_IO_UPDATE_PULSE_DELAY_MODE_EN;
ad9361_phy->pdata->gpio_dig_io_update_pulse_width_mode = GPIO_DIG_IO_UPDATE_PULSE_WIDTH_MODE;
ad9361_phy->pdata->gpio_dig_io_update_pulse_width_mode_en = GPIO_DIG_IO_UPDATE_PULSE_WIDTH_MODE_EN;
ad9361_phy->pdata->gpio_dig_io_update_pulse_delay_mode = GPIO_DIG_IO_UPDATE_PULSE_DELAY_MODE;
ad9361_phy->pdata->gpio_dig_io_update_pulse_delay_mode_en = GPIO_DIG_IO_UPDATE_PULSE_DELAY_MODE_EN;
ad9361_phy->pdata->gpio_dig_io_update_pulse_width_mode = GPIO_DIG_IO_UPDATE_PULSE_WIDTH_MODE;
ad9361_phy->pdata->gpio_dig_io_update_pulse_width_mode_en = GPIO_DIG_IO_UPDATE_PULSE_WIDTH_MODE_EN;
ad9361_phy->pdata->gpio_dig_io_update_pulse_delay_mode = GPIO_DIG_IO_UPDATE_PULSE_DELAY_MODE;
ad9361_phy->pdata->gpio_dig_io_update_pulse_delay_mode_en = GPIO_DIG_IO_UPDATE_PULSE_DELAY_MODE_EN;
ad9361_phy->pdata->gpio_dig_io_update_pulse_width_mode = GPIO_DIG_IO_UPDATE_PULSE_WIDTH_MODE;
ad9361_phy->pdata->gpio_dig_io_update_pulse_width_mode_en = GPIO_DIG_IO_UPDATE_PULSE_WIDTH_MODE_EN;
ad9361_phy->pdata->gpio_dig_io_update_pulse_delay_mode = GPIO_DIG_IO_UPDATE_PULSE_DELAY_MODE;
ad9361_phy->pdata->gpio_dig_io_update_pulse_delay_mode_en = GPIO_DIG_IO_UPDATE_PULSE_DELAY_MODE_EN;
ad9361_phy->pdata->gpio_dig_io_update_pulse_width_mode = GPIO_DIG_IO_UPDATE_PULSE_WIDTH_MODE;
ad9361_phy->pdata->gpio_dig_io_update_pulse_width_mode_en = GPIO_DIG_IO_UPDATE_PULSE_WIDTH_MODE_EN;
ad9361_phy->pdata->gpio_dig_io_update_pulse_delay_mode = GPIO_DIG_IO_UPDATE_PULSE_DELAY_MODE;
ad9361_phy->pdata->gpio_dig_io_update_pulse_delay_mode_en = GPIO_DIG_IO_UPDATE_PULSE_DELAY_MODE_EN;
ad9361_phy->pdata->gpio_dig_io_update_pulse_width_mode = GPIO_DIG_IO_UPDATE_PULSE_WIDTH_MODE;
ad9361_phy->pdata->gpio_dig_io_update_pulse_width_mode_en = GPIO_DIG_IO_UPDATE_PULSE_WIDTH_MODE_EN;
ad9361_phy->pdata->gpio_dig_io_update_pulse_delay_mode = GPIO_DIG_IO_UPDATE_PULSE_DELAY_MODE;
ad9361_phy->pdata->gpio_dig_io_update_pulse_delay_mode_en = GPIO_DIG_IO_UPDATE_PULSE_DELAY_MODE_EN;
ad9361_phy->pdata->gpio_dig_io_update_pulse_width_mode = GPIO_DIG_IO_UPDATE_PULSE_WIDTH_MODE;
ad9361_phy->pdata->gpio_dig_io_update_pulse_width_mode_en = GPIO_DIG_IO_UPDATE_PULSE_WIDTH_MODE_EN;
ad9361_phy->pdata->gpio_dig_io_update_pulse_delay_mode = GPIO_DIG_IO_UPDATE_PULSE_DELAY_MODE;
ad9361_phy->pdata->gpio_dig_io_update_pulse_delay_mode_en = GPIO_DIG_IO_UPDATE_PULSE_DELAY_MODE_EN;
ad9361_phy->pdata->gpio_dig_io_update_pulse_width_mode = GPIO_DIG_IO_UPDATE_PULSE_WIDTH_MODE;
ad9361_phy->pdata->gpio_dig_io_update_pulse_width_mode_en = GPIO_DIG_IO_UPDATE_PULSE_WIDTH_MODE_EN;
ad9361_phy->pdata->gpio_dig_io_update_pulse_delay_mode = GPIO_DIG_IO_UPDATE_PULSE_DELAY_MODE;
ad9361_phy->pdata->gpio_dig_io_update_pulse_delay_mode_en = GPIO_DIG_IO_UPDATE_PULSE_DELAY_MODE_EN;
ad9361_phy->pdata->gpio_dig_io_update_pulse_width_mode = GPIO_DIG_IO_UPDATE_PULSE_WIDTH_MODE;
ad9361_phy->pdata->gpio_dig_io_update_pulse_width_mode_en = GPIO_DIG_IO_UPDATE_PULSE_WIDTH_MODE_EN;
ad9361_phy->pdata->gpio_dig_io_update_pulse_delay_mode = GPIO_DIG_IO_UPDATE_PULSE_DELAY_MODE;
ad9361_phy->pdata->gpio_dig_io_update_pulse_delay_mode_en = GPIO_DIG_IO_UPDATE_PULSE_DELAY_MODE_EN;
ad9361_phy->pdata->gpio_dig_io_update_pulse_width_mode = GPIO_DIG_IO_UPDATE_PULSE_WIDTH_MODE;
ad9361_phy->pdata->gpio_dig_io_update_pulse_width_mode_en = GPIO_DIG_IO_UPDATE_PULSE_WIDTH_MODE_EN;
ad9361_phy->pdata->gpio_dig_io_update_pulse_delay_mode = GPIO_DIG_IO_UPDATE_PULSE_DELAY_MODE;
ad9361_phy->pdata->gpio_dig