Forum: Mikrocontroller und Digitale Elektronik atm8 fuses lassen sich per high voltage nicht ändern


von Dantor (Gast)


Lesenswert?

Hallo, ich habe hier einen Atmega8 in meinem Stk500 und wollte zunächst 
per ISP auf externen Takt des Stk500 wechseln.
Also habe ich externen Clock (Cksel 0000) ausgewählt, worauf der µC 
nichtmehr antwortete.
Also alles auf parallel High Voltage programming umgesteckt:

-2 10pin Kabel von Prog CTRL/DATA mit PortD und B verbunden
-Pjumpers beide gesetzt
-Rechter Pin von BSEL2 mit PortC2 verbunden
-Isp disconnectet
-Reset und Vtarget Jumper sind natürlich gesetzt
-OSCEL Jumper auch auf Pin 1&2

Die Fusebits lassen sich auch auslesen,
Der Controller lässt sich auch löschen, jedoch kann ich keine Fusebits 
ändern. Hier mal das Command Output:

Entering programming mode.. OK!
Writing fuses .. 0xFF, 0xEF .. OK!
Reading fuses .. 0xFF, 0xFF .. OK!

WARNING: Fuse bits verification..  FAILED
Leaving programming mode.. OK!

Seltsamerweise ist Cksel auf 1111 gestellt (Ext. Crystal/Resonator High 
Freq. eingestellt.
Außerdem merkwürdig ist Boot flash section size 128 Words.
Das war meiner Meinung nach vorher auf 1024.

Danke im Vorraus,
Dantor

von Dantor (Gast)


Lesenswert?

Ich habe nun festgestellt, dass es völlig egal ist, ob ich die Kabel 
anschließe oder nicht, angeblich wird immer etwas ausgelesen, was 
natürlich in Wirklichkeit garnicht sein kann.
Kann man überhaupt via High Voltage programmieren, wenn man CKsel 
verfuset hat?
Ist denn für das Stk500 external Clock nicht korrekt?

von Dantor (Gast)


Lesenswert?

Habe jetzt noch einen zweiten Atmega8 vorrübergehend schlafen gelegt, 
diesmal habe ich testweise external rc osc. eingestellt, worauf sich der 
Controller wieder verabschiedete.
Kann es vielleicht sein, dass das vom Stk500 generierte Taktsignal 
garnicht beim Controller ankommt?
Wie gesagt, Jumper müssten eigentlich richtig gesetzt sein, Isp 
Programmieren geht auch, das isp clock signal muss also auch zuverlässig 
ankommen. Das Stk500 ist selber auch ansprechbar.
Auch eine Reduzierung des Taktes bringt wohl nichts.

von Dantor (Gast)


Lesenswert?

Sodala, habe nun mal einen dritten Atmega8 eingesteckt, Fuses gelassen, 
wie se sind und mal getestet, ob überhaupt ein Taktsignal anliegt:


.include "m8def.inc"
    ldi r16, 0xFF
    out DDRD, r16

    ldi r16, 0x00
    out DDRB, r16
    ;out PORTB, r16

    ldi r17, 0xFF
    out PORTD, r17



lael:  sbis PINB, 6
    rjmp lael
    inc r17
    out PORTD, r17
lael1:  sbic PINB, 6
    rjmp lael1
    inc r17
    out PORTD, r17
    rjmp lael

Beim Stk500 bedeutet eine 1 LED aus und eine 0 LED an.
Wenn das Taktsignal (auf Portb, 6, xtal1) ständig von High zu Low 
wechseln würde, müsste r17 immer weiterzählen.
Allerdings bleiben die LEDs alle dunkel, dh das Programm bleibt bei sbis 
PINB, 6 stehen, da eben PINB, 6 ständig low ist.
Wenn ich im Programm sbis mit sbic vertausche, zählt r17 um 1 hoch (auf 
0x00) und alle Leds leuchten dauerhaft, was ja auch logisch ist.

Jedoch messe ich mit einem einfachen 5€ Multimeter eine Spannung von 
4.12V von xtal1 auf dem STK500 gegen Masse.
xtal1 ist im ausgeschalteten Zustand des STK500 über 500kOhm mit Portb, 
6 verbunden.
VTarget ist 5 Volt.
Clockfrequenz habe ich im AVR Studio alles mögliche eingestellt, der 
ATmega8 meldet immer das gleiche.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.