aboutsummaryrefslogtreecommitdiffstats
path: root/lib/bladerf/bladerf_sink_c.h
AgeCommit message (Collapse)AuthorFilesLines
2016-02-28bladerf: implement options for clock configurationDimitri Stolnikov1-0/+4
Since firmware 2016.01-rc1 bladeRF has the ability to lock to an external reference as well as produce arbitrary frequency signal (25 MHz here) on its clock output. Use gr-osmosdr source with the following arguments to produce 25 MHz on the SMB connector: osmocom_fft -a bladerf,smb=25e6 smb=25e6 To lock the bladeRF itself to an external GPSDO reference, use additional arguments tamer=external for 10MHz or tamer=external_1pps for 1PPS GPSDO signals. osmocom_fft -a bladerf,smb=25e6,tamer=external tamer={internal,external_1pps,external} The described method requires https://github.com/Nuand/bladeRF/releases/ tag/2016.01-rc1 Carefully *read the instructions for external reference locking* (especially max allowed voltage levels) on Nuand's blog https:// www.nuand.com/blog/2016-01-rc1-release/
2015-07-17bladeRF: Added SOB/EOB stream tag handling support to bladerf_sinkJon Szymaniak1-0/+8
When running with metadata mode enabled, the bladerf_sink supports 'tx_sob' and 'tx_eob' stream tags. Anything not in the burst will be dropped, and a warning will be printed. Use of the bladeRF metadata can be enabled via a 'enable_metadata' device argument. If running full-duplex, this must be provided to both the source and the sink. This does not currently any additional features to the sink.
2014-03-10bladerf: Updated source/sink to use libbladeRF's sync interfaceBrian Padalino1-38/+0
2014-01-13bladerf: Added start()/stop() implementationsJon Szymaniak1-0/+3
2014-01-11bladerf: implement DC offset and IQ imbalance correctionDimitri Stolnikov1-0/+3
This patch has been provided by Brent J.
2013-10-30bladerf: Moved initializations to bladerf_common.c, misc. cleanupJon Szymaniak1-2/+0
Common parameter handling has been moved into bladerf_common::init(). The buflen parameter is now in units of samples, not bytes. This deviates from the other gr-osmosdr items. However, with the requirement that buffers be in multiples of 1024 samples, this makes specifying this parameter a bit easier. The user shouldn't need to know we're operating on SC16Q12 values under the hood, and have to calculate accordingly. To avoid confusion when both a bladeRF source and sink are in a flow graph a [bladeRF source/sink] prefix has been added to output. Error number have been replaced with bladeRF string representations of these error values. Firmware flashing has been removed. The bladeRF-cli or bladeRF-flash tools are the preferred route for firmware upgrades.
2013-10-30bladerf: Moved no longer "common" items out of bladerf_commonJon Szymaniak1-6/+6
The gr_complex FIFO is no longer used on the TX side, so it doesn't really make sense to have it in bladerf_common. The associated items have been moved into bladerf_source, and some renaming has been done in bladerf_sink to tidy up. Pending further performance tests of the bladerf_source, the _fifo member (boost::circular_buffer) may need to be replaced.
2013-09-28bladeRF: Refactored buffering scheme in sinkJon Szymaniak1-1/+24
Removed the use of an intermediate sample FIFO in the sink implementation. Note the the FIFO has not been moved out of bladerf_common --> bladerf_source_c in this commit. work() now handles converting samples from complex to SC16_Q12, and filling "transmit-ready" buffers. The callbacks are now only responsible for marking the provided buffer free, and returning the next buffer. It appears that a small deadlock issues remains in this changest, which can be induced by: 1: Using a small sample rate (160Khz) 2: Switching back and forth between sinusoid <-> GSM burst In this case, it appears that work() is blocked waiting for a buffer to become free. More investigation here is required...
2013-09-28bladerf: migration to async api (WIP)Dimitri Stolnikov1-7/+12
receive works, transmit locks up in work() after few seconds
2013-07-21bladerf: add support for nuand LLC bladeRF (WIP)Dimitri Stolnikov1-0/+120
This is based on the original work (https://github.com/Nuand/gr-osmosdr) done by folks at nuand LLC for the gr3.6 branch of gr-osmosdr. The following modifications have been done in this commit: * port to gr-osmosdr master codebase (gr3.7) * moved shared properties to bladerf_common * added & verified IF filter bandwidth setters * set LMS6002D registers with values taken from FAQ 5.27 * print device information (serial/versions) on startup * added fpga= and fw= device arguments to program MCU/FPGA * added bladerf=# dev. arg. to select a specific bladeRF * grc gain field controls RF path VGA for RX/TX * grc BB gain field controls BB path VGA for RX/TX Usage example: osmocom_fft -a "bladerf,fpga=/tmp/hostedx115.rbf" The following RX named gain stages are available: LNA: 0 to 6 dB, in 3dB steps VGA1: 5 to 30 dB, in 1dB steps; nonlinear mapping done inside the lib VGA2: 0 to 60 dB, in 3dB steps; not recommended to be used above 30dB The following TX named gain stages are available: VGA1: -35 to -4 dB, in 1dB steps, BB side VGA2: 0 to 25 dB, in 1dB steps, RF side Thanks a lot to the team of nuand LLC for this major contribution.