I am trying to use dma to transfer the data to zmod DAC provided by Digilent. The attached design is based on the tutorial (Hello ZMODs on the Eclypse Z7 - Digilent Projects). The board I am using is RFSoC 2*2. I am using the pynq image v2.7. I attached the diagram in Vivado, register_map before and after the code, and the python code in jupyter. I got the error ‘DMA not started’ after ‘dma.sendchannel.wait()’.
All the related topic about similar problem in the forum didn’t work for me.
How do I remove this error?
—python code —
from pynq import Overlay
from pynq import MMIO
from pynq import allocate
import numpy as np
ol = Overlay(‘design_1.bit’)
dma = ol.zmod_AWG.axi_dma_0
input_buffer = allocate(shape=(1,), dtype=np.uint32)
for i in range(1):
input_buffer[i] = i
print(input_buffer)
dma.sendchannel.transfer(input_buffer)
dma.sendchannel.wait()
—The error message in iPython console—
RuntimeError Traceback (most recent call last)
in
----> 1 dma.sendchannel.wait()
2 zmod_c.write(0x00+4,1) # start Zmod
/usr/local/share/pynq-venv/lib/python3.8/site-packages/pynq/lib/dma.py in wait(self)
203 “”"
204 if not self.running:
→ 205 raise RuntimeError(‘DMA channel not started’)
206 while True:
207 error = self._mmio.read(self._offset + 4)
RuntimeError: DMA channel not started
—vivado design—
—register_map before transfer—
—register_map after transfer—