Commit graph

60 commits

Author SHA1 Message Date
Josh Blum
11e9429b95 usrp1: fix to use the db connection type to determine DAC sign
Unlike the other products, usrp1 uses the DAC and not DSP
to perform baseband frequency shifting in the hardware.
Therefore this shifting occurs before I and Q swapping,
and so, the sign of the frequency needs to be inverted
on daughterboards which have inverted I and Q TX inputs.
2012-02-24 10:06:13 -08:00
Josh Blum
1156d9b26a usrp1: fix advertised samples per packet in send streamer
Must subtract off the 511 for 512 modulus remainder commit.
This bug was introduced by the conversion to streamer API.
2012-02-21 17:42:15 -08:00
Josh Blum
8442ea5e2c b100/usrp1: various tweaks for compiler warns and valgrind 2012-02-09 19:02:43 -08:00
Josh Blum
b7ff81c9a8 dsp rework: work on usb wrapper for smaller packets, large luts 2012-02-02 15:15:54 -08:00
Josh Blum
f592102763 usrp1: fix div ratio for interp register
The interp register was getting set 2x, now fixed!
This bug was introduced w/ the streamer work.
2011-12-15 19:55:39 -08:00
Josh Blum
d595f15967 usrp1: fixed swapped sign on rx cordic
We used to swap I and Q to share converter functions with the newer products.
Because of this, the sign on the cordic also had to be swapped.

Now that USRP1 has its own converter routines and I and Q are correct,
so should be the sign on the cordic. This was a bug introduced in master.

TX should not be an issue, because there is no cordic
and is adjusted digitally by the codec, after any potential swapping.
2011-12-15 18:26:43 -08:00
Josh Blum
4f4032573b usrp1: set scale factor after setting converter 2011-11-30 05:18:32 -08:00
Josh Blum
07fb8d2b82 usrp: fix rate calculation logic 2011-11-03 20:37:14 -07:00
Josh Blum
ae9e89d76b usrp: added get_tx/rx_rates 2011-11-03 20:37:13 -07:00
Josh Blum
00b6d8359d uhd: added trailer parsing for occupancy 2011-11-03 20:37:12 -07:00
Josh Blum
c885da1138 uhd: renamed convert markup to format
removed convert args

added simd level

got orc and neon updated
2011-11-03 20:37:12 -07:00
Josh Blum
5538048873 usrp1: support variable clock rate through API 2011-11-03 20:37:12 -07:00
Josh Blum
fce49fd66f uhd: added one packet mode to rx streamer 2011-11-03 20:37:12 -07:00
Josh Blum
0946176f51 usrp1: got the 16Msps working (needed non hb-filter image) 2011-11-03 20:37:11 -07:00
Josh Blum
861e66848f usrp2: work on alternative OTW formats 2011-11-03 20:37:11 -07:00
Josh Blum
65fb4d2252 usrp1: various tweaks related to streaming 2011-11-03 20:37:11 -07:00
Josh Blum
4c4f0810ef usrp1: type conversions and 8-bit work 2011-11-03 20:37:11 -07:00
Josh Blum
de17ef4614 usrp1: multi channel receive working 2011-11-03 20:37:11 -07:00
Josh Blum
fac15db5d7 uhd: renamed some of the stream types and functions 2011-11-03 20:37:11 -07:00
Josh Blum
e4561a18cd usrp1: did work for stream interface on usrp1 2011-11-03 20:37:11 -07:00
Josh Blum
6f9a5b8435 usrp1: disable pad to one for usrp1 (not needed)
This was messing up the pad to 512 bytes logic for empty flushes.
2011-09-19 20:26:40 -07:00
Josh Blum
0aa3e4e678 usrp1: fix for multi-channel, OTW channel width is always 1 2011-08-08 19:15:26 -07:00
Josh Blum
7e1b2a0e3c uhd: added tasks to simplify thread spawning use cases 2011-07-13 17:25:40 -07:00
Josh Blum
df91040196 usrp: added clipping to link max rate when setting sample rate 2011-07-04 08:33:47 -07:00
Josh Blum
729b284f62 usrp: handle frontend swapping if the first subdev is QI or Q 2011-07-04 07:21:53 -07:00
Josh Blum
1ef4089595 usrp1: tweaks + implemented other features to mimic async and inline messages
Moved the underflow/overflow polling into a thread and out of the fast-path.
Added an inline and async message queue into soft time control.
Error and status messages are actually generated now and enqueued.
Passes the async message test...
2011-07-02 19:35:33 -07:00
Josh Blum
6aa4690af0 usrp: added validate_subdev_spec to all io_impls 2011-07-01 15:07:38 -07:00
Josh Blum
7613f8ce36 usrp1: implemented properties interface on usrp1 2011-07-01 11:33:03 -07:00
Josh Blum
89fa329154 usrp1: super packet handler support squashed 2011-06-14 17:27:47 -07:00
Josh Blum
ea5ce50a46 uhd: replace managed buffer shared pointer w/ intrusive pointer to reduce overhead 2011-05-14 20:28:20 -07:00
Josh Blum
f991d3dc75 usrp1: apply conditional disables/enables to rx and tx
Scapped the old gnuradio code for information about VRQ_FPGA_SET_XX_ENABLE.
It turns out that we should disabled + restore state when changing muxes or rates.
The USRP seems to stream properly when receiving single and dual channel.

Prior to this commit, tx was accicentally always disabled from a few commits ago.
2011-05-14 19:57:03 -07:00
Josh Blum
09be0518ce uhd: removed more iostream stuff from usrp* implementations 2011-05-04 19:53:01 -07:00
Josh Blum
caff65d7e1 usrp1: fix for tx under remainder conditions
The remainder was accidentally lost because the offset to the buffer
was not propagated outside of the commit function.
2011-04-27 19:12:53 -07:00
Josh Blum
09149bbf7d usrp1: safe destruction for usrp1 device 2011-03-10 14:37:34 -08:00
Josh Blum
2af3e5c49d uhd: tweaks for windows msvc compiler warnings and errors 2011-02-16 17:19:54 -08:00
Josh Blum
3993c827f6 usrp-e100: use pre-bound get send/recv buffers in io impl 2011-02-03 22:14:55 +00:00
Josh Blum
3a85798972 usrp1: removed binds and sptr allocs in usrp1 io impl
prebind the callbacks for getting buffers in io_impl class

reimplement the special send buffer commit hack to avoid allocating
2011-02-14 13:30:47 -08:00
Josh Blum
fb7e8a09a5 uhd: replaced std::vector<type> for buffer arguments in send/recv
Created new type ref_vector for representing a vector of pointers.
Can be created from std::vector or a pointer.

Removes the convenience constrcutors for send/recv, its not needed.

Removes malloc/free overhead when using send/recv with pointer.
2011-02-09 19:01:28 -08:00
Josh Blum
ef351624ee uhd: replace asio buffer in make safe w/ memory and length, makes things simpler 2011-02-07 12:32:12 -08:00
Josh Blum
231f718134 usrp1: fix for tx disable on EOB
Leave the tx digital always enabled, flush with zeros is enough to turn it "off".
Fixed the flush routine to send something (when zero) to ensure zeros go out.
2011-02-02 15:47:33 -08:00
Josh Blum
d71344091b usrp1: work on usrp1 hardware compat with the api
today we added shutoff the DAC when not transmitting using EOB as an indicator

added various other features and cleaned up code for soft time control
2011-01-17 15:18:46 -08:00
Josh Blum
261bb80d73 uhd: update copyright dates on host code 2011-01-13 16:22:07 -08:00
Josh Blum
41e774c7c3 usrp1: implement soft time ctrl for send at, recv at 2011-01-13 12:22:03 -08:00
Josh Blum
09e0624698 usrp: removed old includes that didnt need to be there 2011-01-10 17:11:09 -08:00
Josh Blum
5514e67c64 usrp1: ensure that the current buffer was committed before getting a new one 2010-10-07 11:06:37 -07:00
Josh Blum
b40ace72dd usrp1: use the transport frame sizes to calculate the max spp
The max send spp is the frame size minus the alignment padding.
This allows us to copy a remainder into a new buffer and always
commit multiples of the alignment size (512 bytes).

Reworked the managed send buffer implementation to handle the above.
Uses only managed memory, and only mem-copied under the alignment.
2010-10-06 18:41:30 -07:00
Josh Blum
7352c95037 uhd: reworked the zero copy interface
- recv buffers have a release call
- safe make function for recv buffers (buff + release callback)
- send buffer commits now have a void return
- safe make function for send buffers (buff + commit callback)

The reason for the void return from commit is that ssize_t num_bytes was never returning anything of use.
That is for all of the zero copy implementations so far, commit cannot really error (being asynchronous).

libusb zero copy impl was reworked to support the new interface.
USRP1 io_impl with the psuedo managed buffer was replaced with safe_make.
Also, usrp1 io_impl was simplified greatly due to commit returning void now.
UDP zero copy asio was disabled (in this commit, until its reworked).
Phony send and recv interfaces were removed completely.
2010-10-02 23:15:46 -07:00
Josh Blum
00cd601840 uhd: implemented a double timeout (in seconds) for send and recv chains
converted all size_t timeout_ms to double timeout

bounded and alignment buffer now take double timeout

added timeout to device::send and zero_copy_if::get_send_buff
2010-10-01 18:22:41 -07:00
Josh Blum
2c8a7c7deb uhd: implemented recv timeout for zero copy interface 2010-09-30 14:36:24 -07:00
Josh Blum
42576f1ed9 usrp1: removed msvc warnings for usrp1 impl code 2010-09-23 18:46:58 -07:00