mirror of
https://github.com/micropython/micropython.git
synced 2026-01-05 03:30:14 +01:00
stm32: Add support for USB on G0 MCUs.
Signed-off-by: Damien George <damien@micropython.org>
This commit is contained in:
@@ -50,6 +50,15 @@
|
||||
|
||||
#if MICROPY_HW_ENABLE_USB
|
||||
|
||||
#if !MICROPY_HW_USB_IS_MULTI_OTG
|
||||
#define USE_USB_CNTR_SOFM (1)
|
||||
#elif defined(STM32G0)
|
||||
#define USE_USB_CNTR_SOFM (1)
|
||||
#define USB USB_DRD_FS
|
||||
#else
|
||||
#define USE_USB_CNTR_SOFM (0)
|
||||
#endif
|
||||
|
||||
// CDC control commands
|
||||
#define CDC_SEND_ENCAPSULATED_COMMAND 0x00
|
||||
#define CDC_GET_ENCAPSULATED_RESPONSE 0x01
|
||||
@@ -152,7 +161,7 @@ int8_t usbd_cdc_control(usbd_cdc_state_t *cdc_in, uint8_t cmd, uint8_t *pbuf, ui
|
||||
// configure its serial port (in most cases to disable local echo)
|
||||
cdc->connect_state = USBD_CDC_CONNECT_STATE_CONNECTING;
|
||||
usbd_cdc_connect_tx_timer = 8; // wait for 8 SOF IRQs
|
||||
#if !MICROPY_HW_USB_IS_MULTI_OTG
|
||||
#if USE_USB_CNTR_SOFM
|
||||
USB->CNTR |= USB_CNTR_SOFM;
|
||||
#else
|
||||
PCD_HandleTypeDef *hpcd = cdc->base.usbd->pdev->pData;
|
||||
@@ -263,7 +272,7 @@ void HAL_PCD_SOFCallback(PCD_HandleTypeDef *hpcd) {
|
||||
--usbd_cdc_connect_tx_timer;
|
||||
} else {
|
||||
usbd_cdc_msc_hid_state_t *usbd = ((USBD_HandleTypeDef *)hpcd->pData)->pClassData;
|
||||
#if !MICROPY_HW_USB_IS_MULTI_OTG
|
||||
#if USE_USB_CNTR_SOFM
|
||||
USB->CNTR &= ~USB_CNTR_SOFM;
|
||||
#else
|
||||
hpcd->Instance->GINTMSK &= ~USB_OTG_GINTMSK_SOFM;
|
||||
|
||||
Reference in New Issue
Block a user