Commit a9f2b2de authored by Tristan Gingold's avatar Tristan Gingold

init.c: fix dac initialization for the api

parent 8130101b
......@@ -163,7 +163,8 @@ libwr2rf_nco_wrcfg (struct libwr2rf_dev *dev, unsigned ch)
return 0;
}
void libwr2rf_rf_init (struct libwr2rf_dev *dev)
static void
libwr2rf_rf_init_dds (struct libwr2rf_dev *dev)
{
/* 3. DDS (ad9910). */
//libwr2rf_dds_spi_init(dev);
......@@ -172,23 +173,29 @@ void libwr2rf_rf_init (struct libwr2rf_dev *dev)
usleep(1000);
libwr2rf_dds_sync_calibrate(dev, 0);
}
/* 4. RF DAC. */
for (unsigned i = 0; i < 2; i++) {
usleep(1000);
/* 4.1 Init registers. */
libwr2rf_dac_init(dev, i);
usleep(1000);
/* 4.2 Set timing for inputs. */
libwr2rf_dac_port_timing(dev, i);
}
static void
libwr2rf_rf_init_dac (struct libwr2rf_dev *dev)
{
/* 4. RF DAC. */
/* 4.1 Init registers. */
libwr2rf_dac_init(dev, DAC1_CS);
libwr2rf_dac_init(dev, DAC2_CS);
/* 4.2 Set timing for inputs. */
libwr2rf_dac_port_timing(dev, DAC1_CS);
libwr2rf_dac_port_timing(dev, DAC2_CS);
/* 7. Configure input of IQ DAC (use rfnco). */
libwr2rf_write16
(dev, WR2RF_VME_REGS_CTRL + WR2RF_CTRL_REGS_RF1_IQDAC_CTRL, 0x04);
libwr2rf_write16
(dev, WR2RF_VME_REGS_CTRL + WR2RF_CTRL_REGS_RF2_IQDAC_CTRL, 0x04);
}
static void
libwr2rf_rf_init_rfnco (struct libwr2rf_dev *dev)
{
/* Use network as RFNCO source. */
libwr2rf_write16
(dev, WR2RF_VME_REGS_INIT + WR2RF_INIT_REGS_NCO_LOC_OR_WRS, 0);
......@@ -199,6 +206,13 @@ void libwr2rf_rf_init (struct libwr2rf_dev *dev)
libwr2rf_nco_wrcfg (dev, 2);
}
void
libwr2rf_rf_init (struct libwr2rf_dev *dev)
{
libwr2rf_rf_init_dds (dev);
libwr2rf_rf_init_dac (dev);
libwr2rf_rf_init_rfnco (dev);
}
void
libwr2rf_set_wrs_fixed_latency (struct libwr2rf_dev *dev, unsigned wr_cycles)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment