www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Butterfly in Auslieferungszustand zurücksetzen


Autor: Jürgen K. (racerone)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute,

bevor ich anfange auf meinem Butterfly zu programmieren wollte ich 
wissen wie ich das Teil wieder in seinen Ursprungszustand versetzen 
kann.
Bei Atmel kann man sich ein Hex-File downloaden welches den Bootloader 
und das Programm enthält.

Reicht es per JTAG das Hexfile in den Flash zu schreiben?


Noch eine Frage, wenn JTAG aktiviert ist, funktioniert dann noch ISP?
JTAG scheint bei mir zu funktionieren, ISP jedoch nicht.

Gruß, Jürgen

Autor: Jürgen K. (racerone)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe mir mal die AVRGCC-Übersetzung von Martin Thomas 
heruntergeladen.
http://www.siwawi.arubi.uni-kl.de/avr_projects/

ich habe das Projekt entpackt und in AVRStudio ein neues AVRGCC-Projekt 
angelegt. Sourcefile ist die main.c.
Wenn ich nun das Projekt kompiliere, bekomme ich lauter Fehlermeldungen:
main.o:(.progmem.data+0x258): undefined reference to...

kann mir jemand sagen was ich vergessen habe?

Autor: Martin Thomas (mthomas) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jürgen K. schrieb:
>...
> ich habe das Projekt entpackt und in AVRStudio ein neues AVRGCC-Projekt
> angelegt.
>...
Im den zip-Paketen meines avr-gcc/avr-libc-Ports des Atmel-Beispielcodes 
sind Projektdateien für AVRStudio dabei. Also kein neues Projekt 
anlegen, sondern in Project->Open Project die mitgelieferte .aps-Datei 
auswählen, dann Build->Rebuild All.

>...
>bevor ich anfange auf meinem Butterfly zu programmieren wollte ich
>wissen wie ich das Teil wieder in seinen Ursprungszustand versetzen
>kann.
>...
Sofern man nicht an den FUSE-Bits herumspielt, kann nicht viel 
passieren. Wichtig ist, die Clock-Einstellungen nicht zu verändern (soll 
immer internal R/C bleiben). Zwar kann man diese auch wieder in den 
Auslieferungszustand bringen, das kann aber ungünstigstenfalls recht 
knifflig werden (parallel-programming, um users-manual beschrieben). 
Meist (bei mir bisher immer) reicht es aber, einen Takt an XTAL1 zu 
legen und FUSE-bits wieder richtig einzustellen.

>...
>Noch eine Frage, wenn JTAG aktiviert ist, funktioniert dann noch ISP?
Ja, sollte. JTAG und serISP sind beim ATmega169(p)v auf dem BF im 
Auslieferungszustand aktiviert. Hatte damit bisher noch keine Probleme, 
habe JTAG aber nur sehr selten benutzt (die 4 Pins dafür haben oft 
andere Aufgaben).

>JTAG scheint bei mir zu funktionieren, ISP jedoch nicht.
>...
Da fehlt eine genauere Fehlerbeschreibung, um das etwas nachvollziehen 
zu können. Mit welcher Hardware getestet? Anschluss? Genaue Abfolge der 
Tests?

Autor: Jürgen K. (racerone)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke Martin,

hab ich doch glatt übersehen, dass es schon ein Projektfile gibt.
Funktioniert auch bei mir. Allerdings würde mich trotzdem interessieren 
was ich machen muss um ein eigenes Projet zu erstellen. Die Datei main.c 
hinzuzufügen scheint nicht zu reichen, da muss ich wohl noch etwas mehr 
tun.

Weshalb ich frage ist der Bootloader, wenn ich per JTAG oder ISP ein 
Programm hochlade, was passiert mit dem Bootloader? Wo liegt er und 
überschreibt man ihn dabei? Ich habe noch nie etwas mit einem Bootloader 
gemacht.

Zum Programmieren nutze ich den Dragon, ich habe den Anschluss vom 
Butterfly 1:1 mit dem Dragon verbunden. Anschließend habe ich versucht 
die Signatur des µCs auszulesen, ging leider nicht. (Typische 
ISP-Fehlermeldung)
Die Stiftleiste schaut nach oben raus (Displayseite)
Mit JTAG ist es dagegen kein Problem, die Signatur konnte ich auslesen.

Gruß, Jürgen

Autor: Martin Thomas (mthomas) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jürgen K. schrieb:

>...
> Allerdings würde mich trotzdem interessieren
> was ich machen muss um ein eigenes Projet zu erstellen. Die Datei main.c
> hinzuzufügen scheint nicht zu reichen, da muss ich wohl noch etwas mehr
> tun.
Es müssen alle .c-Dateien im AVRStudio Projekt (source-files) enthalten 
sein, aus denen man in der eigenen Anwendung Funktionen aufrufen will. 
Die Einstellungen für Compiler- und Linker-Optionen im AVRStudio 
gcc-Plugin einfach erstmal so übernehmen, wie im gcc-Port der 
Beispielanwendung.

> Weshalb ich frage ist der Bootloader, wenn ich per JTAG oder ISP ein
> Programm hochlade, was passiert mit dem Bootloader?
Vor Programmierung des Flash-Speichers wird dieser in 
Standardeinstellung komplett gelöscht. Man kann "chip erase" zwar 
deaktivieren, das bringt aber nur Ärger bei den Speicherbereiche, die 
man verändern will. Also aktiviert lassen.

> Wo liegt er
Am "oberen" Ende des Speichers. Vgl. Fuse settings und ATmega169 
Datenblatt.

> und überschreibt man ihn dabei?
ja, BL wird wegen chip erase mit 0xff "überschrieben".

> Ich habe noch nie etwas mit einem Bootloader gemacht.
Auf den atmel.com-Seiten zum Butterfly gibt es eine hex-Datei zum 
Download. In dieser ist die die Beispielanwendung inkl. Bootloader 
enthalten. Wenn man den Inhalt der hex-Datei wieder per ISP od. JTAG in 
den ATmega überträgt ist der Bootloader auch wieder im Flash-Speicher.

Quellcode des Bootloaders sollte in einer AVR AppNote zu finden sein. 
Alternativ gibt es auf meiner Seite auch einen gcc-Port des Bootloaders 
inkl. hex-Datei (ohne die Anwendung).

> Zum Programmieren nutze ich den Dragon, ich habe den Anschluss vom
> Butterfly 1:1 mit dem Dragon verbunden. Anschließend habe ich versucht
> die Signatur des µCs auszulesen, ging leider nicht. (Typische
> ISP-Fehlermeldung)
und auch auf die "typische" Ursache geprüft, also ISP Frequenz nicht zu 
hoch eingestellt? Mit 250kHz oder geringerem Takt ausprobiert?

> Die Stiftleiste schaut nach oben raus (Displayseite)
> Mit JTAG ist es dagegen kein Problem, die Signatur konnte ich auslesen.
Ist doch o.k. Solange man die 4 JTAG Pins für nichts anders gebrauchen 
mag, kann man ja über JTAG Kontakt aufnehmen.

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.