STM32L4 系列USB口打開後STOP2模式下有較大功耗問題的解決

        STM32L4系列MUC,如果開了USB功能,會打開USB的電源,此電源在系統進入STOP2模式後,依舊存在,並且有100uA以上的功耗。因此,需要在進入STOP2前,關閉此電源,STOP2喚醒後,在打開此電源。

 

相關接口如下:

 

/* USB PINS DeInit */
void STM32_USB_GPIO_DeInit(void)
{
	HAL_GPIO_DeInit(GPIOA, GPIO_PIN_12|GPIO_PIN_11);

	/* Disable VDDUSB */
	if (__HAL_RCC_PWR_IS_CLK_DISABLED())
		__HAL_RCC_PWR_CLK_ENABLE();
	HAL_PWREx_DisableVddUSB();
}

/* USB PINS Init*/
void STM32_USB_GPIO_Init(void)
{
	GPIO_InitTypeDef GPIO_InitStruct = {0};

	__HAL_RCC_GPIOA_CLK_ENABLE();

	/* USB_OTG_FS GPIO Configuration
	PA12 ------> USB_OTG_FS_DP
	PA11 ------> USB_OTG_FS_DM
	*/
	GPIO_InitStruct.Pin = GPIO_PIN_12|GPIO_PIN_11;
	GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
	GPIO_InitStruct.Pull = GPIO_NOPULL;
	GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
	GPIO_InitStruct.Alternate = GPIO_AF10_OTG_FS;
	HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);

	/* Enable VDDUSB */
	if(__HAL_RCC_PWR_IS_CLK_DISABLED())
		__HAL_RCC_PWR_CLK_ENABLE();
	HAL_PWREx_EnableVddUSB();
}

進入STOP2前,USB相關引腳DeInit,關閉USB供電,STOP2喚醒後,調用Init,配置USB引腳並打開USB供電。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章