I am used two bulk endpoints for USB communication: one for Rx and one for Tx.
The Rx worked in DMA transparent mode well, however I want to change it to RNDIS mode (not General RNDIS).
I sending 150Kbyte per transfer. The data is transferred, but I don't get the interrupt and the completed BD doesn't appears in the completed queue,
note that after the transfer the BD removed from the Rx queue.
The host sends zero byte packet, so why I don't get the interrupt?
Why the BD doesn't moved to the completed queue in the same way it does in transparent or GRNDIS way?
not sure if this is your problem, but you might want to see my thread from 14 august
AM335x USB Host CppiDmaModeSet() function for setting Per EndPoint RNDIS mode does not match TRM
looking at the code in question, the most likely failure would be in trying to use RNDIS IS on an Rx EndPoint.
Basically starterware 02_00_00_06 and 02_00_00_07 never touch the Rx RNDIS per endpoint registers so it remain in the default Transparent state.
However, the starterware code does correctly handle the "global" setting for RNDIS IS corrrectly, so this may not be your issue.
All content and materials on this site are provided "as is". TI and its respective suppliers and providers of content 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. TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with respect to these materials. No license, either express or implied, by estoppel or otherwise, is granted by TI. Use of the information on this site may require a license from a third party, or a license from TI.
TI is a global semiconductor design and manufacturing company. Innovate with 100,000+ analog ICs andembedded processors, along with software, tools and the industry’s largest sales/support staff.