I am selecting cyclic when I use the libiio function iio_device_create_buffer(...).
With fairly recent software (pulled last week) I am seeing that when cyclic is disabled there is an erroneous CW before and after my waveform buffer.
I've attached screenshots of the behavior. In this test I am transmitting an identical LFM waveform on all channels. I captured data on the scope by trigging on the leading edge of channel 1 when enabled and disabled. I "enable" by writing the data to the device buffer and pushing it. I "disable" by destroying the iio device buffer for TX. I believe this should toggle TX to the DDS, however I am setting the scale value of all DDS units and channels to 0.0 before I perform my test (just in case that's what I am observing). FYI, you can see the 10 MHz LFM chirp in the FFT channel (red) at the top of the scope "PreVu".
I then added a bartlett/triangular window and repeated the test and noticed that I don't observe the junk data (see *_retry.png). I suspect that because the head and tail of the waveform are zero-valued, there isn't any junk data.
To be sure I also queried the DMA register map and it appears that the cyclic flag is off (0x40c):
|root@analog:~# cat /sys/kernel/debug/regmap/7c420000.dma/registers|
Is this normal behaviour or am I missing something?