Tengo una placa alimentada por batería con un nRF52832 y algunos periféricos para los que estoy escribiendo un nuevo firmware. Cuando se configura para dormir (NRF_POWER->SYSTEMOFF=1;), la placa sigue consumiendo demasiada corriente (alrededor de 2 mA, el nRF está clasificado para <1 uA cuando está en suspensión). El pcb en sí está bien, con el firmware con el que vino, el consumo de energía en modo de suspensión fue muy bajo. Al principio pensé que podría ser un problema de software o de configuración, pero supongo que es probable que los periféricos consuman demasiada energía.
Cuando la placa se configura en modo de suspensión, la mayoría de los periféricos internos del SoC se apagan, pero se conserva la configuración GPIO. Probé el consumo de energía con un código mínimo (la primera declaración en main() es dormir), por lo que todos los GPIO se configuraron con la configuración predeterminada (entrada con interruptor interno desconectado).
¿Necesito establecer los GPIO en una determinada configuración para evitar que desperdicien energía?
¿Es crítico para alguno de estos periféricos configurar los GPIO de una manera específica para evitar la pérdida de energía?
Esquemas: https://mbientlab.com/community/uploads/editor/f6/3zbfr2s08vsb.pdf
(Estaba publicando esta pregunta en los foros nórdicos, pero noté que el problema es probablemente más general sobre la configuración de GPIO. Enlace al tema )
Editar: medí la corriente con un alcance. No pude llegar al pin del regulador de voltaje (pequeño) pero medí en serie con la batería (coloqué una resistencia de 10 ohmios en serie con la batería y medí con sondas a través de la resistencia). 10 mV equivale a 1 mA, por lo que el osciloscopio muestra alrededor de 2,2 mA
Resulta que esto era bastante simple:
No hay pullups externos en las líneas CS de los circuitos integrados conectados a SPI, por lo que estaban flotando. Ponerlos en salida alta resolvió el problema.
señor de la tierra
johannes
johannes
chris stratton