commit-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Commit-gnuradio] r4912 - in gnuradio/branches/developers/jcorgan/sar-fe


From: jcorgan
Subject: [Commit-gnuradio] r4912 - in gnuradio/branches/developers/jcorgan/sar-fe/gr-sar-fe/src: fpga/rbf/rev2 fpga/rbf/rev4 fpga/toplevel python
Date: Fri, 6 Apr 2007 23:58:14 -0600 (MDT)

Author: jcorgan
Date: 2007-04-06 23:58:14 -0600 (Fri, 06 Apr 2007)
New Revision: 4912

Added:
   gnuradio/branches/developers/jcorgan/sar-fe/gr-sar-fe/src/python/sar_tx.py
Removed:
   gnuradio/branches/developers/jcorgan/sar-fe/gr-sar-fe/src/python/debug_sar.py
Modified:
   
gnuradio/branches/developers/jcorgan/sar-fe/gr-sar-fe/src/fpga/rbf/rev2/usrp_sar.rbf
   
gnuradio/branches/developers/jcorgan/sar-fe/gr-sar-fe/src/fpga/rbf/rev4/usrp_sar.rbf
   
gnuradio/branches/developers/jcorgan/sar-fe/gr-sar-fe/src/fpga/toplevel/usrp_sar.v
   gnuradio/branches/developers/jcorgan/sar-fe/gr-sar-fe/src/python/Makefile.am
Log:
Work in progress.  Reverted to 32 MHz driven transmitter, limiting range to
-16MHz to 16MHz tuning.  The AD9862 DACs, to be driven at the full 64 Msps,
need to have a 128 MHz CLKOUT2 to drive the data transitions.  This pin is
not wired to the FPGA.  In addition, the 9862 interpolation filter limits
this to effectively 14MHz either side due to their roll-off.


Modified: 
gnuradio/branches/developers/jcorgan/sar-fe/gr-sar-fe/src/fpga/rbf/rev2/usrp_sar.rbf
===================================================================
(Binary files differ)

Modified: 
gnuradio/branches/developers/jcorgan/sar-fe/gr-sar-fe/src/fpga/rbf/rev4/usrp_sar.rbf
===================================================================
(Binary files differ)

Modified: 
gnuradio/branches/developers/jcorgan/sar-fe/gr-sar-fe/src/fpga/toplevel/usrp_sar.v
===================================================================
--- 
gnuradio/branches/developers/jcorgan/sar-fe/gr-sar-fe/src/fpga/toplevel/usrp_sar.v
  2007-04-07 05:49:56 UTC (rev 4911)
+++ 
gnuradio/branches/developers/jcorgan/sar-fe/gr-sar-fe/src/fpga/toplevel/usrp_sar.v
  2007-04-07 05:58:14 UTC (rev 4912)
@@ -109,16 +109,16 @@
    wire [15:0] tx_i, tx_q;
    wire [15:0] tx_debug;
    
-   // Transmitter creates a new output sample per clk64
-   sar_tx 
transmitter(.clk_i(clk64),.rst_i(sar_reset),.ena_i(enable_tx),.strobe_i(1'b1),
+   // Transmitter creates a new output sample per tx_sample_strobe
+   // This limits the range from -16MHz to +16MHz.  It's not possible with the
+   // USRP1 to use the full capacity of the DACs as the CLKOUT2 pin is not 
wired
+   // to the FPGA.
+   sar_tx 
transmitter(.clk_i(clk64),.rst_i(sar_reset),.ena_i(enable_tx),.strobe_i(tx_sample_strobe),
                      
.saddr_i(serial_addr),.sdata_i(serial_data),.s_strobe_i(serial_strobe),
                      .tx_i_o(tx_i),.tx_q_o(tx_q),.debug_o(tx_debug));
 
-   // This requires (in addition to the default setup in usrp_basic.cc) that
-   // the AD9862 has sampling enabled on two edges and no interpolation
-   // TX_IF = 8'h4B, TX_DIGITAL = 8'h10
-   assign TXSYNC_A = clk64;
-   assign tx_a = clk64 ? tx_i[15:2] : tx_q[15:2];
+   assign TXSYNC_A = tx_sample_strobe;
+   assign tx_a = tx_sample_strobe ? tx_i[15:2] : tx_q[15:2];
 
    assign tx_b = 14'b0;
    assign TXSYNC_B = 0;

Modified: 
gnuradio/branches/developers/jcorgan/sar-fe/gr-sar-fe/src/python/Makefile.am
===================================================================
--- 
gnuradio/branches/developers/jcorgan/sar-fe/gr-sar-fe/src/python/Makefile.am    
    2007-04-07 05:49:56 UTC (rev 4911)
+++ 
gnuradio/branches/developers/jcorgan/sar-fe/gr-sar-fe/src/python/Makefile.am    
    2007-04-07 05:58:14 UTC (rev 4912)
@@ -22,4 +22,4 @@
 include $(top_srcdir)/Makefile.common
 
 EXTRA_DIST = \
-       debug_sar.py
+       sar_tx.py

Deleted: 
gnuradio/branches/developers/jcorgan/sar-fe/gr-sar-fe/src/python/debug_sar.py

Copied: 
gnuradio/branches/developers/jcorgan/sar-fe/gr-sar-fe/src/python/sar_tx.py 
(from rev 4901, 
gnuradio/branches/developers/jcorgan/sar-fe/gr-sar-fe/src/python/debug_sar.py)
===================================================================
--- gnuradio/branches/developers/jcorgan/sar-fe/gr-sar-fe/src/python/sar_tx.py  
                        (rev 0)
+++ gnuradio/branches/developers/jcorgan/sar-fe/gr-sar-fe/src/python/sar_tx.py  
2007-04-07 05:58:14 UTC (rev 4912)
@@ -0,0 +1,68 @@
+#!/usr/bin/env python
+
+from gnuradio import gr, usrp
+from gnuradio import eng_notation
+from gnuradio.eng_option import eng_option
+from optparse import OptionParser
+import math
+
+class sar_tx:
+    def __init__(self):
+       self.trans = usrp.sink_s(fpga_filename='usrp_sar.rbf')
+        
+    def set_amplitude(self, amplitude):
+       self.trans._write_fpga_reg(usrp.FR_USER_0, int(amplitude))
+
+    def tune(self, freq):
+       ftw = int(freq*(2**32)/32e6)
+       self.trans._write_fpga_reg(usrp.FR_USER_1, ftw)
+
+    def set_phase(self, phase):
+        ptw = int(float(2**32)*phase/(2.0*math.pi))
+       self.trans._write_fpga_reg(usrp.FR_USER_2, ptw)
+    
+    def start(self):
+       self.trans.start()
+       
+    def stop(self):
+       self.trans.stop()
+
+def test_transmit(options):
+    t = sar_tx()
+    t.set_amplitude(options.amplitude)
+    t.tune(options.frequency)
+    t.set_phase(options.phase)
+    t.start()
+    raw_input('Press return to stop transmitter.')
+    t.stop
+
+def test_receive():
+    # This captures the output of the debug counter in sar_rx
+    # It will run for 1 second and capture 500k incrementing short ints
+    fg = gr.flow_graph()
+    src = usrp.source_s(fpga_filename = 'usrp_sar.rbf',decim_rate=256)
+    src.set_mux(usrp.determine_rx_mux_value(src, (0,0)))
+    head = gr.head(gr.sizeof_short, 500000)
+    dst = gr.file_sink(gr.sizeof_short, 'output.dat')
+    fg.connect(src, head, dst)
+    fg.run()
+
+def main():
+    parser = OptionParser(option_class=eng_option)
+    parser.add_option("-a", "--amplitude", type="eng_float", default=32000,
+                      help="set amplitude to AMPLITUDE, default is %default", 
metavar="AMPLITUDE")
+    parser.add_option("-f", "--frequency", type="eng_float", default=1e3,
+                      help="set frequency to FREQ in Hz, default is %default", 
metavar="FREQ")
+    parser.add_option("-p", "--phase", type="eng_float", default=0.0,
+                      help="set phase offset to PHASE in radians, default is 
%default", metavar="PHASE")
+    (options, args) = parser.parse_args()
+
+    if len(args) != 0:
+        parser.print_help()
+        sys.exit(1)
+
+    test_transmit(options)
+    test_receive()
+    
+if __name__ == "__main__":
+    main()





reply via email to

[Prev in Thread] Current Thread [Next in Thread]