cancel
Showing results for 
Search instead for 
Did you mean: 

USB OTG FS: 16ms interval Interrupt transfer don't work (EP2 IN) on NUCLEO-F446ZE

usbdes777
Visitor

Hello everyone,

I am using a NUCLEO-F446ZE board as a USB device. 

I use EP1(IN/OUT) for bulk transfer and EP2 IN for Interrupt transfer.

USB firmware side(STM32F446ZE), I send EP2 data as below.

i call  USBD_LL_Transmit(pdev, ep_addr, pbuf, size)  then calls

HAL_PCD_DataInStageCallback(PCD_HandleTypeDef *hpcd, uint8_t epnum).

everything up to this step seems fine and EP2 IN data is stored in FIFO.

However when PC(host side) polls for EP2 IN data,  PC can`t receive the data. 

I use WinUSB to poll EP2 IN data.

WinUsb_ReadPipe(winusbHandle, ENDPOINT_INT, interruptBuffer, sizeof(interruptBuffer), &bytesRead, NULL);

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

000058: Bulk or Interrupt Transfer (UP), 2025-05-07 09:50:43.1859061 +0.2135957. (1. Device: )

Status: 0xc0010000
Pipe Handle: 0x22737730 (Endpoint Address: 0x82)
Get 0x0 bytes from the device

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

and HAL_PCD_DataInStageCallback(PCD_HandleTypeDef *hpcd, uint8_t epnum) has not been called at all.

I dont know why when PC polls for EP2 IN data it`s not getting anything.

USB device seems not responding to PC polling, is it possible that my interrupt for detecting PC polling is not properly set?

when PC polls for EP IN data what kinds of data format or request does it send and how shall I detect this poll request from my usb device firmware?

thank you very much!

 

 

 

1 REPLY 1
FBL
ST Employee

Hi @usbdes777 

Would you attach minimum project to reproduce on my end?

To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.