Hallo,
habe beim Googeln das AVR-ASM-Tutorial von Gerhard Schmitd entdeckt.
Sieht interessant aus.
Jetzte will ich selber mal ein paar Sachen in ASM ausprobieren.
Habe allerdings nur Bascom-Erfahrung und einen SP12-Progger (allerdings
mit eigener Stromversorgung, nicht vom PC).
Bin jedoch auch Bascom-verwöhnt: Programm schreiben, kompilieren, auf
AVR brennen, geht alles mit Bascom-AVR.
Wie sieht es denn bei ASM aus, gibt es da auch was ähnliches, also
Editor, Compiler und Brennprogramm (für SP12) in einem?
Wenn ja, was könnt ihr empfehlen?
Nimm das AVR-Studio. (Gibts auf der Seite von Atmel) Ist sogar ein
Softwaredebugger mit drin.
Vorteil ist, das man sogar seine Bascom-Hex Files damit einlesen kann
und debuggen kann... ;) (Und man sieht, was für einen grauenhaften Code
Bascom manchmal produziert)
Als Programmiersoftware dann die mitgeleiferte zum SP12 nehmen...
Mirko
ASM kann das AVR-Studio 4.x . Empfehlen kann ich aber nur originale
AVR-Programmer. Die werden auch komplett vom AVR-Studio unterstützt. Der
günstigste mit knapp 40EUR ist der AVR-ISP mkII, der beherrscht alle
seriellen Protokolle, außer High-Voltage. Damit kann man fast alle
Megas, Tinys und XMegas programmieren.
Danke für die Antworten!
MirkoB schrieb:> Als Programmiersoftware dann die mitgeleiferte zum SP12 nehmen...
vom AVR-studio mitgeliefert oder woher?
und kann jemand sagen, ob es reicht, die AVR Studio-Version 4.18 SP2
runterzuladen, oder ob vorher noch AVR Studio 4.18 installiert werden
sollte (s.u., link)?
http://www.mikrocontroller.net/articles/AVR-Studio
Lucas schrieb:>> Als Programmiersoftware dann die mitgeleiferte zum SP12 nehmen...> vom AVR-studio mitgeliefert oder woher?AVR-Studio liefert Treiber für originale ATMEL-Programmer mit, der SP12
müßte seine eigenen Treiber haben, aber AVR-Studio unterstüzt den nicht.
>Erst AVR Studio 4.18 installieren. Dann SP2.
Danke!
Travel Rec. schrieb:> AVR-Studio liefert Treiber für originale ATMEL-Programmer mit, der SP12> müßte seine eigenen Treiber haben, aber AVR-Studio unterstüzt den nicht.
heißt das, man kann den SP12-Progger nicht unter AVR Studio nutzen?
Ja, das heißt es. Du kannst aber das *.hex-File mit AVR-Studio erzeugen
und dann mit der SP12-Software den Controller brennen, wobei dieser
Controller dann von der SP12-Software unterstützt sein muß. AVR-Studio
unterstützt alle aktuellen AVRs.
spess53 schrieb:> Du kannst deine Programmiersoftware vom AVR-Studio aus aufrufen.
dann müsste ich Bascom AVR aufrufen, geht das?
wovor mir grauen würde, wäre, dass ich mit dem eine Programm das
ASM-File erzeuge, es dann irgendwo speichern muss, um es dann mit einem
anderen programm wieder aufzurufen, um es dann damit schließlich auf den
AVR brennen zu können.
Travel Rec. schrieb:> und dann mit der SP12-Software den Controller brennen
was meinst du mit SP12-software, gibt es da eine eigene? ich mache das
immer unter bascom avr.
Lucas schrieb:> was meinst du mit SP12-software, gibt es da eine eigene? ich mache das> immer unter bascom avr.
Zumindest ist auf der SP12-Homepage davon die Rede. Wenn bascom das
kann, umso besser.
Lucas schrieb:> wovor mir grauen würde, wäre, dass ich mit dem eine Programm das> ASM-File erzeuge, es dann irgendwo speichern muss, um es dann mit einem> anderen programm wieder aufzurufen, um es dann damit schließlich auf den> AVR brennen zu können.
Da wird Dir wohl nichts anderes übrig bleiben.
Du kannst aber auch in der Bascom-Oberfläche Assemblerprogramme eingeben
und testen.
Dazu muß man entweder die Kompilerdirektiven
$ASM
Hier das ASM Programm entragen
$END ASM
benutzen oder vor einen ASM-Befehl ein ! setzen.
MfG Paul
> Lucas schrieb:>> wovor mir grauen würde, wäre, dass ich mit dem eine Programm das>> ASM-File erzeuge, es dann irgendwo speichern muss, um es dann mit einem>> anderen programm wieder aufzurufen, um es dann damit schließlich auf den>> AVR brennen zu können.>> Da wird Dir wohl nichts anderes übrig bleiben.
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaah
hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!
nee im ernst, da muss es doch noch andere möglichkeiten geben.
das blöde ist, dass ich grade mal ein bisschen zeit für sowas übrig
habe, wenn ich jetzt noch einen neuen brenner bestellen muss, ist der
garantiert erst mitte nächster woche hier...
kann man nicht mit einem Mega8 einen Brenner basteln, der unter AVR
Studio genutzt werden kann?
Paul Baumann schrieb:> Du kannst aber auch in der Bascom-Oberfläche Assemblerprogramme eingeben> und testen.>> Dazu muß man entweder die Kompilerdirektiven> $ASM>> Hier das ASM Programm entragen>> $END ASM>> benutzen oder vor einen ASM-Befehl ein ! setzen.
ja, ich weiß, ist eigentlich auch eine coole sache.
allerdings reserviert (soweit ich gehört habe) Bascom vorab schon einige
funktionen/variablen/register(!?, man korrigiere mich nötigenfalls!)
d.h., man hat dann immer auch Bascom-Ballast mit im Programm.
deshalb will ich lieber direkt in ASM einsteigen
>kann man nicht mit einem Mega8 einen Brenner basteln, der unter AVR>Studio genutzt werden kann?
Das kann man machen:
http://www.obdev.at/products/vusb/avrdoper.html
Diesen Apparat habe ich mir gebaut und er funktioniert prima mit dem
AVR-Studio zusammen.
MfG Paul
kommt darauf an...
leider finde ich zum AVR-dropper keinen schaltplan.
ich vermute mal, der größere IC auf der platine ist der M8 und der
kleinere ist ein MAX232...
gibt es das ganze nicht noch ein wenig kompakter?
immerhin benutze ich seit jahren erfolgreich SP12, bin also waschechter
minimalist.
;)
Naja - die ganz minimalen Teile unterstützt halt das AVR-Studio nicht...
Es gibt auch noch den hier:
http://www.embedded-projects.net/index.php?page_id=135
Aber am aktuellsten sind und bleiben immer die Originalprogrammer. Wenn
Du viel Zeit und Ausdauer hast, bau Dir einen Programmer, wenn Du am
Wochenende etwas programmieren möchtest, bestell Dir einen AVR-ISP mkII.
habe grade gesehen, dass das AVR Studio auch Brenner für die COM-Dose
akzeptiert.
Gibt es da nichts einfaches zum Nachbau? M8 und MAX232 habe ich
vorrätig, mit Logik-ICs siehts leider bis auf ein paar Exemplare in
meiner Bastelkiste eher bescheiden aus.
HV-Programmierung ist nicht erforderlich...
PS: auf die schnelle habe ich noch diesen beitrag hier gefunden:
Beitrag "AVR direkt aus AVR-Studio heraus brennen"
(mit parallelem ISP-Programmer und Ponyprog)
das geht ja schon stark in die richtung... so ganz verstehe ich zwar
noch nicht, wie es gemacht wird, aber das kommt hoffentlich noch
;)
ich frage mich außerdem, ob der dort angegebenen parallel-progger mit
dem 74HC244 im grunde baugleich zum SP12-Progger ist (von wegen
anschlussbelegung), muss ich später mal gucken.
hier der schaltplan von der 74HC244-version:
http://rumil.de/hardware/avrisp.html
hier rowalt:
http://www.rowalt.de/mc/avr/progd.htm
(falls jemand im vorfeld schon mal gucken möchte)
Lucas schrieb:> ...baugleich zum SP12-Progger ist (von wegen> anschlussbelegung), muss ich später mal gucken.
sieht nicht so aus:
74hc244 (pp-pin) rowalt (pp-pin)
sck 6 2
res 9 3
mosi 7 9
miso 10 11
(ohne gewähr)
der 74hc244-progger hat ausserdem noch zwei leitungen FN1 und FN2 (wofür
auch immer die sein mögen...)
Warum einfach, wenn man es auch kompliziert machen kann. Das
widerspricht dem Thementitel zu 100%. Die nächste Frage lautet dann:
"Mein AVR geht nicht mehr. Hat das etwas mit den Fuses zu tun? Was
bedeutet eigentlich RSTDISBL?"
Ich bin ´raus.
Hallo,
unabhängig davon, ob ein SP12-Programmer nun gut ist oder nicht: wenn
das Teil bei Dir funktioniert mit Deiner Programmiersoftware und diese
das HEX-File aus irgendeinem Ordner laden kann, ist es doch vorerst
unproblematisch.
AVR-Studio speicher das HEX-File beim assemblieren in seinem
Projektordner.
Also parallel die Programmersoftware offen lassen und das File aus
diesen Ordner laden und brennen. Wenn Du jetzt was änderst, muß Du ja
nach dem assembleiren nur die Programmersoftware nach vorn holen, daß
gleiche File wieder neu laden und brennen.
Das habe ich jahrelang mit AVR-Studio und Ponyprog so gemacht...
Ansonsten eben USB-AVRLab o.ä zusammenlöten, den Mega8 mit Deinem SP12
brennen und dann eben das Ding als MK2 aus AVR-Studio benutzen...
Gruß aus Berlin
Michael
Travel Rec. schrieb:> Warum einfach, wenn man es auch kompliziert machen kann. Das> widerspricht dem Thementitel zu 100%. Die nächste Frage lautet dann:> "Mein AVR geht nicht mehr. Hat das etwas mit den Fuses zu tun? Was> bedeutet eigentlich RSTDISBL?">> Ich bin ´raus.
ich auch, zu kompliziert. morgen vormittag geh ich erst mal die enten im
park füttern...
;)
Michael U. schrieb:> Hallo,>> unabhängig davon, ob ein SP12-Programmer nun gut ist oder nicht: wenn> das Teil bei Dir funktioniert mit Deiner Programmiersoftware und diese> das HEX-File aus irgendeinem Ordner laden kann, ist es doch vorerst> unproblematisch.
Das habe ich mir eben auch überlegt.
Eigentlich geht es ja erst mal um ASM.
Das mit dem "zwei Programme gleichzeitig benutzen" ist eine gute Idee!!!
Ansonsten habe ich noch den AVRISP MKII entdeckt, der braucht nur einen
M8 und ein bisschen Hühnerfutter, das aber für später.
Ok, wie bringe ich denn mit dem AVR-Studio die sprichwörtliche LED zum
Blinken?
Gibt es irgendwo eine Anleitung, wie man im AVR-Studio die ganzen
Fenster unter Kontrolle bekommt und was man wo wie eingeben muß?
Das Studio hat bei mir natürlich erst mal gemeckert, dass kein
Programmer anwesend ist...
So, habe jetzt im AVR Studio den Simulator eingeschaltet und einen Mega8
ausgewählt.
Dann folgendes Programm eingegeben, es soll ein Brummen (Rechteck) an
Port B, Bit 0 ausgeben:
.equ c1 = 0 ; Bestimmt die Tonhöhe
sbi DDRB,0 ; Portbit ist Ausgang
Loop:
sbi PORTB,0 ; Portbit auf high
ldi R16,c1
Loop1:
nop
nop
nop
nop
nop
dec R16
brne Loop1
cbi PORTB,0 ; Portbit auf low
ldi R16,c1
Loop2:
nop
nop
nop
nop
nop
dec R16
brne Loop2
rjmp Loop
Nach dem Compilieren kommen folgende Fehlermeldungen:
E:\Dokumente und Einstellungen\Kleimann\Eigene Dateien\zulu\zulu.asm(2):
error: Undefined symbol: DDRB
E:\Dokumente und Einstellungen\Kleimann\Eigene Dateien\zulu\zulu.asm(4):
error: Undefined symbol: PORTB
E:\Dokumente und Einstellungen\Kleimann\Eigene
Dateien\zulu\zulu.asm(14): error: Undefined symbol: PORTB
Die Begriffe „DDRB“ und „PORTB“ (er)kennt er wohl nicht.
Was kann/muss man machen?
spess53 schrieb:> Hi>> Nachtrag: "m8def.inc" gilt natürlich nur für einen ATMega8.>> MfG Spess
Ist schon klar ;)
Habe die Datei weggelassen, weil ich ja vorher schon den Atmega8 im
Studio angeklickt hatte, dachte, das reicht...
werds gleich mal testen.