Autor Tema: Cómo bloquear un microcontrolador Attiny88  (Leído 6779 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5892
    • Picuino
Cómo bloquear un microcontrolador Attiny88
« en: 22 de Diciembre de 2015, 03:23:46 »
¿Cómo bloquear un microcontrolador Attiny88?

Lo he intentado con avrdude y he bloqueado el micro, pero ha dejado de funcionar.
Para bloquear he utilizado:

avrdude.exe -F -c usbasp -p t88 -P usb -b 115200 -v -e -U lock:w:0xFC:m


Un saludo

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Cómo bloquear un microcontrolador Attiny88
« Respuesta #1 en: 22 de Diciembre de 2015, 11:00:52 »
Es que lo estas borrando completamente... con el -e imagino que sera algo así:

avrdude.exe -F -c usbasp -p t88 -P usb -b 115200 -v   -U flash:w:file:i -U hfuse:w:0x00:m -U lfuse:w:0x00:m

Y luego finalmente

avrdude.exe -F -c usbasp -p t88 -P usb -b 115200 -v -U lock:w:0xFC:m

Una ves bloqueado la unica forma de poder usarlo es borrar todo con el -e

avrdude.exe -F -c usbasp -p t88 -P usb -b 115200 -v -e

Es lo único raro que encuentro.

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5892
    • Picuino
Re:Cómo bloquear un microcontrolador Attiny88
« Respuesta #2 en: 22 de Diciembre de 2015, 16:19:25 »
Muchas gracias Killer.
Eso pasa por hacer copy paste. Pensé que así no me olvidaba de nada y terminé metiendo la pata.
A ver cómo desbloqueo ahora el attiny con programación en paralelo...
Creó que va a ser mejor tirar el micro.
Saludos

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Cómo bloquear un microcontrolador Attiny88
« Respuesta #3 en: 22 de Diciembre de 2015, 16:28:07 »
La unica forma de "recuperarlo" es generar un borrado, que justamente lo haces con el -e, en el datasheet esta especificado como hacer un Chip Erase

Citar
The Chip Erase command will erase all Flash and EEPROM plus lock bits.

The Chip Erase command is loaded as follows:
1. Set XA1, XA0 to “10”. This enables command loading
2. Set BS1 to “0”
3. Set DATA to “1000 0000”. This is the command for Chip Erase
4. Give CLKI a positive pulse. This loads the command
5. Give WR a negative pulse. This starts the Chip Erase. RDY/BSY goes low
6. Wait until RDY/BSY goes high before loading a new command

Desconectado Jorge555

  • PIC18
  • ****
  • Mensajes: 496
    • JMN
Re:Cómo bloquear un microcontrolador Attiny88
« Respuesta #4 en: 22 de Diciembre de 2015, 18:40:33 »
Si no puedes borrarlo quizás hayas seleccionado por error el fuse de oscilador externo (que no cristal externo), y por tanto para poder comunicarte con él y borrarlo o reprogramarlo debes generar una onda cuadrada en el pin correspondiente a la entrada de oscilador externo, desconozco si éste es el caso de los fuses programador pero solo comentarlo por si pudiera ser.

Saludos.

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Cómo bloquear un microcontrolador Attiny88
« Respuesta #5 en: 23 de Diciembre de 2015, 05:12:44 »
No utilice atmel, pero me parece algo ilogico que suceda eso Jorge, se que alguos alegan haber tenido esos problemas y esa era la causa. Pero en la programacion segun el datasheet en ningun momento habla del oscilador conectado al dispositivo, ademas desde afuera del micro es que se provee una señal de clock, tanto para una conexion paralela como serie. Por lo cual no le veo mucho sentido a que esto ocurra realmente.

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5892
    • Picuino
Re:Cómo bloquear un microcontrolador Attiny88
« Respuesta #6 en: 23 de Diciembre de 2015, 06:04:32 »
Muchas gracias

Desconectado Jorge555

  • PIC18
  • ****
  • Mensajes: 496
    • JMN
Re:Cómo bloquear un microcontrolador Attiny88
« Respuesta #7 en: 23 de Diciembre de 2015, 08:32:09 »
Una forma de bloquear el microcontrolador y que ya no se pueda borrar ni programar es simplemente configurar mal los fuses, seleccionar el oscilador externo por error cuando en su lugar se quiere seleccionar un cristal externo como fuente de reloj. Es error habitual que comete mucha gente al empezar a usar los Atmel, no digo que sea el caso pero solo anotarlo por si pudiera ser. Para poder "recuperarlo" (volver a cambiar los fuses) hay que conectar una señal cuadrada en el pin correspondiente del microcontrolador que simule ese oscilador externo.

Aunque en el interfaz de programación tengas una señal de reloj, el microcontrolador necesita su propia señal de reloj para poder ser programado.

Para programar Atmels yo uso el Atmel Studio, en el que se configuran todos los fuses de forma gráfica, por lo que es más difícil equivocarse.
« Última modificación: 23 de Diciembre de 2015, 08:36:09 por Jorge555 »

Desconectado stk500

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4923
Re:Cómo bloquear un microcontrolador Attiny88
« Respuesta #8 en: 23 de Diciembre de 2015, 14:13:30 »
estoy muy de acuerdo con Jorge, no se como seria el caso para los Pic, que al programarlo con el Oscilador externo , no pueda programarlo otras sin ponerle un Oscilador  ;-)
aunque a mi, experimentando he dejado varios Atmel muertos, y no me lo reconoce el programador en ningun modo ,ISP o PHVS
Paralel High voltage Serial.  ;-)

Saludos y Felices Fiestas  :x)

Desconectado juaperser1

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 2980
Re:Cómo bloquear un microcontrolador Attiny88
« Respuesta #9 en: 23 de Diciembre de 2015, 14:16:22 »
yo creo, que te va a dar mas dolores de cabeza y vas a perder mas dinero (si lo contamos en tiempo) que si tiras el micro y te lo pillas uno nuevo.

un saludo

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5892
    • Picuino
Re:Cómo bloquear un microcontrolador Attiny88
« Respuesta #10 en: 23 de Diciembre de 2015, 18:04:25 »
El micro es barato. Compré una buena tanda y me salieron a 0.70 Euros cada uno.
El micro no es el problema (ya lo habría tirado). El problema es que es un TQFP de 32 pines soldado.
No sé si me cuesta más desoldarlo y volver a soldar otro o recuperarlo.
Además me ha pasado en varias placas (creo que 4)

Saludos.

Desconectado Belgitaes

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 215
Re:Cómo bloquear un microcontrolador Attiny88
« Respuesta #11 en: 27 de Diciembre de 2015, 10:15:18 »
Perdonna Si Me Meto
Pero Creo Que Te Has Equivocado A La Hora De Gravar Los Fuses Con AvrDude
Segun Lo Que Dices Para bloquear he utilizado:

avrdude.exe -F -c usbasp -p t88 -P usb -b 115200 -v -e -U lock:w:0xFC:m

Si Te Fijas En La Pagina
http://www.engbedded.com/fusecalc/

Veras Te E Puesto Un Ejemplo Con Un Atmega88 Que Tiene Los Mismos Pin Que El Attiny88
En Esta Pagina Poniendo Los Extended Bits A FC Hay Una Nota Donde Explica
Que algunos Valores Numericos Contienen Los Bits No Definidos (Establecidas a '1' aquí)
Y Dependiendo Del Programa Con El Que Se Grave Estos Bits Serán Leídos Ya Sea Como '0' o '1'.
En Los Siguientes Valores Te Dicen Que Pongas Los (Conjunto Indefinido a '0'): Extended: 0x04.

Una Vez Cambiado Los Extended Bits En La Pagina Que Te E Subido
Veras En La Nota Como Te Dice Copiar y Pegar Esta Cadena De Opciones En Su Línea De Comandos Avrdude


Te Subo Un PDF Con Fotos Para Que Lo Veas Mejor

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5892
    • Picuino
Re:Cómo bloquear un microcontrolador Attiny88
« Respuesta #12 en: 28 de Diciembre de 2015, 10:23:52 »
Finalmente he optado por tener 3 macros distintas
  Una graba el firmware y lo verifica
  Otra macro graba los fuses     -U lfuse:w:0x62:m    -U hfuse:w:0xDD:m    -U efuse:w:0xFE:m    
  Otra macro bloquea el micro   -U lock:w:0xFC:m

La configuración se puede calcular en este enlace y tomar un permalink a la configuración final:
http://eleccelerator.com/fusecalc/fusecalc.php?chip=attiny84&LOW=62&HIGH=DD&EXTENDED=FE&LOCKBIT=FC

Saludos.

Desconectado stk500

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4923
Re:Cómo bloquear un microcontrolador Attiny88
« Respuesta #13 en: 28 de Diciembre de 2015, 11:50:48 »
My bueno el Calculador de FUSE,
me lo apunto ;-)
Saludos

Desconectado Belgitaes

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 215
Re:Cómo bloquear un microcontrolador Attiny88
« Respuesta #14 en: 28 de Diciembre de 2015, 19:07:13 »

Si Si Muy Bueno Pero Pregunto!!
Cual Es La Diferencia Gravando Los Extended Bytes Antes A FC Con Lo Que Se Te Quedo Bloqueado El Micro
Y Ahora Con FE

La Diferencia Esta Que Antes Con (FC) Bootloader Reset Address Desde 0x0F00
 
Byte Extendido : Selecionna El Tamaño Del Boot Y Del Vector Del Reset
Código: [Seleccionar]
BOOTSZ1 (2) Seleccion Del Tamaño Del Boot  ( 1 = Sin Programar)
BOOTSZ0 (1) Seleccion Del Tamaño Del Boot  ( 0 = Programado )
BOOTRTS (0) Seleccion Del Vector Del Reset ( 0 = Programado )

Y Ahora Con  -U efuse:w:0xFE:m (FE) Bootloader Reset Address Desde 0x0F80
Código: [Seleccionar]

BOOTSZ1 (2) Seleccion Del Tamaño Del Boot  ( 1 = Sin Programar)
BOOTSZ0 (1) Seleccion Del Tamaño Del Boot  ( 1 = Sin Programar)
BOOTRTS (0) Seleccion Del Vector Del Reset ( 0 = Programado )

Y Ahora Veo Que Has Gravado Tambien Los Locks Bits A -U lock:w:0xFC:m
Los Bytes LB1 Y LB2

Código: [Seleccionar]
( LOCK BITS)

Seguridad De la Memoria : Tipo De Protecion
************************
..............
LB2  .  LB1  .
..............
 1   .   1   . Sin Habilitar La Protecion De La Memoria
..............
 1   .   0   . Deshabilita Futuras Programacion De La Flash Y EEprom En Los Modos Paralelo Y Serial
.............. Los Bits De Los Fusibles De Programacion Estan Asegurados En Ambos Modos
     .       .
 0   .   0   . Igual Al Anterior Y Tambien Se Deshabilita La Verificacion


Es Decir La Intencion Es Deshabilitar Futuras Programacion De La Flash Y EEprom En Los Modos Paralelo Y Serial
Y Ademas Deshabilita La Verificacion

Bueno Ya Nos Dira Si Te Funcionna Asi o Se Te Ha Vuelto A Bloquear
Siempre Es Bueno Aprender Algo Nuevo
Suerte


 

anything