cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Highlighted
Visitor
Visitor
181 Views
Registered: ‎07-15-2020

Using VDMA MM2S channel encounter VDMAslverr

I want to make a embedded video process system on my Pynq-Z2 board with PYNQ framework driving. Hardware design overviewHardware design overview

I have an OV5640 camera as input. The driver hierarchy outputs a video stream fitting VDMA timing and send to axi_vdma_cam S2MM channel. This part works well. I want to do some image processing via another VDMA axi_vdma_proc. It transfer frames to image_processing hierarchy (which works well in other projects).

Now, I want to use PYNQ API to drive axi_vdma_proc but MM2S channel encounter an error and make itself halted.

PYNQ errorPYNQ error

It raise an error saying DMA channel not started, so I read register 0x00 and 0x04 to see what happened.

Capture.JPG

Register 0x00 value is 65674 and 0x04 is 86049, which means MM2S channel encounters an slave error on MM port. I can't figure out why.

0 Kudos
2 Replies
Highlighted
Contributor
Contributor
146 Views
Registered: ‎10-08-2018

Slave error means the VDMA core saw an error response to a transaction on the AXI bus, meaning either the SmartConnect or the Zynq generated one.  I would place an ILA on the diagram and use it to see what transaction is giving you that error.  Most likely, there is an address coming in that the SmartConnect does not expect.  What did you set the VDMA read/write addresses to?


Nathan Sullivan - Senior Embedded Software Engineer - www.designlinxhs.com
0 Kudos
Highlighted
Visitor
Visitor
129 Views
Registered: ‎07-15-2020

The read/write address is allocated by Linux OS,it should be good to access. I tried to tie the axi_vdma_cam's readchannel (S2MM) to axi_vdma_proc's writechannel (MM2S) and it worked well and no error. But I used writeframe() API then it raise VDMAslverr. So I think it may be a bug of PYNQ.

Tags (1)
0 Kudos