- LiTime Speicher und Akkus         
Ergebnis 1 bis 2 von 2

Thema: Verfuset ohne eigene Schuld?

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    18.07.2008
    Ort
    Irchenrieth (BY)
    Alter
    31
    Beiträge
    50

    Verfuset ohne eigene Schuld?

    Anzeige

    Praxistest und DIY Projekte
    Gleich zu Anfang: Die Sache ist schon gelöst.

    Ich programmiere meinen Mega32 in C mit avr-gcc und avrdude unter Linux und das schon immer aber heute auf einmal kommt avrdude mit diesen Fehlern an (und das immer):
    Code:
    chris@gentoo ~/Desktop/avr/mega32 $ make program
    avrdude -p atmega32 -c stk200    -U flash:w:main.hex 
    
    avrdude: AVR device initialized and ready to accept instructions
    
    Reading | ################################################## | 100% 0.00s
    
    avrdude: Device signature = 0x1e9502
    avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed
             To disable this feature, specify the -D option.
    avrdude: erasing chip
    avrdude: reading input file "main.hex"
    avrdude: input file main.hex auto detected as Intel Hex
    avrdude: writing flash (178 bytes):
    
    Writing | ################################################## | 100% 0.08s
    
    avrdude: 178 bytes of flash written
    avrdude: verifying flash memory against main.hex:
    avrdude: load data flash data from input file main.hex:
    avrdude: input file main.hex auto detected as Intel Hex
    avrdude: input file main.hex contains 178 bytes
    avrdude: reading on-chip flash data:
    
    Reading | ################################################## | 100% 0.08s
    
    avrdude: verifying ...
    avrdude: verification error, first mismatch at byte 0x0000
             0x0c != 0x00
    avrdude: verification error; content mismatch
    
    avrdude: safemode: lfuse changed! Was ff, and is now 0
    Would you like this fuse to be changed back? [y/n] y
    avrdude: safemode: and is now rescued
    avrdude: safemode: hfuse changed! Was d9, and is now 0
    Would you like this fuse to be changed back? [y/n] y
    avrdude: safemode: and is now rescued
    avrdude: safemode: Fuses OK
    
    avrdude done.  Thank you.
    
    make: *** [program] Fehler 1
    chris@gentoo ~/Desktop/avr/mega32 $
    Ok dachte ich mir, was hab ich da wieder falsch gemacht. Also schnell mit Bascom probiert, denn einen Fehler am ISP-Programmer konnte ich ausschließen da der Mega8 noch wunderbar zu flashen ging. Es tauchten keine Fehler auf. Da meint man das es doch nicht die Fusebits sind die kaputt waren. Aber doch schnell mit ponyprog Fusebits neu gesetzt und alles ging wieder.

    Nun meine Frage:
    Wie zur Hölle kann man Fusebits neu setzen ohne das man es gemerkt bzw. gewollt hat. Oder passiert soetwas öfter mit den AVRs?

    mfg rehbär

  2. #2
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Gerade bei den ISP Dougles für den LPT gibt es eine geringe Gefahr, das bei einer zu langen (>30 cm) Leitung das SPI Signal aus dem Takt Gerät. Das kann durch Überschwinger auf der SCK Leitung passieren. Das ist eine schon lange bekannte, aber oft ignorierte, Schwäche von vielen einfachen ISP Programmierern (auch dem hier im Wiki). Die Signalqualität läßt sich schon durch einen einfachen Widerstand in der SCK Leitung verbessern. Das Problem sollte für eigentlich alle Programmierer nach SPI Prinzip gelten, egal ob AVR, PIC, ARM, JTAG... .


    Durch die Überschwinger werden einige Bits doppelt is ins Flash geschrieben und es bleichen dann einige übrig. Wenn man Pech hat (kommt aber eher selten vor), werden die gerade als Aufforderung zum ändern der Fuses interpretiert. Genau aus diesem Grund hat AVRDude den safe Mode, der am Ende noch mal die Fuses kontrolliert und ggf. neu setzt.

    Auch durch eine Schlechte Entkopplung und Störungen auf der Versorgung kann der ISP Prozess durcheinandergeraten. Absichtliche Störungen auf der Versorgung sind wohl auch ein Weg um bei einigen Controllern einen Ausleseschutz zu umgehen. Soll jedenfalls bei einigen alten PICs so gehen.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiTime Speicher und Akkus