AT90USB1287 Bootloader Lock Bits gesperrt

Gast #1432237
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?
Gast
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.
Gast
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.
Gast
>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.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.