www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AVR direkt aus AVR-Studio heraus brennen


Autor: Uli Huber (ulihuber)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

ich bin über die Frage gestolpert, wie man aus AVR-Studio heraus direkt 
programmieren kann ohne einen SDK-kompatiblen Programmer zu haben. Da 
ich nichts gefunden habe, möchte ich meine Lösung vorstellen.

Ich benutze einen parallelen ISP-Programmer und Ponyprog. Um dieses aus 
dem AVR-Studio heraus laufen zu lassen braucht es eine Steuerdatei mit 
der Endung .e2s.
Die sieht dann in etwa so aus:

#------ START --------
#Programming sequence
SELECTDEVICE ATTINY2313
CLEARBUFFER
LOAD-PROG .\meinprogramm.hex
LOAD-DATA .\meinprogramm.eep
ERASE-ALL
WRITE&VERIFY-ALL
#Pay attention to NOT disable RSTDISBL
#FusesH:
# DWEN,  EESAVE, SPIEN, WDTON, BODLEV2, BODLEV1, BODLEV0, RSTDISBL}
#   1       1       0      1       1        0       0         1
#FusesL:
# CKDIV, CKOUT,  SUT1,  SUT0,  CKSEL3,  CKSEL2,  CKSEL1,  CKSEL0}
#   1      1       1     1        1        1       1        1
WRITE-FUSE 0x2600
#Lock: {X,X,X,X,X,X,Lock2,Lock1}
        0 0 0 0 0 0      1     1
WRITE-LOCK 0x03
#------- END ---------

Die Steuerdatei hat den Vorteil, daß sie projektspezifisch ist und alle 
Flags mit brennt.

Im AVR-Studio kann man dann mit Tools-Customize-Tools-Insert einen neuen 
Eintrag  im Pull-Down-Menu 'Tools' anlegen, der auf diese Datei zeigt. 
Er erscheint praktischerweise auch gleich das Ponyprog-Icon.
Aus dem Menu Tools-Customize-Commands kann man dann das Icon auch auf 
eine der Menuleisten ziehen.

Ab da kann man nach dem Assemblieren mit dem Button den Chip brennen, 
ich mache das In-Circuit auch ohne spezielles ISP Interface, in dem ich 
einfach einen AVR einsetze, an dem die 6 Drähte direkt angelötet sind.

Das ist es schon. Vielleicht hilft's ja jemand…

Gruß
Uli

Autor: Stefan Gemmel (steg13)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ja funktioniert, guter Tipp :-)

Die Zeile unter #lock hat eine Fehlermeldung erzeugt, ich habe dann ein 
# davorgeschrieben.

Muss man für jedes Projekt eine eigene Datei schreiben, oder kann man 
sagen: nimm die aktuell geöffnete Datei?

Autor: Läubi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
kann man die HEX Datei irgenwie als Parameter übergeben?

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank, das ist hilfreich.
nun muß ich nur noch strg + P auf den buttonlegen und dann bin ich 
glücklich ;-)

Mal wieder ein weiterer Grund, weshalb sich auch der passive Genuss 
dieses Forums lohnt

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Uli ich hab mal eine Frage:

Du benutzt ja  PonyProg zum Programmieren. Welches ISP Interface benutzt 
du ? Kannst mir bitte nen Link zu Schaltplan etc geben ? das wäre nett.


Danke

Autor: Toralf Wilhelm (willi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sebastian wrote:
> Hallo Uli ich hab mal eine Frage:
>
> Du benutzt ja  PonyProg zum Programmieren. Welches ISP Interface benutzt
> du ? Kannst mir bitte nen Link zu Schaltplan etc geben ? das wäre nett.
>
>
> Danke

Guten Morgen,

schreibt er doch, "Ich benutze einen parallelen ISP-Programmer und 
Ponyprog.".
Schaltplan, z.B. hier: http://rumil.de/hardware/avrisp.html
Schau mal hier, da sind alle erklärt: 
http://www.mikrocontroller.net/articles/AVR_In_Sys...

Danke an Uli, ist ein guter Tip. Wo hast Du die Infos zur Steuerdatei 
für PonyProg her? Man muß ja für jedes Projekt eine andere Datei 
anlegen, kann man das nicht noch etwas automatisieren? z.B.: den Inhalt 
am Anfang des ASM.file ablegen und dann per Stapelverarbeitung in eine 
e2s datei einlesen.

Gruß Willi

Autor: Uli Huber (ulihuber)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Willi,

die Steuerdatei kommt aus der Ponyprog-Hilfe, Punkt 4.1

KLar muß man eine Steuerdatei für das Projekt anpassen. Aber das sind ja 
nur 2 Zeilen (Namen) und ggf. Flags, die man ohnehin setzen muß.
Und wenn ich ein Projekt mache, kommt es auf die Kleinigkeit am Anfang 
nicht an ;-)

Schöner wär's natürlich mit einem aus dem AVR-Studio übergebenen Namen, 
aber so einen Trick habe ich noch nicht gefunden.

Was mir auch noch abgeht, ist eine Möglichkeit, den Namen der .hex Datei 
aus dem Code heraus zu steuern (für bedingte Assemblierung).

Ganz habe ich das mit der ASM-Datei nicht verstanden. Aber einer aus der 
UNIX-Welt GREPt sich so eine Steuerdatei locker zusammen. Ich kann's 
nicht.

Gruß
Uli


Gruß
Uli

Autor: wulf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bzgl. der vom AVR Studio übergebenen Datei bzw. deren Namen:
In der PonyProg Dokumentation steht das sogar:
http://www.lancos.com/e2p/ponyprog2000.html#s4

Einfach im Makefile die Datei mit dem skript schreiben lassen.

~~~~

Andere Frage dazu:
Kann man irgendwo beim AVR Studio das default-Makefile ändern?
Der muss ja irgendwo eine Vorlage haben...

Autor: Lukas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo ich habe noch eine Frage:
Wenn man direkt über Pony Prog die Fuses setzt, muss man diese ja 
negiert eingeben, da Pony Prog die Fuses negiert dem µC überträgt. Muss 
man die Fuses in der .e2s-Datai auch negiert eingeben oder wird das was 
ich dort eingebe dem µC genauso übertragen?
Vielen Dank für die Antwort

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lukas wrote:
> Hallo ich habe noch eine Frage:
> Wenn man direkt über Pony Prog die Fuses setzt, muss man diese ja
> negiert eingeben, da Pony Prog die Fuses negiert dem µC überträgt.
PonyProg überträgt gar nichts negiert. Nur die Eingabe ist für den 
Benutzer etwas gewöhnungsbedürftig, weil ein Häkchen im Kästchen 
bedeutet, dass die Fuse programmiert wird (also 0 ist) und kein Häkchen 
eben "unprogrammiert", also 1, bedeutet...

Autor: Wolfram Quehl (quehl)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
die Eingaben in Ponyprog entsprechen dem Datenblatt. Für die eigenartige 
Eingabe ist daher Atmel verantwortlich.

mfg

Autor: Christian U. (z0m3ie)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das ganze geht über ein Makefile noch um einiges komfortabler, und mann 
kann die Standart build Buttons benutzen. Einfach in den Projektoptionen 
externes Makefile angeben ...

Autor: Uli Huber (ulihuber)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Makefile - prima.

Aber wo genau ? Ich kann in meiner 4.13 nix finden.

Gruß
Uli

Autor: Zeusi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sauber ;)

gleich mal testen,...
grüüüße

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wo holt sich das AVRStudio das "default-Makefile" fürs WinAVR her? So 
eine Art Vorlage. Wo befindet sich die?

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.