USB on STM32F746ZGT and zero length packet (ZLP) on endpoint 1. ZLP not transmitted.
Hello. I am using USB interface on STM32F746ZGT device (HAL lib, usb device mode). USB zero length packets are supproted and used by our protocol implementation on endpoint 1. It works on STM32L433, STM32F407, STM32F446 controllers. But it doesn't work on STM32F746ZGT. When I tried to send packet using HAL_PCD_EP_Transmit(), using non-zero length, it was sent. But if I tried to send HAL_PCD_EP_Transmit() zero length packet I saw nothing.
As I saw, it is presend some source code in file stm32f7xx_ll_usb.c:
if (ep->xfer_len == 0U)
{
USBx_INEP(epnum)->DIEPTSIZ &= ~(USB_OTG_DIEPTSIZ_PKTCNT);
USBx_INEP(epnum)->DIEPTSIZ |= (USB_OTG_DIEPTSIZ_PKTCNT & (1U << 19));
USBx_INEP(epnum)->DIEPTSIZ &= ~(USB_OTG_DIEPTSIZ_XFRSIZ);
}
But packet counter doesn't decremented by hardware. What sould I do to transmit ZLP?
