Forum: Mikrocontroller und Digitale Elektronik AVR Studio Assemblerprogramm auf Microcontroller übertragen


von Marius (Gast)


Lesenswert?

Hallo Zusammen,

da ich wohl der einzige zu sein scheine, der noch in Assembler 
programmiert stelle ich mal eine Frage.
Ich habe ein Programm mit AVR Studio geschrieben.
Habe einen USB ISP Programmer der nicht von Atmel ist also nicht z.B 
STK500.
Wie bekomme ich jetzt mein Programm auf meinen Atmega32.
Unter ARR-GCC Tutorial steht ja schön, wie man das in C macht, aber 
nicht wie es in Assambler geht.
Möglicherweise liegt es einfach daran, dass ich das noch nie gemacht 
habe.
Vielen Dank für eine Antowort :-)

Gruß

Marius

von Spess53 (Gast)


Lesenswert?

Hi

GCC und AVR-Assembler erzeugen beide ein Hex-File. Also ist die 
Verfahrensweise zum Flashen identisch.

MfG Spess

von Marius (Gast)


Lesenswert?

Ich formuliere die Frage um ;-)

Also ich habe im Internet jetzt vermehrt ISP Programmer gefunden, die

folgenden Text enthalten:


....STK500v2 Softwareunterstützung - - AVR Studio (COM1..COM9) - - 
AVRDUDE - - Bascom mit der Einstellung Options->Programmer = STK500: 
LEDs...

Heißt dies, dass ich das Teil anschließe, die Software installieren und

aus dem AVR Studio direkt meinen Atmega programmieren kann, ohne den 
umweg

über Hex-File, Make-File usw. zu gehen?

Also so interpetiere ich den Button bei AVR Studio "Connect to the

Selected AVR Programmer"


Gruß

Marius

von Kluchscheißernder N. (kluchscheisser)


Lesenswert?

Nööö, ohne Hexfile (oder ein Binärfile/Projektfile) geht es nicht. Die 
ISP-Software des AVR-Studios kann auch nur das an den AVR übertragen, 
was als HEX-File (oder ELF-File) vorliegt.

MfG

von Thomas F. (igel)


Lesenswert?

Mit AVR Studio kann man das Assemblerprogramm in einem Zug kompilieren 
und per ISP auf den Atmel übertragen. Dazu dient der Knopf in der 
Symbolleiste mit dem schwarzen Chip und dem roten Pfeil.

Dazu muss AVR Studio jedoch mit 'connect' deinen Programmer erkennen.

Thomas

von Kluchscheißernder N. (kluchscheisser)


Lesenswert?

Assemblerprogramme kompiliert man nicht. Ich assembliere mit F7 und 
übertrage die HEX-Datei mit dem zugehörigen Icon und ggf. auch die 
EEP-Datei mit dem zugehörigen anderen Icon.

Das setzt natürlich voraus,
- dass man den Programmer (bei mir STK500 bzw. AVR-Dragon) connectet 
hat,
- dass man das richtige Device ausgewählt hat,
- dass man die richtigen Brennfiles im richtigen Projekt ausgewählt hat 
(wenn man da nicht aufpasst, brennt man eine andere Datei, an der man 
aktuell gar nicht arbeitet)
- dass man die richtigen Parameter eingestellt hat (ISP-Frequenz, 
Target-Spannung, ...)

Man sollte sich also schon mal intensiv mit dem AVR-Studio beschäftigt 
haben, es ist nunmal kein Multimedia-Konsum-Programm wie ein MP3-Player.

MfG

von Marius (Gast)


Lesenswert?

Hallo Zusammen,

ich habe jetzt einen ISP Programmer.

Er wird erkannt doch wenn ich das Programm übertragen möchte, kommt 
folgende Fehlermeldung.
entering programming mode failed
Das mit dem 1/4 des Takts habe ich gemacht.
Targetspannung stimmt auch.
Richtig angeschlossen habe ich auch.
Pin 10,30,32 VCC
Pin 11,31 GND
MISO an MISO, MOSI an MOSI, SCK an SCK und Reset an Reset
Was mache ich falsch?

Gruß

Marius

von Kluchscheißernder N. (kluchscheisser)


Lesenswert?

Marius schrieb:
> Hallo Zusammen,
>
> ich habe jetzt einen ISP Programmer.
>
> Er wird erkannt doch wenn ich das Programm übertragen möchte, kommt
> folgende Fehlermeldung.
> entering programming mode failed

Also keine Verbindung zum AVR...

> Das mit dem 1/4 des Takts habe ich gemacht.
> Targetspannung stimmt auch.
> Richtig angeschlossen habe ich auch.
> Pin 10,30,32 VCC
> Pin 11,31 GND
> MISO an MISO, MOSI an MOSI, SCK an SCK und Reset an Reset
> Was mache ich falsch?

Es besteht noch die Möglichkeit, dass der ATMega32 "verfust" ist. Die 
Ursache könnte eine wacklige ISP-Verbindung sein (falsche Befehle durch 
"Kippen" einzelner Bits), aber auch zielgerichtetes Ändern der Fuses 
durch den Vorbesitzer.

Da stellt sich die Frage nach der Herkunft des ATMega32. Stammt er vom 
Distri, von Reichelt, CSD oder anderen Neuteilehändlern, so gab es 
keinen Vorbesitzer. Stammt er aber von Pollin oder anderen 
Restpostenhändlern, so ist es durchaus möglich, dass aus einer Firma 
stammt, die ihn im Vorfeld der Produktion bereits für den Einsatzzweck 
gefust oder sogar programmiert hat.

Als nächstes könntest Du versuchen, einen externen Takt anzulegen. Im 
Datenblatt findest Du die Beschaltung dafür. Dies ist hilfreich, wenn 
nur die Taktquelle verfust ist.

Sollte ISP per Fuse deaktiviert sein, dann hilft der HV-Parallel-Mode, 
wie ihn das STK500, der AVR-Dragon und der JTAG-ICE beherrscht.

>
> Gruß
>
> Marius

MfG

von Marius (Gast)


Lesenswert?

Habe sie direkt von Atmel bekommen.
Ich habe leider das Problem das ich z.T. nicht versteh was du meinst ;-)
Bin ein absoluter Leihe.

Gruß

Marius

von Karl H. (kbuchegg)


Lesenswert?

Ich hab mir zwar vor kurzen auch einen Mega8 mit meinem neuen Programmer 
zerschossen, aber wir wollen nicht gleich vom Schlimmsten ausgehen.

Kontrollier noch mal die Verbindungen zum Programmer. Da hab ich mich 
mit meiner Freiluftverdrahtung auch 3 mal verhaut (darf ich gar nicht 
sagen :-)
Wenn geht, nimm einen Durchgangsprüfer und klingle die Leitungen durch, 
ob auch wirklich alles richtig am Chip ankommt. Mit einem Voltmeter noch 
kontrollieren ob die Versorgungsspannung am Mega überall richtig 
ankommt!

Bei manchen Programmern ist nicht klar, ob Vcc am ISP Stecker zur 
Targetversorgung geeignet ist, oder ob das nur eine Sense-Leitung ist. 
Manchmal gibt es da Steckbrücken, mit denen man das auswählen kann. 
Daher: Mit dem Voltmeter direkt am Mega kontrollieren, ob da 5V (oder 
3.3V) anliegen.

von Marius (Gast)


Lesenswert?

Vielen vielen Dank :-)

Daran lag es wohl.

Das hätte ich nie vermutet.

Gruß

Marius

von Rudi D. (rulixa)


Lesenswert?

PONYPROG erledigt das Gewünschte. http://www.lancos.com/prog.html
Läuft unter Windows und kann die vom AVR Studio erzeugten Hexfiles über 
ein einfaches Interface, das auch dort zu finden ist, in den uC laden.

Im Ponyprogfenster sieht man auch die Einstellung der Fuses und kann sie 
anpassen wie gewünscht. ABer Vorsicht: unüblicherweise heißt
1....nicht gesetzt, kein Haken im Fensterchen
0....Fuse ist aktiv, ein Haken sichtbar.

von Marius (Gast)


Lesenswert?

Vielen Dank an alle.ich hab eben mal ein c Programm übertrag und es 
läuft.

Doch nun wollte ich mal mein LC Display ansteuernt.

Unter dem Simulator in AVR Studio habe ich zusammen mit lcdsim alles 
schon getestet.

Doch leider zeigt das Echt nix an.

Wie kann das denn sein?

LC Display kaputt?

Es hat den KS0066U als Controller drin.

in meinem Projekt habe ich Hauptprogramm und die LCD Routine in zwei 
dateien.

Werden die auch automatisch beide ins HEX-File geschrieben?

Kann ich ja nicht sehen.

Gruß

Marius

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.