I'm working with the AD-FCOMMS4-EBZ and am in the process of updating one of the iio-oscilloscope plug-ins for a program when I noticed that the 'DAC Buffer Output' control only works on the version packaged in the SD card. If I compile the git version the buffer never loads. Debugging it shows that process_dac_buffer_file() is failing here:
unsigned nb_channels = iio_device_get_channels_count(dds);
if(nb_channels <= 8)
nb_channels is always returning 8 for me. If I bypass this and go to allocate a DDS (DAC) buffer get a warning stating 'High-speed mode not enabled'. So it also looks like I'm not getting DMA capabilities for the DDS core.
Here are the main differences I see between the GIT produced osc binary, and the packaged version:
- GIT version links in libiio.so (also obtained via GIT), while the packaged version appears to static link it. The problem probably lies somewhere in here.
- The packaged osc plug-in is named FMComms2, while the GIT version is named FMComms2/3/4. I couldn't find a GIT branch that had the FMComms2 named plugin.
- Both version numbers are the same (v0.8) in the help screen.
My end goal is to collect via the ADC to a buffer, and then transmit that same buffer/data out the DAC. If you could point me to a branch that shows the DAC DMA working, or have a patch that fixes this I'd greatly appreciate it! If I'm doing something wrong on my end, please let me know! Thanks.
Linux linaro-ubuntu-desktop 3.12.0-55371-gf6fc62e #1231 SMP PREEMPT Thu Dec 12 16:11:35 CET 2013 armv7l armv7l armv7l GNU/Linux
ad9361 spi32766.0: ad9361_probe : AD9361 Rev 2 successfully initialized
cf_axi_dds_so 79024000.cf-ad9361-dds-core-lpc: Analog Devices CF_AXI_DDS_DDS MASTER (0x60061) at 0x79024000 mapped to 0xf003a000, probed DDS AD9361
adv7511-hdmi-snd adv7511_hdmi_snd.6: adv7511 <-> 75c00000.axi-spdif-tx mapping ok