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.
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:
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:
Después de todo tengo la siguiente imagen:
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:
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:
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 :)))
0 votos
si bueno si tu sonda es de alta Z y obviamente funciona, entonces sip, esto debería ser correcto.
0 votos
@jusaca, tengo una sola conexión groud al punto VDD de la resistencia.
0 votos
¿Tu analizador está flotando? ¿Y no hay otros dispositivos en el +3V3 que consuman corrientes (de fuga)?
3 votos
Lo que me gustaría ver es el completo esquema, que contiene todo que se conecta al uC y a las redes VO y +3V3.
2 votos
¿Cuántos periféricos se activan cuando se entra en el modo de suspensión? ¿Están deshabilitados todos los relojes innecesarios? No conozco el STM32, pero cuando el consumo de corriente no es el esperado, suele ser algún ajuste del MCU/CPU que se ha perdido. Si tu configuración de medición actual funciona con el MCU AVR no hay razón para que no funcione con el STM32. Yo buscaría la solución en la configuración de la CPU.
0 votos
@Bimpelrekkie se pudo ver por este llink: st.com/resource/es/schematic_pack/nucleo-32pins_sch.zip en ambos: PDF y proyecto Altium
0 votos
@PeterKarlsen, esto es lo que estoy tratando de hacer ahora: escarbar en las hojas de datos para la solución. Supongo que tienes razón. Sin embargo tengo que decir que los casos de AVR y STM32 son comparables: El AVR era mi PCB, ahora es la placa Nucleo de ST con muchos componentes extra. Y lo segundo: la configuración del STM32 es mucho más compleja que la del AVR, así que es mucho más probable que se me escape algo. Así que sigo indagando en la documentación...
1 votos
¿Te has dado cuenta de que todos los números de la hoja de datos están listados para Vcore=1,5V y 1,8V, mientras que estás alimentando el MCU con 3,3V?
0 votos
@Ale..chenski ¡Lo hice! Sin embargo, la misma hoja de datos en la página 54 tiene gráficos de corriente vs VDD que es casi lineal (que es extraño por la física y por mi experiencia con AVRs donde VDD influyó dramáticamente en la corriente). Todavía no estoy muy familiarizado con la estructura del núcleo del STM32, así que sospecho que el voltaje del núcleo puede ser reducido internamente.
1 votos
Prueba a poner todos los pines no utilizados como entradas y a añadir resistencias pull-down si no lo has hecho ya.
0 votos
@JohnBirckhead Pensé que la selección "GPIO_Analog" es la opción correcta para este propósito. Sin embargo he probado lo que has sugerido - nada ha cambiado.
1 votos
@RomanMatveev He visto en algunos MCUs (no en este en concreto) que la corriente de reposo es mucho mayor si la circuitería de depuración está activa. Así que si ejecutas tu código con el depurador activo entonces no podrás conseguir una corriente de reposo muy baja. En algunos casos, grabar una versión no depurada del programa en la memoria flash, desconectar el depurador y luego hacer un ciclo de alimentación me permitió llegar a los estados de bajo consumo deseados.
0 votos
Como menciona Vladimir Cravero más abajo, ¿cómo se mide la diferencia de tensión? ¿Utiliza una sonda activa totalmente diferencial?
0 votos
@Ale..chenski Es totalmente diferencial. Para asegurarme he probado a alimentar el Nucleo desde el powerbank con el mismo resultado
1 votos
Es una pena, significa que algo más se está comiendo los microamperios extra. Usted reed para comprobar realmente todas sus condiciones de comercialización en las que anunciaron estos números de potencia.