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


von Björn G. (tueftler)


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

von AVRFan (Gast)


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.

von Christian U. (z0m3ie)


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.

von Björn G. (tueftler)


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

von Peter R. (gelb)


Lesenswert?

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

von Björn G. (tueftler)


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

von Tassilo B. (big_t)


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

von STK500-Besitzer (Gast)


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_results.asp?device=1&tools=1&faqs=1&datasheets=1&appNotes=1&userGuides=1&software=1&press=1&articles=1&flyers=1&checkAll=1&checkAllReference=1&target=SVF

von spess53 (Gast)


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

von Björn G. (tueftler)


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

von spess53 (Gast)


Angehängte Dateien:

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

von Björn G. (tueftler)


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

von Spess53 (Gast)


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

von Matthias B. (matthias882)


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?

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.