USB DMA with Automatic Memory Management

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Anonymous
Not applicable
        I could not find any meaningful documentation for USB DMA w/ Automatic Memory Management. There is an example being posted on the forum, however it does not demonstrate any data transfers so it is mostly useless, some right questions has been asked on the forum but never answered. I wonder if this mode is not being used by anyone/ not working reliably. The main issue is I do not understand handshake for data transfer. I see that USB_EP[epNumber].apiEpState flag is set in the Enpoint ISR, But when exactly the interrupt happens - is it when data arrives in USB stack internal buffer or when DMA is finished transferring the data to the user buffer defined by USB_ReadOutEP call, if it the former then how to detect when DMA is complete. When the automatic mode is enabled USB_EP_DMA_Done_isr.c and USB_EP17_DMA_DOne_SR.c is being generated, but what is EP17? Thanks.   
0 Likes
5 Replies
ETRO_SSN583
Level 9
Level 9
250 likes received 100 sign-ins 5 likes given

Not sure if anything here -

   

 

   

    

   

          

   

http://www.cypress.com/?rID=37793     AN52705     Getting Started with DMA

   

http://www.cypress.com/?rID=82680     AN84810     PSoC® 3 and PSoC 5LP Advanced DMA Topics

   

http://www.cypress.com/?rID=44335     AN61102 PSoC® 3 and PSoC 5LP - ADC Data Buffering Using DMA

   

http://video.cypress.com/video-library/search/dma/     Videos on DMA

   

https://www.youtube.com/results?search_query=dma+psoc Videos on DMA (some overlap)

   

 

   

http://www.cypress.com/?rID=70131     AN82072 - PSoC® 3 and PSoC 5LP USB General Data Transfer with Standard HID Drivers

   

http://www.cypress.com/?rID=39553     AN56377 - PSoC® 3 and PSoC 5LP - Introduction to Implementing USB Data Transfers

   

http://www.cypress.com/?rID=39404     AN57473 - USB HID Basics with PSoC® 3 and PSoC 5LP

   

http://www.cypress.com/?rID=39327     AN57294 - USB 101: An Introduction to Universal Serial Bus 2.0

   

http://www.cypress.com/?rID=40103     AN58726 - PSoC® 3 / PSoC 5LP USB HID Intermediate (with Keyboard and Composite Device)

   

http://www.element14.com/community/docs/DOC-48266/l/cypress-ce60246--application-note-on-usbuart-for...     USBUART

   

 

   

 

   

Regards, Dana.

0 Likes
Anonymous
Not applicable

 Thanks for your reply, I have looked through above application notes and videos, but I still don't have answers for my questions. 

0 Likes
himam_31
Employee
Employee
50 likes received 25 likes received 10 likes received

 Hi,

   

 

   

You need to check the EP_ISR corresponding to the endpoint for checking is the transfer is complete or not. The ISR will get triggered only when data is loaded into SRAM, in case of OUT transfer.

   

 

   

Thanks,

   

Hima

0 Likes
Anonymous
Not applicable

The MEMORY_MANAGEMENT error caused the blue screen and in turn the computer shut itself down to prevent further damage to your computer which in turn caused this error to happen. As the log says "This error could be caused if the system stopped responding, crashed, or lost power unexpectedly" proves that the sole reason of this error was from the MEMORY_MANAGEMENT error and is not the MEMORY_MANAGEMENT error log itself. 

   

I am Having MEMORY_MANAGEMENT  Problem in my PC.

0 Likes
Anonymous
Not applicable

Here’s the mail I got recently for my problem

   

I FIGURED IT OUT!!! I had the exact same problem where it would crash every time I shutdown/restarted the computer. It was extremely frustrating. And for whatever reason windows 10 wouldn't record and error report and it would stall at 0% when collecting information. I have an acer travelmate 4670 (I know...a little dated...but she runs like a dream with her SSD). Anyways, it wouldn't happen in safe mode but it would still happen if I performed a clean start (shut down extra services in msconfig). So I figured it was a hardware issues as opposed to a software issue which would have resolved with a clean start. So I went to device manager and right-click disabled every extra piece of hardware. Hurray!! It worked! Then I started re-enabling hardware until I found the culprit. For me it turned out to be the conexant 56k modem. I probably could have found a more compatible driver on the internet but I haven't used dial-up for the better part of a decade so I just left it disabled and haven't had a problem since.

   

Hope this helps!

   

p.s. Enabling a single piece of hardware and restarting my computer each time was fairly tedious. It dawned on my afterwards that it would have been much faster to enable half the hardware each time.

   

Ex:

   

Disabled hardware 1-20...restart...it works!

   

Enable hardware 1-10...restart...it still works!...not hardware 1-10 giving me trouble

   

Enable hardware 11-15...restart..problem is back...must be somewhere between 11-15...but hardware 16-20 is good.

   

That would have been much faster then restarting the computer EACH TIME! What was I thinking using a linear search algorithm!

   

Or otherwise try this: http://www.deskdecode.com/memory_management-0x0000001a/

0 Likes