diff options
author | Josh Blum <josh@joshknows.com> | 2011-05-01 23:09:20 -0700 |
---|---|---|
committer | Josh Blum <josh@joshknows.com> | 2011-05-01 23:09:20 -0700 |
commit | 3ac502d0bb89d88b1f24cafe8a34256a70662ea9 (patch) | |
tree | bd37f2e7da69730793eb52298920fece63eb9b3b /host/lib | |
parent | cf5b7b0307c12303abd24b16dadf95dfddb4b340 (diff) | |
download | uhd-3ac502d0bb89d88b1f24cafe8a34256a70662ea9.tar.gz uhd-3ac502d0bb89d88b1f24cafe8a34256a70662ea9.tar.bz2 uhd-3ac502d0bb89d88b1f24cafe8a34256a70662ea9.zip |
usrp1: toggle the FPGA reset and RX reset registers at init
Diffstat (limited to 'host/lib')
-rw-r--r-- | host/lib/usrp/usrp1/usrp1_ctrl.cpp | 26 |
1 files changed, 18 insertions, 8 deletions
diff --git a/host/lib/usrp/usrp1/usrp1_ctrl.cpp b/host/lib/usrp/usrp1/usrp1_ctrl.cpp index 22e9fd1ce..c6be28f5f 100644 --- a/host/lib/usrp/usrp1/usrp1_ctrl.cpp +++ b/host/lib/usrp/usrp1/usrp1_ctrl.cpp @@ -201,18 +201,19 @@ public: } void usrp_init(void){ - /* not calling because this causes junk to come at init - * and it does not seem to be necessary to call anyway + //disable usrp_rx_enable(false); - usrp_rx_reset(true); - usrp_rx_reset(false); - usrp_rx_enable(true); - */ - usrp_tx_enable(false); + + //toggle resets + usrp_rx_reset(true); usrp_tx_reset(true); + usrp_rx_reset(false); usrp_tx_reset(false); - usrp_tx_enable(true); + + //enable + //usrp_rx_enable(true); //dont enable, enable means dont work + //usrp_tx_enable(true); } void usrp_load_fpga(std::string filestring) @@ -234,6 +235,8 @@ public: throw uhd::io_error("usrp_load_fpga: cannot open fpga input file"); } + usrp_fpga_reset(true); //holding the fpga in reset while loading + if (usrp_control_write_cmd(VRQ_FPGA_LOAD, 0, FL_BEGIN) < 0) { throw uhd::io_error("usrp_load_fpga: fpga load error"); } @@ -252,6 +255,9 @@ public: } usrp_set_fpga_hash(hash); + + usrp_fpga_reset(false); //done loading, take fpga out of reset + file.close(); if (load_img_msg) std::cout << " done" << std::endl; } @@ -355,6 +361,10 @@ public: UHD_ASSERT_THROW(usrp_control_write_cmd(VRQ_FPGA_SET_RX_RESET, on, 0) >= 0); } + void usrp_fpga_reset(bool on) + { + UHD_ASSERT_THROW(usrp_control_write_cmd(VRQ_FPGA_SET_RESET, on, 0) >= 0); + } int usrp_control_write(boost::uint8_t request, boost::uint16_t value, |