Hey,

In case you haven't already adopted the straight forward approach mentioned by
Sylvain I just dug out the tool I mentioned and moved
it to my github account [1].

I quickly compiled and linked against a recent version of UHD (3.9.6) to 
confirm that it still works.

Build as usual:
mkdir build
cd build
cmake ..
make

You can then run the "main" program as follows:

./main --list

to see a list of all available filters with their corresponding paths.
Then, you can write new filter coefficients with:

./main --write_fir --path=<path from run with --list option>
e.g.:
./main --write_fir --path=/mboards/0/dboards/A/rx_frontends/A/filters/FIR_1

this will update the coefficients of FIR_1 and then read the filter again to 
check if the coefficients have been updated.
However, the tool is definitely not polished in any way and does not check 
whether or not the new coefficients actually take effect. 
If they still don't then let me know and I'll try to create a more complete 
example application.

[1] https://github.com/jarn0ld/uhd-filter-tool

Cheers,
Julian

On Tuesday, September 12, 2017 5:16:56 PM CEST Sylvain Munaut wrote:
> Personally I'm using a patched UHD where I expose the SPI device :
> 
> 
> diff --git a/host/lib/usrp/b200/b200_impl.cpp
> b/host/lib/usrp/b200/b200_impl.cpp index a513e1336..01c1e3b51 100644
> --- a/host/lib/usrp/b200/b200_impl.cpp
> +++ b/host/lib/usrp/b200/b200_impl.cpp
> @@ -549,6 +549,8 @@ b200_impl::b200_impl(const uhd::device_addr_t&
> device_addr, usb_device_handle::s
>          _adf4001_iface = boost::make_shared<b200_ref_pll_ctrl>(_spi_iface);
> }
> 
> +    _tree->create<spi_iface::sptr>(mb_path / ("spi")).set(_spi_iface);
> +
>      ////////////////////////////////////////////////////////////////////
>      // Init codec - turns on clocks
>      ////////////////////////////////////////////////////////////////////
> 
> 
> Then in my code I can get the SPI object :
> 
> uhd::spi_iface::sptr spi =
> usrp->get_device()->get_tree()->access<uhd::spi_iface::sptr>("/mboards/0/spi
> ").get();
> 
> and use read_spi / write_spi to control any register I want.
> 
> 
> Cheers,
> 
>     Sylvain


-- 
Julian Arnold, M.Sc.

Institute for Networked Systems
RWTH Aachen University
Kackertstrasse 9
52072 Aachen
Germany

_______________________________________________
USRP-users mailing list
USRP-users@lists.ettus.com
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com

Reply via email to