Forum: Mikrocontroller und Digitale Elektronik AT90USB1287 Bootloader Lock Bits gesperrt


von Christian (Gast)


Lesenswert?

Hallo erstmal,

ich möchte meine Applkation in den AT90USB1287 mit dem schon 
integrierten Bootloader programmieren,
FLIP findet diesen auch, doch beim Versuch zu Programmieren meldet FLIP
"Device Protection is set".
Ok, ich gehe mit meinem AVR-Studio (JTAG ICE mkII) dran, und sehe 
"Further programming and verification disabled".
Nach Suche der Dukos war mit klar:
1. Die Lock Bits stehen Default auf 0(programmed)
2. Die Lock Bits können nur durch Chip Erase auf 1 gesetzt werden.

Zusammenfassung
----------------
Ich habe also einen tollen Bootloader integriert, kann diesen aber nicht
nutzen weil Flash-Programmieren gesperrt ist.
Wenn ich Flash-Programmieren erlaube, durch Chip  Erase, lösche ich aber
dadurch auch den Bootloader.

Wozu ist dann überhaupt der Bootloader drin?

von Stefan Salewski (Gast)


Lesenswert?

Die AT90USB1287, die ich vor ca. 3 Jahren gekauft hatte, konnte ich 
direkt per USB programmieren. Ich habe allerdings dfu-programmer unter 
Linux verwendet. Da muss man vor dem Programmieren ein erase duchführen, 
dass löscht aber nicht den Bootloader.

Auslesen mit AVR-ISP ging tatsächlich zunächst nicht, da musste man den 
Chip zunächst komplett löschen und FUSES umstellen.

Ähnliche Probleme wie Deine wurden hier schon öfters berichtet -- ich 
kann mich aber nicht an eine exakte Beschreibung eines Lösungsweges 
erinnern. Vielleicht findest Du ja etwas mit der Suchfunktion.

von Christian (Gast)


Lesenswert?

erstmal danke Stefan für deine schnelle Antwort..

Ich bin auch einen Schritt weiter gekommen,
ich habe einfach mit dem Chip Erase von Flip gelöscht,
und dann nochmal das Programmieren durchgeführt
und es hat funktioniert,
d.h. der Bootloader war noch drin und hat auch meine
Applikation korrekt programmiert.

Nur leider lief diese dann zu langsam, da default-mässig das Fuse-Bit 
CKDIV8 aktiv ist, und dann 1Mhz statt 8Mhz laufen.

Nun müsste ich also die Fuse-Bits ändern, das geht aber nur wenn ich die 
Lock-Bits vorher per Chip Erase (im Avr-Studio) gelöscht habe,
und dann ist der Bootloader weg.

von Stefan Salewski (Gast)


Lesenswert?

>Nun müsste ich also die Fuse-Bits ändern, das geht aber nur wenn ich die
>Lock-Bits vorher per Chip Erase (im Avr-Studio) gelöscht habe,
>und dann ist der Bootloader weg.

Ja, vorgabemäßig ist ein Prescaler aktiv, der den Takt für den gesamten 
Chip durch 8 teilt.

Das kann man per Fuse-Bits einstellen, oder auch einfach per Software:

Siehe Datenblatt -- irgendwie so wie hier

http://ssalewski.de/USB-Sources/SUDD.c

int
main(void)
{
  cli();
  CLKPR = (1<<7);
  CLKPR = 0; // clock prescaler == 0, so we have 16 MHz mpu frequency 
with our 16 MHz crystal

Den Bootloader kann man wohl jetzt auch bei Atmel herunterladen.

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.