Tabla de contenido:

Cómo deshabilitar JTAG antes de cargar Atmegas 40DIP con Arduino IDE Mightycore: 4 pasos
Cómo deshabilitar JTAG antes de cargar Atmegas 40DIP con Arduino IDE Mightycore: 4 pasos

Video: Cómo deshabilitar JTAG antes de cargar Atmegas 40DIP con Arduino IDE Mightycore: 4 pasos

Video: Cómo deshabilitar JTAG antes de cargar Atmegas 40DIP con Arduino IDE Mightycore: 4 pasos
Video: ✅ ARDUINO a fondo... no te lo pierdas!!! | J_RPM 2024, Noviembre
Anonim
Cómo deshabilitar JTAG antes de cargar Atmegas 40DIP con Arduino IDE Mightycore
Cómo deshabilitar JTAG antes de cargar Atmegas 40DIP con Arduino IDE Mightycore

Recientemente pude usar atmegas 40 DIP para controlar sistemas industriales porque este tipo de microcontrolador suministra muchas E / S analógicas o digitales, por lo que no necesita expansores.

Los atmegas32 / 644p / 1284p incluyen una forma de descargar el boceto que crea que se llama "JTAG" (ver

en.wikipedia.org/wiki/JTAG para más explicaciones). Si usa Arduino IDE o LDmicro (IEC 61-131), los bocetos se descargan mediante el puerto SPI y los pines JTAG (4 pines: PC2 (D18) PC3 (D19) PC4 (D20) PC5 (D21) no están disponibles para nada Entonces tienes que deshabilitar JTAG en tu programa.

Con arduino IDE solo tiene que agregar 3 líneas de código en la sección de configuración como esta:

uint8_t tmp = 1 << JTD;

MCUCR = tmp;

MCUCR = tmp;

El método de dos líneas MCUCR.

Con LDmicro no pude hacer nada.

Para evitar estos problemas, realicé el arranque después de la manipulación del registro MCUCR de mis atmegas con Arduino IDE en Mightycore. Una forma de quemar los fusibles con un JTAG desactivado.

Paso 1: El cálculo de fusibles de su circuito 40DIP:

El cálculo de fusibles de su circuito 40DIP
El cálculo de fusibles de su circuito 40DIP
El cálculo de fusibles de su circuito 40DIP
El cálculo de fusibles de su circuito 40DIP
El cálculo de fusibles de su circuito 40DIP
El cálculo de fusibles de su circuito 40DIP

Ir al sitio web:

eleccelerator.com/fusecalc/fusecalc.php?chi…

Elija el circuito bueno (atmega1284p en mi ejemplo pero de la misma manera con otros atmegas 40 DIP) y mire "U hfuse: w: 0x99: m" y desmarque JTAGEN para que dé "U hfuse: w: 0xD9: m". Tenga en cuenta el valor 0xD9.

Paso 2: busque el archivo Boards.txt en el directorio de Mightycore:

Buscando el archivo Boards.txt en el directorio Mightycore
Buscando el archivo Boards.txt en el directorio Mightycore
Buscando el archivo Boards.txt en el directorio Mightycore
Buscando el archivo Boards.txt en el directorio Mightycore

En su PC, busque el directorio Mightycore. Para mí en C: / usuario / yo mismo / AppData / Local / Arduino15 / packages / Mightycore / Harware / avr / 2.0.0 / boards.txt.

Paso 3: Modifique Boards.txt y Bootload con Mightycore:

Modifique Boards.txt y Bootload con Mightycore
Modifique Boards.txt y Bootload con Mightycore

Eche un vistazo al bloque de frecuencia de reloj del atmega1284p con Notepad ++.

Modifique cada fusible alto como "1284.menu.clock.16MHz_external.bootloader.high_fuses = 0xd6" a "1284.menu.clock.16MHz_external.bootloader.high_fuses = 0xd9" (0xd9 el valor anterior que tenía que recordar). Guárdelo.

Entonces solo tienes que seguir el método de carga de arranque dado en

www.instructables.com/id/Arduino-18x-Clone…

Eso es todo.

Paso 4: Conclusión:

Ahora gana 4 E / S y no tiene que realizar ninguna manipulación de registro en sus bocetos. También puede volver atrás y habilitar JTAGEN y reiniciar la carga una vez más.

Gracias a todos los interesantes tutoriales en la web que me dieron algunas claves para tener éxito en este proyecto.

Recomendado: