В продукте, требующем минимального потребления энергии, мы используем STM32L496 в качестве MCU. В последние дни мы пытались снизить энергопотребление всего устройства. Мы заметили, что сразу после включения широкой шины с использованием функции HAL на карте USB, потребляемый ток увеличивается на ~ 4 мА. (при вызове этой функции прилагается карта USB).
Ожидается ли это текущее увеличение? Что-то не так в приведенной ниже последовательности инициализации интерфейса SDMMC и карты USB? Пожалуйста, помогите нам проанализировать проблему и снизить потребляемый ток, если не ожидается его увеличения.
Детали:
MCU : STM32L496
Core supply : External SMPS (1.2V).
Core frequency : 20 MHz
Конфигурация контактов SDMMC:
Все выводы данных, команды и контакты синхронизации находятся в режиме двухтактной функции с альтернативной функцией без внутреннего подтягивания. Внешняя клеммная колодка (ECLAMP2410P) используется между интерфейсом SDMMC и разъемом карты USB.
Код инициализации SDMMC:
static void MX_SDMMC1_SD_Init(void)
{
hsd1.Instance = SDMMC1;
hsd1.Init.ClockEdge = SDMMC_CLOCK_EDGE_RISING;
hsd1.Init.ClockBypass = SDMMC_CLOCK_BYPASS_DISABLE;
hsd1.Init.ClockPowerSave = SDMMC_CLOCK_POWER_SAVE_DISABLE;
hsd1.Init.BusWide = SDMMC_BUS_WIDE_1B;
hsd1.Init.HardwareFlowControl = SDMMC_HARDWARE_FLOW_CONTROL_DISABLE;
hsd1.Init.ClockDiv = 0;
if (HAL_SD_Init(&hsd1) != HAL_OK)
{
_Error_Handler(__FILE__, __LINE__);
}
if (HAL_SD_ConfigWideBusOperation(&hsd1, SDMMC_BUS_WIDE_4B) != HAL_OK)
{
_Error_Handler(__FILE__, __LINE__);
}
}