Actualmente estoy trabajando con un microcontrolador barebone Atemga328p implementado dentro de un diseño alimentado por batería. Me he dado cuenta de que no tengo ni idea de cómo se clasifican los microcontroladores en cuanto al consumo de energía.
En referencia a la hoja de datos que contiene información sobre el Atmega328p ( http://www.atmel.com/images/Atmel-8271-8-bit-AVR-Microcontroller-ATmega48A-48PA-88A-88PA-168A-168PA-328-328P_datasheet_Complete .pdf ), establece que el consumo de energía de un modo de operación de 1Mhz, 1.8V, 25C consume 0.2 mAs de corriente. Tengo varias preguntas con respecto a este número:
Debido a que estos microcontroladores pueden operar a 8Mhz y 16Mhz, ¿el consumo de energía es una función lineal de la frecuencia? es decir, ¿operar a 8 MHz consume 0,2 mA * 8 = 1,6 mA de corriente?
¿Cuál es la relación entre el voltaje y el consumo de energía? Entiendo que la potencia de CC está definida por W = VI, sin embargo, si tuviera que operar a 3,3 V, ¿no consumiría menos corriente? Sin embargo, no estoy seguro de si esa es una suposición correcta.
Supongo que la potencia de salida enumerada también excluye cualquier potencia adicional que el chip esté suministrando a E/S (es decir, suministrar 10 mA a un LED aumentaría la cantidad total de corriente que ingresa al microcontrolador). Sin embargo, ¿ciertas operaciones dentro del microcontrolador hacen que consuma más energía? Específicamente estoy interesado en el caso de implementar comunicaciones seriales como SPI. Suponiendo que estoy tratando de usar SPI sin un dispositivo esclavo conectado (por lo tanto, no hay forma de perder energía externa), ¿el microcontrolador seguiría usando más energía?
Agradezco cualquier ayuda que se proporcionará!
Debido a que estos microcontroladores pueden operar a 8Mhz y 16Mhz, ¿el consumo de energía es una función lineal de la frecuencia? es decir, ¿operar a 8 MHz consume 0,2 mA * 8 = 1,6 mA de corriente?
En primer lugar, el 328 puede funcionar a muchas más velocidades; su velocidad de reloj máxima es de 20MHz, y se admite al menos hasta 32kHz, posiblemente más baja. Cualquier cosa intermedia también es válida.
En cuanto al consumo de energía, eche un vistazo a la hoja de datos , en particular, el gráfico en la sección 33.1.1 (Características típicas del ATmega328 -> Corriente de suministro activo):
Como puede ver, la corriente aumenta aproximadamente linealmente con la velocidad del reloj. En mi experiencia, hay un componente "estático" en el consumo de energía que se agrega al consumo de energía relativo a la velocidad, y esta parte puede dominar a velocidades de reloj muy bajas. Pero esto dependerá de la tensión de alimentación y de los periféricos habilitados.
¿Cuál es la relación entre el voltaje y el consumo de energía? Entiendo que la potencia de CC está definida por W = VI, sin embargo, si tuviera que operar a 3,3 V, ¿no consumiría menos corriente? Sin embargo, no estoy seguro de si esa es una suposición correcta.
Los circuitos integrados basados en transistores generalmente consumen menos corriente a voltajes más bajos; podría aproximarlos como una carga resistiva (que no es del todo precisa pero lo suficientemente justa para una estimación). Nuevamente, la hoja de datos tiene un gráfico útil (misma sección):
Como puede ver, la relación es incluso más fuerte que la lineal, tiene una ligera curva cuadrática. A 5V consume alrededor de 1mA, para una potencia de 5mW. A la mitad de eso, 2,5 V, son solo 0,4 mA, lo que da como resultado una potencia de 1 mW. ¡El bajo voltaje es imprescindible si la baja potencia es su objetivo!
Supongo que la potencia de salida enumerada también excluye cualquier potencia adicional que el chip esté suministrando a E/S (es decir, suministrar 10 mA a un LED aumentaría la cantidad total de corriente que ingresa al microcontrolador).
Correcto.
Sin embargo, ¿ciertas operaciones dentro del microcontrolador hacen que consuma más energía? Específicamente estoy interesado en el caso de implementar comunicaciones seriales como SPI.
Sí. Los AVR, incluido el 328, pueden desactivar muchos de sus periféricos internos, como SPI, UART, ADC, temporizadores, etc. Desactivarlos reducirá su consumo de energía. La pregunta es por cuánto; en mi experiencia, esos periféricos consumen una energía insignificante en comparación con la CPU principal a 5 V/20 MHz, pero a velocidades de reloj más bajas o cuando la CPU duerme mucho, la energía periférica puede ser significativa. Para bajo consumo, deshabilite todo lo que no necesite.
Una nota sobre las hojas de datos: tienden a presentar los mejores escenarios. Sospecho que las cifras y los gráficos de consumo de energía en la hoja de datos están con todos los periféricos deshabilitados.
La información en la hoja de datos es útil, pero si desea aprovechar al máximo su potencia, debe realizar experimentos y mediciones. Medir el consumo de corriente:
En general, para optimizar la potencia de su proyecto 328, siga estos pasos:
Realmente depende de cuánto trabajo tenga que hacer su 328. A 20 MHz/5 V, un 328 activo consume alrededor de 20 mA = 100 mW, pero a baja velocidad de reloj y voltaje, 1 mW es muy factible. Gran diferencia.
Cuando se opera con voltajes bajos, cerca de la tolerancia del 328, es posible que también desee considerar cómo lidiar con la caída de voltaje de la batería. Discutir la capacidad de la batería y la caída de voltaje está más allá de esta respuesta, pero este video de EEVblog es un excelente punto de partida.
Descubrí que el equipo de medición para mediciones de tan alta resolución es demasiado costoso para mi presupuesto de desarrollo y prohibitivamente avanzado para mis habilidades de bricolaje.
En cambio, descubrí que cargar un capacitor grande y alimentar el circuito con eso y ver cuánto tiempo antes de que se apague, es una buena manera de medir las diferencias relativas en las configuraciones de hardware.
Si su software está organizado de tal manera que en su mayoría hace las mismas cosas con las mismas entradas, puede probar fácilmente y ver cuánto se ve afectado el consumo de energía al cambiar ciertas configuraciones de hardware.
Puede variar el voltaje de carga y la capacitancia para obtener un dominio de medición dentro de límites aceptables. A veces es demasiado esperar para ver si tomará 30 segundos o 25 en una determinada configuración, si 0,3 frente a 0,25 podría haber sido suficiente. Caballos para cursos y todo eso.
No es demasiado difícil estimar la energía contenida en un capacitor cargado a un cierto voltaje, por lo que también se puede estimar/calcular el consumo total de energía.
Hay más que un simple microcontrolador en el diseño integrado, por lo que si el consumo de energía de la MCU no es significativo en comparación con el consumo total de energía del diseño integrado, es bueno centrarse en otros periféricos para implementar estrategias de ahorro de energía.
Algunas técnicas que he enumerado aquí en mi artículo para el diseño de sistemas integrados de bajo consumo.
wesley lee
Izzo
wesley lee
vladimir cravero