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.
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