Post Go back to editing

AD9371 OBS as an extra RX channel

We are using the RX1 and OBS RX1 channels on the ADRV9371-N/PCBZ board connected to a ZCU102 reference design to capture data.  We feed the data into custom FPGA blocks for processing.  We are able to configure the RX1 channel, and it will immediately start to stream data.  However, the OBS channel will not stream data unless we start up IIO Oscilloscope and start playing in the plot window.

Any ideas?

Thanks,

Jeff

Parents
  • Are you using Linux or no os drivers? Can you share your init script? Hope you are enabling the ORX channel while initializing the chip?

  • Using analogdevicesinc/linux with the PetaLinux build system.  

    Init:

    $BIN_DIR/profile_loader.py -i $PROFILE_DIR/profile_rx100_ob200.txt > $LOG_DIR/profile_loader.log 2>&1

    sleep 1

    # Configure AD9371 gain control to manual
    iio_attr -c ad9371-phy voltage0 gain_control_mode manual
    iio_attr -c ad9371-phy voltage2 gain_control_mode manual

    # Disable Tx1 and Tx2
    iio_attr -D ad9371-phy adi,tx-settings-tx-channels-enable 0

    # Set OBS pll: OBSLO_SNIFFER_PLL (1) OBSLO_TX_PLL (0)
    iio_attr -D ad9371-phy adi,obs-settings-obs-rx-lo-source 1

    # Configure AD9371 obs source
    iio_attr -D ad9371-phy adi,obs-settings-default-obs-rx-channel 5
    iio_attr -c ad9371-phy voltage2 rf_port_select ORX1_SN_LO

    We are able to work around it by using the following calls from the ad9381-iiostream example:

    get_ad9371_stream_ch(ctx, OBS, obs, 0, 'i', &obs_i)
    get_ad9371_stream_ch(ctx, OBS, obs, 0, 'q', &obs_q)
    iio_channel_enable(obs_i);
    iio_channel_enable(obs_q);
    obsbuf = iio_device_create_buffer(obs, 1024*1024, false);

Reply
  • Using analogdevicesinc/linux with the PetaLinux build system.  

    Init:

    $BIN_DIR/profile_loader.py -i $PROFILE_DIR/profile_rx100_ob200.txt > $LOG_DIR/profile_loader.log 2>&1

    sleep 1

    # Configure AD9371 gain control to manual
    iio_attr -c ad9371-phy voltage0 gain_control_mode manual
    iio_attr -c ad9371-phy voltage2 gain_control_mode manual

    # Disable Tx1 and Tx2
    iio_attr -D ad9371-phy adi,tx-settings-tx-channels-enable 0

    # Set OBS pll: OBSLO_SNIFFER_PLL (1) OBSLO_TX_PLL (0)
    iio_attr -D ad9371-phy adi,obs-settings-obs-rx-lo-source 1

    # Configure AD9371 obs source
    iio_attr -D ad9371-phy adi,obs-settings-default-obs-rx-channel 5
    iio_attr -c ad9371-phy voltage2 rf_port_select ORX1_SN_LO

    We are able to work around it by using the following calls from the ad9381-iiostream example:

    get_ad9371_stream_ch(ctx, OBS, obs, 0, 'i', &obs_i)
    get_ad9371_stream_ch(ctx, OBS, obs, 0, 'q', &obs_q)
    iio_channel_enable(obs_i);
    iio_channel_enable(obs_q);
    obsbuf = iio_device_create_buffer(obs, 1024*1024, false);

Children