Hace bastante tiempo que intento programar un ATtiny20 de fábrica. Después de intentar sin éxito con un USBASP y con ArduinoISP, decidí echar un vistazo con mi alcance. Resulta que el dispositivo está respondiendo, pero el voltaje en el pin MISO solo alcanza un pico de aproximadamente 1 V. Esto no es suficiente para comunicarse con éxito. ¿Alguna idea de qué podría estar causando esto?
Cosas que he probado:
- Use un programador USBASP
- Use Arduino UNO como ISP con ArduinoISP (se supone que esto establece la velocidad del reloj lo suficientemente lenta para un ATtiny85 @ 1 MHz, así que también debería ser lo suficientemente lenta para este ATtiny20)
- Agregue resistencia de pull-up de valores de 10 kOhm y 100 kOhm a MISO, esto hace que la línea MISO se mantenga siempre alta
- Agregar pull-up al pin SS
- Agregar menú desplegable al pin SS
- Prueba con otro ATtiny20, exactamente el mismo comportamiento
- Revise el cableado, muchas veces
- Desconecta el MISO para asegurarte de que no haya otra cosa que lo detenga
- Medido directamente en el pin ATtiny MISO, para garantizar que no sea un problema de conexión
Otras observaciones:
Medí que la frecuencia del reloj SPI era aproximadamente 130 kHz. La frecuencia de la señal en la línea MISO tiene la misma frecuencia, por lo que parece que el dispositivo está respondiendo correctamente (aunque no comprobé que los datos sean exactamente lo que deberían ser), solo que con un voltaje mucho menor.
editar:TeníaelpinRESETconectadoalpinRESETdelencabezadoISPdeArduino,mientrasquedeberíahaberestadoconectadoalpin10.Sinembargo,cambiarestonosolucionómiproblema.Elcableadoescomosemuestraacontinuación.