Ich arbeite mit Fudan FM33LG048 Low-Power-Mikrocontrollern. Trotz des Ausschaltens aller Taktgeber außer dem externen Niederfrequenzoszillator, des Deaktivierens aller Peripheriegeräte und des Eintritts in den Tiefschlafmodus zieht die MCU immer noch 63 uA. Das Datenblatt (leider nur auf Chinesisch verfügbar) besagt, dass es im Tiefschlafmodus nur 2uA ziehen muss.
Hat jemand mit diesen Mikrocontrollern gearbeitet und wenn ja weiß jemand woran das liegen kann?
BEARBEITEN:
void DeepSleep(void)
{
FL_PMU_SleepInitTypeDef LPM_InitStruct;
FL_RMU_PDR_Enable(RMU); // ??PDR
FL_RMU_BOR_Disable(RMU); // ??BOR 2uA
FL_GPIO_ALLPIN_LPM_MODE();
FL_CMU_SetSystemClockSource(FL_CMU_SYSTEM_CLK_SOURCE_XTLF);
//FL_CMU_SetSystemClockSource(FL_CMU_SYSTEM_CLK_SOURCE_RCLF);
//FL_CMU_RCLF_Disable();
FL_CMU_RCHF_Disable();
FL_CMU_XTHF_Disable();
FL_VREF_Disable(VREF); // ??VREF1p2
LPM_InitStruct.deepSleep = FL_PMU_SLEEP_MODE_DEEP;
LPM_InitStruct.powerMode =
FL_PMU_POWER_MODE_SLEEP_OR_DEEPSLEEP;
LPM_InitStruct.wakeupFrequency = FL_PMU_RCHF_WAKEUP_FREQ_8MHZ;
LPM_InitStruct.wakeupDelay = FL_PMU_WAKEUP_DELAY_2US;
LPM_InitStruct.LDOLowPowerMode = FL_PMU_LDO_LPM_ENABLE;
LPM_InitStruct.coreVoltageScaling = FL_ENABLE;
FL_PMU_Sleep_Init(PMU, &LPM_InitStruct);
}
Ich habe auch den externen 8-MHz-Oszillator entfernt:
An den JTAG-Header angeschlossene Pull-up-Widerstände waren zu klein. Nach dem Entfernen wurde der Stromverbrauch 1-2uA.
Syd
Nicot Ali
Lundin