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
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?
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.