¿El programador basado en FTDI trabaja con ATmega pero no con ATtiny?

4

Estoy usando un programador de bit bang basado en FTDI para mis AVU MCU con AVRDUDE. Funciona perfectamente con ATmega32A, pero no funciona con ATtiny45.

El comando que utilizo para probar si funciona es:

avrdude.exe -c pinb -P ft0 -B 4800 -U lfuse:r:-:h -F

El -c pinb representa la siguiente configuración:

miso  = 6;  # DCD
sck   = 5;  # DSR
mosi  = 3;  # CTS
reset = 7;  # RI 

Para ATmega32A ( -p m32 ), obtengo:

 ft245r:  bitclk 4800 -> ft baud 2400
avrdude.exe: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude.exe: Device signature = 0x1e9502
avrdude.exe: reading lfuse memory:

Reading | ################################################## | 100% 0.02s

avrdude.exe: writing output file "<stdout>"
0xe4

Para ATtiny45 ( -p t45 ), obtengo:

 ft245r:  bitclk 4800 -> ft baud 2400
avrdude.exe: ft245r_program_enable: failed
avrdude.exe: initialization failed, rc=-1
avrdude.exe: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude.exe: Device signature = 0xffffff
avrdude.exe: Yikes!  Invalid device signature.
avrdude.exe: Expected signature for ATtiny45 is 1E 92 06
avrdude.exe: safemode: lfuse reads as FF
avrdude.exe: safemode: hfuse reads as FF
avrdude.exe: safemode: efuse reads as FF
avrdude.exe: reading lfuse memory:

Reading | ################################################## | 100% 0.02s

avrdude.exe: writing output file "<stdout>"
0xff

avrdude.exe: safemode: lfuse reads as FF
avrdude.exe: safemode: hfuse reads as FF
avrdude.exe: safemode: efuse reads as FF
avrdude.exe: safemode: Fuses OK

avrdude.exe done.  Thank you.

Tenga en cuenta que todo se lee como 0xFF.

Ya he comprobado el cableado varias veces. La MCU está en su estado original, sin ningún cambio de firmware o fusible. ¿Por qué no funciona?

Edición 1: especificación de bitclock / baudrate . Como se sugiere en los comentarios, he intentado reducir la velocidad de comunicación. Desafortunadamente, la versión para Windows de AVRDUDE 5.3.1 no reconoció correctamente las opciones -B y -b. Así que he compilado el último AVRDUDE 5.11.1 con ft245r.patch de bug # 30559: soporte para bit-bang Ft232 en Ubuntu. Ahora puedo obtener, por ejemplo, baudrate = 200, pero aún no tengo éxito.

Edición 2: voltímetro de los cables . Cuando ejecuto AVRDUDE a baja velocidad, controlo las 4 salidas (MOSI, MISO, SCK, RESET) con un voltímetro. Todos ellos cambian, excepto el cable MISO, que parece mantenerse en el nivel alto. Probablemente tengo dos fichas rotas?

    
pregunta Goodrone

1 respuesta

3

Por favor, intente con los indicadores -B20 o -B50 -B100 si su programador lo admite. La mejor forma de actualizar una ATTINY es, compilación USBTiny desde otro ATTinyX5 :)

Si ejecutas tu ATTiny en algunas velocidades bajas (yo ejecuto el mío @ 8khz, por ejemplo, sí, es posible cronometrarlo), necesitas un pulso SCK más lento en el programador.

Editar: quiero agregar esto, avrdude no permite USBTiny con una marca más alta que -B250. Pero como estoy experimentando con el reloj ATTiny (32 kHz, 8 khz ...), necesito -B400 incluso -B2000 ... Así que solo compilé mi avrdude desde la fuente y el límite creciente a 9000 y no tengo problemas. Hack funciona bien. Además, no es necesario esperar para flashear todo el programa. Para rescatar a un jugador con bajo hz fusionado, compile cualquier programa con indicadores de 1 / 8mhz y configuraciones de CPU. Que solo flash por un segundo y abortar. Esto restaurará la configuración de los fusibles y podrá reprogramar lo que quiera con alta velocidad, por ejemplo, el indicador B1. (Utilizo esta configuración por defecto, ya que es más rápido y funciona con 8Mhz 16Mhz PLL con reloj ATtiny85. Pero -B1 no programará sus chips fusionados de 1Mhz).

Saludos, Erdem

    
respondido por el E.U.A.

Lea otras preguntas en las etiquetas