No puedo programar Attiny85-20PU

0

Tengo una pequeña cantidad de Attiny85-20PU que estoy intentando programar con un programador de tipo stk500v1 (para simplificar, diga un Arduino con ArduinoISP-Sketch).

Mis primeros intentos con esa parte fueron con Arduino-Environment, pero a la larga quiero usar Atmel Studio (también en relación con AVRDude).

Pero recibo un error de tipo Yikes de AVRDude. La salida detallada muestra que no reconoce la firma del dispositivo (siendo 0x0).

El programador, la configuración (como la velocidad de transmisión) y el cableado deben ser correctos porque puedo programar con éxito otra placa compatible con Tiny85 (el Nanite85, ver enlace , está sincronizado internamente, no estoy usando el cargador de arranque / USB). Acabo de comprobarlo, todavía funciona. Además, programar un Atmega328 en circuito (con reloj externo) no es un problema con ese programador. No puede ser una sola pieza defectuosa, lo he comprobado con dos elementos diferentes.

Así que mi suposición es que mis Attiny85 están fusionados para un reloj externo. Pero la hoja de datos de Atmel ( link , fuentes de reloj de la sección 6.2) dice claramente que debe estar fusionado de fábrica al "Oscilador interno calibrado". ¿Podría ser que esto depende del modelo concreto del chip, al contrario de la hoja de datos?

Las fichas parecen estar correctamente etiquetadas con el logotipo de Atmel y todo. Aunque los compré en Ebay, casi no puedo imaginar que algún fabricante chino de imitación se moleste con una parte de 2 € de la vieja escuela.

¿Puedo averiguar si los fusibles del reloj son el problema sin soldar el Attiny con un cristal?

    
pregunta oliver

1 respuesta

0

¡Encontré el problema!

Después de dar una prueba desesperada al borrado de alto voltaje de los fusibles, en vano, se me ocurrió que el problema podría ser la velocidad del reloj SPI.

Y de hecho, cuando cambié la velocidad del reloj SPI dentro del bosquejo ArduinoISP (extracto a continuación) de mi valor previamente ajustado de 1 Mhz al valor recomendado para Attiny85, ¡la programación (así como el reconocimiento de la firma del dispositivo) funcionó de nuevo!

// Configure SPI clock (in Hz).
// E.g. for an attiny @128 kHz: the datasheet states that both the high
// and low spi clock pulse must be > 2 cpu cycles, so take 3 cycles i.e.
// divide target f_cpu by 6:
//     #define SPI_CLOCK            (128000/6)
//
// A clock slow enough for an attiny85 @ 1MHz, is a reasonable default:

// Working with Attiny85 (the default in the ArduinoISP sketch):
#define SPI_CLOCK       (1000000/6)

// I tweaked this in the past, but it's not working with Attiny85:
//#define SPI_CLOCK 1000000UL 

#define USE_HARDWARE_SPI

No me di cuenta de que, aunque Attiny85 está configurado a la velocidad de reloj interna predeterminada de 8MHz, también hay un divisor de reloj de 8 por defecto, por lo que el reloj de la CPU está en realidad a 1 Mhz.

    
respondido por el oliver

Lea otras preguntas en las etiquetas