Then the interpolator will need to be reset when changing the interpolation rate. This will require a verilog change.
Matt Michael Dickens wrote: > On Oct 10, 2007, at 2:49 PM, Matt Ettus wrote: >> I think the problem is that the CIC interpolator needs to be stopped >> before you change the rate. It may also need to be reset, but I don't >> think so. I think the decimator had the same problem a while ago, and >> it was fixed by stopping, changing the rate, and then restarting. This >> should be somewhere in the host code. > > All of the following in usrp/host/apps/lib/legacy/ > > By "stop" do you mean "disable"? From usrp_standard.cc:627 > ++++ > bool s = disable_tx (); > bool ok = _write_fpga_reg (FR_INTERP_RATE, d_interp_rate/4 - 1); > restore_tx (s); > ++++ > > The decim code does exactly the same thing usrp_standard.cc:251 > ++++ > bool s = disable_rx (); > int v = has_rx_halfband() ? d_decim_rate/2 - 1 : d_decim_rate - 1; > bool ok = _write_fpga_reg (FR_DECIM_RATE, v); > restore_rx (s); > ++++ > The code for "disable_XX" and "restore_XX" are in usrp_basic.cc; RX is > 634:636 and TX is 1070:1096. Both of these eventually call > "usrp_set_fpga_XX_enable()", which are in usrp_prims.cc: 644:654. > Both of these functions call "usrp_set_switch()" with > VRQ_FPGA_SET_xx_ENABLE, which is at usrp_prims.cc:570, and just does a > write_cmd over USB to the FPGA at that register. > > Possibly the code for disable_tx isn't doing what it's supposed to do, > w/r.t. writing to the FPGA's register? I have verified that the local > code and variables are doing what they're supposed to do. > > Any other places I should be investigating? Thanks! - MLD _______________________________________________ Discuss-gnuradio mailing list [email protected] http://lists.gnu.org/mailman/listinfo/discuss-gnuradio
