AVR direkt aus AVR-Studio heraus brennen

OP #477272
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
Gast #478640
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
#478710
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_System_Programmer

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
OP #486859
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
Gast #629696
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
#629734
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...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren