Dado que estos microcontroladores pueden funcionar a 8Mhz y 16Mhz, ¿el consumo de energía es una función lineal de la frecuencia? es decir, ¿el funcionamiento a 8Mhz consume 0,2mA * 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 menos. Todo lo que esté en medio también es válido.
En cuanto al consumo de energía, eche un vistazo al hoja de datos en particular el gráfico de la sección 33.1.1 (Características típicas del ATmega328 -> Corriente de alimentación activa):
Como puedes ver, la corriente aumenta aproximadamente de forma lineal con la velocidad de reloj. En mi experiencia, hay un componente "estático" en el consumo de energía que se añade 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 la tensión y el consumo de energía? Entiendo que la potencia de CC se define por W = VI, sin embargo, si yo fuera a operar a 3,3V, ¿no tiraría menos corriente? Sin embargo, no estoy seguro de que sea una suposición correcta.
Los circuitos integrados basados en transistores suelen consumir menos corriente a voltajes más bajos; podrías aproximarlos como una carga resistiva (lo cual no es del todo exacto, pero es suficiente para una estimación). De nuevo, la hoja de datos tiene un gráfico útil (en la misma sección):
Como puedes ver, la relación es incluso más fuerte que lineal, tiene una ligera curva cuadrática. A 5V consume aproximadamente 1mA, para una potencia de 5mW. A la mitad, 2,5V, sólo consume 0,4mA, lo que supone una potencia de 1mW. El bajo voltaje es imprescindible si tu objetivo es la baja potencia.
Supongo que la potencia listada también excluye cualquier potencia adicional que el chip esté suministrando a las E/S (es decir, suministrar 10mA a un LED aumentaría la cantidad total de corriente que entra en el microcontrolador).
Correcto.
Sin embargo, ¿algunas operaciones dentro del microcontrolador hacen que consuma más energía? Me interesa específicamente el caso de la implementación de comunicaciones en serie 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 cuestión es cuánto; en mi experiencia esos periféricos consumen una energía insignificante comparada con la CPU principal a 5V/20MHz, pero a velocidades de reloj más bajas o cuando la CPU duerme mucho, la energía de los periféricos puede ser significativa. Para un consumo bajo, desactiva todo lo que no necesites.
Una nota sobre las hojas de datos: suelen presentar los mejores escenarios. Sospecho que las cifras de consumo de energía y los gráficos de la hoja de datos son con todos los periféricos desactivados.
La información de la hoja de datos es útil, pero si quieres sacar el máximo partido a tu potencia, tienes que hacer experimentos y mediciones. Mide el consumo de corriente:
- A diferentes velocidades de reloj
- A diferentes VCC (¡observa la VCC mínima para una velocidad de reloj determinada!)
- Con cada uno de los periféricos desactivados o activados
- En los distintos modos de reposo
- Utilización de las distintas fuentes de reloj
En general, para optimizar su proyecto 328 de potencia, siga estos pasos:
- Optimice su código. Cuantos menos ciclos necesite para realizar su trabajo, menos energía necesitará.
- Haz funcionar el 328 a la menor velocidad de reloj que puedas.
- Haz funcionar el 328 al menor voltaje que puedas (teniendo en cuenta la velocidad del reloj).
- Deja que el 328 duerma cuando no tenga nada que hacer.
- Desactiva todos los periféricos que no necesites.
- Intenta utilizar el oscilador RC interno de 128kHz si es posible.
Realmente depende de la cantidad de trabajo que tenga su 328. A 20MHz/5V, un 328 activo consume unos 20mA = 100mW, pero a baja velocidad de reloj y voltaje, 1mW es muy factible. La diferencia es grande.
Cuando se trabaja con voltajes bajos, cercanos a la tolerancia del 328, también hay que tener en cuenta cómo tratar la caída de tensión 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 vídeo de EEVblog es un excelente punto de partida.
2 votos
hay muchos periféricos que se pueden desactivar para reducir el consumo de energía, por lo que tener SPI activado o desactivado tendrá un impacto en el consumo de corriente. Hay muchos recursos en línea sobre cómo hacer que los atmega328s funcionen con baja energía.
0 votos
@WesleyLee Ya veo. ¿Cómo podría diseñar esto exactamente? ¿O sólo se convertirá en prueba y error?
1 votos
Si es la cifra real lo que te interesa, creo que tendrás que averiguarlo empíricamente. Esto podría ser una lectura interesante: gammon.com.au/power
2 votos
Por cierto, la corriente consumida es aproximadamente lineal con la frecuencia. En los modos de muy baja potencia esto podría no ser cierto en absoluto, porque el micro está en un estado inactivo y su frecuencia de funcionamiento normal apenas afecta al consumo.