4 votos

¿Cómo depurar el consumo de corriente con la placa STM32 Nucleo?

Estoy tratando de configurar una placa de desarrollo nuclear STM32L011 para que consuma unos 600 uA de corriente más o menos. Utiliza un STM32L011K4 .

La hoja de datos dice que esto debería ser posible si conduzco el MCU a 8 MHz y lo mantengo en modo de espera la mayor parte del tiempo.

enter image description here

Así que espero que la MCU consuma alrededor de 1,3 mA o así en el modo de ejecución. Mi caso exacto no está en la lista - hay ejemplos para 16 MHz HSI y 8 MHz HSE. Creo que 1,3 mA es una buena estimación.

En el modo de espera:

enter image description here

Así que es la misma historia: mirando a 16 MHz HSE y 8 MHz HSE podría esperar menos de 500 uA de consumo con 8 MHz HSE en el sueño.

Para probar la corriente puse una resistencia de 100 Ohm a través de un agujero en el puente de energía como este:

enter image description here

Después de todo tengo la siguiente imagen:

enter image description here

Como pueden ver, tengo 1,7 mA en el modo de sueño y 2,2 mA en el modo de ejecución. Lo cual es mucho más de lo que esperaba.

Ya he puesto todos los GPIO's sin usar en modo GPIO_Analógico ya que espero que esto minimice la corriente de fuga.

He revisado el esquema para verificar que el VDD sólo alimenta a la MCU (parece que esto es cierto).

Intenté frecuencias mucho más bajas y pude bajar el consumo de corriente a 400 uA a 625 kHz que tampoco coincide con la hoja de datos...

Bueno, tengo que decir que estoy confundido. Los controladores AVR (ATmega48PA) se comportaron como se esperaba en uno de mis dispositivos anteriores.

¿Hay algo que me falta?

La configuración de mi reloj:

enter image description here

ACTUALIZACIÓN

Después de que cambié el ajuste del PLL a Ninguno llegué a un menor consumo: 1,1 mA para el sueño y 2 mA para el modo de ejecución:

enter image description here

0 votos

¿A qué impedancia de entrada está ajustado tu osciloscopio? Las opciones típicas son 50? y high-Z, y aquí realmente quieres la high-Z.

1 votos

¿Cómo has sondeado la derivación? ¿Quizás tu tierra está desplazada por algunas corrientes adicionales?

1 votos

@MarcusMüller Yo no llamaría 50Ohms a la palabra típica pero en mi caso la sonda marcaba como 10 MOhms para la opción 10:1 (que es mi caso). Mi osciloscopio no proporciona ninguna optin para poner la entrada en modo 50 Ohms por lo que creo que realmente está en modo de alta impedancia. Al menos eso espero :)))

3voto

bitsmack Puntos 5415

Sospecho que la corriente inesperada está siendo utilizada por los relojes periféricos.

El código generado por STM32CubeMX habilita un montón de relojes durante la inicialización y los deja funcionando. Incluso si un reloj es necesario para configurar un periférico, ese reloj a menudo puede ser desactivado después (suponiendo que no necesitas ese periférico, por supuesto!)

Revisa tu código de inicialización, anotando qué relojes se activan. Estoy usando otra familia de STM32L, no tu STM32L0, pero los comandos deberían ser similares. Busca algo como LL_AHB1_GRP1_EnableClock() o tal vez RCC_APB1PeriphClockCmd() etc.

Probablemente merezca la pena hacer una búsqueda de texto para AHB y APB, para asegurarse de que no se pierde ninguno. Si excluyes las bibliotecas STM de tu búsqueda, los resultados no deberían ser abrumadores.

Además, hay algunos relojes que se activan automáticamente. Por ejemplo, si su WDT está activo, forzará un reloj para usarlo como base de tiempo (probablemente el reloj LSI).

Hay una lista de consumo de corriente de los periféricos en la página 61 de su hoja de datos vinculada.

3voto

Sammo034 Puntos 26

Estás midiendo la caída de tensión a través de la resistencia con una sonda de un solo extremo, conectando así a tierra un lado.

Suponiendo que su osciloscopio esté correctamente conectado a tierra, si está utilizando una fuente que no es perfectamente flotante, probablemente esté midiendo el consumo de corriente de la placa, más la fuga en la fuente. Muchas fuentes "aisladas" todavía utilizan/requieren una resistencia entre la tensión negativa de salida y el contacto de tierra de la entrada.

Prueba a poner el clip de tierra en el lado de VDD, y la punta de la sonda en el lado de la MCU. De esta manera, usted todavía tiene fugas, pero no en la resistencia.

0 votos

Esta es una buena. Puede utilizar dos canales y restarlos mediante la función del osciloscopio... O comprobar la diferencia con un DMM, en un régimen estable conocido, para comprobar la sanidad de los datos del alcance.

0 votos

He intentado alimentar la placa con un powerbank. Así que esto es seguro que mi configuración aislada y la sonda - diferencial real. El mismo resultado :(

0 votos

@RomanMatveev ¿estás completamente seguro de que tu configuración está aislada? ¿quizás tu placa tiene una conexión usb con algún dispositivo conectado a tierra/con fugas? Si has utilizado una sonda diferencial verdadera, el problema está en otro lugar.

0voto

Alan Williams Puntos 11

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X