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?