AD9361 Transceiver Help with FastLock Profile

27 views (last 30 days)
I am trying to use the fastlock profiles on the 9361 for my development. I have the E310 system object, but it cannot re-tune frequency fast enough to support what I need to do. Is there a way to use the existing library (noOs.so) in order to do what I need to do? The system object itself looks pretty locked down as far as visibility goes, so I don't really have a reference other than the Analog Devices help and/or github.
The alternative is re-write the gpp to 9361 SPI bus interface, but I would much rather add to existing as opposed to write from scratch
Thank you

Accepted Answer

Neil MacEwen
Neil MacEwen on 7 Jun 2019
Hi William,
I'm afraid it's not possible to use the fastlock functionality in the current E310 system objects, and you are correct the system object in this case is pretty locked down. It's a function of our implementation approach. For exactly this reason, from 18b, our Xilinx Zynq-Based Radio support (which is based on the same zynq+ad9361 hardware as the E310) is based on Analog Devices' libiio infrastructure, which makes it all a lot more open. In this case, you can access the IIO kernel drivers directly, if you wish. We hope to move the E310 to the same framework, but we are not there yet.
I'm sorry I can't be more help at this stage.
Neil
  4 Comments
William Katzianer
William Katzianer on 11 Jul 2019
Edited: William Katzianer on 12 Jul 2019
Neil
I guess I wasn't very clear looking back at my follow-on question. I would like to use the existing sdcard image, but modify it to work with the 9361 driver that I will eventually build. I tried creating a new BSP in Xilinx that consisted of the same .hdf and .bit from the FPGA export. But when I went to run the 9361 example, it failed with "illegal instruction" error.
I'm trying to incorporate the 9361 noOS repo into my project, and write a custom block that handles 9361 traffic to also include the fast lock profile mechanism.
Edit: I have a current Mathworks image currently on the E310 (312). I want to use that with a custom block that uses the 9361 noOS api library
Edit 2: I successfully compiled the 9361 api using the platform_linux driver. I've also incorporated it into a System Object (that passes through to the 9361 driver). However, my problem now is the ad9361_init() function fails to complete due to a calibration timeout.
I have no idea how to debug this issue. My clock rates are:
rx: 982016000, 245504000, 122752000, 61376000, 30688000, 30688000
tx: 982016000, 122752000, 61376000, 30688000, 30688000, 30688000
RF Bandwidth is: 22 MHz
I need to use a sampling rate of 30.688 MHz for my design.
I modified the "util.h" to include the debug commands in order to see the analog devices chip print out information. And up to the calibration check it seems like everything is OK.
Any advice?
Thanks again
Neil MacEwen
Neil MacEwen on 15 Jul 2019
Hi William,
I'm afraid it's likely you're heading down a path you might not get much success with. Our E310 images have a very custom FPGA image which is tightly intertwined with the software we ship, so I don't think you will manage. It was to remove the closed design that we made the shift to libiio for the Zynq Radio support package, there is some info here. Like I said earlier, we are working on moving the E310 to the same hardware and software images, but I can't promise when that will be available. If you contact us via tech support we can provide more info.
Kind regards,
Neil

Sign in to comment.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!