Página principal

Desbloquear ATMEGA88

xsetaseta@gmail.com

Mi primera experiencia con el ATMEGA88 no fue demasiado exitosa, a la segunda programación el microcontrolador no respondía.
Yo que había venido de los PIC con su programación mediante la conexión serie con el TE-20S, nunca me había fallado. No entendía como una mala programación hubiese estropeado el microcontrolador. Mirando por internet observé que les pasaba a algunas personas, resulta que la configuración del Fuse High Byte, bit SPIEN programación mediante serie había cambiado, resulta que en teoría no se puede cambiar mediante un programador serie, pero en la práctica había ocurrido. La única forma de recuperarlo era mediante un programador en paralelo, cosa que yo no disponía.
Me acorde de la madre de los ingenieros de ATMEL y deje el ATMEGA88 en un cajón olvidado.
Después de varios meses haciendo circuitos con otro ATMEGA88 exitosamente, a pesar de que últimamente ya no detectaba la identificación del dispositivo, encontré algo en internet.
 http://mightyohm.com/blog/2008/09/arduino-based-avr-high-voltage-programmer/
Un programador en paralelo con doble tensión , +5V y +12V, mediante un Arduino.
La gente cuando tiene un reto crece y piensa el doble, aún me sorprende la gente con su ingenio.
Yo no tengo un Arduino, es barato y muy fácil de programar, me lo comprare algún día de estos, pero ahora mismo no lo tengo.
El camino estaba abierto y seguro que alguien hubiese pensado hacer el programador sin utilizar el Arduino, y lo encontré.
http://denki.world3.net/avr_rescue.html
Es un sencillo programador paralelo utilizando un ATMEGA8.
Dicho y hecho me puse a montar el circuito en una Breadboard para ver si funcionaba.

No utilice ningún cristal para el circuito, en teoría debería funcionar.
Una vez aplicadas las dos alimentaciones y pulsado el pulsador, el LED se apago, espere a que según las instrucciones a que el LED se encendiese después de 1 segundo, pero nada no se encendía. Repetí el proceso otra vez, pero esta vez esperé mucho mas, 16 segundos, y el LED se encendió. Resulta que utilizando el oscilador interno del ATMEGA8  (1MHz) el proceso se ralentiza en comparación de utilizar el cristal de 16Mhz.
Ahora era la prueba definitiva, probar si se había desbloqueado la programación serie.
Tras insertarlo en mi programador BSD, el ATMEGA88 respondía perfectamente.
Aunque en el esquema figure el cristal de cuarzo no hace falta si no se quiere.

La traducción de la página original mediante google.

Firmware AVR-rescate-0.2.zip

                    ATmega48/88/168 rescate fusible incorrecto
Durante el desarrollo de la Retro adaptador he conseguido bloquear accidentalmente un par de ATmega168s programando el
poco fusible que deshabilita RESET, lo que deshabilitar la descarga de programas en serie también. El regulador se adjuntó a
una matriz de teclado que haya causado el programador accidentalmente conjunto.
Para recuperar un AVR y restaurar la interfaz de programación SPI tiene que utilizar el modo de programación de alto voltaje. Por
desgracia los programadores HV no son muy comunes, por lo que decidí buscar en la toma de una.
Mientras que todavía planea hacer una programminger plenamente en el largo plazo, por ahora he adaptado Arduino base HV
Keyzer programador de Jeff utilizar un Atmega8 ordinaria. El diseño es bastante simple y fácil de hacer a bordo de la matriz o
placa universal incluso. También trabaja con la familia ATmega48/88/168.
El diseño puede ser adaptado fácilmente para rescatar a casi cualquier AVR otros. Todo lo que se necesita es el código del
programa de actualización de los valores fusible correcto y si es necesario el cableado alterar para adaptarse.
Mi agradecimiento a Gustavo Spadari por señalar un error en el código y las pruebas con un ATMEGA48V.
Hardware


Tenga en cuenta que la Xtal 16MHZ no es necesario. El trabajo de trabajo de código en 1MHz en el oscilador interno RC.
Conexión mapa:
Atmega8 ATmega168
PD0      PB0
PD1      PB1
PD2      2CP
PD3      PB3
PD4      PB4
PD5      PB5
PD6      PC0
PD7      PC1
PB1        PD4
2CP        PD3
PB3        PD2
PB4        PD1
PB5        PD5
PC2        PC2
PC3        PB6 (XTAL1)
PC4        PD6
PC5        PD7
PB0        Vcc, AVcc
En el esquema de los dos RAV están conectados directamente. Agregar 1KΩ resistencia a todas las líneas proporcionan algo de
protección para el ATmega8 contra insertar el AVR objetivo incorrectamente. La única línea que no debería haber una resistencia
es el de PB0 a Vcc / AVcc. Mi consejo matriz de construir con ellas omitido.
Cuando se enciende, el LED se ilumina para indicar que el dispositivo está listo. Cuando se pulsa el botón que se atenúa por
aproximadamente 1 segundo al establecer los fusibles, a continuación, vuelve a indicar que el ciclo de programación se ha
completado.
El circuito requiere una doble 5V y 12V. Un convertidor DC-DC puede ser usado para generar 12 voltios, ya que sólo una
pequeña cantidad de corriente se requiere para mantener la línea de RESET del AVR destino a 12V.
de programación de alto voltaje funciona mediante la celebración de la línea de RESET a 12V. El ATmega8 controla el proceso de
programación por primera puesta en funcionamiento del regulador de destino (el mega48/88/168 en el esquema) y luego aplicar
12V a través del transistor.
En el esquema el ATmega8 es sincronizado por un cristal de 16MHZ, pero en la práctica cualquier cristal o incluso el oscilador RC
interno debería funcionar (sin embargo, no se han probado). El código incluye algunos bucles retraso, sin embargo no son más
que un tiempo mínimo de retrasos por lo que no debería importar si se encuentran más tiempo del esperado.
Firmware
El código se basa en Keyzer de Arduino código de Jeff, pero se convirtió al corriente de código en C que utiliza AVR-GCC. Esto
quita todas las dependencias de la ferretería de Arduino y hace las cosas mucho más claras y más fáciles de trabajar con para
aquellos de nosotros que no usan esa plataforma.
No sería demasiado difícil de extender el código de RAV otros o incluso agregar una interfaz USB/RS232 para convertirlo en un
programador completo. Sin embargo, estoy planeando hacer lugar Jacob Aquí está de alta tensión programador USB y producde
un PCB para él, ya que está más avanzado y apoya una serie de RAV.
Firmware: AVR-rescate-0.2.lzh / AVR-rescate-0.2.zip
                                           denki.world3.net - Contacto: mojo@world3.net