Shield programador chips AVR usando Arduino UNO

Buenas a todos.

Hace tiempo que no subo nada, y aprovechando que me han pedido un favor aprovecho para subir un pequeño shield para programar chips AVR.

Hará ya unos años me fabriqué un shield para un Arduino UNO que me permite programar los chips atmega328p que utilizo en mis circuitos. Este shield lo hice a mano, sin usar plancha ni nada por eso me quedo chulo pero con unas pistas bastante feas:

x2

x1

Este es el que llamo versión 1. Funciona perfectamente y lleva programados ya unos cuantos chips. Pero un amigo me ha pedido que le hiciera uno así que lo he rediseñado para fabricar uno nuevo.

Esta versión 2, no la he llevado a cabo por un fallo técnico. Lo diseñé de tal forma que utiliza también un zócalo zif, pero no tenía uno a mano y al comprarlo por internet compre uno de 28 pines ancho. Así que he tenido que modificarlo para colocar el zif ancho.

shieldprog00

x3

El esquema es el siguiente:

PROG

Básicamente es un shield para un Arduino UNO en el que se conecta tal y como indica el sketch ArduinoISP: bus spi del programador y del chip esclavo conectado, pin 10 del
Arduino UNO al reset del chip esclavo y los leds de indicación ("corazón", programando y error). El reset se pone en pull-up mediante una resistencia de 10k.

El cristal de cuarzo es "casi" opcional, si vamos a utilizar frecuencias inferiores a los 16MHz, por ejemplo usando el reloj RC interno del chip a 1MHz, por eso en la versión 3 coloque unos jumpers para desconectarlo, aunque posiblemente no se quiten nunca.

Adicionalmente, en el lateral, hay un puerto donde están todas las señales necesarias. Este puerto permite que podamos usar cables para programar otros chips en una protoboard o para añadir una placa externa con mas zócalos.

Para aquellos que les interese aquí dejo el diseño en proteus.

shieldprog01.zip (20.7 KB)

shieldprog02.zip (21.0 KB)

shieldprog03.zip (30.0 KB)

1 Like

Como no solo de atmega328p vive el hombre, y de vez en cuando, programo attiny84/85 y atMega1284p me fabriqué un extensor para el programador:

Aquí no he usado zócalos ZIF, simplemente zócalos de los que suelo llamar malos, de los que si te descuidas se sale el chip con facilidad. El grande es para el atmega1284p (40 pines), el mediano para el attiny84 (14 pines) y el pequeño para el attiny85 (8 pines).

Además de estos chips se pueden programar todos aquellos que sean compatibles a niveles de pin.

Para usarlo tan solo hay que conectar al shield y ya está. Aparte queda hacer la configuración en el IDE para que se puedan programar los chips.

extension

Aquí os dejo el esquema en proteus:

shieldprogEXT.zip (27.9 KB)

1 Like

Ahora voy a daros una explicación de como usarlo con el IDE 1.8.x.

El primero proceso consiste en subir al Arduino Uno el sketch ArduinoISP que vamos a encontrar en los ejemplos. Lo subiremos como un sketch normal.

El siguiente proceso es seleccionar el programador en el menú Herramientas->Programador y elegir Arduino as ISP.

El siguiente proceso que recomiendo hacer es quemar el bootloader. Esta opción la encontraremos en el menú "Herramientas".

quemarboot

¿Por qué lo recomiendo?. Si bien cuando subimos el sketch usando un programador el bootloader tiende a desaparecer dado que por defecto se realiza un borrado del chip, ocurre que cuando se quema el bootloader se queman también los FUSES, que son unos "fusibles" especiales que permite configurar cosas como el reloj que se usa, perro guardian, reset, etc.

Esto quizás parezca no ser muy importante, pero si no se queman los FUSES el microcontrolador no va a funcionar.

Ya tenemos el bootloader/fuses grabados, ya estamos listos para programar el sketch en el microcontrolador. No debemos pulsar el botón grabar, se tiene que usar la opción del menu "Programa->Subir usando programador".

asisp3

Si usamos el botón de grabar el IDE lo que hará será subir el programa al Arduino Programador y no al chip que queremos grabar.

Y nada mas de momento.

A partir de aquí dudas y sugerencias. En todo caso, discutir con @Surbyte si esto es un proyecto o documentación, por que casi encaja en las dos secciones.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.