Commit 0c1d23f1 authored by John Robert Gill's avatar John Robert Gill

Added function to facilitate timing calibration + added missing debug defines.

parent ffc59c3b
......@@ -137,6 +137,11 @@ int libwr2rf_read_diag(struct libwr2rf_dev *dev, unsigned id,
#define LIBWR2RF_LEMO_DBG_RF2_FREV_MAIN 7
#define LIBWR2RF_LEMO_DBG_WRS_RX_VALID 8
#define LIBWR2RF_LEMO_DBG_WRS_TX_VALID 9
#define LIBWR2RF_LEMO_DBG_WRS_GPIO1 10
#define LIBWR2RF_LEMO_DBG_WRS_GPIO2 11
#define LIBWR2RF_LEMO_DBG_WRS_RF_RST 12
#define LIBWR2RF_LEMO_DBG_WRS_SOFTSTOP 13
#define LIBWR2RF_LEMO_DBG_WRS_SOFTSTART 14
/* LEMO front panel debug selection */
int libwr2rf_configure_lemo_debug(struct libwr2rf_dev *dev, unsigned lemo, unsigned dbg);
......
......@@ -307,7 +307,7 @@ nco_reset (struct libwr2rf_dev *dev, int argc, char **argv)
goto usage;
nco_ctrl_addr = WR2RF_VME_REGS_CTRL + WR2RF_CTRL_REGS_NCO_RESET_CTRL;
libwr2rf_write16(dev, nco_ctrl_addr, 1);
libwr2rf_write16(dev, nco_ctrl_addr, 0x7);
return;
usage:
......@@ -577,6 +577,34 @@ nco_lcfg (struct libwr2rf_dev *dev, int argc, char **argv)
}
static void
nco_lcfg_update (struct libwr2rf_dev *dev, int argc, char **argv)
{
unsigned addr_rfframe_ftw = WR2RF_VME_REGS_INIT + WR2RF_INIT_REGS_NCO_H1_FTW ;
unsigned addr_rfframe_ctrl = WR2RF_VME_REGS_INIT + WR2RF_INIT_REGS_NCO_CTRL;
unsigned addr_rfframe_update = WR2RF_VME_REGS_INIT + WR2RF_INIT_REGS_NCO_UPDATE;
unsigned ctrl = 0x7;
unsigned long long ftw = 0x16B24A8FB6;
if (argc != 1 && argc !=3)
goto usage;
if (argc == 3) {
ctrl = strtoul(argv[1], NULL, 0);
ftw = strtoull(argv[2], NULL, 0);
}
libwr2rf_write16(dev, addr_rfframe_ftw, ftw>>48);
libwr2rf_write16(dev, addr_rfframe_ftw+2, ftw>>32);
libwr2rf_write16(dev, addr_rfframe_ftw+4, ftw>>16);
libwr2rf_write16(dev, addr_rfframe_ftw+6, ftw>>0);
libwr2rf_write16(dev, addr_rfframe_ctrl, ctrl);
libwr2rf_write16(dev, addr_rfframe_update, 1);
return;
usage:
printf ("Usage: %s [ctrl ftw]\n", argv[0]);
}
static void
nco_wrcfg (struct libwr2rf_dev *dev, int argc, char **argv)
{
......@@ -3426,7 +3454,8 @@ static struct cmds cmds[] =
{ "nco-reset-delay", nco_reset_delay, "Delay the application of nco reset into the T1 trigger units until stable RF is present. 1->128 cycles at 16ns each" },
{ "nco-reset-ctrl", nco_reset_ctrl, "Provides masks to prevent nco_reset being distributed to DDS and RFNCOs"},
{ "nco-wrctrl", nco_wrctrl, "write nco ctrl register" },
{ "nco-lcfg", nco_lcfg, "configure the nco for local (debug) register access" },
{ "nco-lcfg", nco_lcfg, "directly configures the rfnco for local (debug) register access" },
{ "nco-lcfg-update", nco_lcfg_update, "mimics an RFframe off the network in local registers" },
{ "nco-wrcfg", nco_wrcfg, "configure the nco for network (operational) operation" },
{ "nco-status", nco_status, "Display some registers from the RFNCO" },
{ "nco-cablecomp", nco_cablecomp, "Sets the cable delay compensation value for the RFNCO"},
......
......@@ -9,3 +9,6 @@ prod=`echo "$ftw*$freq_wrclk" | bc -q`
echo "prod=$prod"
fout=`echo "$prod/(2^48)" | bc -q`
echo "Fout=$fout"
fout_rf=`echo "$fout*4620" | bc -q`
echo "Fout=$fout_rf"
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