diff --git a/examples/ad9081_stingray.py b/examples/ad9081_stingray.py index cd90dc94b..7894add5d 100755 --- a/examples/ad9081_stingray.py +++ b/examples/ad9081_stingray.py @@ -15,6 +15,7 @@ tx_offload_base_addr = 0x9c440000 rx_offload_base_addr = 0x9c450000 +rx_dma_base_addr = 0x9c420000 control_reg_offload = 0x88 conv = adi.ad9081(url) @@ -30,8 +31,8 @@ conv.rx_main_nco_frequencies = [100000000] * 4 conv.tx_main_nco_frequencies = [100000000] * 4 -conv.rx_enabled_channels = [0] -conv.tx_enabled_channels = [0] +conv.rx_enabled_channels = [0,1] +conv.tx_enabled_channels = [0,1] conv.rx_nyquist_zone = ["odd"] * 4 conv.tx_cyclic_buffer = True @@ -39,21 +40,17 @@ conv.tx_ddr_offload = False conv.rx_ddr_offload = False -print("0x001B:", conv.ad9081_register_read(0x001B)) -conv.ad9081_register_write(0x001B,0xf) -print("0x001B:", conv.ad9081_register_read(0x001B)) -# -print("0x0321:", conv.ad9081_register_read(0x0321)) -conv.ad9081_register_write(0x0321,0x00) -print("0x0321:", conv.ad9081_register_read(0x0321)) - stdout, stderr = ssh._run(f"busybox devmem 0x{tx_offload_base_addr + control_reg_offload:02x} 32 0x2") stdout, stderr = ssh._run(f"busybox devmem 0x{rx_offload_base_addr + control_reg_offload:02x} 32 0x2") frame_length_ms = 1 -generated_signal_time = 0.3 -tx_time = 0.2 -rx_time = 0.3 +rx_time = 0.533 +generated_signal_time = 0.1 +blank_time = 0.05 +use_tx_mxfe_en = 1 +tx_time = generated_signal_time - blank_time +capture_range = 1 + N_tx = int((generated_signal_time * conv.tx_sample_rate) / 1000) N_rx = int((rx_time * conv.tx_sample_rate) / 1000) @@ -70,6 +67,24 @@ RX_MXFE_EN = 3 TX_MXFE_EN = 4 TX_STINGRAY_EN = 5 +if use_tx_mxfe_en: + print("0x001B:", conv.ad9081_register_read(0x001B)) + conv.ad9081_register_write(0x001B,0xf) + print("0x001B:", conv.ad9081_register_read(0x001B)) + # + print("0x0321:", conv.ad9081_register_read(0x0321)) + conv.ad9081_register_write(0x0321,0x00) + print("0x0321:", conv.ad9081_register_read(0x0321)) + tddn.channel[TX_MXFE_EN].on_ms = 0 + tddn.channel[TX_MXFE_EN].off_ms = tx_time + tddn.channel[TX_MXFE_EN].polarity = 0 + tddn.channel[TX_MXFE_EN].enable = 1 +else : + tddn.channel[TX_MXFE_EN].on_ms = 0 + tddn.channel[TX_MXFE_EN].off_ms = 0 + tddn.channel[TX_MXFE_EN].polarity = 1 + tddn.channel[TX_MXFE_EN].enable = 1 + for chan in [TDD_ENABLE,RX_MXFE_EN,TX_STINGRAY_EN]: tddn.channel[chan].on_ms = 0 @@ -77,15 +92,11 @@ tddn.channel[chan].polarity = 1 tddn.channel[chan].enable = 1 + + for chan in [RX_OFFLOAD_SYNC, TX_OFFLOAD_SYNC]: tddn.channel[chan].on_raw = 0 - tddn.channel[chan].off_raw = 1 - tddn.channel[chan].polarity = 0 - tddn.channel[chan].enable = 1 - -for chan in [TX_MXFE_EN]: - tddn.channel[chan].on_ms = 0 - tddn.channel[chan].off_ms = tx_time + tddn.channel[chan].off_raw = 10 tddn.channel[chan].polarity = 0 tddn.channel[chan].enable = 1 @@ -106,31 +117,25 @@ fs = int(conv.tx_sample_rate) A = 0.9 * 2**15 # -6 dBFS -B = 1e4 +B = 1e5 T = N_tx / fs t = np.linspace(0, T, N_tx, endpoint=False) tx_sig = A * np.sin(2 * math.pi * B * t) -conv.tx(tx_sig) +conv.tx([tx_sig,tx_sig]) tddn.sync_soft = 0 tddn.sync_soft = 1 -capture_range = 100 - -rx_sig = np.zeros((capture_range,N_rx)) -rx_t = np.linspace(0,N_rx, N_rx , endpoint=False) - -fig, (ch1, ch2) = plt.subplots(2, 1) - +rx_sig = np.zeros((capture_range,2,N_rx)) + for r in range(capture_range): rx_sig[r] = conv.rx() for r in range(capture_range): plt.suptitle(f"Capture number: {r}") - ch1.plot(rx_t, rx_sig[r]) - ch1.set_title("Channel 1 data") - ch2.plot(rx_t, np.append(tx_sig,np.zeros(len(rx_t)-len(tx_sig)))) - ch2.set_title("Generated signal") + plt.plot(rx_sig[0][0], label='Input Channel 1') + plt.plot(np.append(tx_sig*0.04, np.zeros(abs(len(rx_sig[0][0]) - len(tx_sig))))-3000, label='Generated Signal') +plt.legend() plt.show() tddn.enable = 0