mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Fuses von AVR-Studio im Programm setzen (High/Low/Lockbit)


Autor: Björn G. (tueftler)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi!

Möchte gerne die Fusebits und das Lockbit direkt im Programmcode setzen, 
da es für die Produktion viel praktischer ist.

Ich habe ja High & Low & Lockbit aus meiner Konfiguration ausgemacht.
Wie muß denn der Befehl für WinAvr lauten diese direkt zu setzen?

In der Produktion möchte ich gerne nur noch das .hex-File auf den Chip 
brennen lassen und möglichst viele Dinge damit direkt setzen.

Leider konnte ich im Netz nichts darüber finden.
Ich denke der ein oder andere von Euch hatte auch schon einmal vor 
dieser Frage gestanden.

Gruß, Björn

Autor: AVRFan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Möchte gerne die Fusebits und das Lockbit direkt im Programmcode setzen

Zur Laufzeit des in den µC geflashten Programms?  Das ist nicht möglich. 
Sonst wären es auch keine Fuses, sondern I/O-Register.

Autor: Christian U. (z0m3ie)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Doch ist es, jedoch nicht ganz trivial. Du musst das aus der Boot 
Section heraus machen musst also einen Pseudo Bootloader schreiben, der 
aus deinem Hauptprogramm angesprungen wird.

Ablauf könnte so aussehn:

Fuses in 2-3 definierte SRAM Zellen schreiben
Eine Bootloaderstartbedingung herstellen z.b. über das MCUSR Register
Watchdog Reset einleiten

Bootloader prüft ob Watchdog Reset und MCUSR register richtigen wert hat
Wenn ja schreibt er die Fuses aus den SRAM Zallen
Springt ins Hauptprogramm

Mir fällt zwar kein Grund ein warum das für die Produktion praktischer 
sein sollte, denn den Bootloader und das Hauptprogramm musst du ja 
sowieso brennen ob du nun da die Fuses mitsetzt oder nicht macht kaum 
nen Unterschied.

Autor: Björn G. (tueftler)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Ihr!

@AVRFan: Zur Laufzeit sollen die Fuses natürlich nicht umgestellt 
werden!
Es geht mir nur darum einfacher den Chip zu programmieren...

@Christian: Hui, das ist ja eine Vorgehensweise :-)
Das dies kein Unterschied in der Produktion macht ist mir inkl. 
Bootloader nun klar... Ich habe gedacht, es gäbe eine Möglichkeit die 
Chips durch relativ unbedarfte Leute einfach brennen zu lassen, ohne das 
diese viel einstellen und dadurch falsch machen können.
Wenn ich nun sage "Dann klickst du hier und da und lädst das .hex und 
drückst danach auf program und fertig" wäre halt einfacher als noch in 
die Fusebits gehen zu müssen, zwei hex-werte ein zu stellen und das 
ganze danach auch noch in den Lockbits usw..

Schade das es kein Programm gibt, das einfach nur für das Brennen mit 
einer einzigen Taste vorgesehen ist.

Gruß
Björn

Autor: Peter Roth (gelb)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Programmierung kann ja aus einer Batchdatei mit avrasm2.exe 
erfolgen.
Vermutlich gibt es zum Setzen der Fuses ebenfalls eine exe.

Autor: Björn G. (tueftler)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Noch nie was davon gehört!

Habe eben mal kurz gegoogelt und kam auf diesen Satz:
"Peter und andere arbeiten momentan noch an der Anpassung für größere 
Controller wie den ATMega 128"

Benutze für meine Projekte ziemlich große Controller - deswegen denke 
ich, das es damit zur jetzigen Zeit nicht funktionieren wird, leider.

Trotzdem guter Tip - werde ich mir morgen etwas genauer anschauen.

Björn

Autor: Tassilo Böhr (big_t)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Geht alles auch 'offiziell':
Aus dem passenden AVR-Studio-Ordner beispielsweise AVRDragon.exe oder 
Stk500.exe nehmen und per Batchdatei Fuses, HEX und EEP brennen. 
Funktioniert mit allen noch so neuen AVRs.

Tassilo

Autor: STK500-Besitzer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Man kann die zu programmierenden Daten (Program-Code, Fuses etc) auf in 
eine SVF-Datei schreiben und mit dem "richtigen" Programmier-Werkzeug 
dann am Stück in den Controller schreiben.
http://www.atmel.com/dyn/products/faq_card.asp?faq_id=1327
http://www.atmel.com/dyn/general/advanced_search_r...

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Die Programmiersoftware für die vom AVR-Studio unterstützten Programmer 
haben eine 'Autofunktion'. Man braucht also nur ein paar Häkchen für die 
gewünschten Schritte setzen und auf 'Auto' drücken.

MG Spess

Autor: Björn G. (tueftler)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aja, das sind doch schonmal super Möglichkeiten den AVR zu brennen.

Am besten gefällt mir die Möglichkeit von "spess53" - nur welches 
Programm meint er mit "Programmiersoftware"?

Björn

Autor: spess53 (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Ich meine das Programmfenster, das erscheint, wenn du dich im AVR-Studio 
beispielsweise mit dem STK500, AVR ISP MKII oder Dragon verbindest Siehe 
Anhang)

MfG Spess

Autor: Björn G. (tueftler)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ach damit geht das?

Ist ja witzig - hat mich bisher eigentlich nicht interessiert da ich 
grösstenteils alles mit dem Jtag debugge und das genannte Problem jetzt 
bald erst ins Haus steht.

Naja, dann habe ich ja schon ein paar Ideen wie man das ganze so 
anstellen kann.

Vielen Dank für die Guten Tips!
Bis bald.
Björn

Autor: Spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Du solltest auch mal überlegen einen anderen Programmer zu benutzen. Für 
Routineprogrammierungen benutze in in der Firma einen EPSILON 5 MKII von 
EQINOX. Die zugehörige Software ist wesentlich ausgefeilter als bei 
Atmel. Für bestimmte Programmieraufgaben lassen sich Projekte erstellen 
in denen sämtliche Einstellungen gespeichert werden. Die Teile gibt es 
auch als Stand-Alone-Programmer. Die Atmel-Software ist nicht sehr 
idiodensicher. Denn wenn dein Programmierer bei einem neuen AVR z.B. auf 
den Fuse-Tab klickt liest das AVR-Studio den Controller aus und deine 
Einstellungen sind weg.

MfG Spess

Autor: Matthias Becher (matthias882)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
und wenn ich jetzt bei "Program Fuses" im Auto-Programm Fenster nen 
Haken reinmach, auf welche Einstellungen setzt er diese dann? Kann man 
die Fuse Einstellungen irgendwo im Quellcode oder in einer Datei 
hinterlegen?

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.