Forum: Compiler & IDEs AVRStudio5 STK600 ATMEGA644 programing issues


von ursp (Gast)


Lesenswert?

Hallo
mein Problem ist folgendes:
Ich habe AVTStudio5 und den STK600 und möchte einen ATMEGA644 
programieren.

Klappte zuerst gut, dann aber konnte ich plötzlich den ISB nicht mehr 
verwenden um den code zu laden. HVPP und JTAG funktioniert.
Leider läuft seitdem kein code den ich lade zB:
#ifndef F_CPU
#define F_CPU    16000000
#endif
#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h>
int main(void)
{
  DDRA = 0xFF;
  PORTA = 0xff;
    while(1)
    {
        PORTA ^= ( 1 << PA0 );  // Toggle PB0 z.&nbsp;B. angeschlossene 
LED
        _delay_ms(1000);        // Eine Sekunde +/-1/10000 Sekunde
                                //warten...
                                // funktioniert nicht mit
                                //Bbliotheken vor 1.6
    }
}

Ich habe es dann mit STK600-ATMEGA2560 (diese Karte und prozessor wurden 
mit dem STK600 mitgeliefert)
Dort klappt es.

Ich habe auch schon andere ATMEGA644 verwendet um einen defekten Chip 
auszuschliessen

Bin etwas ratlos...

von Uwe (de0508)


Lesenswert?

Hallo was ist der "ISB" ?

Evtl. hast Du die Fuses verstelle ?

Welche sind den gesetzt ?

Siehe auch : http://www.engbedded.com/fusecalc/

von Urs S. (ursp)


Lesenswert?

ich meine natürlich den ISP

die Fuses sind:
BODLEVEL = DISABLED
OCDEN = [ ]
JTAGEN = [X]
SPIEN = [X]
WDTON = [ ]
EESAVE = [ ]
BOOTSZ = 4096W_7000
BOOTRST = [ ]
CKDIV8 = [ ]
CKOUT = [ ]
SUT_CKSEL = EXTXOSC_8MHZ_XX_258CK_65MS

EXTENDED = 0xFF (valid)
HIGH = 0x99 (valid)
LOW = 0xDE (valid)

von Uwe (de0508)


Lesenswert?

Hallo Urs,

ich kennen deine Taktquelle nicht, deshalb lieber etwas langsammer und 
BOD auf 4,3V:

*avrdude:*

-U lfuse:w:0xff:m -U hfuse:w:0x99:m -U efuse:w:0xfc:m

Versuche das bitte mal.

von Urs S. (ursp)


Lesenswert?

Habe nun die Fuses angeoasst, kein Unterschied :(

BODLEVEL = 4V3
OCDEN = [ ]
JTAGEN = [X]
SPIEN = [X]
WDTON = [ ]
EESAVE = [ ]
BOOTSZ = 4096W_7000
BOOTRST = [ ]
CKDIV8 = [ ]
CKOUT = [ ]
SUT_CKSEL = EXTXOSC_8MHZ_XX_16KCK_65MS

EXTENDED = 0xFC (valid)
HIGH = 0x99 (valid)
LOW = 0xFF (valid)

Das verwirrende ist, dass ich sicher bin, dass korrekt geschrieben wird. 
Ich sende den code, danach ändere ich ihn unt kontrolliere ob der vorab 
geschirebene code identisch ist, nachdem ich stk600 aus-ein geschaltet 
habe.
-> Resultat: natürlich unterschiedlich.
Ich schalte dann wider den STK600 aus-ein, und kontrolliere mit dem 
selben hex file. -> Resultat: identisch.

Für mich sieht es aus, als ob der ATMEGA644 (ports a bis c) defekt ist 
und die ports nicht reagieren ... nur das mit allen ports mit 3 
verschiedenen chips, aber der ATMEGA2560 ist ok? Unwahrscheinlich...

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.