diff options
author | Josh Blum <josh@joshknows.com> | 2010-05-10 14:18:00 -0700 |
---|---|---|
committer | Josh Blum <josh@joshknows.com> | 2010-05-10 14:18:00 -0700 |
commit | 650e0d9b35eeca9cec3989159310f4d5e3d38836 (patch) | |
tree | d311fffb7abb84e61c76251df5cdcd0383cf3918 /host/lib/usrp/usrp2/io_impl.cpp | |
parent | 9c7c178f70f8a78dc638d5f4301407893351b4fd (diff) | |
parent | 30bd666e306cb8f8c947c6ba99a76f7c49484597 (diff) | |
download | uhd-650e0d9b35eeca9cec3989159310f4d5e3d38836.tar.gz uhd-650e0d9b35eeca9cec3989159310f4d5e3d38836.tar.bz2 uhd-650e0d9b35eeca9cec3989159310f4d5e3d38836.zip |
Merge branch 'shrinkfw' into usrp2
Diffstat (limited to 'host/lib/usrp/usrp2/io_impl.cpp')
-rw-r--r-- | host/lib/usrp/usrp2/io_impl.cpp | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/host/lib/usrp/usrp2/io_impl.cpp b/host/lib/usrp/usrp2/io_impl.cpp index 2634e84aa..7c9d003ce 100644 --- a/host/lib/usrp/usrp2/io_impl.cpp +++ b/host/lib/usrp/usrp2/io_impl.cpp @@ -16,6 +16,7 @@ // #include "usrp2_impl.hpp" +#include "usrp2_regs.hpp" #include <uhd/transport/convert_types.hpp> #include <boost/format.hpp> #include <boost/asio.hpp> //htonl and ntohl @@ -42,14 +43,23 @@ void usrp2_impl::io_init(void){ _rx_stream_id_to_packet_seq[0] = 0; //send a small data packet so the usrp2 knows the udp source port - //and the maximum number of lines (32 bit words) per packet managed_send_buffer::sptr send_buff = _data_transport->get_send_buff(); - boost::uint32_t data[2] = { - htonl(USRP2_INVALID_VRT_HEADER), - htonl(_max_rx_samples_per_packet) - }; - memcpy(send_buff->cast<void*>(), data, sizeof(data)); + boost::uint32_t data = htonl(USRP2_INVALID_VRT_HEADER); + memcpy(send_buff->cast<void*>(), &data, sizeof(data)); send_buff->done(sizeof(data)); + + //setup RX DSP regs + _iface->poke32(FR_RX_CTRL_NSAMPS_PER_PKT, _max_rx_samples_per_packet); + _iface->poke32(FR_RX_CTRL_NCHANNELS, 1); + _iface->poke32(FR_RX_CTRL_CLEAR_OVERRUN, 1); //reset + _iface->poke32(FR_RX_CTRL_VRT_HEADER, 0 + | (0x1 << 28) //if data with stream id + | (0x1 << 26) //has trailer + | (0x3 << 22) //integer time other + | (0x1 << 20) //fractional time sample count + ); + _iface->poke32(FR_RX_CTRL_VRT_STREAM_ID, 0); + _iface->poke32(FR_RX_CTRL_VRT_TRAILER, 0); } /*********************************************************************** |