@@ -483,10 +483,16 @@ USBD_StatusTypeDef USBD_LL_Init(USBD_HandleTypeDef *pdev)
483483 HAL_PCDEx_SetTxFiFo (& g_hpcd , 1 , 0x40 );
484484 HAL_PCDEx_SetTxFiFo (& g_hpcd , 2 , 0x40 );
485485#else
486- HAL_PCDEx_PMAConfig (& g_hpcd , 0x00 , PCD_SNG_BUF , 0x18 );
487- HAL_PCDEx_PMAConfig (& g_hpcd , 0x80 , PCD_SNG_BUF , 0x58 );
488- HAL_PCDEx_PMAConfig (& g_hpcd , 0x81 , PCD_SNG_BUF , 0x100 );
489- HAL_PCDEx_PMAConfig (& g_hpcd , 0x82 , PCD_SNG_BUF , 0x100 );
486+ uint32_t pma_addr = 8 * 3 ; /* 3 endpoints, 8 bytes for each in PMA BTABLE */
487+ HAL_PCDEx_PMAConfig (& g_hpcd , 0x00 , PCD_SNG_BUF , pma_addr );
488+ pma_addr += USB_MAX_EP0_SIZE ;
489+ HAL_PCDEx_PMAConfig (& g_hpcd , 0x80 , PCD_SNG_BUF , pma_addr );
490+ pma_addr += USB_MAX_EP0_SIZE ;
491+ HAL_PCDEx_PMAConfig (& g_hpcd , 0x81 , PCD_SNG_BUF , pma_addr );
492+ pma_addr += USB_FS_MAX_PACKET_SIZE ;
493+ HAL_PCDEx_PMAConfig (& g_hpcd , 0x01 , PCD_SNG_BUF , pma_addr );
494+ pma_addr += USB_FS_MAX_PACKET_SIZE ;
495+ HAL_PCDEx_PMAConfig (& g_hpcd , 0x82 , PCD_SNG_BUF , pma_addr );
490496#endif
491497#endif /* USE_USB_HS */
492498 return USBD_OK ;
0 commit comments