usb on u5a5 hs work well with correct VBVALEXTOEN/VBVALOVAL set
This commit is contained in:
@@ -217,7 +217,7 @@ function(family_configure_common TARGET RTOS)
|
||||
if (NOT TARGET segger_rtt)
|
||||
add_library(segger_rtt STATIC ${TOP}/lib/SEGGER_RTT/RTT/SEGGER_RTT.c)
|
||||
target_include_directories(segger_rtt PUBLIC ${TOP}/lib/SEGGER_RTT/RTT)
|
||||
target_compile_definitions(segger_rtt PUBLIC SEGGER_RTT_MODE_DEFAULT=SEGGER_RTT_MODE_BLOCK_IF_FIFO_FULL)
|
||||
#target_compile_definitions(segger_rtt PUBLIC SEGGER_RTT_MODE_DEFAULT=SEGGER_RTT_MODE_BLOCK_IF_FIFO_FULL)
|
||||
endif()
|
||||
target_link_libraries(${TARGET} PUBLIC segger_rtt)
|
||||
endif ()
|
||||
|
@@ -6,5 +6,6 @@ set(LD_FILE_GNU ${CMAKE_CURRENT_LIST_DIR}/STM32U5A5ZJTXQ_FLASH.ld)
|
||||
function(update_board TARGET)
|
||||
target_compile_definitions(${TARGET} PUBLIC
|
||||
STM32U5A5xx
|
||||
HSE_VALUE=16000000UL
|
||||
)
|
||||
endfunction()
|
||||
|
@@ -38,8 +38,8 @@ extern "C"
|
||||
#define LED_STATE_ON 1
|
||||
|
||||
// BUTTON
|
||||
#define BUTTON_PORT GPIOA
|
||||
#define BUTTON_PIN GPIO_PIN_0
|
||||
#define BUTTON_PORT GPIOC
|
||||
#define BUTTON_PIN GPIO_PIN_13
|
||||
#define BUTTON_STATE_ACTIVE 1
|
||||
|
||||
// UART Enable for STLink VCOM
|
||||
@@ -101,6 +101,8 @@ static void SystemClock_Config(void) {
|
||||
HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_4);
|
||||
|
||||
// USB Clock
|
||||
__HAL_RCC_SYSCFG_CLK_ENABLE();
|
||||
|
||||
RCC_PeriphCLKInitTypeDef PeriphClkInit = {0};
|
||||
PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_USBPHY;
|
||||
PeriphClkInit.UsbPhyClockSelection = RCC_USBPHYCLKSOURCE_HSE;
|
||||
|
@@ -1,5 +1,6 @@
|
||||
CFLAGS += \
|
||||
-DSTM32U5A5xx \
|
||||
-DHSE_VALUE=16000000UL \
|
||||
|
||||
# All source paths should be relative to the top level.
|
||||
LD_FILE = ${BOARD_PATH}/STM32U5A5ZJTXQ_FLASH.ld
|
||||
|
@@ -124,7 +124,7 @@ void board_init(void) {
|
||||
|
||||
HAL_UART_Init(&UartHandle);
|
||||
|
||||
/* Configure USB FS GPIOs */
|
||||
/* Configure USB GPIOs */
|
||||
/* Configure DM DP Pins */
|
||||
GPIO_InitStruct.Pin = (GPIO_PIN_11 | GPIO_PIN_12);
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
||||
@@ -153,6 +153,12 @@ void board_init(void) {
|
||||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
|
||||
|
||||
/* Enable USB power on Pwrctrl CR2 register */
|
||||
HAL_PWREx_EnableVddUSB();
|
||||
|
||||
/* USB clock enable */
|
||||
__HAL_RCC_USB_OTG_FS_CLK_ENABLE();
|
||||
|
||||
// Enable VBUS sense (B device) via pin PA9
|
||||
USB_OTG_FS->GCCFG |= USB_OTG_GCCFG_VBDEN;
|
||||
#else
|
||||
@@ -164,11 +170,6 @@ void board_init(void) {
|
||||
USB_OTG_FS->GOTGCTL |= USB_OTG_GOTGCTL_BVALOVAL;
|
||||
#endif // vbus sense
|
||||
|
||||
/* Enable USB power on Pwrctrl CR2 register */
|
||||
HAL_PWREx_EnableVddUSB();
|
||||
|
||||
/* USB clock enable */
|
||||
__HAL_RCC_USB_OTG_FS_CLK_ENABLE();
|
||||
#else
|
||||
// STM59x/Ax/Fx/Gx only have 1 USB HS port
|
||||
|
||||
@@ -177,15 +178,7 @@ void board_init(void) {
|
||||
NVIC_SetPriority(OTG_HS_IRQn, configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY);
|
||||
#endif
|
||||
|
||||
// Disable VBUS sense (B device)
|
||||
USB_OTG_HS->GCCFG &= ~USB_OTG_GCCFG_VBDEN;
|
||||
|
||||
// B-peripheral session valid override enable
|
||||
USB_OTG_HS->GOTGCTL |= USB_OTG_GOTGCTL_BVALOEN;
|
||||
USB_OTG_HS->GOTGCTL |= USB_OTG_GOTGCTL_BVALOVAL;
|
||||
|
||||
/* USB clock enable */
|
||||
__HAL_RCC_SYSCFG_CLK_ENABLE();
|
||||
__HAL_RCC_USB_OTG_HS_CLK_ENABLE();
|
||||
__HAL_RCC_USBPHYC_CLK_ENABLE();
|
||||
|
||||
@@ -195,6 +188,13 @@ void board_init(void) {
|
||||
|
||||
/*Configuring the SYSCFG registers OTG_HS PHY*/
|
||||
HAL_SYSCFG_EnableOTGPHY(SYSCFG_OTG_HS_PHY_ENABLE);
|
||||
|
||||
// Disable VBUS sense (B device)
|
||||
USB_OTG_HS->GCCFG &= ~USB_OTG_GCCFG_VBDEN;
|
||||
|
||||
// B-peripheral session valid override enable
|
||||
USB_OTG_HS->GCCFG |= USB_OTG_GCCFG_VBVALEXTOEN;
|
||||
USB_OTG_HS->GCCFG |= USB_OTG_GCCFG_VBVALOVAL;
|
||||
#endif // USB_OTG_FS
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user