Forum: Mikrocontroller und Digitale Elektronik [Newbie] AVR Studio 5 + AVR Dragon + ATMEGA8


von Rick K. (rick007)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,
habe mich ganz frisch hier im Forum angemeldet, aber schon öfter hier 
rein geschaut. Nun ich fange ganz neu mit dem Thema Microcontroller an, 
weil mich das Thema irgendwie sehr interessiert.

Ich habe mit dem Tutorial hier von der Seite angefangen und habe mir 
soweit erstmal alle möglichen Sachen bestellt, also von Widerständen 
über LED's bis zu einem Entwicklungsboard. Habe insgesamt fast 300 EUR 
ausgegeben oO.

Da ich bei meinen PC's nur die USB-Schnittstelle zur Verfügung habe, und 
eine Debug-Möglichkeit (ich weiß, das kann der ATMEGA8 nicht) für die 
Zukunft nicht schlecht ist, habe ich mich für das AVR Dragon Board 
entschieden.

Nun, meine "Skills" würde ich wie folgt betiteln (Noten 1-6):
 - Programmierung: 2- (da von Beruf Anwendungsentwickler, allerdings 
eher Hochsprachen)
 - Elektronik: 4 (hatte mal eine Lehre als Industrie-Mechatroniker 
angefangen)
 - Microcontroller: 5- (da ich ja gerade erst anfange ;) )

Meine Umgebung:
 - AVR Dragon
 - AVR Studio 5
 - ATMEGA8
 - Windows 7 64bit
 - Netzteil/Board mit +5V

Ich versuche mal meinen Ablauf soweit aus dem Kopf wieder zu geben:

1. Ich habe die USB-Treiber und das AVR STudio 5 installiert.

2. Habe ich mein Steckboard soweit vorbereitet und den ATMEGA8 (den 
hier: 
http://www.reichelt.de/Atmel-ATMega-AVRs/ATMEGA-8-16-DIP/index.html?;ACTION=3;LA=444;GROUP=A363;GROUPID=2959;ARTICLE=45024;START=0;SORT=artnr;OFFSET=16;SID=13TgnRjH8AAAIAAALFwgU94bc77dcfa82cd13afa0ec5f7cb04827) 
draufgesetzt

3. Nun ist auf dem AVR Dragon ja ein 6-Pin ISP Anschluss. Diesen habe 
ich mit meinem ATMEGA8 auf dem Steckboard, wie im Anhang zu sehen, 
verbunden.

4. USB-Kabel rausgekramt und aha leuchtet schonmal eine LED (ich mein 
nur die rote!). Danach AVR Studio 5 geöffnet und Tools -> AVR 
Programming gestartet. Der wollte direkt ein Firmware Upgrade für das 
AVR Dragon durchführen - OK warum nicht. Hat auch alles geklappt.

5. So, bevor ich drauf los programmiere, wollte ich erstmal sicher sein, 
dass ich den ATMEGA8 überhaupt ansprechen kann, also wieder Tools -> AVR 
Programming.
Erstes Problem: Es gibt gar keinen ATMEGA8 zur Auswahl -.-, dann habe 
ich spaßeshalber mal alle ausgewählt, die irgendwas mit dem 8er zu tun 
haben könnten. Klicke ich nun "Read Voltage" sagt er mir, dass nur 0,4 V 
anliegen. Klar viel zu wenig, also mit Multimeter nachgemessen und JA 
stimmt, sind nur 0,4 V. Alles wieder abgesteckt, den ATMEGA8 mal 
ausgesteckt und nochmal nachgemessen, aha ich messe ~ 4 V (ca.). 
Stecke ich wieder den ATMEGA8 drauf und führe wieder das Tool aus, habe 
ich wieder 0,4 V.

Schade, dachte der Dragon würde genug Strom über USB liefern. Der ist 
bei mir direkt an den USB-Anschluss (also ohne Hub, oder lange Kabel). 
Da hängt (an diesem Controller) auch sonst nichts dran.

6. Hatte zum Glück noch ein Netzteil/Board mit bestellt, welches mir 
wahlweise 12 V, 5V oder 2,3 (?) V liefert. Nun habe ich die 
Stromverbindung (also +5V und GND) vom AVR Dragon zum ATMEGA8 
unterbrochen und mein Netzteil statt dessen angeschlossen, welches durch 
messen 4,8 V liefert.

7. Ich starte wieder mein Tool und klicke "Read Voltage" und JA, jetzt 
sagt auch das Tool 4,8 V (beim AVR Dragon leuchtet übrigends auch die 
grüne LED).

Aber egal welchen ATMEGA8 Verwandten ich auswähle, ich kann weder "Read 
Device ID" noch "FUSE Bits", da erhalte ich immer die gleiche 
Fehlermeldung (habe ich jetzt nicht im Kopf, kann ich heute Abend mal 
anhängen. Sinngemäß meine ich, dass das Gerät nicht bereit ist und ich 
sicher stellen soll, dass die Stromversorgung OK ist.). Sobald ich diese 
Fehlermeldung erhalte und "Read Voltage" klicke, kommt komischerweise 
wieder nur 0,4 V). Wenn ich den wieder neu auswähle und "Apply" klicke, 
liest er wieder den korrekten Volt-Wert aus.

Das einzige was funtkioniert, ist den Takt zu setzen. Ich hatte den Takt 
mal auf 250 KHz gesetzt, hatte aber immer noch die gleichen Fehler. Ich 
habe zwei verschiedene ATMEGA8 getestet.

Einen Fehler habe ich gemacht: Ich hatte den Schaumstoff im Betrieb 
unter dem AVR Dragon gelassen (hatte alles schön in den Karton gemacht 
und zugeschnitten). Habe auch den Widerstand des Schaumstoff gemessen, 
der hatte tatsächlich nicht unendlich Ohm.


Deshalb nun meine Frage: Was mache ich falsch? Oder mit welcher Software 
könnte ich das alternativ noch testen? Fand AVR Studio natürlich schön, 
da ich beruflich auch mit Visual Studio arbeite.

Ich hoffe jemand kann mir helfen, ich sage schon mal VIELEN DANK :)

von spess53 (Gast)


Lesenswert?

Hi

Nach:

>http://www.atmel.com/dyn/resources/prod_documents/as5installer-5.0.1160-release_note.pdf

wird das Programmieren des ATMega8 durch den Dragon unterstützt, muss 
also auch auswählbar sein. Hast du evtl. nicht die neuste Version?

>Aber egal welchen ATMEGA8 Verwandten ich auswähle, ich kann weder "Read
>Device ID" noch "FUSE Bits", da erhalte ich immer die gleiche
>Fehlermeldung ...

Da gibt es keine Verwandten. Diese Vorgehensweise ist sinnfrei.

>Das einzige was funtkioniert, ist den Takt zu setzen. Ich hatte den Takt
>mal auf 250 KHz gesetzt, hatte aber immer noch die gleichen Fehler. Ich
>habe zwei verschiedene ATMEGA8 getestet.

Der Takt muss bei einem neuen AVR < 250kHz sein.

MfG Spess

von Albert .. (albert-k)


Lesenswert?

1. Fehler:
Du hast den ATmega8 nicht ganz korekt beschaltet. Du musst AVCC und GND 
auf der rechten Seiten ebenfalls mit +5V und GND verbinden. Sonst 
arbeitet er nicht.
2. Fehler
schließe noch einen 10kOhm Widerstand von Reset gegen 5V an. Ich weiß 
nicht ob der AVR Dragon sauber gegen 5V zieht.
3. Fehler:
Bei den langen Zuleitungen für die Versorgungsspannung kan es sein das 
die Spannung so stark einbricht das der Dragon abschaltet. Besser 
jeweils einen 100nF Kondensator zwischen AVVC-Gnd und VCC-GND 
anschließen.

Dies alles wird dir aber nichts helfen. Denn der AVRDragon unterstützt 
keine ATMega8 Controller.

Hier findest du eine Liste welcher programmer welchen Controller 
unterstützt:
http://www.atmel.com/dyn/resources/prod_documents/as5installer-5.0.1160-release_note.pdf

von Rick K. (rick007)


Lesenswert?

Hallo,
erstmal danke für die schnellen Antworten!

@ spess53: Ich habe die Version 5.0.1163 über den Direktlink von 
mikrocontroller.net letzte Woche erst heruntergeladen (laut atmel.com 
ist das auch die aktuellste Version)

Das mit den "Verwandten" hatte ich irgendwo hier im Forum gelesen, da 
hatte auch jemand das Problem, dass er kein ATMEGA8 auswählen konnte, 
einer hatte geschrieben, dass man auch den 8xxx (glaube 8015 oder 
ähnlich) auswählen kann, da die wohl sehr ähnlich sein sollen.


@ Albert:

Das hört sich sehr gut an, das werde ich auf jeden Fall morgen mal 
testen.

Also laut diesem Link wird der ATMEGA8 aber über AVR Dragon unterstützt:
http://support.atmel.no/knowledgebase/avrstudiohelp/mergedProjects/AVRDragon/AVRDragon.htm 
(was stimmt denn nun?!)
Also ich weiß, dass der ATMEGA8 das Debugging nicht unterstützt, aber 
programmieren sollte man das Ding doch eigentlich trotzdem...

Was ist denn "lang"? Also USB-Verbindung ist ca. 1m und vom Netzteil zum 
ATMEGA8 ist vielleicht 30cm, AVR Dragon zum ATMEGA8 auch ca. 30 cm. Ist 
das schon zu viel? Sonst könnte ich doch auch einfach einen dickeren 
Querschnitt nehmen oder nicht?

Hätte ich das gewusst, hätte ich die paar Euro mehr ausgegeben und einen 
anderen Controller gekauft, dachte halt am Anfang ist die Gefahr recht 
groß, dass ich mal einen Controller zerschiesse, deshalb habe ich mir 
den günstigsten gekauft.

Danke nochmal euch beiden!

von dunno.. (Gast)


Lesenswert?

also mit "lang" wird sich albert auf die 30cm vom Dragon zum Controller 
beziehen..

Wenn der Controller nun auf einmal schlagartig anfängt strom zu 
verbrauchen, kann die Spannung einbrechen (für extrem kurze zeit) - um 
das zu verhindern, verwendet man sog. Stützkondensatoren, typisch 100nF 
Kerko, welche sehr nahe an den VCC / AVCC Beinen des Controllers gegen 
masse verbaut werden.

höherer kabelquerschnitt dürfte da kaum etwas helfen..

was den mega8 angeht, bei meinem Dragon mit neuer firmware kann ich nur 
ATMega8U2 einstellen, keine ahnung was das jetzt für einer ist.. nen 
normaler ATMega8 taucht nicht auf.

mfg

von Albert .. (albert-k)


Lesenswert?

Rick Krug schrieb:
> Also laut diesem Link wird der ATMEGA8 aber über AVR Dragon unterstützt:
> http://support.atmel.no/knowledgebase/avrstudiohel...
> (was stimmt denn nun?!)
Hm, das bezieht sich wahrscheinlich noch auf die Version 4 von AVR 
Studio. Das von mir verlinkte pdf bezieht sich auf AVRStudio 5 in 
verbindung mit dem AVRDragon. und dort wird der ATmega8 als "nicht 
unterstü+tzt" angegeben. Vl. ist dies eine eigenart von AVR Studio 5.

von Daniel (Gast)


Lesenswert?

Hi

Meine Daten:

-) Windows 7 Ultimate 32bit Version
-) Avr Studio 5.0.1163
-) Avr Dragon
-) ATMega8-16PU im DIL-Gehäuse
-) ISP-Frequenz ist bei 125kHz
-) USB-Kabel mit ~1.5m Länge
-) Kabellänge vom Dragon zum Breadboard ~20cm


Ich habe den Avr nur mit den ISP-Stecker verbunden. Keine 
Reset-Schaltung oder sonstiges. Dazu noch die Versorgungsspannung = 
3,3V, sollte aber auch mit mehr gehen.

Mit eingeschalteter Versorgungsspannung erkennt er bei mir auch 3,2V und 
wenn ich den ATMega8515 auswähle kann ich die DeviceID auslesen und auch 
programmieren (bisher nur Blinklicht). An den Fuses hab ich nix 
verändert.

lg Daniel

von Rick K. (rick007)


Lesenswert?

Hallo,

bezüglich des Kelkos (= Keramik Kondensator?!): 100nF sind wohl 0,1 µF. 
Ich hatte mir einige Elkos gekauft, der kleinste den ich hier habe hat 
aber 1 µF (radial), werde mir den 0,1er noch bestellen. Ist Kelko besser 
als Elko?

Ich habe das ganze nun auch mit dem AVR Studio 4 getestet, leider auch 
kein ATMEGA8 zur Auswahl. Ich werde mir wohl den ATMEGA16 oder ATMEGA48 
bestellen. Dann habe ich auch direkt die Debug-Möglichkeit dabei. 
Deshalb kann ich leider erst mitte der Woche wieder testen :(

Was ist eigentlich der Unterschied zwischen DIL und DIP bei der Bauform? 
Habe mal gegooglet, soll das selbe sein?

Ich kann mich zwischen dem ATMEGA48 und dem ATMEGA16 nicht so ganz 
entscheiden, der 48-er hat mehr MHz, der 16er hat dafür alles andere 
mehr.

Ich werde mir wohl den passenden Sockel auf das AVR Dragon löten. Dann 
kann ich da direkt meine Stiftleisten einlöten. Dazu noch eine Frage: 
Hatte schon lange gesucht aber nicht wirklich was gefunden. Ich hätte 
gerne das Gegenstück der Stiftleiste als einzelne "Kupplung", sowas hier 
-> 
http://www.elv.de/Steckbuchse,-2-polig/x.aspx/cid_74/detail_10/detail2_962 
- nur eben einpolig, so wie die Kabel im PC (zum Beispiel für Power, 
Reset, usw.), am besten aber zum selber löten - einer eine Idee wo man 
die her bekommt? (am besten auch ein wenig günstiger als im gezeigten 
Link). Also ich möchte beim AVR Dragon vom ISP oder JTAG Anschluss eben 
die Kabel auf die entsprechenden Stifte stecken können, denn löten wäre 
ja blöd, da andere Controller wieder andere Belegungen haben. Wie würdet 
ihr das machen?

Bezüglich der langen Zuleitungen: Ist das nur bei der Programmierung ein 
Problem oder überhaupt? Denn wenn ich mir jetzt vorstelle, ich würde zum 
Beispiel so einen Pinball Automaten bauen, da ist es doch oft, dass ich 
durch aus mal einen Motor steuern muss, der über einen Meter entfernt 
ist. Das muss doch möglich sein oder nicht? Alternative wäre natürlich 
ein Relais direkt in der Nähe des Controllers, und die Stromleitungen 
vom Relais zum Motor dann eben länger.

von Rick K. (rick007)


Lesenswert?

@ Daniel: Hmm, hast du ein Glück ;)
Was benutzt du denn als Versorgunsspannung? Netzteil? Denn wenn ich eine 
externe Versorgungsspannung dran hänge, sagt er komischerweise bei Read 
Voltage "4,2" V. Sogar dann wenn ich die Verbindung zum Controller 
komplett kappe. Also wenn ich die USB-Versorgungsspannung nehme, bricht 
diese ein, sobald ich versuche etwas zu lesen (meist auf 0,4 V). Deshalb 
habe ich die externe dran, die USB-Versorgung abe ich aber gekappt, oder 
muss ich beide (USB-5V und Extern 5V) dran lassen?! Kann ich mir nicht 
vorstellen.

von Daniel (Gast)


Lesenswert?

Hi

Ja ich hab sowohl die ISP Spannung dran als auch die
Versorgungsspannung von meinem Netzteil.
 Es funktioniert auf jeden Fall. Nach dem flashen wird dann direkt das 
Programm ausgeführt.

Hier mal ein Auszug aus dem Manual:

If the target is already powered by an external power source, the AVR 
Dragon will adapt and level convert all signals between the target and 
the AVR Dragon.

Note: It the target board is powered by external power source, no 
connection should be
made betwwen the VCC connector and the external board.

Ich verstehe das so, dass man den VTG-Pin sehr wohl mit einer externen 
Stromversorgung betreiben kann (so hab ich das zumindestens heute 
ausprobiert und mindestens 10-15mal geflasht und die Software dann auch 
ca. 30min laufen lassen). Nur wenn man dann den VCC-Pin mitnimmt, so wie 
unten beschrieben, dann gilt das nicht mehr.

Soweit ich mich erinnern kann stand im Dragon-Manual das man den VTG-Pin 
mit dem VCC-Pin an der Leiste links vom JTAG-Port und von dort dann auf 
den ISP-Stecker der zum Zielboard führt gehen soll. Das findest du in 
den Beispielen (hab grad nachgeschaut). Ich kanns jetzt zwar nicht 
nachmessen, aber für mich hört sich das an, als wäre VTG und VCC nicht 
miteinander verbunden und man hat dadurch 2 Möglichkeiten wie man 
flashen kann. Ich werds heute am Nachmittag dann mal probieren.

lg & gute Nacht

von Thomas (kosmos)


Angehängte Dateien:

Lesenswert?

Elko  = Elektrolyt Kondensator
Kerko = Keramik Kondensator

die 100nF Abblockkondensatoren immer als Kerko-Typ nehmen und so nah wie 
möglich zw. VCC und GND klemmen.

Im AVR-Studio 4 gibts den ATMega8 zur Auswahl(siehe Bild). Und im 
AVR-Studio 5 ist das nur eine Frage der Zeit selbst wenn der abgekündigt 
sein sollte, ansonsten probier es mal mit dem ATM88 als Auswahl.

von Daniel (Gast)


Lesenswert?

Also folgendes:

Dragon am USB-Kabel anhängen und dann die IDE starten (beide LEDs 
leuchten; einmal oben rot und unten grün).

Erste Variante: Wenn ich die Pins von dem ISP-Header auf mein 
Zielschaltung führe und dort auch noch 3,3V (5V geht auch) mit einem 
geregelten Netzteil anlege. Dann kann ich mit dem AvrStudio den Atmega8 
auslesen (wie schon oben beschrieben hab ich den ATMEGA8515 ausgewählt, 
aber der Mega8 lässt sich trotzdem programmieren). Es geht aber nur, 
wenn zusätzlich noch VTG mit angeschlossen ist.

Zweite Variante: VTG nach VCC und von VCC dann zum ISP-Stecker. Dann 
braucht man auch keine externe Versorgung. Aber jetzt kommts. Wenn ich 
VTG vor dem Programmieren drinnen habe, dann blinkt die obere LED orange 
(wenn der USB Stecker links vom Board ist). Und man kommt beim 
Programmierinterface nicht weiter. Dann muss man den Stecker (VTG nach 
VCC) ziehen. Erst dann kommt man ins Programmierinterface rein und kann 
die Spannung auslesen (nachdem man den Stecker wieder reingegeben hat). 
Will man das Programmierinterface wieder verlassen, muss man wieder den 
Stecker ziehen (sieht man wieder an der orange blinkenden LED).

Weil ichs noch nicht erwähnt habe: VTG ist der Pin 2 am ISP-Header 
(steht aber auf der Rückseite des Dragons drauf).

Beim Rumprobieren ist auch noch folgender Fehler aufgetreten:

Es kann sein das die Stecker nicht guten Kontakt haben und beim Versuch 
den Dragon anzusprechen sich die IDE dann aufhängt oder lange Zeit 
braucht und dann eine Fehlermeldung raushaut, wie "could not connect". 
Dann kanns passieren, dass der Dragon vll noch im Menu ausgewählt werden 
kann, aber trotzdem nichts macht bzw. selbes Problem auch bestehen 
bleibt wenn man die IDE öfter startet. Dann hilft nur mehr die IDE 
schließen, USB-Kabel ziehen, wieder anstecken und dann die IDE neu 
starten. Erst dann hats bei mir wieder funktioniert.


Ein bischen ausführlich, aber ich hoffe es hilft dir.

lg Daniel

von Klaus W. (mfgkw)


Lesenswert?

Rick Krug schrieb:
> Kelkos (= Keramik Kondensator?!)

Thomas O. schrieb:
> Elko  = Elektrolyt Kondensator
> Kerko = Keramik Kondensator

Kelko = Kerko made in China?

von Rick K. (rick007)


Lesenswert?

Hallo zusammen,

vielen vielen Dank an alle! Ich habe nun meinen ATMEGA8 zum laufen 
bekommen (bisher auch nur LED-Blinklicht). Der Hinweis von Daniel hat 
schlußendlich zum Ergebnis geführt, denn tatsächlich nur mit 
zusätzlicher Stromverbindung über den ISP funktioniert die 
Programmierung (denke mal, weil nur so der AVR Dragon auch mit bekommt, 
dass genügend Strom vorhanden ist). Zwar funktioniert das Auslesen der 
ID noch nicht so ganz (meckert rum, dass die ID mit der Einstellung 
nicht übereinstimmt - klar habe ja auch den "falschen" Controller 
ausgewählt), aber ich kann ERASEN, Programmieren und die Fusebits 
zumindest lesen, schreiben kann ich nicht sagen, da ich davon noch keine 
Ahnung habe. Ich kann also erstmal ein wenig rumprobieren und werde mir 
dann bald einen "passenderen" Controller zulegen.

Ich werde mich nun mal an das Platinen ätzen ran wagen um mir ein 
kleines Programmer Board zu basteln (wie hier und im Tutorial 
beschrieben mit Kerko & Co.).

@ Thomas: Also bei mir ging es definitiv nicht. Außer beispielsweise im 
Simulator, aber sobald ich mein Dragon auswähle ist kein ATMEGA8 mehr zu 
sehen - obwohl der sogar unter "Devices" hier aufgelistet ist: 
http://www.atmel.com/dyn/products/tools_devices.asp?category_id=163&family_id=607&subfamily_id=760&tool_id=3891

Aber was solls, hauptsache ich kann überhaupt erst einmal was damit 
machen :)

Ich kann euch nicht genug danken!

von Nadeshda (Gast)


Lesenswert?

Meine Erfahrung zu dem Thema:
Ich habe ein modifiziertes myAVR-mk1 Board mit 
(selbstgebautem)6-pol-ISP-Anschluß, AVR Dragon, ATmega8, AVR-STudio 5.
DEFINITIV wird der ATmega8 NICHT in der Liste der unterstützten 
Prozessoren im Programming-Tool angezeigt, sobald man AVR Dragon als 
Programmiertool auswählt (Bug oder Absicht???) allerdings gehts, wenn 
ich ATmega8515 auswähle.

Das mit der Spannung (0,4 V???) kann ich nicht nachvollziehen. (Oder 
sagen wir mal so, ich kapiers nicht). Ich hab auf meinem Board eine 
externe Spannungsversorgung (ist für mich eigentlich logisch, wie soll 
sonst die Applikation jemals laufen, wenn man den Programmer abzieht???) 
und ganz Standardmäßig die Pins am ATmega (MOSI, MISO, Reset, SCK) 
sowiel +5V und GND mit dem Standard-6pol-Stecker verbunden.

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.