Cypress Perform

Home > Design Support > Cypress Developer CommunityTM > Cypress Forums > USB Controllers > Short packet committed twice on multi dma manual channel.

Bookmark and Share
Cypress Developer CommunityTM
Forums | Videos | Blogs | Training | Rewards Program | Community Components



Short packet committed twice on multi dma manual channel.
Moderator:
RSKV

Post Reply
Follow this topic



Short packet committed twice on multi dma manual channel.

Gianni Valenti posted on 17 Sep 2012 12:55 AM PST
Member
3 Forum Posts

Hello,

We modified a bit the AN75779 application note example and we noticed this strange behavior on a GPIF state machine with a multi-channel manual-commit dma.

In order to avoid a call to CyU3PDmaMultiChannelSetWrapUp in the code, we replaced the INTR_CPU action in PARTIAL_BUF_IN_SCK* states with a COMMIT. The result is a double commit or at least a double DmaCallback call. The first time we get a partially filled buffer with status = 8 (and this is the expected behavior). The second time we get an empty buffer (count = 0) with an error status (status = 10).

Please notice that in PARTIAL_BUF_IN_SCK* states the "Repeat actions until next transition" checkbox is unchecked and we added a LOGIC_ONE transition to an IDLE state to be shure that the state machine does not remain in the PARTIAL_BUF_IN_SCK* state for more than a clock  cycle.

Could you suggest a solution? Is this a GPIF bug?

Thank you very much in advance.

Best regards,

Gianni




Re: Short packet committed twice on multi dma manual channel.

RSKV posted on 17 Sep 2012 01:56 AM PST
Cypress Employee
655 Forum Posts

Hi Gianni,

Right. We need to do IN_DATA action along with the COMMIT action. If we don't do IN_DATA then it will generate a Zero length packet after committing the short packet. But if you do IN_DATA then there is a chance that you may see extra data for one clock cycle. Anyways, you can try adding IN_DATA action where you are doing the COMMIT action.

I think the best way to handle short packet is through CyU3PDmaMultiChannelSetWrapUp API call only.

Thanks,

sai kirshna.



Re: Short packet committed twice on multi dma manual channel.

Gianni Valenti posted on 17 Sep 2012 08:28 AM PST
Member
3 Forum Posts

Thank you very much. It worked.

Regards,

Gianni



Re: Short packet committed twice on multi dma manual channel.

醉云入海 posted on 17 Jan 2013 07:52 PM PST

1 Forum Post

 if set IN_DATA with “no Write data into Data Sink” parameter is there no chance that  may see extra data for one clock cycle?






ALL CONTENT AND MATERIALS ON THIS SITE ARE PROVIDED "AS IS". CYPRESS SEMICONDUCTOR AND ITS RESPECTIVE SUPPLIERS MAKE NO REPRESENTATIONS ABOUT THE SUITABILITY OF THESE MATERIALS FOR ANY PURPOSE AND DISCLAIM ALL WARRANTIES AND CONDITIONS WITH REGARD TO THESE MATERIALS, INCLUDING BUT NOT LIMITED TO, ALL IMPLIED WARRANTIES AND CONDITIONS OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT OF ANY THIRD PARTY INTELLECTUAL PROPERTY RIGHT. NO LICENSE, EITHER EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE, IS GRANTED BY CYPRESS SEMICONDUCTOR. USE OF THE INFORMATION ON THIS SITE MAY REQUIRE A LICENSE FROM A THIRD PARTY, OR A LICENSE FROM CYPRESS SEMICONDUCTOR.

Content on this site may contain or be subject to specific guidelines or limitations on use. All postings and use of the content on this site are subject to the Terms and Conditions of the site; third parties using this content agree to abide by any limitations or guidelines and to comply with the Terms and Conditions of this site. Cypress Semiconductor and its suppliers reserve the right to make corrections, deletions, modifications, enhancements, improvements and other changes to the content and materials, its products, programs and services at any time or to move or discontinue any content, products, programs, or services without notice.