Tx stream with no-OS on AD9361

Hello there,


We have a AD9361/Zynq-7000 setup, where we are driving the AD9361 with an application based on no-OS (baremetal) that is running on one of the ARM cores of Zynq.

We would like to continuously stream data to dac, preferably using dma, but we are not sure how.

In particular, we are trying to generate our transmit data and transmit it at the same time for a relatively long time. For example, we want to generate 5ms worth of IQ samples and put it in buffer1, dma content of buffer1 to the dac, while this 5ms is being transmitted, we generate the next 5ms worth of IQ data and put it in buffer2, and would like to push buffer2 to dma and dac, and so on. We expect the transmit data to be continuous without any gaps, ie contents of buffer2 is transmitted right after contents of buffer1. We do not know how to do this

Please note that we already are able to, as an example, transmit one piece of data (a single buffer) in cyclic or non-cyclic mode with no-OS, by controlling following registers AXI_DMAC_REG_CTRL, AXI_DMAC_REG_TRANSFER_ID, AXI_DMAC_REG_START_TRANSFER, AXI_DMAC_REG_FLAGS, as well as dac control registers. However, we want to to transmit several buffers by pushing the buffers one after another to dma/dac, and have the dac transmit them continuously.

Thank you for your help in advance.