Cambiando los fusibles del cargador de arranque - basado en Arduino ATmega32U4

2

Me gustaría desarrollar una placa Arduino con el MCU ATmega32U4 pero en un modo de bajo consumo. He estado buscando y sé que tengo que cambiar los fusibles para evitar el restablecimiento de la caída de tensión (BOR) cuando la batería está por debajo de un cierto voltaje. También tendría que cambiar los bits CLK para dividir el cristal de 16 MHz en un modo de frecuencia más baja para consumir menos energía.

Encontré esta página web para cambiar los fusibles.

Simplemente no sé cómo hacer esto (qué programa usar - FLIP ?? y cómo proceder) y si al hacer este cambio de cargador de arranque, la placa aún sería reconocida en el programa Arduino 1.0 (secciones de tablas, como una variante de Leonardo 8MHz por ejemplo). Tengo los pines 6x2 ISP accesibles.

Por cierto, tengo una placa con el ATmega32U4 y tiene capacitores de 0.1uF y un cristal de 16MHz (+ 2x 22pF). También tengo el programador ATMEL mkII con el conector ISP 3x2 MISO / MOSI / CLK / RESET / VCC / GND.

¿Alguien sabría cómo ayudarme?

    
pregunta Electronics_Guy

3 respuestas

1

El programa a usar sería avrdude .

Lo que necesita cambiar no es tanto el cargador de arranque (aunque si desea construir una placa compatible con Arduino, deberá cargar un cargador de arranque compatible con Arduino) como los bits de fusible.

Los detalles de estos (por ejemplo, la velocidad de reloj, la configuración de reducción de color) generalmente no son relevantes para la compatibilidad con Arduino, pero el enfoque más limpio es hacer una entrada personalizada en boards.txt para su tablero, clonando por ejemplo. una entrada de Leonardo pero ajustando los bits de fusible a sus preferencias. Eso le permite configurar esos bits de fusible mediante el comando "Grabar cargador de arranque" en Arduino.

    
respondido por el microtherion
1

Lo más fácil sería usar ATMEL mkII y avrdude. La página web ya contiene los argumentos avrdude . avrdude se puede encontrar en la carpeta de la aplicación arduino (bajo mac /Applications/Arduino.app/Contents/Resources/Java/hardware/tools/avr/bin ).

Correrías algo como

avrdude -v -patmega32u4 -cavrispmkII -B10 -Pusb -U lfuse:w:0x5e:m -U hfuse:w:0x99:m -U efuse:w:0xf3:m 

Sin embargo, las siguientes cosas cambiarán cuando configure el reloj de división en 8 internamente (CKDIV8).

Primero, el gestor de arranque arduino probablemente ya no funcionará. En su lugar, puede programar la placa utilizando el Atmel mkII en lugar del USB de la placa.

En segundo lugar, piensa que delay() tardará 8 veces más. Entonces, delay(1000) no tomará 1 segundo, sino 8 segundos.

Para solucionar esto, necesita crear un nuevo board . Simplemente vaya a su carpeta de inicio arduino ~/arduino o my documents\arduino . Cree una carpeta llamada hardware, si aún no existe. Dentro de esta carpeta, cree una carpeta llamada, por ejemplo, %código%. En esta carpeta, cree un archivo de texto llamado atmega32u4 , con el siguiente contenido

atmega32u4.name=ATMega32u4  2Mhz
atmega32u4.upload.protocol=avrispmkII
atmega32u4.upload.maximum_size=28672
atmega32u4.build.mcu=atmega32u4
atmega32u4.build.f_cpu=2000000L
atmega32u4.build.core=arduino
atmega32u4.build.variant=leonardo

A continuación, cree un nombre de carpeta boards.txt . Copie el variants aquí, que se puede encontrar en la carpeta de la aplicación arduino leonardo .

En el IDE de Arduino, ahora debería poder seleccionar /Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/variants/leonardo - > Tools - > Boards .

    
respondido por el Gerben
0

Ya he probado tu solución. Comencé por programar un cargador de arranque Leonardo normal en el programa ArduinoV1. También he probado un parpadeo para asegurarme de que estaba funcionando. El consumo de corriente de la placa a 3.3V Vcc es de 16 mA (sin USB conectado) y de 19 mA con USB conectado. Quería reducir la potencia reduciendo la frecuencia y el voltaje mínimo limitados por BOR. Luego utilicé el AVRDUDE a través de la línea de comando y conecté mi tablero ATmega32u4 con los pines Atmel Mkii 3x2. El PC me preguntó "¿Desea que se cambie este fusible?" Respondí No y el estado estaba bien, pero el consumo era como antes. Luego intenté responder Sí, pero esperé más de un minuto de programación y no sucedió nada. Mire mi archivo de registro: enlace

    
respondido por el Electronics_Guy

Lea otras preguntas en las etiquetas