AnsweredAssumed Answered

USB Isochronous endpoint does not generate interrupt on F7

Question asked by ttahut on Dec 7, 2017
Latest reply on Dec 7, 2017 by Ben K

 I'm currently working on an STM32F7 design trying to get a composite device going on USB.  I have this same composite device working on an STM32F0 board and it implements the CDC and Audio USB device classes.  However, on the F7, I can not seem to get the Audio transfers to function.  Whatever I try, I can not make the F7 generate an interrupt when an isochronous transfer is supposed to take place- hence no data gets transferred.  I can see the isoc requests happen on a USB analyzer, but nothing happens on the F7.  

 

I have a sample project that I just put together that shows this on the STM32F769I Discovery board- attached.  It builds if you put it in the F7 Cube examples tree here: ......\STM32Cube_FW_F7_V1.8.0\Projects\STM32F769I-Discovery\Applications\USB_Device\

 

Some additional information:  I am seeing strange (strange to me anyways)  things in the USB TxFifo registers (viewing with the debugger) when things get initialized.  You can see my comments in the usbd_conf.c file at line 325.  When stepping through this code, I don't see the registers being initialized as I would expect.  This could be a debugger issue but it does not seem like one.  In addition, another thing has me confused: the Global USB registers are defined in the typedef USB_OTG_GlobalTypeDef in the file stm32f769xx.h.  With the exception of the GLPMCFG register, I can not find any other register between CID and HPTXFSIZ in any of the documentation.  I am primarily looking at the document RM0410.

This has me stumped- thanks for any help you can provide.

Tom

 

Attachments

Outcomes