7 votos

¿Por qué mi ATtiny13 Informe ID dispositivo equivocado?

Estoy usando un Arduino (con ATmega168) como un programador de ISP para el programa de ATtiny13. Cuando trato de hacer esto, avrdude informes:

avrdude: Device signature = 0x1e9406
avrdude: Expected signature for ATtiny13 is 1E 90 07

El -F bandera de la fuerza de la programación no reemplazar el ID en este caso.

Sé que puedo restablecer la ID con un alto voltaje de programador, pero ¿por qué es el dispositivo erróneamente informes de su ID en el primer lugar? Y por qué es un problema intermitente? Cada ahora y entonces el programador funciona bien, pero cuando no es así siempre aparece la misma exacta errático ID.


Completa avrdude de salida:

avrdude: Version 5.11.1, compiled on Oct 30 2011 at 10:37:28
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2009 Joerg Wunsch

         System wide configuration file is "/etc/avrdude.conf"
         User configuration file is "/home/jhendrix/.avrduderc"
         User configuration file does not exist or is not a regular file, skipping

         Using Port                    : /dev/ttyUSB003
         Using Programmer              : stk500v1
         Overriding Baud Rate          : 19200
         AVR Part                      : ATtiny13
         Chip Erase delay              : 4000 us
         PAGEL                         : P00
         BS2                           : P00
         RESET disposition             : dedicated
         RETRY pulse                   : SCK
         serial program mode           : yes
         parallel program mode         : yes
         Timeout                       : 200
         StabDelay                     : 100
         CmdexeDelay                   : 25
         SyncLoops                     : 32
         ByteDelay                     : 0
         PollIndex                     : 3
         PollValue                     : 0x53
         Memory Detail                 :

                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           eeprom        65     5     4    0 no         64    4      0  4000  4000 0xff 0xff
           flash         65     6    32    0 yes      1024   32     32  4500  4500 0xff 0xff
           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00
           lock           0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           calibration    0     0     0    0 no          2    0      0     0     0 0x00 0x00
           lfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           hfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00

         Programmer Type : STK500
         Description     : Atmel STK500 Version 1.x firmware
         Hardware Version: 2
         Firmware Version: 1.16
         Vtarget         : 0.0 V
         Varef           : 0.0 V
         Oscillator      : Off
         SCK period      : 0.1 us

avrdude: please define PAGEL and BS2 signals in the configuration file for part ATtiny13
avrdude: AVR device initialized and ready to accept instructions

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

avrdude: Device signature = 0x1e9406
avrdude: Expected signature for ATtiny13 is 1E 90 07
         Double check chip, or use -F to override this check.

avrdude done.  Thank you.

4voto

Jordan S. Jones Puntos 1023

No es un error probable, y la consistencia de este "mal" ID puede estar diciendo. Una mala conexión puede causar algunas fallas, pero en general en forma de un lapso bits (es decir, los valores que muestra la vecina de bits), y el 94 vs 90 no se parece a eso. Además, una búsqueda rápida en avrdude la lista de AVR Id muestra que el ID que se obtiene es la de un ATmega168, común en Arduino. Además, el cargador de arranque (bootloader habla el STK500 protocolo, que su avrdude está utilizando aquí, así que la pregunta obvia es a lo que el programador es?

Me imagino que puede haber algo así como un Arduino como programador para programar otros AVRs, y cuando pasa a ser restablecidos (y thefore todavía en el gestor de arranque, el cual tiene un tiempo de espera antes de iniciar la carga de un programa/"sketch") como avrdude se inicia, se llega a reprogramar los AVR lugar de la tabla siguiente.

Mi segundo intento, que sería la primera sin que lo anterior notas sobre Arduino comportamiento, sería hablar de otro programador involuntariamente; que pueden ser afectadas por las cosas simples, tales como el orden en que están conectados a USB.

En cualquiera de los casos, en realidad, no es un IDENTIFICADOR incorrecto, pero otro AVR que la intención de responder. Para el Arduino como programador caso, las cosas se pueden complicar por el reinicio automático cuando se inicia un programa para hablar con la junta directiva; trabajo en torno a que podría ser un poco más complejo, y mi primera idea sería algo como (sleep 3 ; avrdude -P /dev/ttyUSB0 -c stk500 -p t13 -U ... ) < /dev/ttyUSB0, para asegurar una demora entre la apertura del puerto serial y ejecución de avrdude.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X