summaryrefslogtreecommitdiff
path: root/usrp/host/swig/util.py
diff options
context:
space:
mode:
Diffstat (limited to 'usrp/host/swig/util.py')
-rw-r--r--usrp/host/swig/util.py95
1 files changed, 95 insertions, 0 deletions
diff --git a/usrp/host/swig/util.py b/usrp/host/swig/util.py
new file mode 100644
index 0000000000..089bcaaac2
--- /dev/null
+++ b/usrp/host/swig/util.py
@@ -0,0 +1,95 @@
+# utilities
+
+from usrp_prims import *
+
+def setup (which_board = 0):
+ if not usrp_load_standard_bits (which_board, False):
+ raise RuntimeError, "usrp_load_standard_bits"
+ dev = usrp_find_device (which_board)
+ if not dev:
+ raise RuntimeError, "usrp_find_device"
+ u = usrp_open_cmd_interface (dev)
+ if not u:
+ raise RuntimeError, "usrp_open_cmd_interface"
+
+ # FIXME setup high speed paths, Aux ADC Clock, ...
+
+ # usrp_9862_write (u, 0, 35, 0x1) # aux ADC clock = CLK/4
+ # usrp_9862_write (u, 1, 35, 0x1)
+
+ return u
+
+def write_slot_oe (u, slot, value, mask):
+ assert 0 <= slot and slot < 4
+ return usrp_write_fpga_reg (u, slot + FR_OE_0,
+ ((mask & 0xffff) << 16) | (value & 0xffff))
+
+def write_slot_io (u, slot, value, mask):
+ assert 0 <= slot and slot < 4
+ return usrp_write_fpga_reg (u, slot + FR_IO_0,
+ ((mask & 0xffff) << 16) | (value & 0xffff))
+
+
+# ----------------------------------------------------------------
+
+
+def ramp_aux_dac (u, which_codec, which_dac):
+ if not (which_codec == 0 or which_codec == 1):
+ raise AssertionError
+ if not (which_dac >= 0 and which_dac < 4):
+ raise AssertionError
+ try:
+ if which_dac == 3: # sigma delta output
+ sigma_delta_loop (u, which_codec)
+ else:
+ aux_dac_loop (u, which_codec, which_dac)
+ except KeyboardInterrupt:
+ return
+
+def sigma_delta_loop (u, which_codec):
+ counter = 0
+ while True:
+ usrp_9862_write (u, which_codec, 43, counter >> 4)
+ usrp_9862_write (u, which_codec, 42, (counter & 0xf) << 4)
+ # counter += 1 FIXME
+ counter += 4
+ if counter > 0xfff:
+ counter = 0
+
+def aux_dac_loop (u, which_codec, which_dac):
+ reg = 36 + which_dac # Aux DAC A,B,C
+ counter = 0
+ while True:
+ usrp_9862_write (u, which_codec, reg, counter)
+ counter += 1
+ if counter > 0xff:
+ counter = 0
+
+
+def read_aux_adc_loop (u, slot, which_adc):
+ while True:
+ v = usrp_read_aux_adc (u, slot, which_adc)
+ print "%3d %5.3f" % (v, v * 3.3 / 1024)
+
+def ramp_io_port (u, slot):
+ counter = 0
+ try:
+ while True:
+ write_slot_io (u, slot, counter, 0xffff)
+ counter += 1
+ if counter > 0xffff:
+ counter = 0
+ except KeyboardInterrupt:
+ return
+
+def walk_io_port (u, slot):
+ bit = 1
+ try:
+ while True:
+ write_slot_io (u, slot, bit, 0xffff)
+ bit = (bit << 1) & 0xffff
+ if bit == 0:
+ bit = 1
+ except KeyboardInterrupt:
+ return
+