usrp-users@lists.ettus.com

Discussion and technical support related to USRP, UHD, RFNoC

View all threads

Register access on E310

CL
Craigs List
Fri, Mar 11, 2022 10:11 PM

Hello,

I need to do a direct read and write of the AD9361 registers on the E310.
I'd like to just modify one of the C/C++ examples. I have an existing
application that uses the AD9361 and need to document the E310 state.

Frankly, I am having trouble getting a clean compile, using uhd::usrp or
multi_ursp.  I can get things via the tree, but I'd like to be able
to simply do a peek8 or poke8 and read a register. How to do so?

As an example, I can see if the AGC mode is in fast or slow mode with
the tree (or the command line 'uhd_usrp_probe --tree .../agc/mode/value')
but I'd like to read the AGCConfigX registers (0xFA-FC) in their entirety.
I'm sure it's possible, but I have been struggling with how.

Thank you for any assistance you can provide.

Kevin Tolliver

Hello, I need to do a direct read and write of the AD9361 registers on the E310. I'd like to just modify one of the C/C++ examples. I have an existing application that uses the AD9361 and need to document the E310 state. Frankly, I am having trouble getting a clean compile, using uhd::usrp or multi_ursp. I can get things via the tree, but I'd like to be able to simply do a peek8 or poke8 and read a register. How to do so? As an example, I can see if the AGC mode is in fast or slow mode with the tree (or the command line 'uhd_usrp_probe --tree .../agc/mode/value') but I'd like to read the AGCConfigX registers (0xFA-FC) in their entirety. I'm sure it's possible, but I have been struggling with how. Thank you for any assistance you can provide. Kevin Tolliver
MD
Marcus D. Leech
Fri, Mar 11, 2022 10:31 PM

On 2022-03-11 17:11, Craigs List wrote:

Hello,

I need to do a direct read and write of the AD9361 registers on the E310.
I'd like to just modify one of the C/C++ examples. I have an existing
application that uses the AD9361 and need to document the E310 state.

Frankly, I am having trouble getting a clean compile, using uhd::usrp or
multi_ursp.  I can get things via the tree, but I'd like to be able
to simply do a peek8 or poke8 and read a register. How to do so?

As an example, I can see if the AGC mode is in fast or slow mode with
the tree (or the command line 'uhd_usrp_probe --tree .../agc/mode/value')
but I'd like to read the AGCConfigX registers (0xFA-FC) in their
entirety.
I'm sure it's possible, but I have been struggling with how.

Thank you for any assistance you can provide.

Kevin Tolliver

You haven't stated which system image you're running on the E310, but
assuming that it is a 3.15 or newer image, the MPM
  daemon "owns" the hardware.  My recollection (and it has been a
while) is that the AD9361 is controlled out of MPM--so you
  can look there for hints about how to "dive below the covers".

On 2022-03-11 17:11, Craigs List wrote: > Hello, > > I need to do a direct read and write of the AD9361 registers on the E310. > I'd like to just modify one of the C/C++ examples. I have an existing > application that uses the AD9361 and need to document the E310 state. > > Frankly, I am having trouble getting a clean compile, using uhd::usrp or > multi_ursp.  I can get things via the tree, but I'd like to be able > to simply do a peek8 or poke8 and read a register. How to do so? > > As an example, I can see if the AGC mode is in fast or slow mode with > the tree (or the command line 'uhd_usrp_probe --tree .../agc/mode/value') > but I'd like to read the AGCConfigX registers (0xFA-FC) in their > entirety. > I'm sure it's possible, but I have been struggling with how. > > Thank you for any assistance you can provide. > > Kevin Tolliver > You haven't stated which system image you're running on the E310, but assuming that it is a 3.15 or newer image, the MPM   daemon "owns" the hardware.  My recollection (and it has been a while) is that the AD9361 is controlled out of MPM--so you   can look there for hints about how to "dive below the covers".