mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AT90USB1287 Bootloader Lock Bits gesperrt


Autor: Christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Stefan Salewski (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Stefan Salewski (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.