Post Go back to editing

switching to DMA Mode from the boot SD card

Category: Software
Product Number: zcu102 + FMCDAQ2
Software Version: custom tcl supplied by Travis Collins


We need to boot from the SD card to DMA mode such that the signal to the DAQ2 is routed from our model in the FPGA. I have been given (Travis) the following instruction:

Ok, so basically you need to set the data source of the TX interface core to DMA. This is done through the DAC_DDS_SEL registers:

From iio_reg it would be: iio_reg axi-ad9144-hpc $((0x418 + i * 0x40)) 0x02

where i is the channel (0,1,2,3)

I have put the above in the file in the linux portion of the SD card in the /mnt folder. 

It doesn't work.

What am I doing wrong please?

many thanks


  • Just to back up a bit — you are trying to turn on the DMA path in the mux (which is connected to your IP, not actual DMA) or you are trying to use a DMA buffer?

  • Hi

    I have built a DUT in Simulink with MathWorks help.  They and me need the output of this to route to the DAQ2 such that the signals appear on the outputs of that card.   Travis (ADI) was helping us over a year ago, and gave the above instructions which don't appear to work.  If I run a MathWorks script, then I can switch to DMA mode (as opposed to DDS) and my signals appear.  However, as soon as I disconnect that PC (running MATLAB) it switches back to DDS after a delay.  I need to boot into DMA such that my signals are routed to the DAQ always without any MATLAB connection.  I believe there is a multiplexer switch controlled by registers that selects the DAQ2 signal source.  The question is really how do I control that switch within the BOOT process from a SD card exactly?

    Many thanks


  • What happens when you set those registers to 0x2 after you are back in DDS mode?


  • Hi Travis,

    When connected to Matlab, I can change between DDS and DMA as often as required by running a script.  I cannot see the exact workings of this at register level as the code is hidden.

    Commands at the Linux level or in the SD card do not appear to do anything (other that I can change the amplitude of the DDS signal) with regards to DDS and DMA switching.

    For a test with R&S, I need the PC disconnected hence the problem.

    Many thanks


  • You need to use the offset address of 0x80000000 otherwise you are accessing registers on the DAC and not on the FPGA.

     iio_reg axi-ad9144-hpc $((0x80000418 + i * 0x40)) 0x02


Reply Children