Forum: Mikrocontroller und Digitale Elektronik Atmel Studio 6.2 >>> Prog. in uC übertragen


von __Son´s B. (bersison)


Lesenswert?

Hallo!

Ich fange gerade mit dem Franzis Lernpaket "Microcontroller in C 
programmieren" an.
Leider ist hier nicht beschrieben, wie ich das compilierte Programm auf 
den uC (Franzis-Versuchs-LP) übertragen bekomme.

Fa.Franzis hat sich bis jetzt nicht zurück gemeldet.

von Marek Walther (Gast)


Lesenswert?

Welchen controller?

Wahrscheinlich wird dir ein Atmel MK II  Programmiergerät für ca. 40,- 
weiterhelfen.

von __Son´s B. (bersison)


Lesenswert?

Es geht mir weniger um den Controler, sondern um die Funktion 
(Menüpunkt) innerhalb des Studio 6.2

Der Programmer und ATmega88 ist auf der Franzis-LP integriert.

von Bernd K. (prof7bit)


Lesenswert?

__Son´s B. schrieb:
> Der Programmer und ATmega88 ist auf der Franzis-LP integriert.

Es gibt geschätzt 2 Dutzend verschiedene Programmer, manche sind 
kompatibel mit irgendwelchen Atmel-Programmern, manche (die meisten) 
sind komplett anders aufgebaut und gehen nur mit avrdude.

Ohne zu wissen was für ein Programmer da eingebaut ist (oder evtl 
vielleicht nur ein Bootloader der einen von den alten AVR-Programmern 
emuliert, wie es z.B. beim Arduino gehandhabt wird), ohne zu wissen was 
genau da verbaut ist ist es nicht leicht zu sagen wo Du klicken musst 
oder ob das überhaupt ohne zusätzliche Software und spezielle 
Konfiguration im Atmelstudio möglich sein wird.

War da kein Buch oder dergleichen dabei?

: Bearbeitet durch User
von Peter R. (pnu)


Lesenswert?

irgendwie ist nicht mehr bekannt, dass das Schlüsselfile für die 
Programmierung von Kontrollern das sogenannte Intel-file ist, das die 
übliche Endung .hex hat.

Nahezu jeder Assembler oder Compiler kann so eingestellt werden, dass er 
ein .hex file erzeugt.

Hat man erst das .hex-file, gibt es viele Möglichkeiten, dieses auf den 
Kontroller zu übertragen:

ISP-Verbindung: Im AVR-Tutorial gibt es Hinweise auf unzählige 
Möglichkeiten das .hex file per ISP auf einen Kontroller zu bringen.

Bootloader auf dem Chip: Es gibt unzählige bootloader ( Hilfsprogramme 
auf dem jeweiligen Chip, die .hex files aufnehmen und in den 
Speicherbereich übertragen können). Das bietet auch Franzis in einem 
Buch an.
 Dazu spielt man zuerst den bootloader auf den Chip. Danach ist der Chip 
imstande, das .hex file über eine serielle Schnittstelle aufzunehmen und 
in den Programmspeicher abzulegen.
Arduino-Prozessoren haben z.B. solch einen bootloader auf dem Chip. der 
vom PC aus mit dem .hex-file gefüttert werden kann. Und auch Atmel 
bietet fertig mit dem Bootloader programmierte Kontroller an (in der 
Typenbezeichnung irgendwas mit U2 oder U4 am Ende)

Das ergibt so viele Möglichkeiten, dass man genau wissen muss, welche 
Programmiergerät oder welcher bootloader, welche Entwicklungsumgebung 
und welcher Kontroller vorliegt,um genauer zu sagen, wie das Ganze 
zusammenspielt.

: Bearbeitet durch User
von Peter R. (pnu)


Lesenswert?

Eher in richtung deutschsprachlicher Frager:

__Son´s B. schrieb:
> Der Programmer und ATmega88 ist auf der Franzis-LP integriert.

Hat Franzis das auf eine Langspielplatte gespielt ???

Und wie kriegt man einen Programmer physikalisch auf eine 
Langspielplatte?

Warum immer dieses schwachsinnige Abkürzen? Und warum immer diese 
verwaschene Ausdruckweise? Auf einer CD (compact Disk) kann höchstens 
ein Schaltplan, ein Bestückungsplan oder eine Betriebsanleitung 
gespeichert sein, aber nicht ein Programmer.
integrieren ist auch etwas andres als "mit aufgezeichnet" oder 
"vorhanden"

von Leopold N. (leopold_n)


Lesenswert?

Also ich hatte anfangs auch probleme mit atmelstudio...
ich hab mir dann den avrisp mkII gekauft ( so für ca. 50 euro bei 
reichelt.de). Dann musst du die pins des programmers(also des avrisp 
mkII) mit den richtigen pins des ųc verbinden(siehe anhang).

nun zum softwareteil:
Ich kenn es so dass man ein neues projekt anlegt, das device,also 
welchen controller man verwendet angibt, anschließend den quellcode 
schreibt.
jetzt drückt man F7, also "build", damit wird dein code in eine .hex 
oder .elf file verwandelt (mein controller akzeptiert beide 
formate(atmega32)) und die schreibst du nun folgendermaßen auf den 
controller:

verbinde den programmer mit dem pc(über das mitgelieferte usb kabel) 
dann den programmer an den controller, jetzt schaltest du die 
stromversorgung des controllers ein.
wenn du bis jetzt alles richrig gemacht hast, leuchten am programmer 2 
grüne leds.

jetzt drückst du die tastenkombi:
ctrl+shift+p
es sollte sich ein fenster öffnen... wenn nicht sollte rechts oben in 
der menubar ein feld mit dem namen "device programming" sein - drauf 
drücken
Jetzt den angeschlossenen programmer auswählen, das device(ųc) angeben 
und auf "apply" drücken... jetzt musst du rechts davon die am controller 
anliegende spannung und die "device id" durch die beiden buttons "read" 
auslesen.

jetzt gehst du unter die rubrik "memory" und drückst "program"

dann sollte unten links ein grüner balken sich füllen.... fertig

ich hoffe, dass ich dir helfen konnte, wenn es nicht funktioniert, dann 
schreib nochmal.
da ich nicht sehr regelmäßig hier im forum aktiv bin kannst du mich auch 
gerne per mail kontaktieren:

Leopold_nuetzel@web.de

Wenn allea funktioniert: viel spaß

von Leopold N. (leopold_n)


Lesenswert?

http://allaboutee.com/2011/05/11/how-to-program-an-avr-microcontroller/

sorry hatte den anhang vergessen... hier is nochmal der pinout des 
avrisp mkII

von Marek Walther (Gast)


Lesenswert?

Ich denke, darum geht es.
https://www.youtube.com/watch?v=8wz8wUJsZPc

Und das könnte deine Frage beantworten:
https://www.youtube.com/watch?v=Lt7PMUQxzUQ

von __Son´s B. (bersison)


Lesenswert?

Ja, hallo und herzlichen dank für die vielfältigen Anregungen.

In der Tat, handelt es sich um einen ähnlichen Bausatz, aber gleiches 
Problem wie;
https://www.youtube.com/watch?v=Lt7PMUQxzUQ
Das Buch ist gut geschrieben, aber ausgesprochen verwirrend aufgebaut. 
Daher kann es sein, dass ~irgendwo~ später im Buch auch das Übertragen 
der hex-Datei auf den ATmega nachvollziehbar beschrieben ist.

MProg habe ich auch geladen, wusste aber nicht das es (vermutlich) 
ausschließlich für die Übertragung zuständig ist.
Hier ~dachte~ ich, da mit dem Studio 6.2 editiert, compiliert und später 
ev. auch simuliert wird, von hier aus den hex-File auf das Bord 
übertragen zu können.

von __Son´s B. (bersison)


Lesenswert?


von Bernd K. (prof7bit)


Lesenswert?

__Son´s B. schrieb:
> Hier ~dachte~ ich, da mit dem Studio 6.2 editiert, compiliert und später
> ev. auch simuliert wird, von hier aus den hex-File auf das Bord
> übertragen zu können.

Das geht auch out-of-the-box, aber NUR wenn der Programmer zufällig ein 
echter ATMEL-Programmer ist oder 100% mit einem solchen kompatibel. Für 
alle anderen brauchst Du separate Software und/oder sogar Treiber (je 
nach dem).

Das ist auch der Grund warum hier andauernd der AVRISP-MKII empfohlen 
wird. Der ist von ATMEL und das das Atmelstudio ist sehr wählerisch was 
die Programmer angeht mit denen es zusammenarbeiten will.

Für alle anderen nimmst Du avrdude (Kommandozeile) oder eine irgendeine 
Software die auf avrdude aufbaut.

Wenn Du jedoch unter Linux arbeitest stellt sich das Problem so 
überhaupt nicht, dort gibts kein Atmelstudio, man verwendet stattdessen 
Eclipse mit dem AVR-Plugin und das geht mit allen Programmern unter 
diesem Himmel, unter Linux hätte ein Orginal-Atmel also kaum 
irgendwelche Vorteile.

Wenn Du was ATMEL-kompatibles für Windows willst empfehle ich übrigens 
lieber den Diamex-ALL als bessere Alternative zum AVRISP, der hat 
mehrere Vorteile: 1. Er kann das Target mit Spannung versorgen, so 
kannst Du mit nem simplen Schnellwechselsockel und ein bisschen Draht 
nackte Controller programmieren ohne noch ein separates Netzteil zu 
brauchen. Er hat nicht den 1-Sekunde-RESET-Bug des AVRISP 
(Killerkriterium für mich, Faß->Überlauf->AVRISP->Schrank->Tür zu). 3. 
Er ist etwas preisgünstiger. 4. Er ist kleiner. 5. Er hat beide 
ISP-Steckergrößen drauf und nicht nur den 6-poligen. 6. Er ist 
mindestens genauso unzerstörbar. Nachteil: kein Gehäuse.

Wenn Du allerdings auch debuggen willst und nicht nur programmieren dann 
ist weder das eine noch das andere geeignet, dann brauchst Du mindestens 
einen ATMEL-ICE.

von __Son´s B. (bersison)


Angehängte Dateien:

Lesenswert?

Bernd K. schrieb:
> Wenn Du was ATMEL-kompatibles für Windows willst empfehle ich übrigens
> lieber den Diamex-ALL als bessere Alternative zum AVRISP

Arbeite mit Win7 + Programmer, der schon im Lernpaket, auf der 
mitgelieferten LP verdrahtet ist.
Habe auch einen STK500, arbeite aber erst mal sklavisch das Lernpacket, 
ala "Mahlen nach Zahlen" durch. Diamex-ALL werde ich Hinterkopf 
behalten, wenn ich ernsthafte kleine Sachen mit dem ATtiny mache.

von __Son´s B. (bersison)


Lesenswert?

Die Übertragung des Programms (hex-Datei) erfolgt über den "AVR 
Bootloader"!

Auf dem uC wurde dafür von FRANZIS ein Prog. vorinstalliert. Somit ist 
ein ISP-Programmer überflüssig und kann direkt seriell programmiert 
werden.
______________
Soweit so gut...

Leider ist seit gestern folgendes Problem aufgetaucht;
[1]
AVR Bootloader gestartet // Port eingestellt // Reset Delay 200 // 
Hex-Datei (Blink-LED) geladen // mit [Programm] übertragung starten
[2]
Übertragung findet statt // im Anschluss erlischt das Dauerleuchten der 
LED PB6 am uC-Ausgang // kein Blinken von PB6, wie im neuen Programm 
vorgesehen.
[3]
Ab jetzt kann der AVR Bootloader nicht mehr übertragen - zeigt bei 
weiteren Versuchen (auch mit anderen Hex-Dateien);
"Init Bootloader...
Retry: 1"
nach 6 Retry-Versuchen, abbruch mit "Error: Upload failed!"

IST HIER IRGEND ETWAS "ZERSCHOSSEN" WORDEN?

von __Son´s B. (bersison)


Lesenswert?

PS:
Sorry - ist kein Bootloader von AVR, sondern für AVR von FRANZIS.

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.