AnsweredAssumed Answered

STM32F207 USB OTG Bulk to Isochronous Conversion

Question asked by kern.chris on Apr 25, 2013
Latest reply on Sep 18, 2013 by rodrigues.luiz
Hello all. I have been searching for a while and hate to bother others, but I have come to a point where I need to request help. I really hope this has not yet been answered elsewhere, but if it has, please direct me to the appropriate web address. 

I am using the STM3220G-EVAL board with the STM32F207 uP. I utilized the VCP example as a framework to transfer HS USB data to and from the board. I have an off-chip RS485 USART that I had to use because of the speeds involved (8MBd), as well as one special feature it has (9-bit mode). At any rate, I have stripped everything I could out of the VCP example driver and have the transfer process moving at a decent rate (sorry, I am not sure what the actual bandwidth is; I only have our previous solution [RS485 PCI card] to compare speeds against), but at the faster USART rates (>2MBd), I see slower transfers compared to the PCI solution. 

I noticed that the VCP example is using bulk transfers. My understanding is that bulk transfers use alot of handshaking that guarantees data transmission, but since bulk transfers are allowed only every so often, this process can be slow. Isochronous transfers, on the other hand, are guaranteed to transfer at every predefined poll. This allows for guaranteed bandwidth, but no error-checking so data corruption is possible (although hopefully not frequent). 

I would like to try the isochronous method of data transfer, but just changing the EP type in the usbd_cdc_core.c file does nothing. In fact, the Linux system I am connecting to does not see the device as connected. 

Any tips/tricks/suggestions would be very helpful. I can post snippets of my source if that would help. I just didn't do that in this post b/c I did not want to flood the original post and put anyone off.   :)

Many thanks in advance. 

-- Chris

Outcomes