Operando un ATmega328P-PU a 2.5V

Para mi trabajo, tuve la tarea de crear una placa para interactuar con un dispositivo de 2,5 V que hemos fabricado. Entonces, para simplificar las cosas, decidí conectarlo con un ATmega328P-PU que ejecuta el firmware Arduino a 2.5V. Todas las especificaciones dicen que el chip tiene un voltaje de operación de 1.8V-5.5V, así que no me molesté en probar ningún circuito a 2.5V hasta hoy. Eso fue un error tonto.

Estaba probando la configuración de bajo voltaje ejecutando el boceto de parpadeo simple en una placa de prueba y descubrí que dejaría de funcionar justo por debajo de 2.7V. La fuente de alimentación también mostraría un consumo de corriente de 0 mA en lugar de los 2 mA que mostraba antes. Revisé el pin con un DMM y el LED se desconectó para confirmar que no había salida del pin.

Después de investigar un poco, encontré un sitio que parecía decir que, a voltajes más bajos, necesita funcionar a una velocidad más lenta. Entonces, quemé el cargador de arranque para que el chip usara el oscilador interno de 8Mhz. Sin embargo, todavía se apaga por debajo de 2.7V.

¿Cómo puedo obtener acceso a estos voltajes más bajos? Supongo que esto tiene que ver con alguna configuración de fusible interno, pero no puedo encontrar nada al respecto. Estoy bien dentro del voltaje de funcionamiento tanto para los pines de E/S como para el riel de suministro. Sé que puede funcionar a 2,5 V, ya que Arduino BT puede tener un voltaje de entrada tan bajo como 2,5 V. ¿Hay algo que estoy olvidando?

Respuestas (2)

Con un voltaje de suministro nominal de 2,5 V, debe limitar la frecuencia del reloj a quizás 7 MHz (dependiendo de la tolerancia de su suministro de 2,5 V). No soy un aficionado a Arduio, pero creo que al menos algunas encarnaciones funcionan a 16 MHz. Mira esto :

http://www.atmel.com/images/Atmel-8271-8-bit-AVR-Microcontroller-ATmega48A-48PA-88A-88PA-168A-168PA-328-328P_datasheet_Complete.pdf

Como notó, el BOD debe configurarse en un valor apropiado o deshabilitarse (y si está deshabilitado, probablemente desee usar un chip supervisor externo).

http://www.atmel.com/images/Atmel-8271-8-bit-AVR-Microcontroller-ATmega48A-48PA-88A-88PA-168A-168PA-328-328P_datasheet_Complete.pdf

Tenga en cuenta que con la configuración 0x06 (la única configuración posible en la que está habilitado el BOD), no se garantiza que el BOD funcione correctamente, incluso con una frecuencia de reloj de 4 MHz, porque no estará necesariamente activo hasta que el voltaje de alimentación caiga a 1,7 V.

Por lo tanto, si desea un diseño confiable, debe deshabilitar el BOD y usar un chip supervisor externo, como el ADM811, y limitar su frecuencia de reloj al voltaje más bajo posible del circuito de supervisión.

http://www.analog.com/static/imported-files/data_sheets/ADM811_812.pdf

En el caso anterior, son 2,25 V, por lo que alrededor de 6-7 MHz (o menos) sería seguro.

¡Gracias por eso! ¡La gráfica! Encontré originalmente cortado antes de 2.5V. Sin embargo, mis cálculos establecen la frecuencia máxima del reloj en alrededor de 8,67 MHz. Entonces, creo que debería estar bien. Aún así, lo tendré en cuenta para futuros diseños. No estoy seguro de que la detección de apagones sea una necesidad, ya que nuestro producto es solo una demostración simple. Eso es especialmente cierto dado que nuestro dispositivo ni siquiera se enciende por debajo de 2.2V.
No veo cuál es el punto de tener un BOD que no está garantizado que funcione. Es como si tuvieran la intención de que funcionara, pero descubrieron en la caracterización que no era lo suficientemente bueno, pero lo dejaron en los documentos de todos modos. PD: sí, 8,67 MHz es correcto para un mínimo de 2,5 V. V = ((f-4)/6)* 0.9+1.8 pero a 8.00MHz su tolerancia en 2.5V no debe ser peor que -4% en el extremo inferior.
No estoy seguro de lo que quieres decir. El BOD todavía funciona reiniciando el Arduino a 1.8V. Es el dispositivo que estamos mostrando que no enciende por debajo de 2.2V. Pero, es por eso que tenemos baterías intercambiables. No es ideal, pero necesitábamos una demostración rápida.
@Seth_L En el peor de los casos, no lo reinicia hasta 1.7V (Tabla 29-17). No se garantiza que Atmega funcione (en cualquier frecuencia) por debajo de 1.800V. Es probable que funcione, a temperatura ambiente, etc. para su demostración, pero como ingeniero, debo quejarme por este tipo de cosas.
Lo sé, no es ideal en absoluto. Me encogí cuando calculé la duración de mi batería. Pero funciona para una demostración simple que me enseñó algunas cosas que no sabía. La próxima revisión será menos digna de vergüenza.

Me di cuenta de que, en mi investigación, vi a personas mencionar la detección de apagones. Lo busqué y este parece ser el problema.

http://openenergymonitor.org/emon/node/342

EDITAR: Para aquellos curiosos, cambie los fusibles extendidos a 0x06 para bajar el voltaje de caída a 1.8V.