Forum: Mikrocontroller und Digitale Elektronik AT90CAN: WatchDog vs. Bootloader


von Andreas (Gast)


Lesenswert?

Hallo zusammen,

ich habe eine vergossene Elektronik mit einem Atmel AT90CAN Controller. 
Die einzige Möglichkeit den µC zu programmieren ist über den 
integrierten Bootloader und die CAN-Schnittstelle.

Ich habe in meiner SW abschließend den WDT eingeschaltet (per SW -ohne 
Fuse-, zunächst auf maximal 2 Sek.) und im Programm einen wdt Reset 
hinzugefügt.

Jetzt habe ich ein Problem. Immer wenn ich in den Bootloader springe und 
neue SW aufspielen will, nagelt mir der Watchdog einen Reset dazwischen 
und der Bootloader wird wieder verlassen. (Ich hätte beim Sprung in den 
Bootloader den Watchdog ausschalten müssen.)

Wie kann ich das verhindern, bzw. wie kann ich den WDT ausschalten, 
damit ich neue SW aufspielen kann?

Hintergrund:
- Bootloader ist von der Atmel-Website
- Software zum Aufspielen neuer SW mache ich mit Flip (3.4.7) ebenfalls 
von der Atmel Website
- ISP und JTAG komme ich nicht mehr ran

von Peter D. (peda)


Lesenswert?

Andreas schrieb:
> Bootloader ist von der Atmel-Website

Dann poste mal den Link darauf.

Andreas schrieb:
> Software zum Aufspielen neuer SW mache ich mit Flip (3.4.7) ebenfalls
> von der Atmel Website

Dann poste mal den Link darauf.

von Andreas (Gast)


Lesenswert?

Peter Dannegger schrieb:
> Andreas schrieb:
>> Bootloader ist von der Atmel-Website
>
> Dann poste mal den Link darauf.
>
AVR076 http://www.atmel.com/Images/AVR076.zip

> Andreas schrieb:
>> Software zum Aufspielen neuer SW mache ich mit Flip (3.4.7) ebenfalls
>> von der Atmel Website
>
> Dann poste mal den Link darauf.
FLIP 3.4.7 for Windows 
http://www.atmel.com/Images/Flip%20Installer%20-%203.4.7.112.exe

Ich benutze das Atmel Studio 6 (Version 6.0.1996)

von Peter D. (peda)


Lesenswert?

Andreas schrieb:
> AVR076 http://www.atmel.com/Images/AVR076.zip

Da muß es einen HWCB_INPUT_PIN geben, wenn man den auf low zieht, sollte 
sofort der Bootloader starten.

von Andreas (Gast)


Lesenswert?

Hallo,
danke für den Hinweis, aber an meinem PinD0 hängt der I2C-Bus und hat 
einen Pull-up nach +5V. Die Elektronik ist vergossen.
Ich habe auch schon versucht das BootStatusByte zu ändern, aber das 
Zeitfenster ist scheinbar zu kurz um Speicher zu löschen, oder Bytes zu 
schreiben, bevor der WDT auslöst.

von Peter D. (peda)


Lesenswert?

Andreas schrieb:
> aber an meinem PinD0 hängt der I2C-Bus

Wenn Du an den Pin nicht rankommst, dann heißt das wohl, sauber ins Knie 
gefi...

von Andreas (Gast)


Lesenswert?

das hatte ich befürchtet! :(
Ich habe extra unvergossene Muster hier liegen, um gravierende 
Änderungen vorher zu testen, bevor die per Bootloader in die vergossenen 
Prozessoren geladen werden.
Aber ich dachte: beim Watchdog ist doch alles gut, der startet neu bei 
einem Fehler und maximale Zeit kann ja nicht verkehrt sein...

von Leon W. (leon)


Lesenswert?

Wie wäre es mit den Pin trotzdem auf low ziehen?
I²C ist open collector, von daher sollte nichts Schaden nehmen. Nur der 
Bus funktioniert für die Zeit dann halt nicht, sollte aber nicht 
tragisch sein?

von Andreas (Gast)


Lesenswert?

Leon W. schrieb:
> Wie wäre es mit den Pin trotzdem auf low ziehen?

Andreas schrieb:
> [...]hängt der I2C-Bus und hat
> einen Pull-up nach +5V. Die Elektronik ist vergossen.

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.