[AVR] Problem mit ATmega2561 und Fleury Bootloader

OP #2329059
Lesenswert?

Hallo,

ich habe ein Problem mit dem Bootloader von Peter Fleury ( 
http://www.jump.to/fleury ) in Verbindung mit dem ATmega2561.
Angepasst hab ich ihn im Makefile und in der stk500boot.c

Der Bootloader lässt sich problemlos über die ISP-Schnittstelle flashen.
Wenn ich jetzt ein Programm über den Bootloader aufspiele läuft dieses 
auch, allerdings nur bis zum ausschalten. Wenn ich wieder Strom auf die 
Schaltung gebe funktioniert das Programm nicht mehr, der Bootloader ist 
noch drauf.

Die Fuses sind wie folgt gesetzt (gerade eben frisch per ISP 
ausgelesen):
lfuse: 0xFF
hfuse: 0xDC
efuse: 0xFF

Wo rann könnte das liegen oder hat vielleicht jemand das selbe Problem?

Vielen Dank für die Hilfe und Gruß
André
Angehängte Dateien:
#2329341
Lesenswert?

Was hat es damit auf sich und hast du das in deiner Beschaltung 
berücksichtigt?
1
.....
2
/* 
3
 * Pin "PROG_PIN" on port "PROG_PORT" has to be pulled high
4
 * (active low) to start the bootloader 
5
 * uncomment #define REMOVE_PROG_PIN_PULLUP if using an external pullup
6
 */
7
#define PROG_PORT  PORTD
8
#define PROG_DDR   DDRD
9
#define PROG_IN    PIND
10
#define PROG_PIN   PIND2
11

12
....
13

14
int main(void)
15
{
16
  ....
17

18
  /*
19
   * Branch to bootloader or application code ?
20
   */  
21
  if(PROG_IN & (1<<PROG_PIN))  
22
  {       
23
     ....


ein Pin, den man extern nicht beschaltet, ist nicht automatisch Low.
OP #2329366
Lesenswert?

Hallo,

Karl Heinz Buchegger schrieb:
> Was hat es damit auf sich und hast du das in deiner Beschaltung
> berücksichtigt?

Ja, das funktioniert, er geht in den Bootloader wenn der Taster beim 
Start gedrückt wird und tut das nicht, wenn der Taster nicht gedrückt 
wird.

Ach und was ich vergessen hatte zu erwähnen, ich habe den Code für den 
Taster und die LED auf Active High geändert, Standard war Active Low.

Der angepasste Teil funktioniert allerdings, daran liegt das Problem 
meiner Meinung nach nicht.

Gruß
André
#2329384
Lesenswert?

André M. schrieb:

> Ach und was ich vergessen hatte zu erwähnen, ich habe den Code für den
> Taster und die LED auf Active High geändert, Standard war Active Low.

D.h. du hast Code gepostet, den du so gar nicht geflasht hast.

Daaankee. Und tschüss.


(Trotzdem: Ein Pin an dem nichts angeschlossen ist, zb weil ein Taster 
offen ist, hat ohne Pullup oder Pulldown keinen definierten Pegel. 
Sicher ist es auch nur Zufall, dass in dem von dir geposteten Code der 
interne Pullup abgeschaltet ist)
OP #2329400
Lesenswert?

Hi Karl Heinz,

erstmal danke für deine Hilfe, aber:

Karl Heinz Buchegger schrieb:
> André M. schrieb:
>> Ach und was ich vergessen hatte zu erwähnen, ich habe den Code für den
>> Taster und die LED auf Active High geändert, Standard war Active Low.
>
> D.h. du hast Code gepostet, den du so gar nicht geflasht hast.
>
> Daaankee. Und tschüss.
NEIN! Das stimmt so nicht! Der Code den ich angehängt hab, ist der den 
ich geflasht hab. Ich hatte nur vergessen das zu erwähnen.

> (Trotzdem: Ein Pin an dem nichts angeschlossen ist, zb weil ein Taster
> offen ist, hat ohne Pullup oder Pulldown keinen definierten Pegel.
> Sicher ist es auch nur Zufall, dass in dem von dir geposteten Code der
> interne Pullup abgeschaltet ist)
An dem Pin ist natürlich ein externer Pulldown und wie gesagt, der Teil 
des Programms tut auch.

Das eigentliche Problem ist, das der uC das Programm nach Aus- und 
Einschalten nicht mehr startet/nicht mehr findet/nicht mehr ausführt. 
(oder was auch immer da passiert)

Gruß
André

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren