Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit e5a947e

Browse files
makarenyafpistm
authored andcommittedJan 25, 2019
[USB] Fixed PMA buffers distribution for non USB OTG
Signed-off-by: Alexey Makarenya <[email protected]>
1 parent a9b959d commit e5a947e

File tree

1 file changed

+10
-4
lines changed

1 file changed

+10
-4
lines changed
 

‎cores/arduino/stm32/usb/usbd_conf.c

+10-4
Original file line numberDiff line numberDiff line change
@@ -481,10 +481,16 @@ USBD_StatusTypeDef USBD_LL_Init(USBD_HandleTypeDef *pdev)
481481
HAL_PCDEx_SetTxFiFo(&g_hpcd, 1, 0x40);
482482
HAL_PCDEx_SetTxFiFo(&g_hpcd, 2, 0x40);
483483
#else
484-
HAL_PCDEx_PMAConfig(&g_hpcd, 0x00 , PCD_SNG_BUF, 0x18);
485-
HAL_PCDEx_PMAConfig(&g_hpcd, 0x80 , PCD_SNG_BUF, 0x58);
486-
HAL_PCDEx_PMAConfig(&g_hpcd, 0x81 , PCD_SNG_BUF, 0x100);
487-
HAL_PCDEx_PMAConfig(&g_hpcd, 0x82 , PCD_SNG_BUF, 0x100);
484+
uint32_t pma_addr = 8 * 3; /* 3 endpoints, 8 bytes for each in PMA BTABLE */
485+
HAL_PCDEx_PMAConfig(&g_hpcd, 0x00, PCD_SNG_BUF, pma_addr);
486+
pma_addr += USB_MAX_EP0_SIZE;
487+
HAL_PCDEx_PMAConfig(&g_hpcd, 0x80, PCD_SNG_BUF, pma_addr);
488+
pma_addr += USB_MAX_EP0_SIZE;
489+
HAL_PCDEx_PMAConfig(&g_hpcd, 0x81, PCD_SNG_BUF, pma_addr);
490+
pma_addr += USB_FS_MAX_PACKET_SIZE;
491+
HAL_PCDEx_PMAConfig(&g_hpcd, 0x01, PCD_SNG_BUF, pma_addr);
492+
pma_addr += USB_FS_MAX_PACKET_SIZE;
493+
HAL_PCDEx_PMAConfig(&g_hpcd, 0x82, PCD_SNG_BUF, pma_addr);
488494
#endif
489495
#endif /* USE_USB_HS */
490496
return USBD_OK;

0 commit comments

Comments
 (0)
Please sign in to comment.